Dev++

19 de octubre, 2015
Empezar en la programación de videojuegos: mucho más que gameplay

A la mayoría de los programadores que he conocido con intención de dedicarse a los videojuegos les gustaría hacer programación de gameplay exclusivamente, o piensan que la mayoría del trabajo de un juego se concentra en esta parte. Pero la realidad es que existen otras áreas de programación, y en muchos casos la suma de sus cargas de trabajo supera a la de gameplay: interfaces, monetización, publicidad, backend, herramientas, aplicaciones complementarias o webs.

Este artículo es una colaboración de Javier Mairena, desarrollador backend en Virtual Toys, ex miembro del estudio sevillano The Game Kitchen y experto en accesibilidad. Podéis contactar con él en su Twitter o Linkedin, o conocerle un poco más a través de su web.

En primer lugar, me presento como profesional, brevemente. Durante el comienzo de mi vida laboral trabajé varios años en programación de software, tanto en frontend como en backend. Más tarde di el salto a videojuegos y estuve unos cuantos años realizando varias tareas de programación, entre ellas gameplay. Actualmente trabajo exclusivamente como programador de backend de videojuegos. No quiero desmotivar a ningún programador que esté deseando trabajar en gameplay, pero sí quiero mostrar una imagen más real de la que mucha gente puede tener sobre el trabajo en la industria del videojuego. Es más, mi idea es incluso intentar promover el interés por esas otras áreas por las que menos gente se suele sentir atraída pero que son también necesarias e interesantes.

Cojamos un juego de alto presupuesto como ejemplo: Destiny. Está claro que ha necesitado de un gran número de responsables de gameplay, pero también una gran cantidad de trabajo en otros campos. A nivel visual, el más evidente, se ha tenido que desarrollar un sistema de interface con un control de cursor específico, implementar los menús y crear un sistema de subtitulado. Y a un nivel más interno de producción, seguro que han desarrollado gran cantidad de herramientas, tales como un editor de mapas, un gestor de contenido del juego, una herramienta que sirviera a los diseñadores para balancear el juego, un sistema de compilación continuo y diario, de exportación o importación de formatos de archivos gráficos, de sonido o de texto, herramientas de localización…

Además, Destiny cuenta con un sistema de parches de actualización que también hay que programar, y servidores en los que alojar dichos parches. Han tenido que implementar las funcionalidades de las plataformas en las que han sacado el juego (PSN y XBOX Live), como el login con el usuario de la consola, gestión de amigos, sistema de logros… Bungie cuenta también con un motor propio de juego para Destiny, lo que requiere una gran cantidad de programadores de lógica, gráficos, físicas, sonido… Muchos juegos utilizan motores ya existentes, pero aun así casi siempre hay que pelearse con problemas técnicos que tienen poco que ver con gameplay.

El desarrollo del backend de Destiny seguramente es inmenso, puesto que contó con un equipo de 50 programadores exclusivamente para este. Además de implementar el sistema de login, hay que trabajar en el registro del progreso de los jugadores, guardado de estadísticas, sistema de amistades, clanes, inventario, matchmaking, servidores dedicados de actividad, balanceo de carga, actualización de servidores…

Y por si fuera poco, también tenemos una web externa al juego en la que podemos consultar el estado actual de nuestro personaje, misiones, amigos… E incluso hacer cambios que después afectan en el juego. Y también cuenta con una aplicación para móviles con funcionalidades parecidas a las de la web.

¿Inmenso? Podéis pensar que esto sólo pasa en juegos de gran envergadura, pero no es así. Vamos ahora a otro caso real, en este caso en el que trabajé personalmente: The Last Door, juego indie del estudio The Game Kitchen. Además del obvio trabajo de programación de gameplay, hubo que desarrollar un sistema especial de subtitulado para personas sordas, un sistema de diálogos que aceptaba un formato que se exportaba desde una herramienta externa desde la que era cómodo crearlos y editarlos…

Puesto que algunos episodios se publicaron en portales de juegos flash, hubo que implementar las librerías para incluir la publicidad o el logo del portal, añadir el sistema de logros de cada uno de ellos o hacer llamadas a un sistema de estadísticas propio de cada uno. Además, fue preciso un gran trabajo en la web propia del juego para incluir un sistema de login, de compra de los episodios, de descarga de ficheros y la posibilidad de jugar a través de la misma web.

Todas estas otras áreas de programación son también una forma interesante de trabajar en la industria de los videojuegos y de ganarse la vida. Habrá quien piense que hay demasiada similitud con una empresa de software, pero no es así: una de las grandes diferencias es el producto sobre el que estás trabajando. Puede no ser un juego de tu género preferido, pero seguro que te va a motivar mucho más que desarrollar una aplicación de gestión o una web de un banco. No quiero decir que estos otros trabajos sean peores, no tengan interés o no motiven, pero una persona apasionada por los videojuegos sin duda se sentirá más satisfecha viendo que su trabajo conforma una fracción, aunque sea pequeña, de uno. Incluso aunque te centres, por ejemplo, en desarrollar una herramienta de localización, al ver el juego funcionando serás consciente de todo lo que no se puede ver a simple vista; de todo ese trabajo oculto e imprescindible del que has formado parte esencial.

Otra gran ventaja son los compañeros de trabajo. Siento repetirme, pero tampoco quiero decir que en otros trabajos la gente sea peor o mejor, solo que seguramente tu forma de ser y tus gustos se parezcan más a los de la gente que trabaja en una empresa de videojuegos. Siempre va a existir una pasión general compartida, aunque algunos jueguen más y otros menos, y el ambiente suele ser más distendido que en algunas compañías de software. Aunque eso sí, se trabaja muy intensamente debido, entre otras cosas, a que la competencia en el mundo de los juegos puede llegar a ser bastante mayor. Normalmente hablamos de competir en un mercado mundial, mientras que en software el ámbito suele restringirse a lo nacional.

Si tu pasión real es la de programar gameplay, adelante, aprende todo lo que puedas y trabaja duro. Pero profundiza en el resto del escenario; no te quedes con la visión que tuviste cuando eras más joven. Creo que hay mucha gente que al principio se encuentra algo cegada por la magia del gameplay y deja de ver el resto de posibilidades presentes, y que pueden ser también apasionantes como forma de desarrollo profesional.

Acerca de Dev++


Mi nombre es Dev++, pues somos muchos. indie-o-rama da cobijo a una legión de talentos del desarrollo que colaboran con su experiencia. Si no está hecho, puede hacerse. Si lo está, puede explicarse. Protagoniza el próximo Dev++ clicando aquí.

3 comentarios