Eu não vi nenhum jogo MMO com veículos com física realista e que poderiam atingir alta velocidade, por quê? É por causa das limitações de largura de banda da rede?
O Second Life tem veículos, mas a física é ruim e a velocidade máxima é patética.
Eu não vi nenhum jogo MMO com veículos com física realista e que poderiam atingir alta velocidade, por quê? É por causa das limitações de largura de banda da rede?
O Second Life tem veículos, mas a física é ruim e a velocidade máxima é patética.
Respostas:
Sim e não (mas principalmente, não).
Qualquer jogo MMO tem várias limitações que afetam sua física. O mais importante deles é a latência . Latência é o tempo que um cliente leva para enviar uma solicitação ao servidor e receber uma resposta de volta. Mesmo nas melhores circunstâncias, esse tempo é de 50 a 100 milissegundos. No mundo real, pode chegar a 500 ms. Isso significa que, sempre que um jogador faz algo - como, digamos, gira o volante do carro - ele pode ver o jogo reagir apenas 100 a 500 ms depois.
100 ms é realmente bastante. Qualquer jogo que tenha tanta latência não responderá e 500 ms parecerão impossível de jogar. É por isso que os clientes de jogos empregam muitos truques para mascarar essa latência. Por exemplo, o carro do jogador pode começar a girar no momento em que ele gira o volante, sem esperar pelo servidor. No entanto, esses truques apenas mascaram a latência e nunca podem realmente reduzi-la.
Suponha, por exemplo, que tenhamos dois jogadores em carros dirigindo simultaneamente um para o outro. Cada cliente começará a rodar seu próprio carro imediatamente; mas o carro do outro jogador não liga - porque as informações que mudam de rumo ainda não chegaram ao cliente, devido à latência. Ambos os jogadores dirigem alegremente os carros deles, e então bam! - o servidor percebe que eles realmente colidiram.
Situações como essa não podem ser evitadas. Não importa quais esquemas inteligentes de previsão usamos, onde existem outros jogadores, sempre há uma chance de as coisas darem errado. Em qualquer jogo MMO, cerca de meio segundo que você acabou de ver ainda não aconteceu e pode mudar a qualquer momento. Agora, em jogos de ritmo mais lento, como os tradicionais MMORPGs, meio segundo não é tão longo. Os personagens se movem apenas um metro ou dois durante esse período. No entanto, se estamos falando de corrida de carros em ritmo acelerado, meio segundo é realmente muito tempo! Você pode travar três vezes em meio segundo (-8
Na verdade, um jogo em ritmo acelerado pode funcionar mesmo com essas limitações. Teria alguns momentos desagradáveis, mas enquanto todos os jogadores tivessem boas conexões, seria jogável. É assim que os jogos de corrida multiplayer funcionam. No entanto, há outra limitação do MMO: a contagem de atualizações N-quadrado.
Imagine 10 jogadores jogando simultaneamente. Para que eles se vejam, o servidor deve enviar a todos os jogadores informações sobre todos os outros jogadores. Isso significa, em nosso exemplo, 10x10 = 100 informações para preparar e enviar. Esse é o número de jogadores ao quadrado, daí o "N ao quadrado". Esse número cresce muito rápido, e até os MMORPGs tradicionais começam a se debater quando há muitos jogadores na mesma área. Para nosso jogo imaginário em ritmo acelerado com carros, essas informações precisam ser enviadas muito mais rapidamente do que em um jogo mais lento. E eles provavelmente são maiores - você envia não apenas posições, mas velocidades, acelerações, velocidades angulares etc. Isso significa que qualquer jogo multijogador rápido pode ter apenas um número limitado de jogadores.
Ambos os problemas acima não podem, em princípio, ser resolvidos por software, apenas mascarados até certo ponto. Eles podem ser um pouco reduzidos limitando o número de jogadores - então, por exemplo, um jogo em que carros velozes são usados apenas em casos com número limitado de jogadores provavelmente é possível. Acredito que foi o que a APB fez. Mas um jogo MMO de mundo aberto com carros velozes simplesmente não vai acontecer. Não até termos interfaces de rede com quantum-enforaglement ou algo assim.
Sim.
Você precisa lidar com a latência da rede e sincronizar o estado do jogo pela rede. Quanto mais rápido os carros se movem, mais notável fica a latência da rede. Os jogadores podem colidir com uma parede, porque o cliente do jogo falha ao atualizar o estado do jogo no servidor devido a problemas de rede. O que não é um problema quando os jogadores se movem na velocidade de caminhada ;-)
Um servidor MMO tem mais carga. Um jogo de corrida multiplayer pode funcionar bem com 10 pessoas conectadas, mas pode travar e queimar se o servidor não responder sob carga pesada de centenas de usuários.
A física dos veículos do Second Life é mal implementada. (Isso ainda está vivo?)
O Mod de Garry é praticamente todo físico. Eu não acho que seja um MMO como tal - embora seja compatível com 32 jogadores por servidor - e tenha a física mais realista que eu já vi (não apenas veículos).
Eu acho que não houve um MMO projetado com a física em mente.
Eles tentaram fazer isso em uma grande falha de um jogo chamado boletim de todos os pontos. Bem, o conceito foi ótimo, a execução nem tanto. Carros aleatórios apareceriam do nada. Você dirigia e batia em uma parede que depois se transformava em carro. Eu posso ver isso sendo feito de alguma forma nos próximos cinco anos, embora mais cpu menos gpu.
Vejamos sua referência primeiro.
O próprio GTA tem alguns problemas com o multiplayer, mas isso é de se esperar. Um exemplo é quando a latência transforma seu carro em um pesadelo. Às vezes, os jogadores se matam por causa da latência.
Mas a latência não é o único problema, você não pode executar um MMO apenas com clientes, você precisa de servidores e esses servidores precisam gerenciar a maioria, senão toda a física, para evitar trapaceiros.
Então imagine ter que correr com milhares de jogadores. Imagine também o estresse nas CPUs durante atividades intensivas de física. Você pode compensar um pouco do estresse em GPUs dedicadas . Bullet Physics tem uma implementação que roda na CPU.
Mas para evitar sobrecarga em um servidor, você precisará implementar um mecanismo para lidar com redefinições de zonas dinâmicas, dependendo da densidade dos jogadores. É muito mais importante nesse caso do que em outros MMOs.
É factível. O problema aqui é a necessidade de escalar o jogo para lidar com mais jogadores e executar a instância principal do jogo distribuída entre servidores.
Se você conseguir otimizar sua física, transferir objetos de forma rápida e eficiente entre servidores e encontrar uma maneira de evitar mega multidões (instâncias, por exemplo), poderá fazê-lo com limitações semelhantes às da sua referência e algumas outras devido à natureza do MMO do jogo.
Lembre-se de que você não precisa enviar todas as atualizações de estado do jogo para todos os jogadores o tempo todo; apenas as alterações imediatamente relevantes para o jogador devem ser enviadas constantemente; o restante pode ser enviado a uma taxa mais baixa.