Interação entre cliente e servidor

Essa é uma análise básica do que acontece quando um grupo de personagens ataca um monstro em um MMORPG típico:


Clique para avançar

  1. O grupo se aproxima do mob. Os clientes do grupo informam ao servidor onde eles estão e o servidor diz aos clientes q­ual monstro está por perto. O cliente acessa arquivos relacionados à aparência e ao movimento do monstro, que estão guardados no disco rígido do computador.
  2. Um tank, ou um personagem designado para ser capaz de absorver muitos danos, ataca o mob. O cliente do tank envia uma mensagem ao servidor, informando o ataque. O servidor exibe essa informação para os clientes do resto do grupo.
  3. Os negociadores de danos do grupo, conhecidos como danos por segundo (DPS) ou nukes, atacam o mob. Seus clientes informam o servidor das ações que eles realizam. O servidor calcula a quantidade de dano causado e sofrido e informa cada cliente.
  4. O curandeiro do grupo promove a cura dos membros do grupo. O cliente do curandeiro informa o servidor de quais ações de cura estão sendo realizadas e a quem são dirigidas. O servidor calcula quanta cura é realizada e repassa a informação para o resto do grupo.
  5. O protocolo de inteligência aritificial (AI) do mob determina como ele se comporta durante a batalha, e o servidor repassa essa informação aos clientes. Se o grupo consegue matar o monstro, o servidor informa cada cliente para exibir a animação de morte do monstro, que está guardada no disco rígido do computador.
  6. Um membro do grupo saqueia o monstro para ver o tesouro que ele carrega. O servidor seleciona ítens de uma tabela de saque de modo aleatório e informa aos clientes quais ítens diminuem. Se alguns dos jogadores do grupo têm uma missão que requer um certo item do mob, o servidor instrui o cliente a exibir o ícone para aquele item.
  7. Os jogadores, usando chat por texto ou voz, decidem quem vai ficar com o item de acordo com as regras de seu grupo ou liga. Eles podem utilizar um gerador de números aleatórios embutido para determinar quem fica com o quê. Se for o caso, o servidor distribui os resultados para todos os outros clientes.
  8. O jogador que ganhar o saque clica nele para apanhá-lo. O cliente informa ao servidor o que o jogador fez. O servidor informa o cliente para adicionar o item ao inventário visível do jogador. Ele também guarda a mudança no inventário do jogador em sua entrada da base de dados.

Estes mesmos passos podem ser aplicados em quase todos os encontros do mundo, seja com um jogador e um NPC, ou um jogador com outro em um ambiente jogador X jogador (PVP). Toda a informação vai e volta entre o cliente e o servidor em pacotes de dados. Enquanto muitos jogadores confiam nas conexões de banda larga para manusear os dados, as transações não precisam necessariamente de muita largura de banda. Geralmente, os pacotes são pequenos, mas chegam aos montes.

Mais importante do que a velocidade de conexão com a Internet do jogador é o tempo que leva para o seu computador fazer todo o caminho até o servidor do jogo e vice-versa. Se existirem empecilhos no caminho, o jogador pode passar por uma certa latência. Latência é outro nome para retardamento de tráfego. Algumas vezes, ela é percebível: um jogador pode atacar um mostro e ter que esperar alguns segundos antes que ele responda. Em alguns casos, a latência pode interromper a jogabilidade de forma significativa.

Desenvolver um MMORPG requer mais do que simplesmente descobrir como enviar esses pacotes de dados de um lugar para outro. A seguir, veremos o que é preciso para criar um MMORPG.

Textura + Mesh

Muitos personagens de MMORPG são visualmente fantásticos. São necessários dois componentes básicos para criá-los em sua tela. Um é o mesh, ou a tela de polígonos que cria a forma física de um personagem. O outro é a textura, ou as cores e desenhos que criam a superfície do mesh. Muitos jogos permitem que as pessoas personalizem o mesh e a textura de seus personagens até certo ponto.

­­