SlideShare uma empresa Scribd logo
Estudo de caso: Starsiege: Tribes
Prof. Fernando Vieira da Silva, MSc.
Starsiege: Tribes
● Lançado em 1998
● Suportava até 128 jogadores em LAN/Internet
Starsiege: Tribes
Starsiege: Tribes
Starsiege: Tribes
Limitações: Rede
● A maioria dos jogadores usava conexão
discada...
● Modems com velocidade de até 28.8 kbps
● Alta latência...
Imagem meramente ilustrativa
Escolha do protocolo de
comunicação
● Tribes usa um protocolo sem garantias (UDP)
Protocolo sem garantias (UDP)
Escolha do protocolo de
comunicação
● Desenvolvedores do Tribes separaram
requisitos em 4 categorias:
● Dados sem garantia;
● Dados garantidos (tanto chegada quando
ordem). Ex: sinalizar quando jogador disparou
um tiro;
Escolha do protocolo de
comunicação
● Desenvolvedores do Tribes separaram
requisitos em 4 categorias:
● Dados “Mais recentes”: Somente a
informação mais recente é importante. Ex: Hit
points de um jogador
● Dados garantidos e rápido: Dados que
devem chegar o mais rápido possível. Ex:
movimentação de um jogador
Topologia de rede
● Tribes usa um modelo cliente-servidor
● A implementação de rede foi dividida em
camadas:
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Módulo de Pacotes de Plataforma
● Camada multi-plataforma
● Encapsula chamadas a API de sockets
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Gerenciador de Conexão
● Abstrai a conexão entre dois computadores na
rede
● Garante que um pacote foi entregue
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Gerenciador de Stream
● Gerencia a largura de banda e encaminha
pacotes para o gerenciador de conexão enviar
● Pode decidir usar o mesmo pacote para
transmitir dados vindos de camadas diferentes
acima
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Gerenciador de Eventos
● Mantém uma fila de eventos (ex: jogador atirou)
● Prioriza os eventos e tenta colocar o máximo de eventos de alta
prioridade em um mesmo pacote
● Garante a entrega de pacotes de eventos (dependendo do tipo
de evento)
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Gerenciador de Ghost
●
Replica objetos dinâmicos relevantes para os
clientes
● Prioriza objetos que precisam ser transmitidos
e que podem ser transmitidos.
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Gerenciador de
Movimento●
Transmite o movimento do jogador o mais
rápido possível
● Cada cliente envia seus movimentos para o
servidor, que replica para os demais clientes
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de
Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Outros
●
Há diversos outros módulos no Tribes
● Ex: gerenciamento de objetos potencialmente
estáticos, como veículos.
Camada de Simulação de Jogo
Gerenciador
de Ghost
Gerenciador
de Movimento
Gerenciador
de Eventos
Outros...
Gerenciador de Stream
Gerenciador de Conexão
Módulo de Pacotes da Plataforma
Fim!

Mais conteúdo relacionado

Semelhante a Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"

IntroduçãO Ao Xna Campus Party
IntroduçãO Ao Xna  Campus PartyIntroduçãO Ao Xna  Campus Party
IntroduçãO Ao Xna Campus Party
José Farias
 
Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Ginga - OpenTDC 2009
Ginga - OpenTDC 2009
Bruno Ghisi
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
elliando dias
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Dalton Martins
 
S2 B 2007 Infra Aula 01 V1.00
S2 B 2007   Infra   Aula 01 V1.00S2 B 2007   Infra   Aula 01 V1.00
S2 B 2007 Infra Aula 01 V1.00
doctorweb
 

Semelhante a Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes" (20)

Hardware
HardwareHardware
Hardware
 
Cap06a
Cap06aCap06a
Cap06a
 
Camada de enlace parte1
Camada de enlace   parte1Camada de enlace   parte1
Camada de enlace parte1
 
Transferência Gerenciada de Arquivos Corporativos
Transferência Gerenciada de Arquivos CorporativosTransferência Gerenciada de Arquivos Corporativos
Transferência Gerenciada de Arquivos Corporativos
 
IPv4_2004.ppt
IPv4_2004.pptIPv4_2004.ppt
IPv4_2004.ppt
 
IntroduçãO Ao Xna Campus Party
IntroduçãO Ao Xna  Campus PartyIntroduçãO Ao Xna  Campus Party
IntroduçãO Ao Xna Campus Party
 
Análise de Tráfego TCP/IP
Análise de Tráfego TCP/IPAnálise de Tráfego TCP/IP
Análise de Tráfego TCP/IP
 
Problemas de Rede em Jogos Multi-jogadores
Problemas de Rede em Jogos Multi-jogadoresProblemas de Rede em Jogos Multi-jogadores
Problemas de Rede em Jogos Multi-jogadores
 
Segurança em Jogos Multi-jogadores
Segurança em Jogos Multi-jogadoresSegurança em Jogos Multi-jogadores
Segurança em Jogos Multi-jogadores
 
XMPP
XMPPXMPP
XMPP
 
Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores
 
Segurança de sistema firewall
Segurança de sistema   firewallSegurança de sistema   firewall
Segurança de sistema firewall
 
Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Ginga - OpenTDC 2009
Ginga - OpenTDC 2009
 
Apresentação da tese - Autenticação para SNMP
Apresentação da tese - Autenticação para SNMPApresentação da tese - Autenticação para SNMP
Apresentação da tese - Autenticação para SNMP
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Skype
SkypeSkype
Skype
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
 
S2 B 2007 Infra Aula 01 V1.00
S2 B 2007   Infra   Aula 01 V1.00S2 B 2007   Infra   Aula 01 V1.00
S2 B 2007 Infra Aula 01 V1.00
 

Mais de Fernando Vieira da Silva

Mais de Fernando Vieira da Silva (10)

Introdução a jogos Multi-jogadores
Introdução a jogos Multi-jogadoresIntrodução a jogos Multi-jogadores
Introdução a jogos Multi-jogadores
 
Jogos Multi-jogadores: Revisão sobre Redes de computadores
Jogos Multi-jogadores: Revisão sobre Redes de computadoresJogos Multi-jogadores: Revisão sobre Redes de computadores
Jogos Multi-jogadores: Revisão sobre Redes de computadores
 
Arquitetura ponto-a-ponto para jogos Multi-jogadores
Arquitetura ponto-a-ponto para jogos Multi-jogadoresArquitetura ponto-a-ponto para jogos Multi-jogadores
Arquitetura ponto-a-ponto para jogos Multi-jogadores
 
Escalabilidade em Jogos Multi-jogadores
Escalabilidade em Jogos Multi-jogadoresEscalabilidade em Jogos Multi-jogadores
Escalabilidade em Jogos Multi-jogadores
 
Introdução à Unity High Level API (HLAPI)
Introdução à Unity High Level API (HLAPI)Introdução à Unity High Level API (HLAPI)
Introdução à Unity High Level API (HLAPI)
 
Tratamento de latência em jogos Multi-jogadores
Tratamento de latência em jogos Multi-jogadoresTratamento de latência em jogos Multi-jogadores
Tratamento de latência em jogos Multi-jogadores
 
Instruções para Anotações de Emoções em Tweets
Instruções para Anotações de Emoções em TweetsInstruções para Anotações de Emoções em Tweets
Instruções para Anotações de Emoções em Tweets
 
Identifying Emotions in Tweets related to the Brazilian Stock Market
Identifying Emotions in Tweets related to the Brazilian Stock MarketIdentifying Emotions in Tweets related to the Brazilian Stock Market
Identifying Emotions in Tweets related to the Brazilian Stock Market
 
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
 
Palestra otimização em linguagem c - e-stude.com
Palestra otimização em linguagem c - e-stude.comPalestra otimização em linguagem c - e-stude.com
Palestra otimização em linguagem c - e-stude.com
 

Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"

  • 1. Estudo de caso: Starsiege: Tribes Prof. Fernando Vieira da Silva, MSc.
  • 2. Starsiege: Tribes ● Lançado em 1998 ● Suportava até 128 jogadores em LAN/Internet Starsiege: Tribes
  • 4. Limitações: Rede ● A maioria dos jogadores usava conexão discada... ● Modems com velocidade de até 28.8 kbps ● Alta latência... Imagem meramente ilustrativa
  • 5. Escolha do protocolo de comunicação ● Tribes usa um protocolo sem garantias (UDP) Protocolo sem garantias (UDP)
  • 6. Escolha do protocolo de comunicação ● Desenvolvedores do Tribes separaram requisitos em 4 categorias: ● Dados sem garantia; ● Dados garantidos (tanto chegada quando ordem). Ex: sinalizar quando jogador disparou um tiro;
  • 7. Escolha do protocolo de comunicação ● Desenvolvedores do Tribes separaram requisitos em 4 categorias: ● Dados “Mais recentes”: Somente a informação mais recente é importante. Ex: Hit points de um jogador ● Dados garantidos e rápido: Dados que devem chegar o mais rápido possível. Ex: movimentação de um jogador
  • 8. Topologia de rede ● Tribes usa um modelo cliente-servidor ● A implementação de rede foi dividida em camadas: Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 9. Módulo de Pacotes de Plataforma ● Camada multi-plataforma ● Encapsula chamadas a API de sockets Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 10. Gerenciador de Conexão ● Abstrai a conexão entre dois computadores na rede ● Garante que um pacote foi entregue Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 11. Gerenciador de Stream ● Gerencia a largura de banda e encaminha pacotes para o gerenciador de conexão enviar ● Pode decidir usar o mesmo pacote para transmitir dados vindos de camadas diferentes acima Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 12. Gerenciador de Eventos ● Mantém uma fila de eventos (ex: jogador atirou) ● Prioriza os eventos e tenta colocar o máximo de eventos de alta prioridade em um mesmo pacote ● Garante a entrega de pacotes de eventos (dependendo do tipo de evento) Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 13. Gerenciador de Ghost ● Replica objetos dinâmicos relevantes para os clientes ● Prioriza objetos que precisam ser transmitidos e que podem ser transmitidos. Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 14. Gerenciador de Movimento● Transmite o movimento do jogador o mais rápido possível ● Cada cliente envia seus movimentos para o servidor, que replica para os demais clientes Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 15. Outros ● Há diversos outros módulos no Tribes ● Ex: gerenciamento de objetos potencialmente estáticos, como veículos. Camada de Simulação de Jogo Gerenciador de Ghost Gerenciador de Movimento Gerenciador de Eventos Outros... Gerenciador de Stream Gerenciador de Conexão Módulo de Pacotes da Plataforma
  • 16. Fim!