Tipos de Arquitecturas usadas en MMOG

Tipos  de  Arquitecturas     usadas  en  MMOG   Marco  A.  Arias  Figueroa   IIC2523  –  Sistemas  Distribuídos   Basado  en  paper  A  Survey  on  M

0 downloads 132 Views 564KB Size

Recommend Stories


Anotaciones Usadas en Este Manual
Manual de usuario Anotaciones Usadas en Este Manual • Indicaciones sobre seguridad La documentación y el proyector utilizan símbolos para mostrar có

Anotaciones Usadas en Este Manual
Manual de usuario Anotaciones Usadas en Este Manual • Indicaciones sobre seguridad La documentación y el proyector utilizan símbolos para mostrar có

Arquitecturas avanzadas
FLYNN. SISD. SIMD. MISD. MIMD. Ordenadores Paralelos. Multiproceso. UMA. NUMA. COMA. Multicomputadores. Mainframes. Supercomputadoras

CLOUDIFICACIÓN DE ARQUITECTURAS
CLOUDIFICACIÓN DE ARQUITECTURAS Autor: Isidre Clavero González Fecha: 01/10/2013 MEDIANTE METAMODELOS Y HERRAMIENTAS DE AUTOMATIZACIÓN DE DESPLIEGUE

Story Transcript

Tipos  de  Arquitecturas     usadas  en  MMOG   Marco  A.  Arias  Figueroa   IIC2523  –  Sistemas  Distribuídos  

Basado  en  paper  A  Survey  on  MMOG  System  Architectures  

Que  son  los  MMOG   •  Mul6  Massive  Online  Games   •  Juegos  en  donde  muchas  personas  juegan   simultáneamente  conectadas  a  red.   •  Se  simula  un  mundo  completo:   ▫  Cambios  que  realiza  una  persona,  lo  ven  las  demás   ▫  Se  debe  mantener  consistencia   ▫  Se  manejan  muchos  datos   ▫  Ocurren  eventos  en  6empo  real  

Mercado  de  los  MMOG  

Problemas  a  tratar   •  ¿Cómo  manejamos  la  consistencia?   •  ¿Qué  arquitectura  u6lizamos  para  los  datos?,   ¿centralizada,  descentralizada?   •  ¿Cómo  mantenemos  el  estado  del  juego?   •  ¿Cómo  se  realizan  los  updates?   •  ¿Cómo  mantener  la  persistencia?   •  ¿Cómo  lograr  que  el  gameplay  sea  lo  más  fluido   posible?  

Tags  principales   •  Aumentan  los  datos  a  guardar   ▫  Necesario  guardarlo  en  la  persona  correcta  

•  Aumenta  la  cantidad  de  jugadores   ▫  Jugadores  no  quieren  tener  delays  ni  lags  

•  Consistencia  en  el  juego   ▫  Lo  que  ocurre  con  un  jugador  cambia  los  datos  del   entorno  y  a  los  demás  jugadores  

Tres  arquitecturas   1.  Arquitectura  centralizada   2.  Arquitectura  descentralizada   3.  Arquitectura  híbrida  

1.-­‐  Centralizada   •  Nodo  central  al  que  se  conecta  el  resto  de  los   nodos   •  Unidad  lógica  simple  central   •  Se  puede  controlar  bien  la  detección  de  fallas  del   sistema   •  En  MMOG,  un  computador  hereda  todas  las   características  del  mundo   ▫  Si  este  computador  se  cae,  todo  el  mundo  se  caerá  

2.-­‐  Descentralizada   •  No  se  depende  de  un  nodo  central   •  Múltiples  unidades  lógicas  independientes,  con   igual  funcionalidad   •  Existen  los  Supernodos:   ▫  Transmiten  los  datos  a  los  nodos  restantes  del   sistema  

•  En  MMOG,  los  supernodos  son  computadores  que   sirven  de  host  del  mundo   ▫  También  puede  ser  un  cliente  

3.-­‐  Híbrida   •  Combina  elementos  de  arquitecturas  centralizadas   y  descentralizadas   •  Arquitecturas  multicapa  con  una  unidad  lógica   central.   ▫  Unidad  lógica  central  se  comunica  con  los   supernodos   ▫  Supernodos  se  conectan  al  resto  de  nodos  

Diferencia  de  híbrida  con  centralizada  y   descentralizada   •  Centralizada:   ▫  Importantes  funciones,  como  update  del  sistema  y   seguimiento  de  datos,  son  responsabilidad  de  los   supernodos.   ▫  No  sólo  un  nodo  central,  sino  una  unidad  lógica  

•  Descentralizada:   ▫  Hay  un  punto  central  de  fallo     Por  ejemplo  si  la  unidad  central  es  una  DB  y  los   supernodos  se  conectan  a  ella.    

Ejemplos  de  las  3  arquitecturas  

Núcleos  fundamentales  en  los  MMOG   1.  Mensajería   2.  Manejo  de  recursos   3.  Persistencia  de  los  datos   4.  Administración  del  estado  

1.-­‐  Mensajería   •  Traspaso  de  mensajes  entre  nodos  de  la  red   •  En  MMOG,  el  tiempo  de  traspaso  de  mensajes  es   esencial   •  El  orden  de  llegada  de  los  datos  debe  ser   consistente   •  Dos  aspectos  fundamentales:   ▫  Entrega  de  datos   ▫  Orden  de  los  datos  

1.-­‐  Mensajería   •  Entrega  de  datos:   ▫  En  centralizados,  como  WoW,  existen  problemas  en   la  comunicación  cliente-­‐servidor  cuando  hay  mucha   actividad  de  los  usuarios  a  la  vez     ▫  Problema  bien  recurrente  en  arquitecturas   centralizadas  

•  Orden  de  los  datos:   ▫  Problema  poco  recurrente  en  centralizadas   ▫  Problema  muy  común  en  arquitecturas   descentralizadas  e  híbridas,  debido  a  la  variedad  de   fuentes  

2.-­‐  Manejo  de  recursos     •  Muchos  datos  a  repartir   •  Cómo  los  servidores  controlan  la  carga  de  datos   acumulada  en  varios  clientes   •  Dos  aspectos  fundamentales:   ▫  Aprovisionamiento  de  los  recursos   ▫  Asignación  de  los  recursos    

2.-­‐  Manejo  de  recursos     •  Aprovisionamiento  de  los  recursos:   ▫  Descentralizadas  escalan  dinámicamente  los  datos   acorde  a  la  demanda     No  todos  los  datos  a  la  vez  

▫  Solución  de  centralizadas  poco  escalable  

•  Asignación  de  recursos:   ▫  Cada  jugador  necesita  tener  conocimiento  de  los   demás       Provoca  problemas  de  latencia  

▫  Cómo  asignamos  recursos  para  que  un  jugador  no  se   comunique  con  todos  los  demás  

3.-­‐  Persistencia  de  los  datos   •  Cada  usuario  cambia  su  estado  en  cada  juego   •  Se  requiere  mantener  la  persistencia  de  los  datos  a   los  cambios  y  cuando  el  jugador  hace  log  off   •  Dos  aspectos  fundamentales:   ▫  Datos  estáticos   ▫  Datos  dinámicos  

3.-­‐  Persistencia  de  los  datos   •  Datos  estáticos   ▫  Datos  que  no  son  in\luenciados  por  el  jugador  desde   dentro  del  juego.  (Ej  password,  username,  etc)   ▫  Deben  ser  guardados  en  lugares  especial  y  ser   accesible  sólo  con  permisos   ▫  Problemas  con  diferentes  versiones     Jugadores  deben  actualizar  para  no  perder   consistencia  de  versiones  

3.-­‐  Persistencia  de  los  datos   •  Datos  dinámicos   ▫  Datos  que  son  in\luenciados  desde  dentro  del  juego.       Las  acciones  del  jugador  hacen  que  estos  datos  varíen   (ej  los  stats)  

▫  Diferentes  datos  dinámicos     Cambios  de  posición,  de  NPC,  interacción  con  el   ambiente  e  interacción  entre  jugadores    

▫  Cambios  de  posición  deben  enviarse  a  todos  los   clientes  cercanos   ▫  Problemas  de  sincronización  de  datos  que  se  deben   manejar  

4.-­‐  Administración  del  estado     •  El  estado  del  juego  debe  ser  el  mismo  para  todos   ▫  Estado  del  juego  manejado  muy  precisamente  da   problemas  de  lentitud   ▫  Sólo  una  parte  del  juego  se  intercambia  entre   jugadores  

•  Pueden  existir  cheats  que  di\icultan  el  juego   •  Dos  aspectos  fundamentales:   ▫  Particionamiento  de  los  datos   ▫  Prevención  de  cheats  

4.-­‐  Administración  del  estado   •  Particionamiento  de  los  datos:   ▫  Hacer  updates  a  subpartes  del  juego  y  no  al  juego   completo     Mucha  cantidad  de  recursos  usada  

▫  Partición  simple:       No  requiere  mucha  herramienta  computacional     No  reduce  el  trá\ico  de  red  de  manera  óptima  

▫  Partición  compleja     Requiere  una  fuerte  herramienta  computacional     Reduce  el  trá\ico  de  red  signi\icativamente  

4.-­‐  Administración  del  estado   •  Prevención  de  cheats   ▫  Diferentes  cheats  que  molestan  la  interacción  en  el   juego     Cambio  de  respuesta  en  el  juego     Alterando  la  programación  del  mundo  (ejemplo  cruzar   paredes)     Cambios  de  protocolo,  alterar  el  orden  de  mensajes   para  tener  ventaja  

▫  No  pueden  ser  siempre  solucionados  por  el  tipo  de   arquitectura  

Como  enfrentar  estos  problemas    

1a.-­‐  Entrega  de  mensajes   •  Descentralizada:   ▫  Descentralizado  sin  mensajes  ACK,  sino  timestamp   para  ver  la  diferencia  entre  ellos   ▫  Se  baja  el  delay,  pero  muchos  mensajes  deben  llegar   para  saber  que  se  perdió  uno  

•  Híbrida:   ▫  El  mundo  es  dividido  en  diferentes  áreas,  y  existen   updates  locales   ▫  Cada  supernodo  se  encarga  de  su  área  local   ▫  Se  centralizan  en  AOI  (área  de  interés)  

1b.-­‐    Orden  de  los  datos     •  Descentralizada:   ▫  Cada  player  envía  su  update  a  otro,  por  lo  cual  sólo   viene  de  1  fuente     Orden  local  

▫  No  hay  control  del  game  state  y  provoca  cheating  

•  Híbrida:   ▫  Orden  es  un  problema  menor,  dada  la  jerarquía     La  jerarquía  determina  el  orden  de  los  mensajes  

▫  Sólo  hay  con\lictos  entre  los  supernodos  

2a.-­‐    Aprovisionamiento  de  los  recursos         •  WoW  utiliza  diferentes  servidores  en  que  cada  uno   aprovisiona  diferentes  recursos   ▫  Solución  muy  cara  

•  Se  propone  un  modelo  que  ve  cuantos  recursos   son  utilizados  y  predice  futuros  requerimientos   ▫  Se  propone  un  framework  en  desarrollo  

•  Solución  descentralizada  es  limitada  en  cómo  cada   cliente  aporta  al  estado  del  juego   ▫  Se  ha  propuesto  un  server  dedicado  en  cada  usuario,   capaz  de  asumir  una  función  particular    

2b.-­‐  Asignación  de  recursos     •  Centralizado  usa  sólo  un  servidor  para  un  mundo   ▫  EVE  Online  permite  hasta  1200  jugadores   ▫  Quake  II  usa  un  sistema  central  que  monitorea    y   asigna  recursos  según  lo  necesario  

•  En  descentralizada  es  di\ícil  tener  nodos  cliente   que  administren  los  recursos   ▫  Se  han  propuesto  estrategias  P2P  para  la  asignación   de  recursos.  

•  En  sistemas  híbridos  usan  servidores  distribuídos   con  los  recursos  del  sistema.  

3a.-­‐  Datos  está6cos     •  En  centralizadas  es  preferible  no  mandar  muchos   datos   ▫  Guardar  datos  en  los  clientes  reduce  la  cantidad  de   datos  que  deben  ser  enviados  

•  Se  ha  propuesto  sistemas  P2P  para  MMOG   centralizados  que  separan  los  datos  estáticos  del   \lujo  de  datos  normal   ▫  Método  adoptado  en  WoW  

3b.-­‐  Datos  dinámicos   •  Solución  centralizada:  Estructura  de  datos  de  2   capas   ▫  Primera  capa  con  todos  los  objetos   ▫  Segunda  capa  con  objetos  mutables  

•   Guardar  la  posición  es  un  desa\ío  en  un  MMOG   ▫  Se  propone  una  solución  donde  sólo  se  envía  el   update  si  se  cruza  un  umbral  de  distancia  

•  En  descentralizada  el  foco  es  mantener  la   consistencia  de  las  posiciones   ▫  No  se  puede  mantener  un  centro  de  datos  

4a.-­‐  Par6cionamiento  de  los  datos         •  Una  solución  bien  usada  son  los  shards   ▫  Un  jugador  se  conecta  a  un  shard  e  interactúa  con  la   gente  que  está  dentro  de  él.  Tiene  un  límite  de   capacidad  

•  Otra  estrategia  es  dividir  el  mundo  en  diferentes   zonas   ▫  Aplicable  a  las  3  arquitecturas   ▫  Problema  cuando  hay  muchos  jugadores  en  el   mismo  lugar  

Prevención  de  cheats   •  En  descentralizadas  se  usa  el  Lockstep  protocol   ▫  El  juego  se  divide  en  frames,  donde  cada  frame  es   una  acción  por  jugador  

•  Otra  solución  es  dividir  el  mundo  en  subáreas   ▫  En  cada  subárea  se  le  asigna  a  un  nodo  responsable  

•  Solución  en  híbridos  es  mantener  un  game  state   en  un  nodo  central   ▫  Cada  cliente  se  asocia  a  una  zona  regional  

Conclusiones   •  MMOG  tiene  múltiples  desa\íos  que  deben  ser   resueltos   •  Los  4  dominios  concentran  los  aspectos   fundamentales  de  los  MMOG   •  Una  misma  arquitectura  tiene  muchas  ventajas  y   desventajas  dependiendo  de  la  situación   •  Dependiendo  del  juego,  se  debe  adaptar  a  cada   fase  de  él  un  enfoque  diferente  

¿Preguntas?  

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.