Um exemplo de aplicação de sistemas distribuídos amplamente utilizados atualmente são os jogos massive Multiplayer. Com a crescente popularização da internet, sistemas como esse tornam-se cada vez mais populares. Porém aumentando a quantidade de adeptos, logo a de jogadores em uma aplicação, aumentam-se as exigências de escalabilidade no processamento para não haver uma perda na jogabilidade.
Muito tem sido feito, inclusive pela comunidade acadêmica, na construção de sistemas virtuais distribuídos. Uma abordagem introdutória sucinta, porém esclarecedora sobre massives multiplayer é apresentada por Kozovits e Feijó no artigo Arquiteturas para Jogos Massive Multiplayer disponível em ftp://ftp.inf.puc-rio.br/pub/docs/techreports/03_36_kozovits.pdf (acessado em 28 de fevereiro de 2008).
Algumas abordagens para esses sistemas utilizam a tecnologia peer-to-peer. Porém uma limitação ao uso desta tecnologia nesse tipo de sistemas é a escalabilidade, pois as alterações na cena de cada personagem são notificadas a todos os outros com uma complexidade de O(n^2). Logo, aumentando o número de personagens extrapola-se as limitações da rede. Outra tecnologia que pode ser usada é a broadcast. A complexidade da escalabilidade desta é de O(n). Ainda assim pode-se haver problemas no gerenciamento de pacotes na comunicação entre os personagens. Uma boa opção é a utilização de sistemas multicast. Porém tal tecnologia ainda não está disponível em redes para consumo em massa.
Desta forma a arquitetura natural para tal sistema é a Cliente/Servidor. Nela é possível gerenciar a comunicação de modo mais eficiente, restringindo que um cliente só se comunique com os demais que estejam no mesmo ambiente fechado ou a uma distância próxima em um ambiente aberto. Utilizando essa arquitetura em sistemas com ambientes particionados a escalabilidade pode ser ainda melhorada. A abordagem de alguns temas referentes à construção de um jogo massive multiplayer neste artigo é razoável. Apesar de não se aprofundar muito sobre o modelo de escalabilidade na comunicação entre personagens e destes com o ambiente (sistema) a arquitetura proposta sugere uma implementação não tão complexa agregada um bom funcionamento da mesma.
A abordagem sobre demais problemas referentes à comunicação entre entidades deste sistema, apesar de fugir do tema principal deste blog, também é algo interessante (e como ressaltado no artigo pouco abordado na literatura).
28 de fevereiro de 2008
Leandro Moraes V. Cruz
Disciplina Sistemas Distribuídos
Curso Ciências da Computação
Universidade Cândido Mendes – Campos/RJ
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário