El paintball tiene sus raíces en los años 60, cuando Nelson Paint Company desarrolló la primera «marcadora» de pintura pensada para marcar ganado o árboles desde lejos, no para otra cosa. Algo más tarde, en 1981 un grupo de amigos organizó por diversión una partida de «captura la bandera» donde se utilizaba este tipo de armas. Esa fue la semilla de lo que luego se convertiría en una empresa comercial y finalmente en un deporte muy seguido en todo el mundo, con distintos modos de juego y reglas, distintos tipos de marcadoras y municiones, etc.
Sigo una política de control de armas muy estricta: si hay un arma cerca, quiero ser el que la controla.
Clint Eastwood
Este tipo de juegos de disparos con pintura son la base sobre la que diseñar y desarrollar un juego algo más complejo, con una dinámica de competición por equipos estructurada en varias rondas, y con mecánicas más avanzadas que incluyen distintas armas y recursos, además de enemigos y aliados inteligentes con comportamiento similar al del jugador humano. En cuanto a contenido extradiegético, contaremos con menús y una interfaz virtual para proporcionar información útil durante la partida.
Propuesta
La práctica consiste en desarrollar el prototipo ejecutable de un videojuego de disparos 3D para un sólo jugador que consiste en «pringar» (disparar pintura pringosa) «veletas» (objetivos con cierto movimiento de rotación), manteniendo interacciones tanto competitivas como colaborativas con otros personajes del equipo propio o el equipo rival que también se mueven y disparan como nosotros.
El punto de partida es la plantilla First Person que ofrece Unreal Engine con la variante Arena Shooter, que recrea un mundo 3D con vista en primera persona, la mecánica del disparo y cambio de arma, y dos personajes inteligentes enemigos. Además se podrá usar contenido del paquete Starter Content, la biblioteca de Quixel Megascans y otros recursos gratuitos de Fab como Modular SciFi Season 1 Starter Bundle y Modular Scifi Season 2 Starter Bundle.
Las características principales del prototipo son:
A. Hay un mundo virtual consistente en un nivel principal que representa una «arena de combate» con distintos obstáculos y localizaciones. Cada vez que empieza el juego cuatro participantes, dos por cada equipo (equipo rojo y equipo azul), aparecen aleatoriamente en distintos puntos de la arena, así como una serie de 9 objetivos (veletas) que también pueden aparecer en distintas localizaciones y otros recursos como armas, recargas de munición y «duchas». Hay un menú al inicio y otro al final de la partida.
B. Nuestro protagonista interactúa con distintos objetos, como armas, recargas de munición, duchas y veletas. Hay tres tipos de arma, pistola, rifle y lanzagranadas… siendo cada una más poderosa que la anterior en cuanto a la capacidad de «pringar» (dañar) veletas y otros jugadores, pero también más lenta y de munición más escasa y valiosa. Sobre la pantalla se mostrará un resumen del inventario del protagonista (las armas que ha ido cogiendo, salvo la pistola que la tiene de serie) y cuando se selecciona un arma también se mostrará la munición restante. Si nuestro protagonista está muy pringoso, porque ha recibido mucho daño (pringue) de los proyectiles amigos o enemigos, aparecerá un icono que indica que ya no puede disparar y necesita pasarse por la ducha para recuperar su limpieza original.
C. Las veletas, al igual que los demás personajes, muestran una barra encima de ellos que indica cómo de pringados están. Según la veleta se va pringando se mueve a menor velocidad y cuando está muy pringada se para totalmente, cambiando su color al del equipo del último jugador que la disparó y contando como 1 punto para dicho equipo. Cuando un equipo ha parado 5 veletas se declara vencedor de la roda y el nivel con todo su contenido vuelve a reiniciarse. En la pantalla también hay un cronómetro que nos indica cuanto queda de los 5 minutos que dura el partido completo, más las rondas ganadas y las veletas paradas en esta ronda por cada equipo. El jugador que controlamos, como decíamos, puede quedarse incapacitado para disparar si está muy pringado, aunque los jugadores tienen mucha más resistencia al pringue que las veletas.
D. Los enemigos buscan los objetivos más interesantes por el nivel, generalmente veletas que tienen cerca pero a veces también nos atacan a nosotros o al otro jugador de nuestro equipo. Con su comportamiento inteligente son capaces de detectar (mediante percepción visual o sonora, si hay algún otro jugador cerca), saben el nivel de pringue de cada objetivo y pueden perseguir, huir y hasta disparar desde cierta distancia a las veletas o los jugadores hasta pringarlos del todo.
E. El juego es fácil de superar (solemos ganar) si sabemos equilibrar el disparar veletas con lanzar alguna granada o algo así de contundente a enemigos que estén a punto de llevarse nuestra puntuación. Sin embargo, se vuelve difícil (solemos perder) si jugamos de manera imprudente, sin mucho criterio o si no me coordino bien con mi compañero.
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 DEV00-G02, la del grupo 2 del curso Desarrollo de Videojuegos 2000-2001) donde se encontrarán los repositorios de las prácticas (DEV00-G02-P1, DEV00-G02-P2 y DEV00-G02-P3).
Revisión de la documentación
En esta primera fase de revisión hay un único entregable:
- Documento de producción según la estructura habitual en el README.md. Supone un 10% de la nota.
Revisión del resultado
En esta segunda fase de revisión los entregables son estos:
- Proyecto con todos los ficheros de código fuente y recursos de la implementación en Unreal Engine (llamado por ejemplo DEV00_G02_P3). Se incluirán instrucciones para descargar ficheros compartidos con la UCM por el profesor en una carpeta de Google Drive, para todo lo que por peso o problemas de licencia no sea conveniente alojarlo en el repositorio de GitHub ni en su almacén LFS. Supone un 20% de la nota.
- Fichero con la versión ejecutable para Windows de 64bits (llamado por ejemplo DEV00-G02-P3 1.0.0.zip), publicada como lanzamiento (release) en el repositorio. Cada característica del prototipo (A, B, C, D y E) correctamente implementada supone un 10% de la nota, sumando un total de 50%.
- Documental con las pruebas del juego, añadiendo al documento de producción el enlace a un video oculto en YouTube (llamado por ejemplo DEV00-G03-P3) de 5 minutos de duración, donde quedan documentadas y comentadas por voz y títulos de texto las pruebas realizadas. Lo habitual será realizar el montaje de varios planos en varios momentos de la partida, evitando las partes menos relevantes. El documental tiene tantas secciones como características a probar (esto es A, B, C, D y E). 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.
- Splatoon (Nintendo, 2015)
- Wolfenstein 3D (id Software, 1992)
- Yo, Robot (20th Century Fox, 2004)
Se pueden realizar ampliaciones para ir más allá en el aprendizaje.
- Realiza una versión multijugador local para que hasta cuatro jugador puedan participar a la vez, con la pantalla dividida, y uniéndose libremente a los dos equipos.
- Crear un entorno lo más variado posible (con varias plantas, partes generadas procedimentalmente, distintos rótulos o luces, etc.) usando casi exclusivamente los recursos modulares de los paquetes Modular Sci.
- Cambiar el modelo 3D del arma, el del proyectil y la animación de disparo para representar marcadores de pintura, añadiendo un efecto más realista para el pringue de sus municiones.
- Cambia la mallas esqueletal de los personajes y las animaciones utilizando el Game Animation Sample.
Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.