Skip to content

BadTrip

Mario Araya - Marcelo González - Valentina Yévenes

Problema

Las personas en su tiempo de ocio hace diversas actividades para distraerse, por ejemplo hacer deportes, ver televisión, salir con amigos, etcétera. Como es de suponer, hay una cantidad importante de personas que prefiere los videojuegos para pasar su tiempo de ocio.

Análisis de prueba y casos de uso

En el contexto de los videojuegos pueden haber distintos tipos: rol, RPG (juegos de rol), carreras, etcétera. Se deseó crear un prototipo de juego de tipo RPG ya que son de los juegos más consumidos por la gente

BadTrip dispone de 3 jefes, enemigos comunes y algunos NPCs (Non-player character), que darán alguna información durante la partida. Mientras el personaje principal (controlado por el jugador mediante el teclado) avanza en el mundo, se encontrará con portones que podrá abrir con llaves que dejan los jefes al vencerlos. Además, hay armas escondidas en varios lugares del mapa.

Se presentan los siguientes casos de uso del sistema. El caso de uso 1, 2 y 3 representan cuando el jugador recoge el arma, habla con un NPC y cuando lucha con uno de los jefes, respectivamente.

Actor Sistema
1: El jugador busca un arma en los diferentes escenarios. 2: El sistema muestra un arma.
3: El jugador la recoge. 4: El sistema carga el arma al jugador y la posibilidad de disparar se activa.
5: El jugador puede entrar a enfrentar al Boss
Tabla 1: Caso de uso N°1

Curso alternativo:

  • Variante 1
    • 3A1: El jugador no ve el arma y no la recoge
    • 4A1: El sistema no le permite al jugador entrar donde se encuentra el Boss.
    • 5A1: Continuar con el paso 1.
Actor Sistema
1: Jugador se acerca a NPC y presiona la tecla C, determinada dentro del juego para hablar con ellos:
2: NPC se detiene y responde imprimiendo imagen y texto en pantalla, leído desde un archivo de texto
3: Jugador lee el dialogo en pantalla y apreta C nuevamente o simplemente se aleja de NPC.

Tabla 2: Caso de uso N°2

Actor Sistema
1: Jugador dispara al Jefe.
2: Jefe reduce su vida y dispara al jugador de vuelta
3: Se reduce la vida del Jugador

Tabla 3: Caso de uso N°3

Curso alternativo:

  • Variante 1
    • 2A1: Al jefe no le llegan las balas, por ende su vida no se reduce.
    • 3A1: Al jugador no le llegan las balas, por ende su vida no se reduce.

Diseño y Arquitectura de la solución

Para el desarrollo del juego se utilizó el lenguaje de programación C++ junto con la biblioteca Allegro, que permite administrar operaciones I/O a través de eventos y crear una interfaz gráfica tal como se vió en Java. Además, junto con el uso de este paquete se aplicó el paradigma orientado a objetos para poder tener cierta abstracción a la hora de modelar los componentes del juego y sus interacciones entre ellos y además permite escalabilidad mediante el reuso de componentes.

En el diagrama de clases siguiente se modelan los distintos objetos del juego, tales como el mapa (Room), personajes manejados por computadora (NPC), enemigos (Enemy), etcétera. Note que la herencia en este caso permite crear niveles o jefes sin necesidad de hacer estas clases desde cero, además de poder sobreescribir las acciones de la clase de la que heredan para así darle características especiales, como por ejemplo, un jefe puede moverse más rápido ó un mapa con distinta distribución de objetos en éste.

Por otro lado, todas las clases heredan de GameObject dado que todas las clases van a tener una representación visual específica. Por lo tanto, deben tener atributos como por ejemplo posición en el plano 2D y imagen que represente dichas clases.

ClassDiagram Figura 1: Diagrama de Clases del Proyecto

SequenceDiagram Figura 2: Diagrama de Clases del Proyecto

Pruebas

Se prueba en este video los casos de uso planteados.

  • Para el caso correspondiente, revisar cada caso de uso en los siguientes tiempos:
    • 1: 0:01 al 0:08
    • 2: 0:32 al 0:34
    • 3: 0:12 al 0:27

Compilación y documentación de código fuente

Para la compilación del proyecto, use este tutorial. Luego, agregue los archivos fuente al nuevo proyecto para poder compilar el programa. A la hora de elegir los addons, actívelos todos. En la carpeta Debug se encontrará el ejecutable una vez compilado. El programa puede generar documentación del código fuente mediante Doxygen.

Descargar

Puede descargar el código fuente del proyecto en este link