Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson...
-
Upload
sofia-parra-prado -
Category
Documents
-
view
217 -
download
0
Transcript of Diseño y arquitectura de Software Juan Carlos Ruiz Pacheco Néstor Fernández John Bulla Róbinson...
Diseño y arquitectura de Software
Juan Carlos Ruiz PachecoNéstor Fernández
John BullaRóbinson Moscoso
William Alejandro Gómez
ESTAMOS CREANDO UN VIDEOJUEGO.
POR DEFINICIÓN UN VIDEOJUEGO ES UN PROYECTO COMPLEJO
NOSOTROS SOMOS LOS RESPONSABLES DE TENER UN DISEÑO DE SOFTWARE ADECUADO
TENEMOS QUE EVITAR QUE NUESTRO SOFTWARE LLEGUE A SER ESTO
No ponemos bloques a ver que sale
Planeamos, diseñamos y creamos software
Arquitectura de Software
PODEMOS LLEGAR A TENER ESTO
Hardware Access
Game Services
Game Components
GENERAL
LAYOUT
HARDWARE ACCESS
JoyStick
Mouse
Teclado
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
GAME SERVICES
Command Mapper
Combo Detector
?
Command Mapper
Command Mapper
Combo Detector
?
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
Combo Detector
Command Mapper
Combo Detector
?
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.
GAME COMPONENTS
Players Scenes Menus
Behaviors
Controller
Player
States
Player
Player
Player
MonoBehavior
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
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
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
Player Big Picture
BasicPlayerBehavior
OtherPlayerBehaviors
Player IPlayerBehavior
IPlayerState
PlayingState DeadState GroovyState CrashedState
IController
CommandController
AIController
IComboBehavior
TimedSequenceDetector
CommandMapper
FuzzyTimedSequenceDetector
MonoBehavior
Scene
Interactive Objects HUD Manager
Particle Manager Camera Manager
Scene Manager
Menu
Inicio
Escena 1
Escena 2
Escena #
Fin
GRACIAS