Desarrollar un videojuego como Grand Theft Auto V es una tarea compleja. Después de unos días ya en el mercado, ya habéis podido dedicar unas cuantas horas al juego y sobre todo el mundo abierto (sandbox) lleno de físicas y posibilidad casi infinitas. Construir algo así requiere un profundo dominio de la programación de videojuegos, de la inteligencia artificial y el motor gráfico combinado con un buen número de desarrolladores involucrados en el proyecto.
Rockstar los responsables de la saga GTA entre otros muchos éxitos como Max Payne, L.A Noire lleva prácticamente una década refinando todas sus herramientas de trabajo. Internamente Rockstar construye sus propias herramientas de programación para poder integrar a un enorme equipo de trabajo de programadores o diseñadores que envían constantemente su trabajo para ser integrado en el juego.
Si os preguntáis qué lenguaje de programación es usado: la respuesta, aunque no totalmente precisa, es que la mayoría del desarrollo se ha hecho combinando C#, C++, Java junto con distintos lenguajes de script como Ruby o Python y las herramientas del motor de juego RAGE.
Desarrollando el motor de GTA V, animación y física
Uno de los componentes más importantes de GTA V es su game engine propietario llamado RAGE (Rockstar Advanced Game Engine).Este motor es de código cerrado y se necesita autorización de Rockstar para obtener una licencia. Fue desarrollado para facilitar la implementación del juego en PC y las consolas PS3 y Xbox 360
Este motor integra diversas herramientas de terceros, como Morpheme With Euphoria para animar a los personajes, como ya usaron en la anterior entrega de GTA IV. También se usa la librería Open Source Bullet para la física del juego como la simulación de colisiones o la deformación de las objetos de los escenarios o de los personajes.
Entre las herramientas gráficas con las que trabajan los programadores gráficos nos encontramos con algunas de las más conocidas en la industria digital Zbrush, Maya y Mudbox / Blender para el modelado 3D de personajes y objetos. Los diseñadores e ilustradores manejan las herramientas como Photoshop, Sketchbook Pro o Illustrator.
Probablemente el IDE que usan los programadores no se encuentre en el mercado, básicamente debido a que muchas de las tecnologías que se usan no son comerciales y que Rockstar usa su propio SDK, aunque algun programador habrá con Eclipse, Visual Studio o ItelliJ para desarrollar con los lenguajes de script o manejar las capa de backend del videojuego. Existen algunas herramientas conocidas en la industria bastante interesantes como: Scaleform, Beast, Kynapse, HumanIK, por lo que nos podemos hacer una idea.
Un pilar fundamental en casi cualquier desarrollo y, totalmente, imprescindible en un producto tan grande como GTA V es un gestor de tareas tipo Jira. Parece que Rockstar al igual que muchas otras compañías usan SCRUM y en ocasiones SCRUMBAN para guiar sus desarrollos de una forma ágil. En la página de Atlassian podemos ver algunos ejemplos del desarrollo de juegos siguiendo Jira y sus productos.
Perfil de un programador en un videojuego como GTA V
Los programadores implicados en un desarrollo de la envergadura de GTA V se divide las siguientes áreas de producto, algunos con una alta dedicación al gameplay de juego:
-
Programadores de las herramientas de desarrollo internas (pipelines). Ellos son los responsables del desarrollo y el soporte del framework usado internamente por la compañía (RAGE) además de su adaptación para poder exportar el trabajo a distintas plataformas como PS3 o XBOX 360 que tienen una naturaleza distinta.
-
Programadores del Game Play. Son los encargados de implementar la física, las animaciones de los personajes, combinar las IA con las acciones de los jugadores y el manejo de la cámara. Para ello es imprescindible tener fuertemente conocimiento de matemáticas y algoritmos.
-
Programadores de IA. Responsables la inteligencia artificial del juego. Manejando los distintosautómatass y algoritmos de anticipación de movimientos que serán enganchados con el gameplay del juego. La inteligencia artificial es uno de los principales responsable de la jugabilidad y que más retos representa para hacer un juego como GTA V que proponga retos reales.
-
Programadores gráficos. Desarrollan los gráficos 3D de los objetos que nos encontramos en el juego.
-
Programadores responsable de redes, backend y seguridad. Quizás más apartados del juego en sí, también existen los desarrolladores encargados de la implementación de los aspectos online del juego (Rockstar Games Social Club), así como de la seguridad y el diseño de la arquitectura de servidores que tiene que dar soporte a millones de jugadores simultáneamente escalando según las necesidades. Sería interesante conocer los número de tráfico de un día normal de juego en sus servidores.
-
Programadores de QA. Un juego de estas dimensiones, que requiere encajar piezas tan diversas y amplias, cuenta con un amplio equipo dedicado plenamente a las pruebas de rendimiento, integración y ejecución. Lanzando miles de test que prueben en profundidad cada aspecto del juego. Y por supuesto, recibir el feedback de los beta testers y pasarlo al equipo de desarrollo.
En Vidaextra | GTA V: análisis Vía | Quora