Capítulo 5 – Creando la tecnología de Legends of War: Patton’s Campaign

0 0

Hola soy Ángel Guijarro Meléndez, Programador de Tecnología de Enigma Software Productions, y voy a contaros cuales han sido las claves de la tecnología de nuestro juego Legends of War: Patton’s Campaign (LoW) para PSP.

Para desarrollar LoW, y después de evaluar varios motores comerciales, pensamos que Vicious Engine era el mejor candidato para las características visuales y de potencia que necesitaba nuestro juego para PSP.

render_full_nopowered

A pesar de que Vicious Engine fue el motor escogido por sus prestaciones, tuvimos que implementar muchas funcionalidades gráficas extra que el motor no soportaba y que estimamos imprescindibles para LoW, como mejoras en la iluminación, niebla de guerra, conos de visión, etc.

ScreenshotEditor2ScreenshotEditor1

Se mejoró el sistema de iluminación del motor para que se adaptara a escenarios de exteriores y para conseguir la mejor atmosfera posible en cada una de las ambientaciones que ofrece el juego: campiña francesa, escenarios nevados, cuarteles, poblaciones y ciudades en ruinas.

También se optimizó el sistema de visibilidad del motor para que se pudieran renderizar gran cantidad de objetos con una cámara más abierta en tercera persona. Ya que el motor está más adaptado a juegos en primera persona con cámara más cerrada y con pocos elementos.

100617 - LoW_Screenshot0052

Asimismo, fue necesario optimizar el sistema de detección de colisiones, ya que el juego hace un uso intensivo de colisiones, y el rendimiento se resentía, por ejemplo, para calcular las trayectorias de los proyectiles ó para calcular la forma resultante de los conos de visión según la oclusión de los objetos del escenario.

100617 - LoW_Screenshot0176

Debido a que la saga LoW está diseñada para desarrollarse en múltiples plataformas, una de las cosas que hay que tener en cuenta cuando se añade una nueva funcionalidad gráfica a un motor multiplataforma, es que hay que programarla para cada una de las plataformas que soporte dicho motor. Cada plataforma se programa de un modo distinto, por lo que la dificultad y el tiempo de desarrollo se incrementan sustancialmente.

Uno de los retos que se nos planteó durante el desarrollo del juego, era la necesidad de programar toda la lógica “in game” en C++, accediendo a las funcionalidades del motor 3D a través de dicho lenguaje.

Pero la programación nativa de Vicious Engine está basada en scripts y máquinas de estados, y el único modo de acceder a las funcionalidades de este motor es a través de este lenguaje, por lo que hubo que añadir un interfaz de comunicación entre el motor de juego y Vicious Engine para que los programadores de lógica pudiesen acceder desde C++ al motor 3D.

De este modo, los programadores de lógica de juego podían programar y probar su código directamente desde el PC, y luego a través del motor 3D se creaba la versión de PSP de un modo transparente para ellos.

También se tuvo que añadir un interfaz para comunicar la lógica de juego con el editor de niveles, ya que toda la lógica de juego de la parte manager de Patton está programada con el script nativo de Vicious Engine.

100617 - LoW_Screenshot0217

Hubo dificultades para realizar la versión descargable apta para PSN, porque el sistema de archivos de Vicious Engine no estaba preparado, ya que no se podían utilizar procesos asíncronos en descargables, y hubo que reimplementar el sistema de archivos para que funcionaran las cargas de ficheros en PSP.

Aunque no ha sido muy extenso por problemas de espacio, espero que os haya parecido interesante. En el próximo capítulo de la serie mis compañeros del departamento de arte os contarán algunos secretos sobre el desarrollo de los gráficos de LoW.

¡¡No os lo perdáis!!

Para más información sobre Legends of War:
http://legendsofwar.enigmasp.com
http://twitter.com/legendsofwar