No post anterior explanei um pouco sobre o mundo dos MMOGs e sobre a visão universal desse tipo de entretenimento utilizando um protocolo totalmente descentralizado. Não passei os detalhes, mas apenas analisando o título é perceptível que essa é uma tarefa que requer muita dedicação.
Atualmente os MMOGs, utilizando a arquitetura cliente-servidor, tornou-se um paradigma para a indústria (consumidores assíduos, desenvolvedores, empresas, etc). Praticamente todos os títulos que vão para as lojas tem como base a arquitetura cliente-servidor como mecanismo padrão de interação dos clientes. Como tinha afirmado, essa arquitetura é dispendiosa para as empresas que disponibilizam os acessos aos datacenters para jogadores.
Vendo por esse lado, não seria viável apenas distribuir o game? Bom, verificando o lado da empresa seria viável porém, a empresa perderia receita. Devido a isso, criar a infra-estrutura de serviço é um passo fundamental, principalmente pelo pouco gasto que teria com infraestrutura.
A utilização do arquitetura P2P veio como um forma de amenizar os gastos com essa com datacenters. Porém, existe alguns obstáculos para a viabilidade dessa afirmação. Esses obstáculos variam de culturais e tecnológicos.
Obstáculos culturais
O elaboração de uma arquitetura descentralizada para a comunicação de hosts diretamente tem início nos primórdios da computação. Porém, houve uma evolução nesse conceito, fazendo que o termo “host” tornasse um elemento abstrato, flexível e virtual chamado peer.
Peer é a definição de um elemento dentro do contexto de uma rede P2P. Um peer pode ser qualquer coisa que se comunique com a rede como; um pc, notebook, celular, ou seja qualquer dispositivo que tenha conectividade com a rede seja lá o que for. Dentro desse conceito, um pc, por exemplo, pode ter um ou diversos pares na rede P2P. Esse exemplo foi necessário para termos uma idéia de como é a conectividade entre os pares.
Agora, quais são os impactos culturais da sua utilização? A elaboração da arquitetura teve finalidade oposta a fama que teve com a s redes de compartilhamento de arquivos. O problema é que a arquitetura P2P caiu como uma luva para o desenvolvimento dos softwares de compartilhamento de arquivos existente. Gnutell, Kazzaa, Emule, Napster, entre outras, todas utilizam uma implementação (com particularidades) para a sua rede.
Essa, talvez seja a origem, dos problemas de violação dos direitos autorais que as gravadoras, editoras e produtoras de filmes tanto reclamam. As redes de compartilhamento tornaram fontes de troca de arquivos e com isso surgiu a forma mais eficaz da prática da pirataria.

Obstáculos tecnológicos.
A utilização da arquitetura P2P nos protocolos de compartilhamento de arquivos aumentou consideravelmente o tráfego na internet sendo que, hoje em dia, 40% do tráfego da inter vem das redes de compartilhamento de arquivos. Mas foram os poucos que viram as qualidades da arquitetura para os games. A conclusão foi simples; se existem uma enxurrada de bytes trafegando sobre essa arquitetura e cada vez mais tendo usuários adeptos, logo a arquitetura pode ser robusta.
Acredito que seja essa a iniciativa para modificar a camada cliente-servidor dos MMOGs para P2P. Mas para isso, existem atividades de adaptação da tecnologia e em alguns casos a adaptação do motor do game para a nova arquitetura.
Estudos e soluções
O MMOGs considerados mais divertidos são os que possuem mapas imensos e a possibilidade de personalizar o seu jogador. Fazer com que um peer consiga gerenciar elementos como esses, seria necessário possuir praticamente a mesma estrutura, inclusive datacenters, dos servidores para que ocorra a interação dos pares conectados na rede.
Esse é um problema clássico do que pode ocorrer em situações com grande quantidade de jogadores conectados, ou seja, um caos. Para resolver esse problema, ou pelomenos minimiza-lo, seria necessário desenvolver uma estrutura de mundos e submundos tornando o ambiente utilizável e com desempenho desejado. Para isso, seria necessário a construção de um mundo virtual 2D, ou mapa, dividido em células. As células existentes no game seria um peer da rede eleito seguindo critérios.

Esse conceito é bem parecido com o campo de visão de um jogador, ou sejam, se o jogador entrou no meu campo de visão então só a partir daí que o tráfego entre esses dois jogadores poderá surgir.
Bom, uma pergunta vem a tona: Como é feita a sincronização das informações que também não estão na minha área de visão? A necessidade de manter informações de outros jogadores que não estão dentro do “contexto” do jogador é necessário para manter o conjunto de informações do game como um todo. Records, ranck, mercados, guildas, etc. dependem desse tipo de informação. A pergunta em questão está sem resposta no momento mas, existem diversas soluções.

A solução que, a meu ver, mais se adéqua a necessidade seria a utilização de um servidor central para prover esse tipo de informação. Bom, nesse caso a estrutura de game não é mais 100% P2P? É isso aí. Em situações do cotidiano, no caso sem soluções, seria necessário manter a arquitetura cliente-servidor através de um servidor central para realizar a “contabilidade” do game, diminuindo a existência de shits.
O que acompanha as dúvidas da arquitetura nos games é principalmente a suposta facilidade de inclusão dos cheats no game, já que os arquivos de configuração seriam gravados no disco do cliente. Com isso, um desenvolvedor mais experiente poderia fazer engenharia reversa nos executáveis, verificar os arquivos que o game carrega e modifica-los conforme desejar. Porém, para que isso não aconteça, o game deve implementar inúmeras políticas de segurança como : criptografia, certificados digitais e principalmente implementar uma forma mais adequada a realidade atual, caso a empresa deseje faturar com o serviço do game.
O desafio para desenvolver a arquitetura nos MMOGs é grande. Tão grande também são as dúvidas referente ao aceite dos jogadores dessa tecnologia nos games, já que a arquitetura cliente-servidor é o padrão para esse tipo de game. Acredito que o principal desafio será encontrar a derivação do protocolo mais adequado para suportar o montante de informação referente a interação dos jogadores no game. Portanto, no próximo post detalharei alguns protocolos P2P e frameworks que mais se adequam a essa finalidade.
T+ []s





No Comments » 