• Nenhum resultado encontrado

Aula 3 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

N/A
N/A
Protected

Academic year: 2021

Share "Aula 3 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos"

Copied!
20
0
0

Texto

(1)

Aula 3

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

(2)

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

Marcelo Henrique dos Santos

Marcelo Henrique dos Santos

Email: marcelosantos@outlook.com

Site: www.marcelohsantos.com.br

(3)

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

Marcelo Henrique dos Santos

Algoritmos distribuídos para

sincronização

(4)

Algoritmos distribuídos

para sincronização

• Um dos maiores problemas encontrados nos jogos multi-jogador é o atraso de transmissão da rede. Isto significa a demora entre a geração de um evento por parte de algum jogador e a disseminação do mesmo para os outros.

(5)

Algoritmos distribuídos

para sincronização

• É indispensável que cada cliente possua uma visão consistente do estado do jogo, ou seja, é necessário um mecanismo para garantir a ordem global dos eventos.

(6)

Algoritmos distribuídos

para sincronização

• Uma grande complicação para a consistência se deve à natureza contínua dos jogos. A ordem na qual os comandos são executados podem criar várias restrições (ex: um jogador que deu um tiro, não pode “resolver” voltar atrás). O sucesso do jogo é totalmente

dependente da

(7)

Algoritmos distribuídos

para sincronização

• Duas classificações de algoritmos são propostas para resolver o problema da sincronização.

Algoritmos Conservadores ou Pessimistas: Não

permite a ocorrência da inconsistência.

Algoritmos Otimistas: Permite a ocorrência da

inconsistência, porém toma medidas para sua correção.

(8)

Algoritmos distribuídos

para sincronização

• Duas classificações de algoritmos são propostas para resolver o problema da sincronização.

Algoritmos Conservadores ou Pessimistas: Não

permite a ocorrência da inconsistência.

Algoritmos Otimistas: Permite a ocorrência da

inconsistência, porém toma medidas para sua correção.

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

(9)

Stop and Wait (Lockstep)

Considerado um algoritmo conservador, o

Stop-and-wait ou Lockstep é, de longe, a técnica mais simples para garantir a consistência. Funciona em esquemas de turnos nos quais nenhum jogador pode avançar para o turno seguinte enquanto todos estiverem no corrente. Este esquema provê uma ordem geral de acontecimentos, pois previne a geração de eventos fora de ordem (todos os eventos do turno K acontecem no turno K).

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

(10)

Stop and Wait (Lockstep)

O método impossibilita a ocorrência de

inconsistências, afinal todos os jogadores estão sempre computando exatamente a mesma informação.

No entanto, não existem garantias do avanço

constante do jogo. O jogador com conexão mais

lenta irá, fatalmente, atrasar os turnos e a interatividade será totalmente prejudicada. A maioria dos jogos FPS deve funcionar como uma simulação constante com baixa latência, sendo assim, este tipo de algoritmo acaba se tornando complicado para estes jogos.

(11)

Time Warp e Algoritmo

de Buckets

O Time Warp é considerado um algoritmo otimista. A abordagem é, ao invés de impedir que o erro ocorra (conservadorismo), detectar e corrigir quaisquer diferenças nos estados do jogo.

Os algoritmos otimistas executam eventos ANTES de saberem ao certo que nenhum evento anterior pode chegar e, se erram, reparam as inconsistências.

Este tipo de algoritmo se comporta bem melhor em situações interativas e contínuas.

(12)

Time Warp e Algoritmo

de Buckets

A sincronização Time Warp trabalha utilizando um snapshot de cada estado antes de cada execução (snapshot de contexto de execução) e executa um rollback para um estado anterior caso algum evento anterior ao último executado seja recebido.

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

(13)

Time Warp e Algoritmo

de Buckets

(14)

Time Warp e Algoritmo

de Buckets

O rollback restaura o estado do snapshot anterior ao evento que deveria ter sido executado (não foi devido ao atraso), executa-o e, posteriormente, executa todos os outros eventos novamente.

O problema da sincronização Time Warp é que ela requer uma máquina rápida e muita memória.

Afinal, é necessário um snapshot para cada mensagem e as mensagens costumam chegar em uma frequência muito alta (uma a cada 30 milissegundos em média, dependendo do jogo).

(15)

Time Warp e Algoritmo

de Buckets

Manter um “histórico” do jogo pode sair caro.

Uma otimização para remover este gargalo é capturar o snapshot periodicamente, ao invés de fazê-lo a cada mensagem.

Porém os rollbacks acabam perdendo um pouco de precisão. Outra complicação para os rollbacks é que o Time Warp assume que eventos geram novos eventos diretamente.

Se um evento A gera o evento B, o cancelamento de A (eventos são cancelados no rollback através de anti-messages) provocará o cancelamento de B.

(16)

Time Warp e Algoritmo

de Buckets

Eventualmente, uma geração encadeada de anti-messages pode ocorrer, fazendo com que a rede e o jogo percam tempo “corrigindo” ao invés de “executando” o jogo.

Sem contar o aspecto pouco amigável do rollback para o jogador.

Para compensar um pouco este fato, o algoritmo acelera a aplicação até chegar no estado mais avançado (antes do rollback).

(17)

Time Warp e Algoritmo

de Buckets

Para completar, Time Warp executa o rollback imediatamente após detectar um comando atrasado. Por um lado isso é bom, pois faz com que os rollbacks sejam pequenos.

Por outro lado, acaba causando a execução de excessivos rollbacks caso ocorram muitos atrasos.

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

(18)

Conclusão

Não existem técnicas boas ou ruins, existem técnicas adequadas ou não para os diferentes tipos de jogos. Implementar um algoritmo de Time Warp para um jogo de xadrez ou de truco online é como matar uma formiga com um canhão.

Há pouco tempo atrás, as conexões via modem tornavam muitos jogos, principalmente os FPSs, inviáveis.

A solução acabava sendo reunir as máquinas em algum lugar e montar uma LAN (Local Area Network).

(19)

Conclusão

A chegada da banda larga e a disseminação das LAN Houses proporcionaram uma melhora considerável no que diz respeito à qualidade.

Em virtude da “profissionalização” dos jogadores e da modernização dos jogos (evolução da tecnologia) este campo tende ao desenvolvimento. É um prato cheio para os apaixonados por jogos multi-player e por computação.

(20)

Bibliografia

Anibolete, Tulio Jorge A. N. S. Algoritmos Distribuídos em Jogos Multi-Usuário. Monografia apresentada na PUC - Rio de Janeiro no ano de 2006.

TECNOLOGIA EM JOGOS DIGITAIS

JOGOS MASSIVOS DISTRIBUÍDOS

Referências

Documentos relacionados

Essa versão não altera nenhuma anterior Este medicamento é indicado quando se tem dificuldade para expectorar e há muita secreção densa e viscosa, tais como: bronquite crônica e

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

Estudos da neurociência sustentam que a música e a linguagem são duas formas de comunicação humana que estão próximas em se tratando de processamento mental e

Se no cadastro da administradora, foi selecionado na aba Configurações Comissões, para que as comissões fossem geradas no momento da venda do contrato, já é

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos