Escuela Técnica Superior de Ingeniería

 

Realidad Virtual

Curso 2025/2026

 

Trabajo
Simulador del juego Scalextric

 

OBJETIVOS

 

El objetivo de este trabajo es desarrollar "a mano" un simulador del juego Scalextric. Para ello se deberán  diseñar las pistas y construir un circuito basado en ellas. Los coches se crearán aprovechando modelos externos. El juego consiste en controlar la velocidad de los coches y visualizar la carrera desde diferentes puntos de vista.

 

 

SCALEXTRIC

 

El origen del juego Scalextric se remonta a mediados del siglo XX. La empresa británica Minimodels Ltd. fabricaba desde 1947 reproducciones a escala en hojalata de objetos cotidianos (como máquinas de escribir) y de algunos automóviles de carreras de la época. En 1952, su director, el ingeniero británico Fred Francis, incluyó un mecanismo de impulsión o “motor” en las reproducciones de coches más representativas: el Scalex. Esta palabra compuesta por "SCALE" y "X" viene a significar "Escala desconocida o variable" ya que cada cochecito se fabricaba en un tamaño distinto. En 1957 se modificó el diseño para acoplar un pequeño motor eléctrico a los coches y hacerlos correr sobre un sistema de pistas diseñado a propósito. Los motores utilizados por Minimodels procedían de la adaptación de los que utilizaban unos trenes eléctricos que por entonces fabricaba la empresa TRI-ANG. Paralelamente se diseñó una pista en la que se embutían unos carriles con contactos a ambos lados. La palabra inglesa de éstos carriles es "SLOT". El lanzamiento del nuevo producto supuso la actualización de su nombre comercial, generando la marca actual Scalextric, resultado de la combinación de Scalex y Electric.

Scalextric

El sistema del juego es bastante simple. Los mandos del juego permiten aumentar o disminuir el voltaje aplicado a las piezas metálicas de las ranuras. Los coches disponen de escobillas que ponen en contacto el motor eléctrico con estas piezas metálicas, de manera que al aumentar el voltaje aumenta la velocidad de los vehículos. Teniendo en cuenta la escasa profundidad de las ranuras, cuando los coches entran en una curva a una velocidad excesiva se salen de la pista. La diversión consiste en aumentar la velocidad en las rectas y disminuirlas en las curvas para evitar la salidas de pista, compitiendo con el resto de jugadores en una carrera de velocidad.

 

 

PISTAS

 

Las pistas de Scalextric tienen una anchura de 156 mm. Las ranuras de alimentación se encuentran a un cuarto de distancia de cada extremo, es decir, a 39 mm de cada lado. Los tipos de pista que vamos a necesitar en este trabajo son los siguientes:

Recta estándar Media recta Cuarto de recta
Recta Estándar Media recta Cuarto de recta
Longitud: 350 mm Longitud: 175 mm Longitud: 87.5 mm
Curva interior Curva estándar Curva exterior
Curva interior Curva estándar Curva exterior
Radio interior: 58 mm Radio interior: 214 mm Radio interior: 370 mm
Radio exterior: 214 mm Radio exterior: 370 mm Radio exterior: 526 mm
Ángulo: 45º Ángulo: 45º Ángulo: 22.5º

Para modelar las pistas será necesario programar a mano los objetos correspondientes a estas pistas. Para facilitar la programación se recomienda realizar objetos diferentes para las curvas a la derecha y a la izquierda. El siguiente fichero contiene texturas que pueden ser utilizadas para diseñar estos objetos (fichero de texturas).

 

 

CIRCUITO

 

Como ejemplo de circuito a desarrollar se propone el circuito de Jerez que se muestra a continuación. El circuito está formado por un total de 31 rectas estándar, 3 medias rectas, 1 cuarto de recta, 8 curvas interiores, 17 curvas estándar y 14 curvas exteriores. Al construir el circuito a base de pistas hay una pequeña desviación que provoca que la ultima pista no coincida exactamente con la pista de comienzo pero esto no debe afectar al funcionamiento de la aplicación. Este modelo de circuito se ha obtenido desde el blog "Mis circuitos de slot" en el que se pueden encontrar muchísimos modelos de circuitos.  Si se desea se puede utilizar un circuito diferente.

Circuito de Jerez

Para dibujar el entorno del circuito se deberá utilizar un Skybox como el explicado en las prácticas. El siguiente fichero contiene texturas que pueden ser utilizadas como Cubemap para esta tarea (fichero de texturas). La página http://www.humus.name/ contiene estas y muchas otras texturas que pueden ser utilizadas como fondo.

 

 

MODELOS DE COCHES

 

Para desarrollar los vehículos a mostrar en el juego se facilitan un conjunto de modelos de coches de Fórmula 1 descritos en formato OBJ. Los modelos se describen en escala real. Para poder utilizarlos como juguetes hay que tener en cuenta que Scalextric utiliza una escala 1:32, por tanto es necesario escalar los modelos utilizando este factor. Si se desea se pueden utilizar modelos de coches diferentes a estos.

ForceIndia HRT Lotus McLaren
Force India HRT Lotus McLaren
Mercedes RedBull Renault Sauber
Mercedes RedBull Renault Sauber
ToroRosso Virgin Williams
ToroRosso Virgin Williams

 

 

DINÁMICA DEL JUEGO

 

El simulador debe llevar el control de la posición que ocupa cada vehículo en cada instante, que debe corresponder a su movimiento sobre la ranura de la pista. La imagen a generar debe incluir también la sombra de los vehículos. Para generar la sombra se puede utilizar el modelo básico de ShadowMap presentado en las prácticas.

Respecto a la cámara, la aplicación a desarrollar debe incluir tres modos de visualización. El primero consiste en situar la cámara en una posición fija desde la que se pueda observar todo el circuito. Este modo de visualización pretende simular el punto de vista de un jugador de Scalextric. El segundo modo de visualización consiste en situar la cámara detrás del primer coche, a una pequeña altura que permita apreciar el coche y los tramos de pista que se encuentren delante. El tercer modo de visualización es similar al anterior pero centrado en el segundo coche. La aplicación debe permitir cambiar de modo en cualquier momento. La tecla 'F1' debe activar el primer modo de visualización. La tecla 'F2' debe activar el segundo modo y la tecla 'F3' debe activar el tercero.

Los mandos del juego deben permitir aumentar y disminuir la velocidad de los dos coches. El primer coche utilizará las teclas 'Q' y 'A' para acelerar y frenar, respectivamente. El segundo coche utilizará las teclas 'O' y 'L' para acelerar y frenar. Se incluirá un límite superior a la velocidad de los coches, de manera que cada pulsación incrementará o decrementará la velocidad en una décima parte de la velocidad máxima.

Un simulador completo debería ser capaz de generar las salidas de pista cuando los coches circulan por las curvas a una velocidad demasiado elevada. Para ello es necesario calcular la aceleración centrífuga en cada instante y considerar un límite a la misma, generando una salida de pista al superar ese límite. No obstante, en este trabajo no se pide programar esta funcionalidad de manera que los coches podrán circular a velocidad máxima por todo el circuito sin salirse.

 

 

DOCUMENTACIÓN A ENTREGAR

 

Se entregará el código desarrollado en formato electrónico (debidamente compilado) así como una memoria descriptiva del trabajo. La memoria a entregar debe incluir los siguientes puntos:

  • Descripción de los objetos que desarrollan cada pista.
  • Descripción de la clase que desarrolla el circuito.
  • Descripción de la clase que desarrolla la escena.
  • Descripción de la forma en la que se calcula la posición instantánea de cada vehículo.
  • Descripción de la forma en la que se desarrolla cada modo de visualización.
  • Referencia a la procedencia de cualquier textura o modelo que se haya incorporado al trabajo.
  • Pruebas del funcionamiento de la aplicación (capturas de imágenes).

 

 

PLAZO DE ENTREGA

 

  • La fecha límite de entrega para su evaluación en la primera convocatoria será el viernes 19 de junio de 2026.
  • La fecha límite de entrega para su evaluación en la segunda convocatoria será el viernes 17 de julio de 2026.