Os dejo por aquí un interesante post-morten del clásico y legendario DooM de la mano de Tom Hall y John Romero donde cuentan detalles de la creación de uno de los juegos que más ha influido en las generaciones actuales.
Archivo de la categoría: Desarrollo de juegos
Entradas relacionadas con el desarrollo de juegos.
Resumen RetroMadrid 2013
Un año más se celebro el evento sobre informática y videojuegos retro por excelencia, RetroMadrid. Este año ha sido mi 3ª vez y desde luego ha sido la mejor de las 3. El evento, como el año pasado, se ha celebrado en las instalaciones de Matadero, en Legazpi.
Este año la afluencia de gente ha sido todavía mayor que el año pasado, resultado un poco agobiante moverse por el recinto, aunque es un punto bueno ya que significa que el evento cada vez atrae a más gente. Como otros años, el recinto estaba repartido en varias áreas como la de los clásicos Sinclair Spectrums, Amstrad CPCs o los Commodores 64, Commodore Amiga y Amiga PCs, que comparten misma área demostrando su poderío videojueguil con juegos clásicos así como con desarrollos actuales para tales maquinas, trabajos como los que realizan los chicos de RetroWorks por ejemplo, o los Amiga PC concretamente luciendo palmito demostrando su poderío multimedia que tan antaño los hizo famosos frente a las maquinas de la época. No solo podíamos ver modelos convencionales de dichas maquinas si no alguna modificación curiosa como la versión LEGO de un Commodore 64 que fabrico uno de los presentes.
Como configurar correctamente el icono a la ventana e instancia de nuestro proyecto de MonoGame en Windows
Trabajando en MonoGame sobre Windows nos encontramos con que el proyecto que se genera con la plantilla de proyecto que ofrecen para Visual Studio es un proyecto de Aplicación de consola en vez de Aplicación para Windows. Esto es por que MonoGame genera la ventana del programa mediante el framework de OpenTK (Open Tool Kit Library) generando así una ventana externa, esto es similar a lo que hace XNA mediante la API de Windows. El problema que esto conlleva es que al ejecutar el juego nos aparecerá la ventana de consola, que MonoGame utiliza como salida de depuración, y la ventana del juego. El problema es que icono del proyecto se aplica a la ventana propia de la aplicación, la consola de texto, y no a la ventana del juego, la que genera OpenTK.
Sencillo motor de colisiones 2D para XNA/MonoGame
Una de las cosas que siempre se me han resistido a la hora de intentar hacer un juego plataformas 2D, y como a mi a mucha más gente, es el implementar correctamente las colisiones y su respuesta (el detectar paredes o suelos y saber ubicar correctamente el objeto cuando colisiona con el entorno).
Cierto es que hoy día existen muchas alternativas para evitar programarte un sistema de colisiones y respuesta para un juego de plataformas. Existen varios motores de físicas 2D para múltiples plataformas y lenguajes, Box2D por ejemplo, que lo implementan varias herramientas de desarrollo de juegos como Stencyl y que es muy popular en juegos Flash, o Farseer Physics Engine para XNA, que se ha usado en varios proyectos de XBox360 y Windows Phone y que están portando a MonoGame. El problema, al menos con Farseer Physics Engine que es al que le dedique tiempo en su momento, es que me resulto extremadamente complejo de implementar y configurar todos los parámetros y propiedades que tiene así como lograr ajustar la escala de medida del sistema de físicas con la escala en pixeles en pantalla para poder dibujar un sprite acorde con su representación física. En definitiva, una API muy poco amigable para la mayoría de la gente.
Seguir leyendo Sencillo motor de colisiones 2D para XNA/MonoGame
Serialización de datos en .NET: como exportar e importar datos de nuestro juego en archivos fácilmente
No hace mucho un compañero de los foros de Stratos-AD venia preguntando como podría implementar un sistema para guardar partidas de su juego en XNA y después volver a cargarlas, no en si el como el organizar los datos e información del juego y como gestionarlo en un archivo si no en si como podría exportar e importar fácilmente información a un archivo en disco. Esto me recordó que yo en su día, cuando empece a programar en .NET, me encontré con el mismo problema y que esto es una duda que a muchos nos surge.
En Visual Basic 6.0, donde estuve muchos años programando, esto era relativamente fácil ya que mediante las funciones integradas para gestionar la escritura y lectura de archivos en formato binario era tan fácil como pasar la propia variable de estructura de datos como parámetro a escribir o leer, Visual Basic 6.0 se encargaba de volcar en formato binario el contenido integro de la variable y despues permitía volver a crear la variable con el mismo contenido. Supongo que en C/C++ sera igual de directo, sin embargo en .NET ya no era tan fácil, no al menos de la misma forma. Aquí no podías llamar a las funciones de System.IO y decirle que te volcara la variable directamente en un archivo. Sin embargo si que existe una manera sencilla de hacer esto, mediante la serialización a XML.
Resumiendo mucho, la serialización a XML es un mecanismo que permite convertir una estructura de datos en una estructura de texto en formato XML. Este mecanismo esta presente en varias tecnologías de programación como .NET o Java. Yo voy a explicar mi ejemplo en .NET mediante C#.