Cataplasta, nombre código: GDTWARS
Publicado por Sir Gon | 30 de Septiembre del 2007 - 5:50 pmEn desarrollo, juego | Comments Off
Si conocen el juego Super Mario War, entenderán de inmediato de que se trata Cataplasta.
Desde hace unas semanas que se planteó la idea de hacer un juego basado en GDT, para tener algo más real que un simple demo a la hora de poder exhibirlo.
Gracias al entusiasmo, ya comienza a tomar forma, he acá algunas capturas de pantalla:
Las reglas serán bastante simples:
- Se desarrolla en un escenario cerrado.
- Son 2 o más personajes en un escenario. Podrían ser 2 jugadores locales, 1 jugador y un bot, 2 jugadores por red, etc…
- El objetivo es saltar y aplastar (de ahí el nombre) a los contrincantes.
Luego, podrían haber varias modalidades:
- El que más veces aplasta al otro en un límite de tiempo.
- El que logra una cantidad de aplastadas (frags).
- Muerte súbita (el primero que aplaste al otro gana).
- Por daño, osea que cada aplastada quite energía.
Aún está “en pañales”, es decir, apenas está disponible un demo que carga al escenario y una malla de personaje a medio terminar, pero si desean verlo, está disponible el proyecto vía Subversión en el siguiente repositorio:
Se esperan sugerencias y aportes, en código, diseño de mallas, diseño de imágenes, y/o sonidos/música.
¿Que se está cocinando?
Publicado por Sir Gon | 1 de Agosto del 2007 - 12:16 amEn desarrollo | Comments Off
Bien, se ha discutido en el foro sobre que arreglos hacerle a la librería, que cosa nuevas incluir, que fallas arreglar, etc.
Finalmente se hemos llegado a acuerdo en varios puntos, el próximo GDT estable tendrá mucho mejor orden que el actual, y en ningún caso se perderá alguna característica actual.
Cambios al código:
- VERSIÓN: Ya que se harán varios cambios MAYORES al código, se decidió pasar directamente a la versión 2.0
- COMPATIBILIDAD: Se romperá compatibilidad con GDT 1.3.*, la razón es que varios métodos y clases cambiarán de nombre, para hacerlos más cortos o para que se entienda mejor para cual es su propósito. En cualquier caso, migrar un programa/juego de GDT 1.3.* a GDT 2.0 no debiera ser una tarea complicada, ya que bastará con cambiar los nombres antiguos por los nuevos.
- NOMBRES DE ESPACIO: En favor del orden y gracias a que es una característica del lenguaje, es probable que utilicemos “namespaces” para separar los “subsistemas”. El único cambio que abría que hacer en los programas basados en GDT es añadir una línea por cada “susbsistema”.
usign namespace nombre_del_subsistema;
Aún no se implementa.
Cambios y Nuevas Clases:
- GD_Cadena: Manejará cadenas de texto de cualquier tipo, la cual será reemplazada en cada función o método que use cadenas, de modo que se necesitara reemplazar mucho código existente por el nuevo. También se soportará sobrecarga de operadores para poder concatenar fácilmente con la “suma”, y asignar con “igual”.
- GD_Matematica: Será el reemplazo de GD_SistemaMatematicas. El gran cambio es que ahora será una clase de miembros estáticos, ya que en verdad no valía la pena la necesidad de instanciarla para su uso. Ya está implementada con éxito. Acá cabe destacar, que el método Capar() le reemplace el nombre por Grados(), para evitar cualquier connotación rara.
- GD_ScriptLua: Será el reemplazo de GD_SistemaLua. Prácticamente ningún cambio.
- Animador: Joropo nos mencionaba que se podrían hacer texturas animadas, y otras cosas, no tengo detalles, pronto enviará el código.
- Físicas: Para evitar perder el código, y para que quien quiera lo use, se mantendrá la implementación que integra GDT con Newton, pero desactivada. Por defecto, vendrá activada (e incluida) la implementación de ODE.
- Hay una idea propuesta por 123xfernandox123 que está rondan. Trata sobre implementar algo para facilitarla asignación de teclas para los controles.
Si se me queda algo en el tintero, vuelvo a editar este post.
salu2
Avances en Documentación y Código
Publicado por Sir Gon | 12 de Julio del 2007 - 1:56 pmEn desarrollo, documentacion | Comments Off
Desde hace un tiempo se ha estado completando la documentación de la API.
Las novedades son:
- Aparecen TODAS las clases.
- Muchas de los métodos cuentan con un ejemplo.
- Se han preservado las imágenes de la documentación antigua.
- Se muestran los métodos heredados.
- Completos diagramas de herencia entre clases.
Antes sin darme cuenta, la documentación no mostraba los módulos opcionales que se compilan cuando se pasan parámetros especiales. Ahora se arregló el Doxyfile para que documente los módulos opcionales. Como documentar implica tocar el código, también se han mejorado ciertas cosas:
- Los nombres de los parámetros ahora son los mismos en todos los métodos heredados.
- Se han dejado como “opcionales” los módulos que dependen de librerías que no sea Irrlicht, así si alguien tiene problemas, no tiene instaladas las dependencias o decide no ocupar esas librerías (por ejemplo Openal, Lua, …) puede compilar sin ellas. Para compilar con las librerías externas, es necesario pasar los parámetros al compilador:
- _GDT_SONIDO_ // Openal + Alut
- _GDT_SONIDO_OGG_ // OGG + Vorbis
- _GDT_MIDI_ // WINAPI (el midi funciona solo con la winapi por ahora), desactivado en Linux (por razones obvias) y en MS Visual C++ 2005 Express (porque necesita el Platform SDK).
- _GDT_SCRIPTING_ // LUA
- _GDT_FISICAS_NEWTON_ // Newton Dynamics, desactivado en forma predeterminada
- _GDT_FISICAS_ODE_ // NO implementado aun, pero irá a futuro.
- Los proyectos para CMake, Dev-C++ y MS Visual C++ 2005 Express estarán pre-configurados con estos parámetros.
- Se ha agregado un hack en cada archivo de cabecera (.h) para que funcionen los métodos al compilar GDT como .dll en Visual C++. Este “Hack” es un #define que ha sido nombrado _GDT_EXPORT_, el cual es totalmente inocuo en compiladores los demás compiladores. Esto permite que los métodos declarados con este define serán “visibles” desde un programa que enlace con la librería. Si lo ven en la documentación y causa extrañeza, simplemente deben ignorarlo.
- Se han cambiado la estructura de los directorios en el código fuente. básicamente es igual que antes, pero ahora cada plataforma tiene su propia carpeta de binarios, así los ejecutables hechos con GCC no se mezclaran con los de Visual C++, ni con los de Mingw.
- Los demos en vez de números, tendrán como prefijo gdt_, así por ejemplo “01_mallas” será “gdt_mallas”, 02_luces “gdt_luces”. Esto se me ocurrió porque eventualmente se podrían hacer más demos, y los números en realidad no demostraban ninguna relación.
Y lo que falta por hacer:
- Terminar de documentar todos los módulos.
- Arreglar dependencia de OGG al compilar con MS Visual C++ 2005 Express.
- Arreglar todos los parámetros para los proyectos de Dev-C++, incluyendo cada demo. Además de cambiarle los nombres a los ejecutables
- Hacer que los proyectos de cada IDE/plataforma construya los objetos en alguna carpeta especial, para evitar ensuciar los directorios.
- Hacer un proyecto para Code::Blocks
- Implementar ODE. Astucia publicó un avance, que aun no se incluye ni he probado.
- Evaluar los cambios, probar todo, y empaquetar una nueva versión. ¿Serán todos estos cambios suficientes como cambiar el número a una versión mayor?
A medida que ocurran cambios significativos, se publicaran en el repositorio SVN como siempre.
Físicas con Newton SDK
Publicado por Sir Gon | 26 de Enero del 2007 - 12:29 amEn desarrollo | Comments Off
Gracias al trabajo del amigo Astucia, se está preparando una nueva versión de GDT con mejor integración con Newton.
La biblioteca Newton no es libre, pero su licencia sí permite crear juegos con ella, por lo tanto, se dejará como un complemento opcional, osea que no se incluirán archivos de Newton en los paquetes de GDT. En cambio, se darán todos los pasos para instalar Newton y compilar gdt con aquella biblioteca si así se desea.
Obviamente, también se darán las instrucciones para compilar cualquier proyecto basado en GDT.
Aquí una muestra de como funciona Irrlicht + Newton


