Como funciona um MMORPG tecnicamente?: Artigo do site Oficial – Portal Tibia
Como funciona um MMORPG tecnicamente?: Artigo do site Oficial
Home / Como funciona um MMORPG tecnicamente?: Artigo do site Oficial
by Epaminondas | Notícias | 0 Comments | 04 maio 2008
Nos horários de pico, mais de 60,000 jogadores estão online para desfrutar o mundo medieval de Tibia. Como todas essas pessoas podem jogar junto ao mesmo tempo? Que dispositivos técnicos são necessários para permitir que todas essas pessoas movimentem seus personagens? Hoje nós gostaríamos de explicar a você como funciona a parte técnica de um MMORPG como Tibia.
Sempre quando você loga em Tibia, numerosas coisas precisam ser conferidas: Qual outfit o personagem selecionado está usando? O personagem dormiu em uma cama e regenerou mana e hitpoints? O personagem ainda possui a casa em qual estava dormindo ou deve ser colocado em frente dela? O personagem está numa premium account ou deve ser movido para um templo na área free? Além disso, o personagem deve ser colocado no ponto correto no mapa, o inventário deve ser carregado, e finalmente você recebe uma mensagem sobre seu último login quando você entrar no jogo. Todas estas coisas são conferidas enquanto você entra no jogo depois de ter selecionado um personagem de sua character list.
Na maioria dos casos isso leva menos de 2 segundos. Tempo como também desempenho são fatores muito importantes em um MMORPG como o Tibia que acontece em tempo real. Isto significa que todas as ações que você quer cumprir devem ser transferidas imediatamente. Se você pressionar a tecla para que seu personagem ande para a frente, ele deve andar no mesmo momento, e não 3 segundos depois. Isto é muito importante quando você estiver combatendo contra criaturas ou outros jogadores. Por esse motivo todos os dispositivos e códigos são constantemente aperfeiçoados para manter o tempo que o seu personagem precisa para agir o mais baixo possível. De quais dispositivos estamos falando aqui? Quais ferramentas são necessárias para manter Tibia em operação? Essas perguntas serão respondidas nos próximos parágrafos.
…mais de 200 servidores foram configurados
para rodar o Tibia
Muitos jogos de interpretação online funcionam basicamente da mesma maneira. Os jogadores instalam um cliente para o jogo em seu computador e então se conectam aos game servers pela internet. Existe vários servidores diferentes que são necessários para jogar um jogo como o Tibia. Ao todo, mais de 200 servidores foram configurados para rodar o Tibia. 18 servidores são necessários só para manter o website de Tibia no ar. Existem servidores onde apenas imagens estão salvas, um servidor extra para as páginas codificadas como a de login, outro servidor hospeda as estatísticas, tem servidores dos quais você pode baixar o cliente e muitos outros para o fórum.
Quando você entra no website, você será primeiramente conectado aos servidores que estão localizados na frente de outros website servers. Eles conferem todos os pedidos e então os distribuem aos servidores corretos. Deste modo o site da Web trabalha muito mais rápido e com mais eficiência. Para jogar Tibia muitos mais servidores são necessários. Mais importante é os servidores de jogo, servidores de login e o banco de dados. Porém, o seu computador não consegue lidar com os dados enviados por esses servidores se você não tiver o cliente instalado.
O cliente é um programa que é instalado em seu computador. Com ajuda do cliente, você pode ver uma certa parte do mapa de Tibia. Seu personagem sempre é o ponto central localizado no meio da tela de aventura. Ele mostra objetos e criaturas que estão ao redor do seu personagens e exibem efeitos especiais, por exemplo, quando você usa alguma magia. Coisas como o automap, aparência das criaturas, outfits do personagem ou a forma do client estão todas salvas em arquivos do seu computador, assim como as suas hotkeys e suas configurações pessoais do client. Sempre quando você quer fazer algo no jogo, o cliente diz ao game server a sua localização e a ação que você quer fazer. Sem o cliente, o game server não saberia o que você gostaria de fazer e ninguém poderia jogar. Só quando o cliente estiver dando comandos ao game server, Tibia ganha a vida.
Antes de você poder começar a jogar de fato, você precisa entrar no jogo. Então você precisa de servidores de login. Sempre que você está tentando entrar no Tibia, o servidor de login está confirmando os dados da sua account no banco de dados e identifica os seus personagens. Depois que você selecionar um personagem de sua character list, o servidor de login funciona como uma placa de trânsito, guiando o seu cliente de Tibia para o game server correto. Tibia tem vários servidores como estes que são distribuídos no mundo inteiro.Isso é muito importante pois garante o acesso ao jogo mesmo se um dos login servers não estiver disponível. Se um servidor falhar, os jogadores ainda podem entrar no jogo pelos outros servidores. No Tibia todos os patchs são salvos também nos servidores de login. Assim sempre que seu cliente conecta a um servidor, também confere se você tem a última versão do cliente de Tibia ou se precisa carregar o último patch.
São salvos dados muito importantes no banco de dados. Sempre que você tenta entrar no jogo, o login server está obtendo informação essencial do banco de dados. É conferido se seus dados de conta estão corretos, mas também é salvo outras informações importantes aqui. A conta é uma conta de tutor? O personagem é membro de uma guilda? Existem quaisquer entradas na criminal record? O personagem é premium account? Todas essas perguntas são respondidas pelo banco de dados.
Como dados sensíveis estão salvos no banco de dados, outros servidores se localizam na frente dele. Esses servidores permitem que apenas perguntas muito específicas passem para o banco de dados. Isto é importante não apenas para a segurança do jogo, mas também aumenta muito a velocidade das solicitaçoes que são feitas ao banco de dados.
Depois de ter conferido os dados de um jogador, o cliente é conectado ao servidor de jogo. Aqui o jogo atual acontece. Em Tibia, cada um dos 74 servidores são hospedados em precisamente um game server, cada um deles com capacidade para até 1,000 jogadores. Outros jogos com mapas muito grandes hospedam um game world em vários servidores. Em jogos menores, como o TibiaME, muitos game worlds compartilham um server. Servidores de jogo cumprem várias tarefas, por exemplo, eles notificam seu cliente quando você é atacado por uma criatura ou outro jogador, eles calculam quanto dano você recebeu com base no seu skill, equipamento e level, ou verificam se um monstro está próximo ao seu personagem. Servidores de jogo também enviam regularmente dados ao cliente conferindo se o jogador ainda esta online. Se eles não adquirirem uma reação, o personagem será jogado fora do jogo após um tempo.
A parte mais problemática é a conexão entre
os servidores de jogo e o cliente…
Como já dito, é essencial que todas as ações em Tibia aconteçam muito depressa. Por isso o mundo inteiro de Tibia é salvo nos game servers. Levaria muito tempo se o servidor de jogo tivesse que pedir uma certa parte do mapa cada vez que você movesse o seu personagem. Também os itens espalhados ao redor de Tibia, criaturas, itens no seu depot e como também dados do personagem como as magias e quests são salvos na memória de cada game server. Isto não apenas permite que cada mundo tenha acesso rápido a esses dados, mas também assegura que um servidor possa continuar funcionando por um longo tempo mesmo que perca conexão com o banco de dados.
A parte mais problemática é a conexão entre os servidores de jogo e o cliente, pois dificilmente podemos influenciá-la. A única coisa que podemos fazer para prover uma conexão mais rápida e eficiente é escolher um bom data center que tem conexões com um grande número de provedores. Deste modo, a conexão pode ser rapidamente desviada se um provedor não trabalhar corretamente. Esta é uma das razões pelas quais estamos movendo nossos game servers americanos para um novo data center.
Agora sua character list será exibida. Depois de selecionar um personagem, o login server guia seu cliente ao servidor de jogo correto. Depois que você entrar no jogo, há uma comunicação constante entre seu cliente e nosso game server que lhe permitem executar certas ações com seu personagem, mas também confere se seu cliente ainda está trabalhando.