Categorías
Informática Universitario Videojuego

Invasión Androide

Yo, Robot (I, Robot en inglés) es una película de ciencia ficción estadounidense dirigida por Alex Proyas en 2004. Como en otras historias ambientadas en el universo de Isaac Asimov, se especula con el avance tecnológico futuro y con la proliferación de androides (robots con apariencia humana) por todas partes, ayudando a los seres humanos en la realización de toda clase de tareas. El peligro que acecha en estas historias es que estos androides se “descontrolen” y se conviertan en una seria amenaza para la Humanidad.

Control de mando quiere que luchemos como máquinas, que tomemos decisiones frías y calculadas. Pero no somos máquinas. Y si actuamos como ellas, ¿por qué motivo luchamos?

John Connor en Terminator Salvation

Este tipo de historias servirán de base sobre la que diseñar y desarrollar un juego algo más complejo, con una dinámica de combate con elementos de sigilo, y mecánicas más avanzadas que incluye enemigos inteligentes con comportamiento similar al del jugador humano.

Propuesta

La práctica consiste en desarrollar el prototipo ejecutable de un videojuego de disparos 3D para un sólo jugador, con elementos tácticos como guardar cierto sigilo frente a los enemigos, fuertemente inspirado en los robots y la interacción física con el entorno.

El punto de partida es la plantilla First Person que ofrece Unreal Engine, que recrea un mundo 3D con vista en primera persona y la mecánica del disparo; además se podrá usar el contenido del paquete Starter Content y de otras plantillas, como la Third Person.

Las características principales del prototipo son:

A. El mundo virtual consiste en un único nivel que representa un centro de desarrollo tecnológico de androides que sirve como base de operaciones a un ejército de androides “malvados” que se preparan para invadir la Tierra. Está dividido en tres grandes estancias secuenciales a las que se accede atravesando por la fuerza unas persianas metálicas de seguridad. El jugador controla a un androide “bueno”, al servicio de la Humanidad, cuya misión es infiltrarse en esta base, llegar a la última estancia y destruir todos los prototipos de los nuevos y perversos androides gigantes que están diseñando en la última de las estancias.

B. El androide protagonista puede interactuar con distintos mecanismos físicos, como por ejemplo disparar a un cable para hacer caer un objeto pesado y destruir así alguna persiana de seguridad o un androide enemigo.

C. También puede disparar varias veces a los enemigos y a las cabinas generadoras de enemigos (que también hay), hasta destruirlos. Puede coger y usar recargas de munición repartidas a lo largo del juego, existiendo munición normal y granadas, que se lanzan con una tecla diferente y cuando explotan provocan un impacto físico más fuerte y dañino. El androide “bueno” que controlamos recibe daño al contacto con los enemigos, aunque se recupera de esa pérdida de energía con el tiempo.

D. Los androides enemigos patrullan por sus estancias y son capaces de detectarnos, perseguirnos y pegarse a nosotros para hacernos daño por contacto si antes no les destruimos a ellos, ya sea disparándoles o aplastándoles con algún objeto pesado.

E. Tener enemigos que patrullan por el mundo y son capaces de detectarnos, convocar a otros enemigos cercanos e incluso perseguirnos. El juego será fácil de superar si avanzamos con cuidado, evitando que nos detecten y destruyendo los generadores de enemigos (y pocos o ningún enemigo), pero se volverá muy difícil si jugamos sin tener cuidado, simplemente avanzando y disparando a todos los enemigos. Cada vez que completamos el escenario, este se reinicia aunque en un nivel superior (Nivel 1, Nivel 2, Nivel 3… hasta el infinito). En cada nivel los enemigos se generan con mayor frecuencia, corren más rápido y son más resistentes al daño.

Ejemplo de mapa esquemático del Centro de Desarrollo Tecnológico de Androides.

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 las plantillas y 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, e incluso teclas rápidas para reposicionar a nuestro avatar en zonas diferentes o hacerlo invencible, 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, DEV22-G02-P3, 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-P3) 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-P3 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-P3), 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.

  • Metal Gear Solid (Konami, 1998)
  • Wolfenstein 3D (id Software, 1992)
  • Yo, Robot (20th Century Fox, 2004)

Se pueden realizar ampliaciones para ir más allá en el aprendizaje.

  • Crear un entorno usando recursos del paquete gratuito Modular SciFi Season 1 Starter Bundle.
  • Cambiar el arma y la animación de disparo cuando se lanzan granadas.
  • Que los enemigos den la voz de alarma a sus compañeros.