Fantasía es la tercera película de animación hecha por los estudios Disney, estrenada en 1940. Se trata de una obra clásica de la animación, basada en ocho piezas musicales. El aprendiz de brujo es una de estas piezas, en la que Mickey Mouse, tras tomar sin permiso el gorro mágico del brujo, hace un conjuro para «programar mágicamente» a una escoba para que lleve cubos de agua desde la fuente, se duerme y pierde el control de la situación.
Lo más difícil de aprender en la vida es qué puente cruzar y qué puente quemar.
David Russell
La dinámica del juego se basa en resolver pequeños puzles dentro de un juego de plataformas: manejamos al aprendiz en las inmediaciones del caserón del brujo y tendremos que usar nuestros poderes para realizar todas las tareas domésticas que nos ha encargado nuestro maestro. La estética será de ambientación medieval fantástica, cuidando la coherencia del escenario, que estará estilizado como en los dibujos animados, y el detalle y funcionamiento de los objetos interactivos.
Este planteamiento de juego sirve como motivación para seguir trabajando en mecánicas de interacción con objetos y con el escenario, así como mostrar una interfaz de usuario más rica y compleja.
Propuesta
La práctica consiste en desarrollar el prototipo ejecutable de un videojuego de plataformas 2D para un sólo jugador esta vez en forma de aventura con pequeños puzles basados en tareas domésticas y cierta inspiración de la película de Fantasía.
El punto de partida es la plantilla Side Scroller que ofrece Unreal Engine, que recrea un mundo 3D con vista lateral en tercera persona, aunque el movimiento del avatar está restringido únicamente a 2 dimensiones; además se podrá usar el contenido del paquete Starter Content y de Stylized Fantasy Provencal (requiere activar en el proyecto el soporte para textura virtual).
Las características principales del prototipo son:
A. Hay un mundo virtual por explorar que consiste en un único nivel donde está el caserón, con sus distintas tareas domésticas, que se habrán de superar con el movimiento lateral, el salto del avatar que controla el jugador y la activación de ciertos hechizos o el uso de ciertas llaves que añadamos a nuestro inventario. Al principio tendremos un menú inicial con las instrucciones del juego.
B. El avatar usará estos hechizos (en forma de libros de conjuros) y dará vida a objetos inanimados, que se moverán o cambiarán de posición (en principio sin necesidad de cambiar la cámara en tercera persona), eliminando así obstáculos del escenario y permitiendo realizar las tareas encomendadas por el brujo. Cada libro obtenido se verá representado en el HUD.
C. La primera tarea consiste en reparar el carro, al que se le ha estropeado una rueda y está tirado en el suelo. Debemos usar la magia para que una rueda nueva llegue hasta el carro y se coloque en su sitio, reparándolo. Tras conseguir cada misión veremos un pequeño texto de felicitación.
D. La segunda tarea consiste en cargar todos los barriles de cereales en el carro (es suficiente con que haya 2 ó 3). Pesan mucho y habrá que hacerlos «levitar» (manejándolos nosotros) hasta su destino, con cuidado de no chocarlos contra nada. Si se dan golpes van cambiando de color hasta destruirse y «reaparecer» en su posición de inicio.
E. La tercera y última tarea consiste en conducir el carro con los barriles hasta el molino, por un camino algo tortuoso (lo manejamos nosotros y de hecho podemos tener una cámara específica que se dedique a seguir al carro en vez de al personaje protagonista), y hacer que este se active y empiece a «trabajar sólo», mágicamente… se conoce que al brujo le encanta hacer repostería con la harina. En el juego no hay enemigos ni posibilidad de morir. Cuando se consiguen todas las tareas, veremos un menú final que nos permite salir o reiniciar el juego.
Condiciones
A la hora de desarrollar el proyecto es obligatorio:
- No utilizar herramientas o plugins de terceros, ni reutilizar código distinto del proporcionado por Unreal Engine o el propio profesor.
- Limitarse a los recursos de la plantilla y los paquetes mencionados. Personalizar el contenido con el número de grupo, nombre de los alumnos u otros rasgos inequívocos que subrayen la autoría sobre el resultado. Evitar en cualquier caso un uso excesivo de recursos audiovisuales que hagan el proyecto pesado o su ejecución lenta.
- Documentar en el repositorio el proceso de producción, incluyendo los algoritmos y las estructuras de datos más importantes (mediante enlaces a Blueprints), así como el reparto del trabajo y el esfuerzo.
- Programar los diagramas en lenguaje Blueprint de la manera más organizada, genérica y elegante posible. Sin olvidar los comentarios.
- El prototipo debe ser funcional y su manejo usable, preferiblemente con mando y con teclado, para poder realizar de manera rápida, intuitiva y frecuente todas las pruebas necesarias.
Revisión
Tener el repositorio a disposición del profesor con todos los entregables, preparados en tiempo y forma por todos los miembros del grupo de manera equitativa, supone un 10% de la nota de la práctica. El profesor tendrá una lista con los datos de todos los grupos y los enlaces a las organizaciones en GitHub (por ejemplo DEV22-G02, la del grupo 2 del curso Desarrollo de Videojuegos 2022-2023) donde se encontrarán los repositorios de las prácticas (DEV22-G02-P1, DEV22-G02-P2, etc.).
Los entregables son:
- Todos los ficheros de código fuente y recursos del proyecto Unreal Engine. Se incluirá un enlace a la carpeta compartida con el profesor de Google Drive (llamada por ejemplo DEV22-G02-P2) desde donde descargar todo lo que por peso o problemas de licencia no deba mantenerse alojado en GitHub vía Git LFS. Supone un 20% de la nota.
- Documentación del proceso de producción según la estructura habitual, en el README.md. Supone un 10% de la nota.
- Fichero con la versión ejecutable para Windows de 64bits (llamado por ejemplo DEV22-G02-P2 1.0.0.zip), publicada como lanzamiento en el repositorio. Cada característica del prototipo (A, B, C, D y E) correctamente implementada supone un 10% de la nota.
- Enlace a un video oculto en YouTube (llamado por ejemplo DEV22-G03-P2), de menos de 5 minutos de duración, donde queden documentadas y comentadas por voz y/o subtítulos las pruebas realizadas. Supone un 10% de la nota.
Más información
Además de la bibliografía recomendada, se pueden investigar las siguientes referencias. En ningún caso se debe replicar código de terceros sin entenderlo bien y «hacerlo nuestro», y siempre asegurándonos de que funciona exactamente como se requiere en esta práctica.
Se pueden realizar ampliaciones para ir más allá en el aprendizaje.
- Darle vida al entorno con movimiento, cambio de iluminación según pasa el tiempo, etc.
- Incluir efectos de parpadeo, etc. en todos los hechizos que cogemos u objetos que se ven afectados por los conjuros.