motor rpg cristóbal troncoso. objetivos una persona que no sepa programar pueda crear su propio...

19
Motor RPG Cristóbal Troncoso

Upload: cruzita-andujar

Post on 23-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Motor RPG

Cristóbal Troncoso

Page 2: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Objetivos

Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores de eventos.

Separar programación de diseño de juego.

Page 3: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Para lograr esto…

Las ‘pantallas’, eventos, ubicación de objetos, mapa, salidas disponibles, diálogos, etc. NO pueden estar programados en el engine.

Idear un sistema consistente para que un usuario pueda agregar todas estas cosas sin tocar el código.

Código flexible a modificaciones.

Page 4: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Desafíos de programación

Crear un programa capaz de desplegar un entorno gráfico navegable.Python 2.6 / IDLEPyGame 2.9Photoshop / Paint Notepad

Page 5: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Herramientas

Python: Lenguaje de programación interpretado (no requiere compilador).

PyGame: Librería para asistir en la creación de juegos o entornos gráficos en Python.

Paint/Photoshop: Gráficos.Notepad:

Page 6: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Desafíos de programación

Mover y controlar a un personajeEl personaje interactúa con el entorno

dispuesto por el usuario no ingeniero…Agilidad en despliegue gráficoDetección de colisionesNavegación por escenariosDespliegue de objetos (muros, arbustos)

Page 7: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Agilidad en despliegue gráfico

Técnica DirtyRectDirtyRect almacena en una lista los objetos

que se están moviendo.Permite actualizar solo el objeto en

movimiento en vez de el escenario completo.

Útil para juegos sin scrolling.

Page 8: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Detección de colisiones

Detectar cuando un objeto choca con otro, y tomar la acción correspondiente.

Page 9: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Un problema encontrado

Personaje recorre el mundo con un step de 3px (ejemplo)

Choca con un objetoIf choque=1 y usuario sigue avanzando,

retroceda en dirección contraria al avance.

If choque=1 y usuario no avanza, ¿hacia donde debe retroceder el personaje?

Page 10: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Personaje: Bagar

Page 11: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Colisiones con Bagar

Page 12: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Despliegue de escenario

Objeto NivelHandler detecta en que escenario se pretende estar. Ejemplo: “Escenario_1”

Recorre la carpeta Escenario_1 en busca de archivos de configuración.Salidas posibles a otros escenariosObjetos “chocables” Imagen de fondo Items para recolección

Page 13: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Despliegue de escenario

NivelHandler toma todas las salidas posibles e items a desplegar, los convierte a objetos de la clase correspondiente y los hace presentes para el juego y personaje.

Al pasar a otro escenario, se “resetean” las listas de objetos para dar paso a los objetos del próximo escenario.

Page 14: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Navegación por escenario

Si el personaje colisiona con un borde o un “portal” en medio del escenario actual, debe pasar al siguiente escenario.

Page 15: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Salidas del nivel

Page 16: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

Despliegue de objetos

Despliegue de objetos mejor explicado con la demostración

Page 17: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

UML

Page 18: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

CRC

Nombre de Clase: ACTOR

Responsabilidades: Dibujar objeto Borrar objeto Mover objeto

Superclases: Object

Subclases: Bloque, Item, Avatar

Colaboradores Librería PyGame

Page 19: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores

CRC

Nombre de Clase: AVATAR

Responsabilidades: Detectar colisiones Definir bordes de personaje Escuchar teclado para control de personaje

Superclases: ACTOR

Subclases: Ninguna

Colaboradores Librería PyGame