Games Programming

Esta es mi página dedicada a la programación

Quien Soy

Este sitio pertenece a Mauricio Cele López Belón. Magister en Ciencias de la Computacion de la Universidad Nacional Del Sur - Bahia Blanca - Argentina, Bachiller en Ingeniería de Sistemas de la Universidad Católica Santa María - Arequipa - Perú. Su tesis se titula Visualizacion Interactiva de Volumenes y propone acelerar la visualizacion remota de volumenes a traves del rendering progresivo de los mismos. Para ello, los volumenes requieren tener la propiedad de conectividad de subdivision, es decir la geometria debe estar representada por volumenes de subdivision regular (mallas semi-regulares) que forman un espacio anidado de funciones. Con este requisito cumplido, el campo escalar lineal por piezas f(x,y,z) puede ser representado por wavelets sobre tetraedros. Las conocidas bondades de las wavelets permiten realizar la transmision y rendering progresivos que propone la tesis.

Sus intereses de investigación son: visualizacion cientifica, visualizacion de grandes cantidades de informacion, realismo y realidad virtual, estructuras de datos espaciales, algoritmos multiresolucion y Out-Of-Core, tecnologia y algorimos para juegos 3D, aplicaciones orientadas a web (servicios web).

Los Programas y Código Fuente.

La mayoria los programas publicados han sido escritos durante mi primera etapa de estudiante de pregrado. Es (muy) posible que encuentren algunos errores obvios que espero sepan disculpar. En general programo en C/C++. El compilador que uso es principalmente Visual C++ en sus diferentes versiones.

A Los Visitantes

Agradezco a todas las personas que me envían mails para sugerirme cosas, agradecerme o presentar sus quejas. A las personas que me piden ayuda, les estoy agradecido por que he aprendido mucho de sus preguntas. Para las personas que deseen mi ayuda, solo les pido que describan claramente el problema y me comenten que soluciones han intentado y por qué creen que no funcionaron.

Algorítmica General

  1. Búsqueda Binaria en Arrays
  2. Notación Polaca o Postfija
  3. Aproximación del seno, coseno, exponencial y logaritmo neperiano usando series de Maclaurin
  4. Aproximación de una integral definida usando la regla de los Rectángulos, el Trapecio, Simpson 1/3 y Simpson 3/8
  5. Como programar el algoritmo de ordenamiento QuickSort
  6. Ejemplo del algoritmo de ordenamiento Radix Sort
  7. Aproximación numérica de funciones usando el método de Newton
  8. Aproximación numérica de funciones usando el método Iterativo o de Punto Fijo
  9. Calcula 500 dígitos de PI por Tamura Kanada
  10. Hackear, abrir y visualizar tablas dBASE .DBF en C++ usando estructuras de datos sencillas y Mapeo de Archivos en Memoria Virtual
  11. Pilas estáticas en C
  12. Colas estáticas en C
  13. Árboles binarios en C
  14. Fractal de Sierpinsky  y el Helecho Fractal
  15. Codigo fuente de los algoritmos de ordenación mas famosos (burbuja, inserción, quicksort, shell y selección)
  16. El clásico ejemplo de los números de Fibonacci (algoritmo recursivo, iterativo y programación dinámica)
  17. Grafos : Listas enlazadas dinámicas en C
  18. Grafos : Listas enlazadas estáticas en C
  19. Búsquedas de cadenas por Fuerza Bruta, Knuth Morris Pratt, Boyer Moore y Rabin Karp
  20. Ejemplo sencillo de contruccion visual de árboles binarios de busqueda (código fuente en VC++)
  21. Programación de Pilas, Colas y Listas enlazadas dinámicas usando Templates en C++
  22. Visualizar, encriptar y desencriptar una tabla de Visual Fox Pro usando una clave generada a partir de password. Código en VC++
  23. Simulación de un kernel que administra la creación, ejecución y destrucción de procesos cargándolos en memoria o memoria virtual. Los archivos fueron creados durante mi curso de sistemas operativos.
  24. Algoritmo Genetico y Notacion Postfija para resolver el problema de generar la expresion algebraica de N terminos que sume un numero deseado VC++ 6.0
  25. Forma basica de un sistema experto que usa arboles binarios para adivinar el animal que el usuario esta pensando. El sistema experto aprende hasta estar en la capacidad de adivinar cualquier animal posible. VC++ 6.0
  26. Convierte un archivo .DOC de Microsoft Word en un archivo de texto plano .TXT
  27. Templates de Lista Enlazada, Pila estatica y Arbol Binario de Busqueda. Estas implementaciones son muy eficientes.
  28. Clase sencilla que crea un Octree a partir de una nube de puntos 3D. Permite seleccionar (buscar) los puntos que estan dentro de una esfera de influencia (busqueda por rango) y tambien encontrar el nodo al que pertenece un determinado punto. Usa DirectX 8.1 o 9.0b para pintar el Octree
  29. Algoritmo de ordenamiento en memoria externa merge sort. Simple y eficiente, definido como una clase template de C++
  30. Algoritmos numericos (Algebra Lineal, Minimizaciones, Integrales, etc) en Numerical Recipes in C
  31. Mini aplicacion que usa ek Windows Media Player para tocar una lista de mp3 del disco duro

Curso De Computacion Grafica

Introduccion a la Computacion Grafica : Excelente curso de Computacion Grafica preparado por el Dr. Claudio Delrieux (Universidad Nacional del Sur - Bahia Blanca - Argentina). Presenta los fundamentos teoricos asi como las implementaciones practicas de muchos algoritmos de graficación. Partiendo de los temas basicos cubre practicamente todos los topicos relevantes necesarios para desarrollar Sistemas Graficos 2D/3D y Visualizacion Cientifica.(2000)

Aplicaciones de Reinforcement Learning en Juegos de Video

Survey Reinforcement Learning : Reinforcement Learning es un método de aprendizaje de políticas de comportamiento óptimo basado en metas, premios y castigos. Usualmente Reinforcement Learning encuentra su mayor utilidad en campos como robótica, como por ejemplo RoboCup, y tareas control como por ejemplo la estabilización del doble péndulo invertido. Así mismo, existen diversas aplicaciones de Reinforcement Learning en juegos de mesa, algunas tan exitosas como TD-Gammon, que es un controlador capaz de jugar Backgammon y competir de igual a igual y derrotar a los maestros humanos. En este trabajo hacemos una revisión del estado del arte y las aplicaciones de Reinforcement Learning en los juegos de video, así como los problemas, ventajas y oportunidades que se desprenden de ellas.

Algo de codigo fuente desarrollado por mi

Basic Algorithm Flowchart : Es la segunda version de mi Editor de Diagramas de Flujo. Programa que permite crear y editar visualmente flujogramas (diagramas de flujo). Ademas, permite traducir los diagramas a pseudocodigo y a codigo C/C++, el cual compila casi sin hacerle cambios. Los diagramas se guardan de forma portable como archivos XML entendibles para las personas y que pueden ser leidos por programas externos. Esta version tiene el codigo fuente refactorizado (en la medida de lo posible), de tal modo que toda la funcionalidad grafica esta embebida en un componente independiente, el cual puedes agregar a tus proyectos para mostrar diagramas de flujo automaticamente y con graficos mejorados con respecto a la version anterior. Escrito en C# 2.0

Convex Hull : Calcula el Convex Hull de una nube de puntos en el espacio y genera una malla indexada de triangulos. Basado en el paper de Bradford Barber The Quick Hull Algorithm for Convex Hulls publicado en 1995. Esta implementacion fue escrita usando estructuras de datos sencillas. MS Visual C++ 7.0, Direct3D 9.0b (2005)

Tetraedrizacion de Delaunay : Dado un conjunto de vertices no estructurados en el espacio, este algoritmo calcula una parametrizacion lineal llamada tetraedrizacion de Delaunay, en otras palabras, genera una malla de tetraedros, donde cada tetraedro cumple las propiedades definidas por Delaunay. Esta implementacion se basa en el Algoritmo InCode presentado por Paolo Cignoni et al en 1992. en su paper titulado A Merge-First Divide and Conquer Algorithm for Ed Delaunay Triangulation. MS Visual C++ 7.0 (2005)

Mini Libreria 3D : Una mini libreria de clases, funciones y templates para hacer calculos de vectores 2D, 3D y 4D. Calculo de planos y rayos 3D. Calculos de matrices 2x2, 3x3 y 4x4. Para cargar y guardar archivos BMP, JPG, PCX y PPM, Manejar buffers de pixels de 24 y 32 bpp. MS Visual C++ 7.0 (2005)

Frustum Engine : Un primer intento de crear un motor 3D. NO esta terminado, sin embargo funciona y puede aportar algunos algoritmos. Escrito en MS Visual C++ usando DirectX 7. Con código fuente (2000).

Recursos de Programación : Cursos de C, C++, SQL, POO (2000)

Damas Chinas : Damas chinas para varios jugadores (no en red) incluyendo un robot que juega con cierta inteligencia haciendo busquedas en un grafo. MS VC++ 6.0, Directx7(2000)

Fundamentos Graficos : Fundamentos basicos de matematicas y geometria para algoritmos de graficacion 3D explicados con codigo fuente C++ (esta en HTML (2000))

PC Sleep : Apaga automaticamente la PC despues del tiempo que uno desee. Ya puede quedarse dormido... la PC se apagara sola. Escrito en MS VC++ 6.0/7.0; funciona en Windows NT/2000/XP/2003. Para Windows 9x/ME necesita descomentar un par de lineas y recompilar el proyecto. (2003)

Proyectos

Si deseas obtener el codigo fuente de estos proyectos escribeme un mail y yo te lo enviare. Por favor no lo distribuyas libremente.

Visor de niveles del juego "Return To Castel Wolfestein" y "Quake 3 Arena" ( VC++ y Directx9 ) --> Screen Shots del Visor

Links

VJuegos, Game Developers Magazine Source Code, Magic Software, SIGGRAPH, WEB 3D, Gamedev, FlipCode, FluidStudios, Gamasutra, OpenGL, DJGPP, Allegro

Contactarse conmigo

skull_break@hotmail.com


Bret "HITMAN" Hart

Tributo

The Best There Is

The Best There Was

The Best There Ever Will Be...