diseño y arquitectura de software juan carlos ruiz pacheco néstor fernández john bulla róbinson...

24
Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Upload: sofia-parra-prado

Post on 03-Feb-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Diseño y arquitectura de Software

Juan Carlos Ruiz PachecoNéstor Fernández

John BullaRóbinson Moscoso

William Alejandro Gómez

Page 2: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

ESTAMOS CREANDO UN VIDEOJUEGO.

POR DEFINICIÓN UN VIDEOJUEGO ES UN PROYECTO COMPLEJO

Page 3: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

NOSOTROS SOMOS LOS RESPONSABLES DE TENER UN DISEÑO DE SOFTWARE ADECUADO

Page 4: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

TENEMOS QUE EVITAR QUE NUESTRO SOFTWARE LLEGUE A SER ESTO

Page 5: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

No ponemos bloques a ver que sale

Planeamos, diseñamos y creamos software

Arquitectura de Software

Page 6: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

PODEMOS LLEGAR A TENER ESTO

Page 7: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Hardware Access

Game Services

Game Components

GENERAL

LAYOUT

Page 8: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

HARDWARE ACCESS

JoyStick

Mouse

Teclado

Page 9: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Standard IO Adapter

StandardIOAdapter

XBOX360Driver

KeyboardDriver

Standard2Axis8ButtonDriver

Se crea un juego de componentes capaz de proveer acceso a los diferentes dispositivos, y capaz de ofrecer una interfaz simplificada de acceso.

IStandardIOAdapter

Client

Page 10: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

GAME SERVICES

Command Mapper

Combo Detector

?

Page 11: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Command Mapper

Command Mapper

Combo Detector

?

Page 12: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Command MappersSe crea una clase base llamada CommandMapper, la cual crea un esquema de funcionamiento básico para las clases concretas:• SceneMapper1• SceneMapper2• MainMenuMapper

Las cuales implementan comportamientos específicos.

CommandMapper

Scene1Mapper

Scene2Mapper

MainMenuMapper

Client

Page 13: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Combo Detector

Command Mapper

Combo Detector

?

Page 14: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Combo Behaviors

IComboBehavior

TimedSequenceDetector

FuzzyTimedSequenceDetector

CommandMapper

Se crea una interfaz base llamada ICommandBehavior, de la cual se parte para crear diferentes tipos de análisis de secuencias para Combos, por ejemplo:• TimedSequenceDetector • FuzzyTimedSequenceDetector

Cada CommandMapper tiene internamente un IComboBehavior que le permite determinar cuando ha sucedido un combo.

Page 15: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

GAME COMPONENTS

Players Scenes Menus

Page 16: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Behaviors

Controller

Player

States

Player

Page 17: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Player

Player

MonoBehavior

Page 18: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Behavior

Se utiliza un patrón de estrategia para modificar el comportamiento del personaje desde el punto de vista de sus acciones.

Este componente permite traducir que es para cada personaje presionar Patada media o Puño fuerte, así como determinar cambios en las acciones asociadas al personaje, por ejemplo al estar en un modo especial de poder un personaje podría no dar patadas de manera normal sino darlas mas rápido, con efectos especiales más elaborados etc.Los comportamientos son intercambiables en tiempo de ejecución.

BasicPlayerBehavior

OtherPlayerBehaviors

Player IPlayerBehavior

Page 19: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

State

Se utiliza un patrón de estado para modificar el comportamiento del personaje desde el punto de vista de estado actual:• Vivo• Muerto• Mareado• Golpeado

Este componente permite tener un estado de personaje modular e intercambiable en tiempo de ejecución, eliminando la complejidad habitual de este tipo de

Player

IPlayerState

PlayingState DeadState GroovyState CrashedState

Page 20: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Controller

En cierta forma un controlador representa el cerebro del personaje.

De esta manera puede existir un controlador de comandos de tipo CommandController el cual trabaja en conjunto con un CommandMapper para determinar las acciones del personaje. O bien puede existir un AiController el cual envía las acciones del personaje a través de IA.

PlayerIController

CommandController

AIController

Page 21: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Player Big Picture

BasicPlayerBehavior

OtherPlayerBehaviors

Player IPlayerBehavior

IPlayerState

PlayingState DeadState GroovyState CrashedState

IController

CommandController

AIController

IComboBehavior

TimedSequenceDetector

CommandMapper

FuzzyTimedSequenceDetector

MonoBehavior

Page 22: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Scene

Interactive Objects HUD Manager

Particle Manager Camera Manager

Scene Manager

Page 23: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

Menu

Inicio

Escena 1

Escena 2

Escena #

Fin

Page 24: Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson Moscoso William Alejandro Gómez

GRACIAS