¿Qué pasaría si no usáramos un motor de juegos?
De hecho, los primeros videojuegos no los utilizaban. Cuando esto ocurre, el código específico es el encargado de todas las tareas:
- comunicarse directamente con el sistema operativo y el hardware,
- dibujar en la pantalla,
- interceptar los dispositivos de entrada,
- conectarse con otras instancias a través de la red en el caso multijugador,
- implementar la "inteligencia" de los enemigos,
- simular la gravedad,
- detectar cuando dos objetos colisionan, etc.
A priori, puede parecer una idea buena porque sólo se implementa aquello que se va a necesitar, con lo que el resultado será más óptimo. Además, el código estará más integrado.
Imaginemos que realizamos el proyecto así. ¿Qué problemas podríamos encontrarnos? Analicemos algunos escenarios posibles:
Escenarios | Sin un motor de juegos | Con un motor de juegos |
---|---|---|
El juego tiene tanto éxito que nos encargan una continuación. | Tendremos que revisar todo el código del proyecto anterior y diferenciando lo que nos sigue sirviendo de lo que no. El motivo es que no hay una separación clara entre lo genérico y lo específico del juego. | El código del proyecto ya está separado en código específico del juego y el motor (código genérico). |
Hay que migrar el juego a una nueva plataforma. |
No nos queda más remedio que revisar todo el código del proyecto anterior y analizar qué parte es dependiente de la plataforma antigua para sustituirlo por código nuevo. Por supuesto, tendríamos que tener cuidado de no estropear nada. Es posible que los recursos ya no sean válidos para la nueva plataforma y haya que adaptarlos. Además, si detectamos un error en el juego o mejoramos alguna herramienta habrá que cambiar el código por separado en ambos proyectos. |
En el momento que el motor de juegos soporte la nueva plataforma bastará con recompilar el proyecto. |
Llega un nuevo programador a la empresa y queremos formarlo para trabajar en nuestros proyectos. | Habrá que explicarle la estructura del código, que será distinta para cada proyecto en el que vaya a trabajar y plataforma soportada. | Bastará con enseñarle a usar el motor de juego, que será el mismo en muchos proyectos. Luego se le señalarán las particularidades de cada proyecto concreto en el que vaya a trabajar. |
Queremos incorporar a nuestro juego el efecto gráfico X de un juego de la competencia. | Será necesario investigar cómo funciona la característica X, implementarla en todas las plataformas del proyecto y hacer las pruebas correspondientes antes de usarla. | Seguramente haya un motor de juego que implemente la característica X de serie en todas las plataformas, con lo únicamente tendremos que usarla. |