Com que frequência o grande MMORPG atualiza a física? [fechadas]


12

Tanto quanto eu entendo, a maioria dos grandes jogos usa o timestep fixo para ter uma simulação estável.

Em relação ao servidor do jogo , qual "taxa de quadros" eles impõem? Ou, dito de outra maneira, que passo fixo eles tendem a usar?

Eu sei que muitos diriam: "O mais rápido que puderem". Eu gostaria de saber o quão rápido é isso, se você tem experiência direta com o MMORPG estabelecido.


Você não deve prestar muita atenção ao que os outros fazem. O que funciona para outra pessoa também não precisa necessariamente funcionar para você.
Philipp

6
O EVE Online atualiza a simulação uma vez por segundo, mas seu sistema é incomum. Veja a primeira parte deste artigo para obter mais detalhes: themittani.com/features/understanding-eve-online-server-tick
Ross cume

1
Portanto, esta é uma pergunta "pedindo trivialidades sobre os jogos de outras pessoas que já existem" em oposição a uma pergunta sobre o desenvolvimento de um jogo?
21415 Trevor Powell

2
Eu não chamaria isso de trivial - é muito importante. O fato de que alguns jogos podem usar ticks de 1 segundo, que eu desconhecia ou que não usavam física, é muito importante para mim (e deve ser para qualquer desenvolvedor). Ao mesmo tempo, minha resposta a Philipp se deveu à implicação tácita de que eu estava perguntando isso porque queria decidir sobre meus FPSs. Isso não faria sentido, porque meu mecanismo tem muitas limitações e eu já conheço o limite de FPS que posso usar (limites inferior e superior).
Fabio

1
Lembro-me de ler um artigo sobre a Blizzard alterando a velocidade de processamento do servidor WoW para eventos de combate de uma vez a cada 400 MS para "sempre que eles chegam". No entanto, isso não está relacionado à física, pois o WoW realmente não tem muito em termos de física devido à sua idade. Também não consigo encontrar uma fonte para isso.
Nzall

Respostas:


7

O Second Life implementa a física no lado do servidor usando o Havok e bloqueia as atualizações para 45 por segundo.

https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120

As versões anteriores, por volta de 2005-2006, permitiam que as atualizações físicas flutuassem tão alto quanto o servidor permitir. Uma região não complicada, com poucos objetos com script, pode ser executada a 800 atualizações por segundo ... Para obter melhor eficiência e consistência, eles posteriormente a bloquearam em 45.

(No Second Life, a taxa de quadros depende da CPU e da potência gráfica de cada cliente. A precisão do mundo depende do desempenho da rede.)


De fato, isso parece razoável. Descobri até 30 FPS para fazer um trabalho decente se o integrador for bom e a detecção de colisão inteligente o suficiente. Você conhece outros MMOs com física adequada e seus timestaps?
Fabio

2
Aceito como o único a fornecer um exemplo do mundo real, mas todos eram um bom alimento para reflexão. Obrigado rapazes.
Fabio

24

Eu trabalhei em alguns servidores de jogos, incluindo um conjunto deles para um MMO.

Em geral, eles não têm física. Nas poucas situações em que a física é necessária (pulando, principalmente), permitimos que os clientes calculem sua própria física e negamos qualquer coisa que seja muito estranha (jogadores se movendo rápido demais por muito tempo, indo muito mais alto do que deveriam), etc).

Os servidores também normalmente não têm 'timesteps'. Eles normalmente não pensam em "quadros por segundo". Em vez disso, sabemos quando ouvimos falar de alguém pela última vez e o que eles estavam fazendo naquela época, e quando ouvimos falar um pouco mais tarde, ouvimos sobre o que eles estão fazendo agora e, portanto, atualizamos nosso estado interno para corresponder . Não há necessidade de simular rigorosamente tudo do lado do servidor; podemos apenas registrar o que os clientes nos dizem e fazer algumas verificações para garantir que o que os clientes dizem que aconteceu nos pareça plausível.


4
Isso só funcionaria se o ambiente não fizesse nenhuma simulação sem os jogadores logados, certo? Na verdade, eu estava assumindo que geralmente acontecia , mas provavelmente isso não é importante para a maioria dos MMOs, pois não está realmente "vivo". Obrigado, esta foi uma resposta inesperada.
Fabio

2
@Fabio A maioria dos MMOs não faz nada quando não há observadores - até o Ultima Online, que costumava ter uma economia real e viva (e ecologia), deixa-o passar antes de ser lançado (embora não por razões técnicas). Existem jogos em que as coisas acontecem mesmo quando você não joga (por exemplo, Haven e Hearth), mas o truque é que nada acontece até que seja observado - cada item ativo se lembra da última vez em que foi observado e calcula o que aconteceu em Enquanto isso, no momento em que você o vê novamente. Então, em vez de um valor atualizar cada tick, você faz perTick * ticksSinceLastUpdated- simples, eficiente.
Luaan

1
Não me interpretem mal; Servidores MMO geralmente terão tarefas periódicas que eles executam. Verifique se há monstros que precisam ser reaparecidos, considere gerar nós de recursos, faça backup do estado do jogo. Talvez até algo mais chique se o seu jogo tiver alguma atividade processual. Mas não é como a física em que você está executando 'x' vezes por segundo, mesmo quando não há ninguém por perto. Você pode procurar por monstros reprodutores algumas vezes por minuto, no máximo (ou mais provavelmente, tem um programa externo que faz isso e apenas cutuca o servidor para informar que está na hora, para que o próprio servidor possa se concentrar em lidar com solicitações de clientes) .
Trevor Powell

11

Além das outras boas respostas, quero acrescentar o fato de que alguma física geralmente não é dirigida pelo servidor ou mesmo conhecida pelo servidor e é um truque comum para fazer o mundo parecer mais rico sem sobrecarregar a rede ou o servidor. processamento lateral.

Por exemplo, pode haver detritos que você pode chutar no chão ou soprar no vento que interage com outros objetos, ou talvez você possa empurrar cadáveres.

Se a física é puramente decorativa e não afeta o movimento ou a jogabilidade de nenhuma maneira, você pode fazer com que isso aconteça completamente no lado do cliente.

Jogadores diferentes verão as coisas de maneira diferente (por exemplo, se você atirar uma lata no chão e ela voar para longe, outros jogadores podem não ver que podem voar), mas há muitos casos em que isso não importa que a experiência não seja ' o mesmo para todos os jogadores, e ter simulações de física do lado do cliente pode realmente melhorar a aparência do jogo online.


Em alguns jogos, se isso puder voar rápido o suficiente, pode matar alguém. Vi vídeos de jogos de Halo em que alguém é morto por um cone de trânsito impulsionado por uma explosão.
Random832

Se você quiser que a lata afete a jogabilidade, poderá adicioná-la ao mundo da física sincronizada, mas também poderá ter um mundo da física não sincronizada no mesmo espaço! Basicamente, o mundo não sincronizado física pode ser afetada pelo jogador e o mundo da física sincronizado, mas não pode afetá-los de volta (:
Alan Wolfe

3

O EVE Online, um MMO com um único fragmento e até vários milhares de chapas em grandes batalhas espaciais, executa sua física em um tick de 1 Hz, chamado de "destino".

http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/

O chamado "Banho de Sangue de B-R5RB" é a maior luta emergente de jogadores já realizada em um jogo online até o momento ("o conflito de 21 horas envolveu mais de 7.548 caracteres no total e um máximo de 2.670 jogadores no sistema B-R5RB" de uma só vez ", de acordo com https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.