Want to create interactive content? It’s easy in Genially!

Get started free

Party Hard

jasonx_09

Created on November 15, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Vaporwave presentation

Women's Presentation

Geniaflix Presentation

Shadow Presentation

Newspaper Presentation

Memories Presentation

Zen Presentation

Transcript

START

PARTY HARD

Lanzado el 25/08/2015

Party hard, desarrollado por Pinokl Games y publicado por tinyBuild Games, es un juego de corte independiente y planteamiento muy sorprendente.

Lanzamiento

2016

2016

2015

2015

2016

01

ARGUMENTO

Premisa

de party Hard

La historia de Party Hard sigue a un protagonista que, cansado del ruido y disturbio causado por las fiestas vecinas, decide tomar medidas drásticas para poner fin a la algarabía. El personaje se embarca en una serie de fiestas nocturnas con el objetivo de eliminar a los asistentes de manera silenciosa y sigilosa. A medida que avanza el juego, se revelan capas adicionales de la historia, incluyendo motivaciones más profundas y desarrollos inesperados.

02

JUGABILIDAD

¿Cómo se juega?

Objetivo principal del juego

Aumento de Dificultad

Puntuación

03

DESARROLLO

Motor Gráfico

UNITY

La versión original de Party Hard, lanzada en 2015, utilizó el motor gráfico Unity. Este motor gráfico es un motor de desarrollo multiplataforma que se utiliza para crear juegos de una amplia gama de géneros. Unity es conocido por su facilidad de uso y su capacidad para crear juegos con gráficos de alta calidad.

PROGRAMACIÓN

C++

Fue creado con el lenguaje de programación C++. C + + es un lenguaje de programación general-propósito que se utiliza para crear una amplia gama de aplicaciones, incluyendo juegos.

06

ANÁLISIS DE GAMEPLAY

GAMEPLAY

ANáLISIS PROFUNDO

Escenarios y Misiones

Interaccion con el entorno

Estrategia y Sigilo

Data

Data

Data

Variedad en Objetivosx

Uso creativo de Objetos

Planificación de Asesinatos

Sigilo Social

Elementos de Juego de Fiesta

Cambios en la Jugabilidad

+INFO

+INFO

+INFO

GAMEPLAY

ANáLISIS PROFUNDO

Personalización y Progresión

Narrativa Integrada

Desafíos y Obstáculos

Data

Data

Data

Guardias de Seguridad y Policia

Desbloqueo de Personajes y Objetos

Motivación del Personaje:

Impacto en las Decisiones:

Progresión Dificultad-Ajustada

Interferencias Externas

+INFO

+INFO

+INFO

08

PERSONAJES

Personajes

Personaje Principal

El ninja

El carnicero

El Poli

La niña

El que quiere dormir

El que quiere dormir

Personajes

Personajes Secundarios

Seguridad

Específicos

Paramedicos y Clean

Policía y Fuerzas

Asistentes

09

CÓMO SE RESUELVE EN UNITY

3 MECÁNICAS TÉCNICAS

Asesinar

Morir

Caminar

Personaje/Character

Transform

Contruir al personaje

Sprite renderer

Primero se debe de armar al personaje principal, el cual se llama Darius. El cual se va a componer por:

Animator

rigidbody2D

Capsule collider

AUDIOSOURCE

SCRIPTS

Script de Personaje

Variables

Void Start

estaVivo

Se obtiene la referencia del animator y efectos sonoros

int score=0; private bool estaVivo = true; private animator myAnimation; private Efectos Sonoros misSonidos;

Va a verificar si el jugador esta vivo para poder realizar las acciones.

+INFO

+INFO

+INFO

Script de Personaje

Morir

Switch

Case

Switch (forma): La expresión switch toma un valor (en este caso, el valor de forma)

(public Void) y parametrizado con forma de morir

Evalúa su igualdad con cada case que se enumera a continuación.

+INFO

+INFO

+INFO

Script Controlador Jugador

Logica del movimiento del personaje sobre el eje x y el eje y.

+INFO

Variables

+INFO

Void START

+INFO

VOID UPDATE

+INFO

MOVIMIENTO HORIZONTAL

+INFO

MOVIMIENTO VERTICAL

ARMA

Weapon

Transform

Sprite renderer

Box Collider

Script Weapon

Script de Arma/Weapon

OnTriggerEnter2D

Private void OnTriggerEnter2D(Collider2D collision)

+INFO

¡GRACIAS POR SU ATENCION!

Planificar la estructurade tu comunicación.

Planificar la estructurade tu comunicación.

Void Start

void Start() { miCuerpo = GetComponent<Rigidbody2D>(); miAnimador = GetComponent<Animator>(); misSonidos = GetComponent<EfectosSonoros>(); miPersonaje = GetComponent<Personaje>(); }

Void Start

private void Start() { myAnimation = GetComponent<Animator>(); mySounds = GetComponent<SoundEffects>(); }

Switch

public void morir(formaDeMorir forma) { // Llamada al método específico de la forma de morir switch (forma) { case formaDeMorir.Asesinato: manejarMuertePorAsesinato(); break; case FormaDeMorir.AtrapadoPorPolicia: manejarAtrapadoPorPolicia(); break; } }

Planificar la estructurade tu comunicación.

Establecer un flujo através del contenido.

Establecer un flujo a través del contenido.

Estrategia y Sigilo

Jerarquizarla y darle peso visual a lo principal.

Definir mensajes secundarios con interactividad.

Establecer un flujo a través del contenido.

CONDICIONAR MOV VERTICAL

if (puedoMoverme && movVertical > 0) { // Mover hacia arriba miCuerpo.velocity = new Vector3(0f, velocidadCaminar, 0f); } else if (puedoMoverme && movVertical < 0) { // Mover hacia abajo miCuerpo.velocity = new Vector3(0f, -velocidadCaminar, 0f); } else { // Detener el movimiento vertical si no hay entrada miCuerpo.velocity = new Vector3(0f, 0f, 0f); } } }

Escenarios y Misiones

Definir mensajes secundarios con interactividad.

Establecer un flujo a través del contenido.

Variables

public class ControladorJugador : MonoBehaviour { public float velocidadCaminar = 5f; private Rigidbody2D miCuerpo; private Animator miAnimador; private EfectosSonoros misSonidos; private Personaje miPersonaje; }

Void Update

void Update() { bool puedoMoverme = miPersonaje.estaVivo() && !miPersonaje.bloqueado; float velVert = miCuerpo.velocity.y; float moviHorizontal = Input.GetAxis("Horizontal"); float movVertical = Input.GetAxis("Vertical");

Variables

int score = 0; private bool estaVivo = true; private animator myAnimation; private SoundEffects mySounds;

Narrativa Integrada

Jerarquizarla y darle peso visual a lo principal.

Definir mensajes secundarios con interactividad.

Jerarquizarla y darle peso visual a lo principal.

CONDICIONAR MOV HORIZONTAL

if (puedoMoverme && moviHorizontal > 0) { transform.rotation = Quaternion.Euler(0f, 0f, 0f); miCuerpo.velocity = new Vector3(velocidadCaminar, 0f, 0f); } else if (puedoMoverme && moviHorizontal < 0) { transform.rotation = Quaternion.Euler(0f, 180f, 0f); miCuerpo.velocity = new Vector3(-velocidadCaminar, 0f, 0f); } else { miCuerpo.velocity = new Vector3(0f, velVert, 0f); }

Medir los resultados.

Medir los resultados.

Case

private void manejarMuertePorAsesinato() { // Lógica específica para muerte por asesinato, como cambiar animaciones, reproducir sonidos, etc. animator.SetTrigger("MuerteAsesinato"); soundEffects.ReproducirSonidoMuerte(FormaDeMorir.Asesinato); } private void manejarAtrapadoPorPolicia() { // Lógica específica para ser atrapado por la policía animator.SetTrigger("MuerteAtrapado"); soundEffects.reproducirSonidoMuerte(FormaDeMorir.AtrapadoPorPolicia); }

OnTriggerEnter2D

Public class Arma : MonoBehaviour { private void OnTriggerEnter2D(Collider2D other) { // Verificar si el objeto con el que colisiona el arma es un NPC if (other.CompareTag("NPC")) { // Obtener el componente del Personaje NPC npc = other.GetComponent<Personaje>(); // Verificar si el componente NPC es válido if (npc != null) { // Llamar a la función de muerte por asesinato del NPC npc.morir(manejarMuertePorAsesinato()) } } } }

Medir los resultados.

Desafíos y Obstáculos

Morir

public void morir(FormaDeMorir forma) { switch (forma) { case formaDeMorir.Asesinato: manejarMuertePorAsesinato(); break; case formaDeMorir.AtrapadoPorPolicia: manejarAtrapadoPorPolicia(); break; } } private void manejarMuertePorAsesinato() { // Lógica específica para muerte por asesinato, como cambiar animaciones, reproducir sonidos, etc. animator.SetTrigger("MuerteAsesinato"); soundEffects.reproducirSonidoMuerte(FormaDeMorir.Asesinato); }

Interacción con el Contorno

estaVivo

private bool estaVivo = true; void Update() { if (estaVivo) {} } void morir() { estaVivo = false; finDeJuego(); }

Personalización y Progresión