SlideShare a Scribd company logo
1 of 25
Download to read offline
Desarrollo de Videojuegos
Jugabilidad
Arquitectura del videojuego
● ¿Qué tipo de software es un videojuego?
○ Bucle común a un sistema multimedia interactivo…
○ …pero para un videojuego, aunque hay muchos
tipos, hay más arquitectura que puede ser común
Arquitectura del videojuego 2
Motivación
Arquitectura del videojuego 3
Armazón de jugabilidad
Players
Actors (Avatars, NPCs & others)
Cameras with
audio listeners
PlayerControllers*
AIControllers
GAME Instance
output
input Game Mode*
*Game State
*Player States
World
(bots*)
UIs & HUDs
2D
GAMEPLAY FRAMEWORK
● World: Mundo virtual sobre el que trabajar,
generado en base a uno o más Levels
○ Level: El espacio mínimo donde poner Actors
■ Se pueden cargar varios a la vez, o irlos
cargando según se necesiten (streaming)
■ Si hay varios, uno debe ser el nivel principal
(persistente) y el resto subniveles
○ Map: Asset (*.umap) que contiene un Level único o
uno principal con referencias a sus subniveles
Arquitectura del videojuego 4
Armazón de jugabilidad
● Actor: Objeto que puede estar en el mundo
○ Pawn: Puede ser poseído por un controlador
■ Character: Con movimiento humanoide
■ WheeledVehicle: Con movimiento sobre ruedas
○ StaticMeshActor
○ SkeletalMeshActor
○ PointLight
○ BoxTrigger
○ AmbientSound
○ ParticleEmitter
○ ...
Arquitectura del videojuego 5
Armazón de jugabilidad
● GameMode: se crea al cargar cada nivel y controla toda
la jugabilidad (típico manejado desde el “servidor”)
○ Game State Class
○ PlayerController Class y Player State Class
○ HUD Class
○ Default Pawn Class
○ Session, Spectator, Replay Spectator … classes
Arquitectura del videojuego 6
Armazón de jugabilidad
● Game Instance: permanece vivo toda la ejecución, y almacena
los datos (no referencias) que persistirán entre niveles,
evitando el tener que guardar partida al concluir un nivel
● Game State: son generados y gestionados por Game Mode,
cada uno lleva los datos y el control de reglas para un
momento concreto del juego que decide el Game Mode
Arquitectura del videojuego 7
Armazón de jugabilidad
● PlayerController: se genera cuando un jugador entra al
juego, gestiona toda la entrada/salida (ratón, cámaras,
HUD...) y da órdenes a los Pawn que posea el jugador
○ Posee uno o más Pawns (y los controla totalmente)
○ Recibe el input de un jugador
○ Accede al HUD de ese jugador
○ Accede al PlayerCameraManager de ese jugador
● AI Controller: controlador que maneja “la máquina”
● Player State: se genera al generarse un PlayerController
y contiene info pública que no es específica del Pawn
Arquitectura del videojuego 8
Armazón de jugabilidad
● Ej. Bird of Prey
○ Actors: Pickups
○ Pawns: Naves de jugadores, naves enemigas,
proyectiles, jefes y torretas
○ Game Mode: Maneja las decisiones de juego
primarias y la lógica. Cuando las naves son
destruidas, sus puntos se evalúan aquí
○ Game State: Guarda la puntuación más alta y otras
informaciones
○ Game Instance: Graba la nave actual del jugador
Arquitectura del videojuego 9
Armazón de jugabilidad
● Unreal Engine ofrece incluso un sistema de
habilidades de jugabilidad sobre el que
montar tus propias habilidades del juego
Arquitectura del videojuego 10
Sistemas sobre la jugabilidad
● Guardar y cargar partida
Arquitectura del videojuego 11
Persistencia del estado del juego
● Las experiencias multijugador en línea
actuales requieren sincronizar muchísima
información entre muchísimas máquinas de
jugadores
alrededor de
todo el mundo
● Sincronizar
todo sería
demasiado
costoso, pero UE ofrece una solución
Arquitectura del videojuego 12
Videojuegos multijugador
● En Unreal Engine es el sistema Replication
el que se encarga de sincronizar los datos y
las llamadas a procedimientos remotos
entre clientes y servidores
○ Esta replicación es clave: permite trabajar de
forma abstracta, en alto nivel, a la vez que
podemos personalizar
cómo funciona
exactamente la
comunicación en red del
juego, en bajo nivel
Arquitectura del videojuego 13
Videojuegos multijugador
REMOTE PROCEDURE CALLS (RPCs)
● El servidor es el nodo “autoritario” de la
red, que se asegura de replicar lo que
corresponda a todos los demás (clientes)
○ Existen 3 modos de red
■ Cliente
■ Servidor dedicado
■ Servidor en escucha
(cliente y servidor
en mismo proceso)
○ Incluso en monojugador o en multijugador local,
¡hace falta un cliente y un servidor... siempre!
Arquitectura del videojuego 14
Arquitectura cliente-servidor
● En el servidor se gestiona la jugabilidad
○ Comienzo y final del juego
○ Cargas de niveles
○ Replicación en clientes (como Game State)
○ Game Mode (GM) sólo existe en el servidor
● Así funciona el sistema:
1. El cliente solicita conectar
2. Si el servidor acepta, le manda un mapa a cargar
3. Tras la carga, se ejecuta el prelogin del GM
4. Si se acepta, se ejecuta el login del GM
■ Se crea y replica el verdadero PlayerController
■ Se le llama a BeginPlay
■ Se ejecuta el postlogin de GM y ya podemos usar RPC
Arquitectura del videojuego 15
Arquitectura cliente-servidor
● Así funciona la replicación
○ En la práctica el servidor informa del estado de los
actores que han cambiado mediante notificaciones
(“actualizaciones”) regulares a todos sus clientes
○ Las propiedades (ej. salud), al ser datos, se
sincronizan solas, pero las acciones (ej. una
explosión), al ser llamadas a procedimientos
remotos, se replican sólo si expresamente así lo
hacemos (recuerda que no son funciones ni pueden
devolver nada)
○ Los PlayerControllers, por ejemplo, sólo se replican
en un cliente: el del jugador correspondiente
Arquitectura del videojuego 16
Replicación
● Hay componentes de Unreal Engine como
CharacterMovement que ya realizan
replicación de forma automática
○ Aún así, a un Pawn le podemos preguntar
IsLocallyControlled para mostrarlo o no, según sea
el que maneja el jugador
o sea el de otro jugador
● Las mallas estáticas
pueden replicar igual
si marcamos Static
Mesh Replicate Movement
Arquitectura del videojuego 17
Replicación
● Cómo replicar
actores en general
○ Cambiando
atributos de actor
como Net Load on
Client (el servidor
carga niveles y se
ven en los clientes)
y Replicates (los
cambios del servidor se replican en los clientes)
Arquitectura del videojuego 18
Replicación
https://docs.unrealengine.com/en-US/Gameplay/Networking/Actors/index.html
● Como vemos, es fácil que todo lo que pasa
en el servidor se replique en los clientes…
pero ¿y lo que pasa en los clientes?
○ Se notificará al servidor todo lo importante, para
que se replique en todos los clientes... y sólo lo
“cosmético” será exclusivo del propio cliente
○ Para eso se crea un Custom Event marcando Run on
Server y Reliable al que se le llama siempre
○ Para saber si algo se ejecuta en el servidor, o si
tengo autoridad sobre un actor, se usan las
funciones along with IsServer y HasAuthority
Arquitectura del videojuego 19
Replicación
● Siempre hay un jugador, pero podemos
crear más (y asignarles controladores)
● En un juego
multijugador,
aunque sea
local es
importante
respetar el
armazón de
jugabilidad
Arquitectura del videojuego 20
Multijugador local
● Aquí están todos los detalles a comprender
Arquitectura del videojuego 21
Multijugador en Blueprints
https://docs.unrealengine.com/en-US/Gameplay/Networking/Blueprints/index.html
● Unreal Engine tiene un
sistema para probar multijugador
Arquitectura del videojuego 22
Pruebas en red
https://docs.unrealengine.com/en-US/Gameplay/HowTo/Networking/TestMultiplayer/index.html
● Pueden crearse accesos directos en
Windows para lanzar el servidor y los
clientes cómoda y rápidamente
Arquitectura del videojuego 23
Pruebas en red
● ¿Qué componentes de Unreal Engine hacen
falta para un buen personaje protagonista?
A. StaticMesh, Pawn y Character
B. SkeletalMesh, PlayerController y GameMode
C. StaticMesh, Pawn, PawnController
D. SkeletalMesh, Character y PlayerController
Arquitectura del videojuego 24
Participación
Federico Peinado (2019-2022)
www.federicopeinado.es
Críticas, dudas, sugerencias...
* Licencia sólo aplicable al texto original de estas diapositivas

More Related Content

Similar to Arquitectura del videojuego

Teoria juegos
Teoria juegosTeoria juegos
Teoria juegosMguel
 
Clase 9 sistemas
Clase 9 sistemasClase 9 sistemas
Clase 9 sistemasMguel
 
Presentacion tfm adrian_alonso_gonzalez-light
Presentacion tfm adrian_alonso_gonzalez-lightPresentacion tfm adrian_alonso_gonzalez-light
Presentacion tfm adrian_alonso_gonzalez-lightAdrián Alonso González
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesADWE Team
 
Programación de videojuegos con Godot Engine
Programación de videojuegos con Godot EngineProgramación de videojuegos con Godot Engine
Programación de videojuegos con Godot Enginepythoncanarias
 
Producción y proceso de desarrollo
Producción y proceso de desarrolloProducción y proceso de desarrollo
Producción y proceso de desarrolloFederico Peinado
 
DEV 03-03 Personajes y animaciones.pdf
DEV 03-03 Personajes y animaciones.pdfDEV 03-03 Personajes y animaciones.pdf
DEV 03-03 Personajes y animaciones.pdfFederico Peinado
 
Unity3D_PARA_MONOS.pptx
Unity3D_PARA_MONOS.pptxUnity3D_PARA_MONOS.pptx
Unity3D_PARA_MONOS.pptxEvolis3D
 
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...Federico Peinado
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365mihermosaxinita
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365mihermosaxinita
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365mihermosaxinita
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localizaciónFederico Peinado
 
Informe ejecutivo fase 2
Informe ejecutivo fase 2Informe ejecutivo fase 2
Informe ejecutivo fase 2ensamble final
 
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Igalia
 

Similar to Arquitectura del videojuego (20)

Teoria juegos
Teoria juegosTeoria juegos
Teoria juegos
 
Clase 9 sistemas
Clase 9 sistemasClase 9 sistemas
Clase 9 sistemas
 
Presentacion tfm adrian_alonso_gonzalez-light
Presentacion tfm adrian_alonso_gonzalez-lightPresentacion tfm adrian_alonso_gonzalez-light
Presentacion tfm adrian_alonso_gonzalez-light
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móviles
 
Programación de videojuegos con Godot Engine
Programación de videojuegos con Godot EngineProgramación de videojuegos con Godot Engine
Programación de videojuegos con Godot Engine
 
Producción y proceso de desarrollo
Producción y proceso de desarrolloProducción y proceso de desarrollo
Producción y proceso de desarrollo
 
Fase2 Ensamble y mantenimiento UNAD
Fase2 Ensamble y mantenimiento UNADFase2 Ensamble y mantenimiento UNAD
Fase2 Ensamble y mantenimiento UNAD
 
Droidtick
DroidtickDroidtick
Droidtick
 
DEV 03-03 Personajes y animaciones.pdf
DEV 03-03 Personajes y animaciones.pdfDEV 03-03 Personajes y animaciones.pdf
DEV 03-03 Personajes y animaciones.pdf
 
Unity3D_PARA_MONOS.pptx
Unity3D_PARA_MONOS.pptxUnity3D_PARA_MONOS.pptx
Unity3D_PARA_MONOS.pptx
 
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...
GCV 03 Herramientas de desarrollo: Específicas para Videojuegos - Gestión de ...
 
Juego de la Oca 3.0
Juego de la Oca 3.0Juego de la Oca 3.0
Juego de la Oca 3.0
 
Tutorial c# y Video Juegos
Tutorial c# y Video JuegosTutorial c# y Video Juegos
Tutorial c# y Video Juegos
 
Plataforma e interfaz
Plataforma e interfazPlataforma e interfaz
Plataforma e interfaz
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localización
 
Informe ejecutivo fase 2
Informe ejecutivo fase 2Informe ejecutivo fase 2
Informe ejecutivo fase 2
 
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
Gráficos 3D en Linux con Mesa (GPUL Labs Meetup)
 

More from Federico Peinado

Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje naturalFederico Peinado
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimientoFederico Peinado
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasFederico Peinado
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entornoFederico Peinado
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosFederico Peinado
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de direcciónFederico Peinado
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Federico Peinado
 

More from Federico Peinado (20)

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
 
Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
 
Puntos de ruta tácticos
Puntos de ruta tácticosPuntos de ruta tácticos
Puntos de ruta tácticos
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
 
Árbol de comportamiento
Árbol de comportamientoÁrbol de comportamiento
Árbol de comportamiento
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estados
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
 
Percepción
PercepciónPercepción
Percepción
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
 
Física y animación
Física y animaciónFísica y animación
Física y animación
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)
 

Recently uploaded

thinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsthinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsfioticona20395
 
CHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptx
CHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptxCHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptx
CHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptxmaddyddam87
 
MANUAL DE PERFORACION Y VOLADURA CONTROLADA
MANUAL DE PERFORACION Y VOLADURA CONTROLADAMANUAL DE PERFORACION Y VOLADURA CONTROLADA
MANUAL DE PERFORACION Y VOLADURA CONTROLADAJason Zambrano Rojas
 
arquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSO
arquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSOarquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSO
arquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSOArquitecto Valparaiso
 
JC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJuanCorcuera3
 
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosEcuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosManuel Alejandro Vivas Riverol
 
PRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIO
PRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIOPRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIO
PRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIOAndres232181
 
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...JeisonArango3
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............osoriosantiago887
 
gestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectogestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectoclopez37
 
Parciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñoParciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñomonicabetancur29
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALPamelaGranda5
 
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfS03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfroycordovabocanegra7
 
FORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdf
FORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdfFORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdf
FORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdfArquitecto Valparaiso
 
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfS02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfGERSONYT1
 
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdfNOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdflinderlauradelacruz
 
01_Introducción.pdf. Diapositiva del curso.
01_Introducción.pdf. Diapositiva del curso.01_Introducción.pdf. Diapositiva del curso.
01_Introducción.pdf. Diapositiva del curso.RichardFeynman15
 
Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.MariaJoseLopez914893
 
Formulario de permiso y recepción de obras provisorias según art 124
Formulario de permiso y recepción de obras  provisorias según art 124Formulario de permiso y recepción de obras  provisorias según art 124
Formulario de permiso y recepción de obras provisorias según art 124Juan Luis Menares, Arquitecto
 

Recently uploaded (20)

thinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsthinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msds
 
CHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptx
CHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptxCHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptx
CHARLA DE 5 MINUTOS TRABAJO EN EQUIPO.pptx
 
MANUAL DE PERFORACION Y VOLADURA CONTROLADA
MANUAL DE PERFORACION Y VOLADURA CONTROLADAMANUAL DE PERFORACION Y VOLADURA CONTROLADA
MANUAL DE PERFORACION Y VOLADURA CONTROLADA
 
arquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSO
arquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSOarquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSO
arquitecto RECTIFICACIÓN DE DESLINDES VALPARAÍSO
 
JC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptx
 
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosEcuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
 
PRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIO
PRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIOPRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIO
PRINCIPIOS BASICOS PARA LA FABRICACION DE VIDRIO
 
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............
 
gestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectogestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyecto
 
Parciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñoParciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeño
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
 
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfS03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
 
FORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdf
FORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdfFORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdf
FORMULARIO SOLICITUD DE PERMISO DE OBRA PROVISORIA -ART 124 LGUC-.pdf
 
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfS02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
 
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdfNOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
 
01_Introducción.pdf. Diapositiva del curso.
01_Introducción.pdf. Diapositiva del curso.01_Introducción.pdf. Diapositiva del curso.
01_Introducción.pdf. Diapositiva del curso.
 
Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.
 
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEICUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
 
Formulario de permiso y recepción de obras provisorias según art 124
Formulario de permiso y recepción de obras  provisorias según art 124Formulario de permiso y recepción de obras  provisorias según art 124
Formulario de permiso y recepción de obras provisorias según art 124
 

Arquitectura del videojuego

  • 2. ● ¿Qué tipo de software es un videojuego? ○ Bucle común a un sistema multimedia interactivo… ○ …pero para un videojuego, aunque hay muchos tipos, hay más arquitectura que puede ser común Arquitectura del videojuego 2 Motivación
  • 3. Arquitectura del videojuego 3 Armazón de jugabilidad Players Actors (Avatars, NPCs & others) Cameras with audio listeners PlayerControllers* AIControllers GAME Instance output input Game Mode* *Game State *Player States World (bots*) UIs & HUDs 2D GAMEPLAY FRAMEWORK
  • 4. ● World: Mundo virtual sobre el que trabajar, generado en base a uno o más Levels ○ Level: El espacio mínimo donde poner Actors ■ Se pueden cargar varios a la vez, o irlos cargando según se necesiten (streaming) ■ Si hay varios, uno debe ser el nivel principal (persistente) y el resto subniveles ○ Map: Asset (*.umap) que contiene un Level único o uno principal con referencias a sus subniveles Arquitectura del videojuego 4 Armazón de jugabilidad
  • 5. ● Actor: Objeto que puede estar en el mundo ○ Pawn: Puede ser poseído por un controlador ■ Character: Con movimiento humanoide ■ WheeledVehicle: Con movimiento sobre ruedas ○ StaticMeshActor ○ SkeletalMeshActor ○ PointLight ○ BoxTrigger ○ AmbientSound ○ ParticleEmitter ○ ... Arquitectura del videojuego 5 Armazón de jugabilidad
  • 6. ● GameMode: se crea al cargar cada nivel y controla toda la jugabilidad (típico manejado desde el “servidor”) ○ Game State Class ○ PlayerController Class y Player State Class ○ HUD Class ○ Default Pawn Class ○ Session, Spectator, Replay Spectator … classes Arquitectura del videojuego 6 Armazón de jugabilidad
  • 7. ● Game Instance: permanece vivo toda la ejecución, y almacena los datos (no referencias) que persistirán entre niveles, evitando el tener que guardar partida al concluir un nivel ● Game State: son generados y gestionados por Game Mode, cada uno lleva los datos y el control de reglas para un momento concreto del juego que decide el Game Mode Arquitectura del videojuego 7 Armazón de jugabilidad
  • 8. ● PlayerController: se genera cuando un jugador entra al juego, gestiona toda la entrada/salida (ratón, cámaras, HUD...) y da órdenes a los Pawn que posea el jugador ○ Posee uno o más Pawns (y los controla totalmente) ○ Recibe el input de un jugador ○ Accede al HUD de ese jugador ○ Accede al PlayerCameraManager de ese jugador ● AI Controller: controlador que maneja “la máquina” ● Player State: se genera al generarse un PlayerController y contiene info pública que no es específica del Pawn Arquitectura del videojuego 8 Armazón de jugabilidad
  • 9. ● Ej. Bird of Prey ○ Actors: Pickups ○ Pawns: Naves de jugadores, naves enemigas, proyectiles, jefes y torretas ○ Game Mode: Maneja las decisiones de juego primarias y la lógica. Cuando las naves son destruidas, sus puntos se evalúan aquí ○ Game State: Guarda la puntuación más alta y otras informaciones ○ Game Instance: Graba la nave actual del jugador Arquitectura del videojuego 9 Armazón de jugabilidad
  • 10. ● Unreal Engine ofrece incluso un sistema de habilidades de jugabilidad sobre el que montar tus propias habilidades del juego Arquitectura del videojuego 10 Sistemas sobre la jugabilidad
  • 11. ● Guardar y cargar partida Arquitectura del videojuego 11 Persistencia del estado del juego
  • 12. ● Las experiencias multijugador en línea actuales requieren sincronizar muchísima información entre muchísimas máquinas de jugadores alrededor de todo el mundo ● Sincronizar todo sería demasiado costoso, pero UE ofrece una solución Arquitectura del videojuego 12 Videojuegos multijugador
  • 13. ● En Unreal Engine es el sistema Replication el que se encarga de sincronizar los datos y las llamadas a procedimientos remotos entre clientes y servidores ○ Esta replicación es clave: permite trabajar de forma abstracta, en alto nivel, a la vez que podemos personalizar cómo funciona exactamente la comunicación en red del juego, en bajo nivel Arquitectura del videojuego 13 Videojuegos multijugador REMOTE PROCEDURE CALLS (RPCs)
  • 14. ● El servidor es el nodo “autoritario” de la red, que se asegura de replicar lo que corresponda a todos los demás (clientes) ○ Existen 3 modos de red ■ Cliente ■ Servidor dedicado ■ Servidor en escucha (cliente y servidor en mismo proceso) ○ Incluso en monojugador o en multijugador local, ¡hace falta un cliente y un servidor... siempre! Arquitectura del videojuego 14 Arquitectura cliente-servidor
  • 15. ● En el servidor se gestiona la jugabilidad ○ Comienzo y final del juego ○ Cargas de niveles ○ Replicación en clientes (como Game State) ○ Game Mode (GM) sólo existe en el servidor ● Así funciona el sistema: 1. El cliente solicita conectar 2. Si el servidor acepta, le manda un mapa a cargar 3. Tras la carga, se ejecuta el prelogin del GM 4. Si se acepta, se ejecuta el login del GM ■ Se crea y replica el verdadero PlayerController ■ Se le llama a BeginPlay ■ Se ejecuta el postlogin de GM y ya podemos usar RPC Arquitectura del videojuego 15 Arquitectura cliente-servidor
  • 16. ● Así funciona la replicación ○ En la práctica el servidor informa del estado de los actores que han cambiado mediante notificaciones (“actualizaciones”) regulares a todos sus clientes ○ Las propiedades (ej. salud), al ser datos, se sincronizan solas, pero las acciones (ej. una explosión), al ser llamadas a procedimientos remotos, se replican sólo si expresamente así lo hacemos (recuerda que no son funciones ni pueden devolver nada) ○ Los PlayerControllers, por ejemplo, sólo se replican en un cliente: el del jugador correspondiente Arquitectura del videojuego 16 Replicación
  • 17. ● Hay componentes de Unreal Engine como CharacterMovement que ya realizan replicación de forma automática ○ Aún así, a un Pawn le podemos preguntar IsLocallyControlled para mostrarlo o no, según sea el que maneja el jugador o sea el de otro jugador ● Las mallas estáticas pueden replicar igual si marcamos Static Mesh Replicate Movement Arquitectura del videojuego 17 Replicación
  • 18. ● Cómo replicar actores en general ○ Cambiando atributos de actor como Net Load on Client (el servidor carga niveles y se ven en los clientes) y Replicates (los cambios del servidor se replican en los clientes) Arquitectura del videojuego 18 Replicación https://docs.unrealengine.com/en-US/Gameplay/Networking/Actors/index.html
  • 19. ● Como vemos, es fácil que todo lo que pasa en el servidor se replique en los clientes… pero ¿y lo que pasa en los clientes? ○ Se notificará al servidor todo lo importante, para que se replique en todos los clientes... y sólo lo “cosmético” será exclusivo del propio cliente ○ Para eso se crea un Custom Event marcando Run on Server y Reliable al que se le llama siempre ○ Para saber si algo se ejecuta en el servidor, o si tengo autoridad sobre un actor, se usan las funciones along with IsServer y HasAuthority Arquitectura del videojuego 19 Replicación
  • 20. ● Siempre hay un jugador, pero podemos crear más (y asignarles controladores) ● En un juego multijugador, aunque sea local es importante respetar el armazón de jugabilidad Arquitectura del videojuego 20 Multijugador local
  • 21. ● Aquí están todos los detalles a comprender Arquitectura del videojuego 21 Multijugador en Blueprints https://docs.unrealengine.com/en-US/Gameplay/Networking/Blueprints/index.html
  • 22. ● Unreal Engine tiene un sistema para probar multijugador Arquitectura del videojuego 22 Pruebas en red https://docs.unrealengine.com/en-US/Gameplay/HowTo/Networking/TestMultiplayer/index.html
  • 23. ● Pueden crearse accesos directos en Windows para lanzar el servidor y los clientes cómoda y rápidamente Arquitectura del videojuego 23 Pruebas en red
  • 24. ● ¿Qué componentes de Unreal Engine hacen falta para un buen personaje protagonista? A. StaticMesh, Pawn y Character B. SkeletalMesh, PlayerController y GameMode C. StaticMesh, Pawn, PawnController D. SkeletalMesh, Character y PlayerController Arquitectura del videojuego 24 Participación
  • 25. Federico Peinado (2019-2022) www.federicopeinado.es Críticas, dudas, sugerencias... * Licencia sólo aplicable al texto original de estas diapositivas