Seleccione su idioma

New Ricardo Tormo circuit

He gastado todo mi tiempo libre de esta semana en hacer un circuito lo más realista posible con los medios que tiene el motor del juego de Spirit or Eternal Racer. En realidad, también he invertido algo de tiempo en ampliar esas capacidades para poder llegar a obtener un parecido mayor.

Cuento todo esto porque, al final, me surge una duda ¿hasta que punto vale la pena? Esto no es un simulador, no es un juego 3d, no hay un motor de físicas como tal. Pero, por otro lado, siempre he querido que sea un juego arcade con toques de simulador, así que tener circuitos donde un coche de unas características haga unos pasos por curva y alcance unas velocidades parecidas a las de un coche de verdad de características similares es algo que quería tener sí o sí.

Tengo que decir que después del trabajo de estos días, estoy contento con el resultado. Ahora puedo pintar más cosas a los lados de la carretera imitando mejor el aspecto de las escapatorias de un circuito, sus pianos, etc. Para muestra, antes de entrar en detalles, os invito a pulsar el botón que da inicio a los dos vídeos (Reproducir ambos) que hay a continuación.

Y ahora los detalles

Creo que ya he comentado que quiero que el juego sea modificable (mediante mods) por parte de cualquiera y la representación de los circuitos es una parte imprescindible de ello.

En el juego, los circuitos se crean mediante un archivo json que se interpreta para pintar los segmentos de la carretera, ya sean curvas de cualquier grado o rectas. Una vez tengo la secuencia de tramos, tengo una herramienta que me visualiza el circuito en 2D, a modo de plano y que me da una referencia del parecido con el trazado actual. Está hecha de forma un poco empírica a la hora de representar las curvas, pero suelo modificar el circuito hasta que consigo ver un buen parecido, aunque no quede cerrado el trazado, o la longitud que indica no sea la exacta.

Con la pista hecha, el juego pinta el piano y a continuación la hierba con unos colores predefinidos y constantes para todo el circuito. Esto no daba muchas opciones, pero para simular un juego de este tipo parecía suficiente. Hasta ahora, el parecido con la realidad se lograba a partir de los objetos (sprites) que cargas a los lados de la carretera y una parte fundamental de ellos son los árboles.

Sabiendo esto y ya con la intuición de que no iba a ser suficiente, me puse a modelar el circuito Ricardo Tormo (que se note que soy de la "Terreta")  Pero este circuito no es de los que atraviesan un bosque, tiene unas tres zonas donde se pueden ver árboles y el resultado queda bastante pobre. Al ver esto me centré en añadir las gradas y las protecciones que hay a lo largo de todo el circuito en forma de vallas y pilas de neumáticos, pero aún así no me gustaba como quedaba todo, de hecho, era un poco peor de lo que me imaginaba. Ni si quiera la recta principal, que contaba con más detalles terminaba de encajar en lo que quería.

Afortunadamente tenía claro lo que podía hacer. En primer lugar, necesitaba que todos los elementos que puedo pintar (pianos y zona exterior, o sea hierba) pudieran ser diferentes a izquierda y derecha. Además, iba a dividir la zona exterior en dos, para poder tener combinaciones de hierba más asfalto (por ejemplo). Con todo ello, parece que tenía suficiente para imitar este circuito. En él, a veces los pianos desaparecen y se convierten en simples líneas blancas flanquedas en ocasiones por asfalto de colores rojo o verde y en otras por hierba.

Hay muchas combinaciones y el sistema no es perfecto. En los vídeos pueden verse curvas por las que ambos coches pasan por ciertas curvas de forma muy similar y otras en las que las curvas podrían ser más parecidas. También he de decir que podría darle más detalle con este sistema al que he llegado dedicándole más tiempo pero vuelvo a la pregunta inicial ¿hasta qué punto vale la pena? 

Posibles mejoras

A parte de lo anterior, siempre hay más cosas que se te ocurren cuando te embarcas en un proceso como este. Hay algunas cosas que quiero mejorar pero otras que requerirían más tiempo y cambios en el código que, de momento, voy a guardar para el futuro. Por ejemplo, entre las que podría mejorar están los colores de algunos de los "arcenes" que no cuadran con lo que se ve en los videos onboard. También podría tratar de mejorar los sprites de las gradas, haciendo alguna prueba retocando su tamaño para ver si hacen un mejor efecto. 

Entre las que no creo que haga están las de añadir más cosas al código como, por ejemplo, si después del piano hay asfalto, el coche no debería perder velocidad. Otra cosa que tengo en mente es que la carretera tenga manchas de frenado o que imite alguna textura. Por último, un sistema de sprites más complejo que permita imitar la rotación de edificios y gradas. Hay alguna otra idea por ahí que ahora no me viene a la cabeza pero, al final, también pesa el hecho de que cualquier añadido añade complejidad y tiempo de CPU y quiero mantener el resultado sea jugable en un Amiga con Pistorm.