En la entrada anterior analizamos los procesos básicos que conforman a un videojuego llegando a construir un bucle principal que las realiza hasta que se termine la ejecución. La siguiente pregunta que aparece, es en que lenguaje de programación o en que plataforma de desarollo debemos crear nuestro juego. Esta pregunta no tiene una única respuesta puesto que en general la mayoría de lenguajes nos permitirán implementar nuestro juego, en lo que se diferenciarán será en el volumen de trabajo necesario y en la eficiencia.

Para poder contestarla, aprovecharemos que sabemos los procesos que debe realizar nuestro juego y así poder comparar que ventajas ofrece cada una de las posibilidades a nuestra disposición para implementarlos. Las ventajas las mediremos como la cantidad de trabajo y la eficiencia, que no tienen porque estar relacionadas. Medir el volumen de trabajo se basará en determinar cuanto trabajo no relacionado con el juego en si, sino a nivel de tecnología, debemos realizar. La eficiencia se basará en ver en que sistema funcionará más rápido nuestro juego, considerando que funcionarian en la misma máquina.

El primer proceso que se realizaba en nuestro bucle era la lógica de interacción con el jugador, es decir, controlar el input de los diferentes dispositivos de control. En este caso evaluaremos si el sistema bajo el que queremos desarrollar nos ofrece los mecanismos necesarios para recibir las pulsaciones de los dispositivos de control que necesitemos para nuestro proyecto. En este caso la velocidad no será tan importante ya que prácticamente dependerá totalmente del dispositivo en si.

El segundo proceso es la lógica del juego. Para desarrollar este proceso necesitamos operadores lógicos para comprobar condiciones, además del resto de mecánismos de programación que debe incluir cualquier lenguaje moderno. En este caso la velocidad pueda que dependa de la naturaleza del lenguaje, por ejemplo, un lenguaje interpretado de scripts no puede ejecutarse a la misma velocidad que uno compilado. Entre lenguajes de la misma naturaleza las diferencias de eficiencia serán mínimas, y muy poco representativas en comparación con otras tareas como el dibujado.

El tercer proceso era la lógica de representación, que en nuestro modelo genérico la dividimos en representación grafica y sonora. El proceso que más recursos consume es la representación gráfica, ya sea en 2D o en 3D, en concreto la operación de pintado. Gran parte de la eficiencia de un videojuego vendrá determinada por la eficiencia gráfica, que limitará el número de ciclos por segundos. Por tanto, determinar que lenguaje ofrece las mejores herramientas de pintado (si las ofrece) será importante para poder añadir el máximo de elementos a nuestro juego. En cuanto al sonido, también tiene un impacto importante, sobretodo en consumo de memoria al igual que los mapas de bits, la eficiencia del cual depende en gran medida del sistema que se implemente. En este caso no bastará con saber si un sistema nos permite reproducir sonido, sino que sistema nos ofrece el conjunto de herramientas que más se ajuste a nuestras necesidades, no es lo mismo reproducir una canción de fondo que un gran grupo de efectos de sonido y una banda sonora.

Otro aspecto que no está directamente relacionado con el juego, es la facilidad de portar el videojuego a otras plataformas. El poder portarlo con el mínimo esfuerzo es una característica muy deseable que normalmente se implementa a partir del engine o frameworks que permiten abstraer las caracteristicas tecnológicas del propio desarrollo de la lógica de juego y el renderizado.

Por último, deberemos tener en cuenta nuestros conocimientos sobre los diferentes sistemas que barajamos, y en caso de que sean limitados, ver si la curva de aprendizaje y el tiempo que nos llevará llegar a los conocimientos necesarios es aceptable dadas las características de nuestro videojuego.

Por tanto, cuando elelijamos las herramientas para implementar nuestro videojuego deberemos tener en cuenta su eficiencia, la portabilidad, si dispone de librerías para el renderizado de gráficos y la reproducción de sonido, los diferentes dispositivos de control que puede procesar y por último la curva de aprendizaje o nuestras conocimientos sobre esas herramientas.