A game about piracy “A game about piracy” es el nombre de mi prototipo para la primera Práctica de Evaluación Continua (PEC1) de la asignatura Programación de Videojuegos 2D del Máster Universitario en Diseño y Programación de Videojuegos de la UOC. El objetivo de la práctica era desarollar un juego en 2D que imitara el sistema de duelos de insultos de “The Secret of Monkey Island” utilizando los conocimientos adquiridos en el estudio del primer módulo de la asignatura y realizando investigación por cuenta propia.…
A game about piracy “A game about piracy” es el nombre de mi prototipo para la primera Práctica de Evaluación Continua (PEC1) de la asignatura Programación de Videojuegos 2D del Máster Universitario en Diseño y Programación de Videojuegos de la UOC. El objetivo de la práctica era desarollar un juego en…
A game about piracy “A game about piracy” es el nombre de mi prototipo para la primera Práctica de Evaluación…
A game about piracy
“A game about piracy” es el nombre de mi prototipo para la primera Práctica de Evaluación Continua (PEC1) de la asignatura Programación de Videojuegos 2D del Máster Universitario en Diseño y Programación de Videojuegos de la UOC.
El objetivo de la práctica era desarollar un juego en 2D que imitara el sistema de duelos de insultos de “The Secret of Monkey Island” utilizando los conocimientos adquiridos en el estudio del primer módulo de la asignatura y realizando investigación por cuenta propia.
El objetivo del juego es ganar tres asaltos en un duelo de insultos contra la CPU.
En el turno del jugador, es necesario elegir un insulto de la lista de insultos disponibles usando el ratón.
Si el oponente acierta, gana el asalto y el jugador pierde el turno.
Si falla, el jugador gana el asalto y sigue su turno.
En el turno del oponente, se escoge un insulto aleatorio y el jugador debe elegir una réplica de la lista de réplicas disponibles usando el ratón.
Si el jugador acierda, gana el asalto y el oponente pierde el turno.
Si falla, el oponente gana el asalto y sigue su turno.
Cuando el jugador o el oponente han ganado tres asaltos, el juego finaliza.
Desarrollo
A efectos de cumplir lo solicitado en las instrucciones, el prototipo incluye lo siguiente:
Cinco escenas:
Créditos iniciales con la autoría del prototipo y la atribución del sistema de juego a LucasArts.
Introducción argumental que pone en contexto el motivo del duelo.
Menú principal con las opciones de iniciar la partida y salir del juego, así como con los créditos.
Escena de combate en la que se desarrolla el bucle del juego.
Final de partida que permite volver a jugar sin reiniciar el juego o volver al menú principal.
Múltiples scripts de C# que implementan la lógica de juego, así como algunas opciones adicionales (por ejemplo, cambiar el cursor o ejecutar un diálogo entre personajes).
Bucle del juego implementado mediante una máquina de estados compuesta por los estados siguientes:
Begin: configuración inicial del bucle de juego y determinación aleatoria del inicio de turno.
PlayerTurn: lógica del turno del jugador. Permite seleccionar un insulto y hace que el oponente escoja una réplica de manera aleatoria, pero con un 33% de probabilidades de acertar. Si el oponente no acierta, se mantiene el estado y se vuelve a iniciar el turno. De lo contrario, se pasa al estado EnemyTurn.
EnemyTurn: lógica del turno del oponente. Hace que el oponente escoja un insulto de manera aleatoria y permite seleccionar una réplica. Si el jugador acierta, se pasa al estado PlayerTurn. De lo contrario, se mantiene el estado y se vuelve a iniciar el turno.
Won: fin del juego cuando el jugador gana tres asaltos antes que el oponente. Muestra unos mensajes finales y redirige a la escena de final de partida.
Lost: fin del juego cuando el oponente gana tres asaltos antes que el jugador. Muestra unos mensajes finales y redirige a la escena de final de partida.
Lista de insultos obtenida de un fichero JSON almacenado en Resources.
Elementos de sonido y visuales en todas las escenas.
Para las transiciones entre animaciones, se han utilizado las máquinas de estado proporcionadas por el componente Animator.
Es importante mencionar que la pantalla final no muestra quién ha sido el ganador por una elección de diseño, ya que se muestra de manera agumental, a través de los diálogos de los personajes, en los estados Won y Lost de la escena de juego. De querer implementarse, se hubiese optado por una clase estática con el método DontDestroyOnLoad() que contuviera la información básica del juego que contiene actualmente la clase CombatManager (vidas del jugador y del oponente, estados, etc.).
Problemas conocidos
Las animaciones Attack y Hit Taken de jugador y oponente se ejecutan en ocasiones de manera desincronizada.
El anclaje de los botones del menú principal y de la pantalla final hacen que el texto se desplace al cambiar de resolución.
Al pulsar el botón Escape, se sale del modo a pantalla completa en vez de omitir la introducción, abrir el menú de pausa o cerrar los créditos.
Créditos
Monkey Island™
Todos los elementos visuales pertenecientes a la saga Monkey Island™ son propiedad de Lucasfilm Games.
PAC 1 – Un Joc d’Aventura Amb l’entrega del PAC1, adjunto vídeo demostració del joc d’aventura: Credits i fonts: Sprites fets per mi en Piskel (Piskel – Free online sprite editor (piskelapp.com)). Audio per diferents autors a traves de la plataforma FreeSound i sota la llicencia Creative Commons (Freesound – Freesound). Tipografies utilitzades de domini lliure a traves de la plataforma Dafont (DaFont – Descargar fuentes). PEC 1 - Un juego de aventuras …
PAC 1 – Un Joc d’Aventura Amb l’entrega del PAC1, adjunto vídeo demostració del joc d’aventura: Credits i fonts: Sprites fets per mi en Piskel (Piskel – Free online sprite editor (piskelapp.com)). Audio per diferents autors a traves de la plataforma FreeSound i sota la llicencia Creative Commons (Freesound…
PAC 1 – Un Joc d’Aventura Amb l’entrega del PAC1, adjunto vídeo demostració del joc d’aventura: Credits i fonts: Sprites…
PAC 1 – Un Joc d’Aventura
Amb l’entrega del PAC1, adjunto vídeo demostració del joc d’aventura:
URL del repositorio en GitLab: https://gitlab.com/dsahuquillod/my-first-project.git Enlace video explicativo: https://youtu.be/mJgtSJIGQKY PEC 1 - Un juego de aventuras …
URL del repositorio en GitLab: https://gitlab.com/dsahuquillod/my-first-project.git Enlace video explicativo: https://youtu.be/mJgtSJIGQKY PEC 1 - Un juego de aventuras …
URL del repositorio en GitLab: https://gitlab.com/dsahuquillod/my-first-project.git Enlace video explicativo: https://youtu.be/mJgtSJIGQKY PEC 1 - Un juego de aventuras …
Link al video: https://drive.google.com/file/d/19c48IyP7sdOMvQm25bpRmUxnVW30MN2W/view?usp=share_link Link a Gitlab: https://gitlab.com/eduardojosereyesperez/pec01_eduardojreyes_2022 Link a los archivos: https://drive.google.com/file/d/1j6ooWkBsvb_E8kYPPXdigUUUrNhLuhw6/view?usp=share_link PEC 1 - Un juego de aventuras …
Link al video: https://drive.google.com/file/d/19c48IyP7sdOMvQm25bpRmUxnVW30MN2W/view?usp=share_link Link a Gitlab: https://gitlab.com/eduardojosereyesperez/pec01_eduardojreyes_2022 Link a los archivos: https://drive.google.com/file/d/1j6ooWkBsvb_E8kYPPXdigUUUrNhLuhw6/view?usp=share_link PEC 1 - Un juego de aventuras …
Link al video: https://drive.google.com/file/d/19c48IyP7sdOMvQm25bpRmUxnVW30MN2W/view?usp=share_link Link a Gitlab: https://gitlab.com/eduardojosereyesperez/pec01_eduardojreyes_2022 Link a los archivos: https://drive.google.com/file/d/1j6ooWkBsvb_E8kYPPXdigUUUrNhLuhw6/view?usp=share_link PEC 1 - Un juego de aventuras…
Link al video: https://drive.google.com/file/d/19c48IyP7sdOMvQm25bpRmUxnVW30MN2W/view?usp=share_link
Link a Gitlab: https://gitlab.com/eduardojosereyesperez/pec01_eduardojreyes_2022
Link a los archivos: https://drive.google.com/file/d/1j6ooWkBsvb_E8kYPPXdigUUUrNhLuhw6/view?usp=share_link
Formeu part de la comunitat? Accés per veure més publicacions.
Aquest és un espai de treball personal d'un/a estudiant de la Universitat Oberta de Catalunya. Qualsevol contingut publicat en aquest espai és responsabilitat del seu autor/a.
Que buena idea que los insultos sean desde los coches en un atasco!!!