Introdução
Nosso objetivo é democratizar o desenvolvimento de jogos, fornecendo a educação e as ferramentas necessárias para criar e operar experiências multijogador. Neste guia, abordaremos os oito fatores de desenvolvimento de jogos multijogador que você precisa considerar.
Os 8 fatores principais do desenvolvimento de jogos multijogador
Toda solução multijogador tem compensações que devem ser levadas em conta no seu plano de desenvolvimento. Para criar sua experiência multijogador, você deve primeiro entender os objetivos do jogo para cada fator.
As latências da rede podem variar de acordo com a distância e o desempenho das redes ao longo das rotas de transmissão. Quando estiver jogando com outras pessoas, você terá que esperar que os dispositivos delas enviem informações, assim como elas esperam que você faça o mesmo.
Como os diferentes tipos de jogos têm requisitos diferentes quanto à rapidez do andamento do jogo, cada jogo precisa estabelecer o nível de tolerância à latência da rede. Às vezes, não há problema em ter eventos de sincronização um pouco mais lentos, pois é possível ocultar a latência com técnicas como previsão e reconciliação.
Os jogos para um jogador são bem executados e divertidos para uma pessoa, mas como você pode saber quantos jogadores seu jogo pode suportar ao mesmo tempo? Tecnicamente, as conexões são limitadas pelo modelo de rede, em que o cliente-servidor é capaz de lidar com mais conexões simultâneas mais facilmente do que o ponto a ponto.
Quanto mais jogadores você tiver em um jogo, maior será a probabilidade de contabilizar mais atividades de rede que precisem ser sincronizadas. Assim como é possível reduzir o nível de detalhes dos ativos para manter a taxa de quadros, também é possível alterar o nível de informações transmitidas entre os pares para dar suporte a mais jogadores.
Nos jogos, não há problema em fazer com que certas partes da simulação não fiquem sincronizadas entre todos os jogadores quando esses elementos não são essenciais para o resultado do jogo. Essa é uma otimização, pois os dispositivos dos jogadores e as máquinas de servidores dedicados têm recursos finitos disponíveis.
Outras atenuações que ajudam a reduzir a escala de simulação sincronizada incluem: Reduzir a frequência de atualização de dados do host, dividir o mundo em áreas atualizáveis separadamente e fazer com que os jogadores se inscrevam para receber atualizações apenas sobre os assuntos de seu interesse.
As necessidades de precisão de seu jogo afetam todos os sistemas relacionados ao cálculo do estado mundial e de seus atores. Se você quiser resultados mais precisos, precisará de mais recursos para lidar com essas operações e com o maior espaço de memória.
No modo multijogador, a precisão também influencia a sobrecarga do espaço ocupado pela rede e a velocidade de execução do servidor.
Nem tudo precisa de precisão, por isso é importante separar o que é importante para o conjunto de regras e o resultado do jogo. Para o restante, você pode usar aproximações de um grau menor para economizar no desempenho geral.
Há muitas considerações a serem feitas ao escolher o modelo certo para seu jogo e sua base de jogadores.
Os desenvolvedores individuais e independentes costumam optar por soluções sem servidor mais acessíveis, mas tenha cuidado, pois o aprisionamento (abaixo) e o potencial de aumento de fraudes podem restringir seu potencial geral de ganhos com o jogo que você criou.
Ao usar serviços para melhorar a conectividade, a capacidade do servidor e a latência, entender que os serviços geralmente cobram taxas de consumo com base no pico de usuários simultâneos ajuda a entender quais são as melhores opções para o seu título.
O desenvolvimento de vários jogadores pode ser assustador devido à necessidade de resolver graus de complexidade quando se trata de diferentes modelos de rede, total de jogadores, intervalo de latência e projeto de uma boa escala de simulação sincronizada.
Existem soluções para esses problemas, mas nem todas são fáceis de usar ou entender, portanto, é importante que os estúdios avaliem tudo adequadamente primeiro para que não seja necessário recorrer a especialistas em rede posteriormente.
As soluções que vêm com excelente documentação, exemplos fáceis de seguir e uma comunidade de suporte ativa facilitam muito seu esforço para superar essas complexidades inerentes.
Quando você reúne jogadores para jogar juntos, alguns se sentirão tentados a adulterar o jogo ou o tráfego de rede para obter uma vantagem injusta, enganar o sistema ou simplesmente criar caos e desordem.
Os jogos casuais e do tipo cooperativo não têm tanto incentivo para a trapaça, mas os jogos competitivos são frequentemente alvo de jogadores perturbadores. Os recursos de atenuação de trapaças são importantes para combater essas ações e proteger a reputação do seu jogo.
Qualquer informação na máquina local de um cliente provavelmente será explorada eventualmente, portanto, os tipos de jogos vulneráveis a trapaças devem considerar a hospedagem da lógica do servidor em hardware que não seja do cliente.
O último fator a ser considerado é o lock-in, ou seja, a limitação de quaisquer opções futuras após a tomada de decisão. Se você escolher um modelo de rede, pode ser muito complicado converter para outros se e quando o jogo precisar de recursos mais avançados (como gerenciamento de trapaças).
A escolha de uma solução que seja mais fácil de atualizar é importante para o sucesso futuro de muitos jogos. Por exemplo, os modelos peer-to-peer quase sempre exigem uma reescrita completa para mudar para alguma forma de modelo cliente-servidor. No entanto, a mudança entre as variantes cliente-servidor é mais viável se você planejar com antecedência o design do jogo.