miércoles, 18 de febrero de 2009

Programación de videojuegos: patrones de diseño.

En el ámbito de las aplicaciones empresariales es muy común encontrar sistemas computacionales que han sido desarrollados considerando el uso de patrones de diseño. En particular, en el mundo de las aplicaciones J2EE existen los patrones de orientación a objetos y de la definición Core J2EE de Sun Microsystems, tales como los patrones Singleton, Data Access Object (DAO), etc., cuyo objetivo es entregar un conjunto de buenas prácticas y soluciones a problemas comunes que beneficien a la arquitectura, diseño y programación de sistemas complejos.

Tomando en cuenta que el desarrollo de un videojuego puede llegar a ser un proyecto de grandes dimensiones, cabe preguntarse qué tipos de estándares, recomendaciones y/o buenas prácticas pueden ser utilizadas para potenciar su desarrollo.

Un patrón de arquitectura clásico que puede ser utilizado en la creación de un videojuego corresponde al Modelo-Vista-Controlador (MVC), el cual postula realizar una separación entre la zona que posee los datos de una aplicación, la zona que considera la visualización de los datos, y la zona que permite contener la lógica de control de estos datos.

Para el caso de un videojuego, el Modelo puede estar compuesto por objetos que mantienen el estado del mundo y de los personajes que participan en el juego (ej: llevan el control de la energía de los jugadores, la cantidad de municiones de cada uno, etc.); la Vista puede estar compuesta por objetos que manejan y despliegan las animaciones y sonidos de los personajes del juegos, los cuales hacen uso de los objetos del Modelo para observar su estado y determinar qué es lo que se debe desplegar (ej: se despliega una animación de un personaje feliz cuando su energía está al máximo); y por último el Controlador puede estar compuesto por objetos que responden a los eventos enviados por el usuario del juego, tales como los movimientos que se realizan a través de un joystick/teclado/mouse, los cuales invocan cambios en el Modelo y probablemente también en la Vista (ej: el Controlador recibe una orden del usuario que le indica que el personaje debe saltar, por lo que interactúa con el Modelo para ver si es posible realizar el salto según las condiciones del juego en ese momento).

Un muy buen artículo sobre el uso del patrón MVC aplicado en un videojuego comercial puede ser visto en el sitio de Gamasutra, en el cual se ejemplifica su uso mediante el modelamiento de un tanque para un juego 3D de guerra (hacer click acá).

Próximamente discutiremos en este blog otros patrones útiles para el diseño y programación de videojuegos.

martes, 10 de febrero de 2009

Industria de los videojuegos en Chile.

En los últimos años han surgido algunas empresas que se han atrevido a invertir en el desarrollo de videojuegos hechos en Chile. Las producciones van desde los juegos 'casuales' diseñados para consolas de última generación (ej: XBOX360) hasta creaciones para teléfonos celulares y computadores personales.

Algunas de estas notables empresas son:
  • Wanako Games: sin duda el máximo referente a nivel nacional. Este estudio fue formado el año 2002, y posee oficinas en Santiago de Chile y Nueva York (en EE.UU). Son especialistas en el desarrollo de juegos 'casuales' para consolas, y su creación 'Assault Heroes' fue premiada por el sitio especializado IGN en la categoría Mejor juego Xbox Live Arcade del año 2006.

  • AmnesiaGames: se especializa en el desarrollo de juegos y aplicaciones multimedias para teléfonos celulares, los cuales operan en plataforma Java (J2ME) y también mediante mensajería SMS/MMS/WAP. Para ver un listado de sus juegos puede verse el siguiente link: http://www.amnesiagames.cl/juegos.html

  • PsychoWorld: con sede en Valparaíso, esta empresa desarrolla aplicaciones con contenido multimedial para teléfonos celulares. Entre sus productos se encuentran una aplicación J2ME para poder observar TV Internet desde un teléfono celular, y diversos juegos en categorías tales como deportes, música, etc., los cuales pueden ser observados en la siguiente página: http://www.psychoworld.cl/web/htdocs/muestraprod.php?type=2

  • ACE TEAM: es un estudio localizado en Santiago de Chile, que cuenta entre sus filas con algunos de los antiguos miembros de WanakoGames. Su juego debut lleva por nombre 'Zeno Clash', el cual en enero de 2009 ha sido nominado como finalista en el Independent Games Festival en la categoría Excelencia en Arte Visual. Para mayor información, visitar: http://www.zenoclash.com

Por último, para obtener un mapa actualizado del desarrollo nacional de videojuegos, puede hacerse click en el siguiente link: http://www.gamedevmap.com/index.php?query=chile

miércoles, 4 de febrero de 2009

Inteligencia artificial en videojuegos.

Si alguna vez se han preguntado cómo diablos ponerle 'inteligencia' a un personaje de videojuegos, la respuesta viene empaquetada en un excelente libro: "Programming Game AI by Example", del autor Mat Buckland.

En los diversos capítulos del texto se realiza un paseo por los principios clásicos del diseño de inteligencia artificial para personajes de videojuegos, en donde se complementa cada tópico con ejemplos ilustrativos a través de imágenes, explicaciones sencillas, y lo fundamental: código fuente de referencia.

El enfoque práctico del libro es digno de agradecer, ya que el estilo pedagógico del autor permite que se puedan entender y 'digerir' temas tales como máquina de estados finitas para controlar personajes (FSM), lógica difusa para la toma de decisiones (fuzzy logic), algoritmos de búsqueda de caminos (pathfinding), etc.

En resumen, un texto altamente recomendable para los que deseen aprender o potenciar sus conocimientos en el especializado mundo de la A.I. Su sitio web: http://www.wordware.com/files/ai/