SlideShare una empresa de Scribd logo
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

Más contenido relacionado

Similar a Arquitectura del videojuego

Teoria juegos
Teoria juegosTeoria juegos
Teoria juegos
Mguel
 
Juegos logicos
Juegos logicosJuegos logicos
Juegos logicos
Mguel
 
Presentacion tfm adrian_alonso_gonzalez-light
Presentacion tfm adrian_alonso_gonzalez-lightPresentacion tfm adrian_alonso_gonzalez-light
Presentacion tfm adrian_alonso_gonzalez-light
Adriá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óviles
ADWE 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 Engine
pythoncanarias
 
Producción y proceso de desarrollo
Producción y proceso de desarrolloProducción y proceso de desarrollo
Producción y proceso de desarrollo
Federico Peinado
 
Fase2 Ensamble y mantenimiento UNAD
Fase2 Ensamble y mantenimiento UNADFase2 Ensamble y mantenimiento UNAD
Fase2 Ensamble y mantenimiento UNAD
Jhonatan Florez Obando
 
Droidtick
DroidtickDroidtick
Droidtick
betabeers
 
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
Federico Peinado
 
Unity3D_PARA_MONOS.pptx
Unity3D_PARA_MONOS.pptxUnity3D_PARA_MONOS.pptx
Unity3D_PARA_MONOS.pptx
Evolis3D
 
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
 
Juego de la Oca 3.0
Juego de la Oca 3.0Juego de la Oca 3.0
Juego de la Oca 3.0
MARTAUNED2014
 
Tutorial c# y Video Juegos
Tutorial c# y Video JuegosTutorial c# y Video Juegos
Tutorial c# y Video Juegos
Bernardo Molina Zuluaga
 
Plataforma e interfaz
Plataforma e interfazPlataforma e interfaz
Plataforma e interfaz
Federico Peinado
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365
mihermosaxinita
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365
mihermosaxinita
 
Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365Vmware mquinas-virtuales-19365
Vmware mquinas-virtuales-19365
mihermosaxinita
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localización
Federico Peinado
 
Informe ejecutivo fase 2
Informe ejecutivo fase 2Informe ejecutivo fase 2
Informe ejecutivo fase 2
ensamble 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 a Arquitectura del videojuego (20)

Teoria juegos
Teoria juegosTeoria juegos
Teoria juegos
 
Juegos logicos
Juegos logicosJuegos logicos
Juegos logicos
 
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)
 

Más de Federico Peinado

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
Federico Peinado
 
Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
Federico Peinado
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
Federico Peinado
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
Federico Peinado
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
Federico Peinado
 
Puntos de ruta tácticos
Puntos de ruta tácticosPuntos de ruta tácticos
Puntos de ruta tácticos
Federico Peinado
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
Federico Peinado
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
Federico Peinado
 
Árbol de comportamiento
Árbol de comportamientoÁrbol de comportamiento
Árbol de comportamiento
Federico Peinado
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
Federico Peinado
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
Federico Peinado
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
Federico 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 informadas
Federico Peinado
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
Federico 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 estados
Federico Peinado
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
Federico Peinado
 
Percepción
PercepciónPercepción
Percepción
Federico Peinado
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
Federico Peinado
 
Física y animación
Física y animaciónFísica y animación
Física y animación
Federico 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
 

Más de 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)
 

Último

Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
JuanCarlos695207
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
Carlos Pulido
 
simbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspecciónsimbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspección
HarofHaro
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
JaimmsArthur
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
sebastianpech108
 
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIAMETODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
LuisCiriacoMolina
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
azulsarase
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
raul958375
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
angiepalacios6170
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
BrusCiriloPintoApaza
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
PatoLokooGuevara
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 
Dosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizadaDosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizada
pipex55
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
FICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdf
FICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdfFICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdf
FICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdf
jesus869159
 

Último (20)

Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
 
simbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspecciónsimbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspección
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
 
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIAMETODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 
Dosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizadaDosificacion de hormigon NCH 170 actualizada
Dosificacion de hormigon NCH 170 actualizada
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
FICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdf
FICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdfFICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdf
FICHA TECNICA PRODUCTOS CONGELADOS EMBALAJE.pdf
 

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