SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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
 
Clase 9 sistemas
Clase 9 sistemasClase 9 sistemas
Clase 9 sistemas
Mguel
 
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
 
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
 
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)
 

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

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
DavidRojas870673
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 

Último (20)

FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 

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