Se trata de un prototipo básico de videojuego de carreras en el que controlamos a un coche que debe completar un circuito antes de que el cronómetro llegue a cero.
La versión original del juego fue creada por Federico Peinado. El código se distribuye bajo la licencia LGPL.
El propósito es servir como ejemplo a los alumnos para las demás prácticas de la asignatura.
Los ficheros más importantes del proyecto están disponible en este repositorio, aunque puede que algunos binarios potencialmente grandes estén en el almacén GitHub LFS y se requiera tener activa la extensión Git LFS. El resto de los ficheros, generalmente de contenido más pesado o creado por terceros y sin intención de ser modificado en este proyecto, tendrá que descargarse de carpetas compartidas en Google Drive con ficheros ZIP, para después descomprirlos directamente en la carpeta Content. Bastante contenido común a todos los proyectos, como StarterContent, LevelPrototyping o ThirdPerson, está disponible con acceso general aquí.
Para este proyecto hace falta descargar los ficheros ZIP:
- LevelPrototyping
- StarterContent
- Track
- Vehicles
- VehicleTemplate
Nos podríamos ahorrar esta descarga usando GitHub Actions, la herramienta de automatización de GitHub. Habría que crear un workflow YAML (en .github/workflows/) que verifique si las carpetas correspondientes están ya presentes en el disco duro, descargue los ficheros ZIP (a través del ID público de las carpetas compartidas en Google Drive) y los descomprima dentro de la carpeta Content.
Aunque no hay un enunciado como tal que sirva de punto de partida, la preproducción consistió en el diseño de un juego muy básico de carreras contrarreloj.
El diseño tiene estas secciones:
El juego usa solamente el contenido de la plantilla Third Person y el de principiantes (StarterContent). Trata de ser minimalista, simplificando al máximo el diseño del nivel, sin tener un aspecto de producto acabado.
El juego usa solamente el contenido de la plantilla Third Person y el de principiantes (StarterContent).
Hay una música que suena de fondo y los sonidos son los de la plantilla, salvo el que suena al coger el trofeo al final del circuito:
- Victoria. Fanfarria de victoria para cuando el coche alcanza el trofeo.
La dinámica del juego consiste en llegar hasta el final del circuito antes de que se acaba el tiempo. No es posible morir ni hay otros coches con los que competir, es únicamente una contrarreloj.
stateDiagram
[*] --> Inicio
Inicio --> Juego
Juego --> Descalificación
Juego --> Victoria
Victoria --> Inicio
Descalificación --> Inicio
El objetivo del juego es recorrer el circuito como se desee hasta conseguir el trofeo que se encuentra justo al final.
El jugador es desacalificado únicamente si se le acaba el tiempo y no ha conseguido el trofeo.
A continuación detallamos el contenido más importante del juego.
El vehículo que viene por defecto en la plantilla correspondiente de Unreal Engine, que se puede conducir con los controles básicos.
Se trata de una estatuilla de cristal que representa la recompensa por llegar hasta el final del circuito. Al cogerla, se nos felicita y se reinicia el juego.
Aquí se muestran diagramas topológicos de los distintos niveles. En este caso sólo hay un circuito y lo interesante sería incrustar aquí un esquema o un borrador del mismo, con todos sus elementos.
El circuito es bastante abierto, aunque hay una rampa y un looping que poder hacer con el coche. El trofeo está ubicado al final.
Las tareas se han realizado y el esfuerzo ha sido repartido entre los autores (en este caso concentrado en el único autor).
Estado | Tarea | Fecha |
---|---|---|
✔ | Diseño: La idea | 18-09-2024 |
✔ | Diseño: Documento inicial | 19-09-2024 |
✔ | Mecánica: Cronómetro | 19-09-2024 |
✔ | Mecánica: Trofeo | 19-09-2024 |
OPCIONAL | ||
❌ | Menú | |
❌ | ... |
Las clases principales que se han desarrollados son las siguientes.
classDiagram
Actor <|-- Pawn
Pawn <|-- Vehicle
Vehicle <|-- MyCar
Actor <|-- Trophy
La única posproducción realizada ha sido generar el ejecutable, hacer las pruebas, editar el video documental con dichas pruebas y publicarlo todo aquí.
A, B y C, autores de la documentación, código y recursos de este trabajo, concedemos permiso permanente a los profesores de la Facultad de Informática de la Universidad Complutense de Madrid para utilizar nuestro material, con sus comentarios y evaluaciones, con fines educativos o de investigación; ya sea para obtener datos agregados de forma anónima como para utilizarlo total o parcialmente reconociendo expresamente nuestra autoría.
Una vez superada con éxito la asignatura se prevee publicar todo en abierto (la documentación con licencia Creative Commons Attribution 4.0 International (CC BY 4.0) y el código con licencia GNU Lesser General Public License 3.0).
- Nitro (Psygnosis, 1990)