ARQUITETURA SERVIDORA DE JOGOS DE CELULAR ONLINE MASSIVAMENTE MULTIPLAYER Aluno: Joni Basso Cereja Orientador: Paulo Fernando da Silva
Roteiro Introdução Objetivos do trabalho Conceitos e técnicas Trabalhos Correlatos Requisitos principais Especificação Implementação Operacionalidade Resultados Conclusão Extensões Referências Bibliográficas
Introdução Crescimento da área de dispositivos móveis. Mercado de trabalho em potencial. Aumento de concorrência demanda diversificação de jogos para celular. Maioria destes jogos executa apenas no próprio dispositivo.
Objetivos do trabalho Compartilhamento de um mesmo universo no jogo demonstrativo Galaxy Navigator; Armazenamento e atualização de perfil de cada jogador; Interação com personagens robôs conhecidos por NPCs; controle do universo e das regras desenvolvidas para o jogo Galaxy Navigator, ações dos jogadores e interação com NPCs valendo-se de uma aplicação principal suportada por servidores distribuídos.
Conceitos e técnicas J2ME e Jogos para celular Jogos eletrônicos: início em meados dos anos 70. Evolução de hardware aumenta complexidade dos jogos. Avanço tecnológico: celulares não são mais apenas meio de comunicação.
Conceitos e técnicas J2ME: linguagem Java reduzida para dispositivos com poucos recursos físicos. Camada de configuração (Connected, Limited Device Configuration): especificar a máquina virtual Java e as APIs básicas. Camadas de perfil (celulares e terminais menos avançados - Mobile Information Device Profile): adicionar APIs e especificações para construção de aplicativos.
Conceitos e técnicas MIDP 2.0 permite jogos mais ricos: otimização de gráficos e controles; adição de música; melhor suporte à utilização de sockets.
Conceitos e técnicas Jogos MMO: Vários jogadores; Participação coletiva em um único universo; Universo mantido por servidores 24 horas por dia; Pode possuir ou não um objetivo final a ser alcançado.
Conceitos e técnicas GameSpy (2003): Habitat (final dos anos 80) universo virtual acessado por mais de 16 pessoas ao mesmo tempo através de um Quantum Link. Meridian 59 grande número de jogadores compartilhando o mesmo mundo virtual persistente. Meridian 59
Conceitos e técnicas Jogos MMO não necessariamente possuem fim de jogo. Jogo Risk Your Life : jogador cria personagem e decide seus objetivos. Persistência dos dados.
Conceitos e técnicas Popularização do gênero de jogos MMOs para computadores: advento da banda larga no final da década de 90. Em celulares, pode popularizar jogos MMO: Oferta de planos de internet; Avanço dos recursos dos dispositivos.
Trabalhos Correlatos TíbiaME desenvolvido aos moldes do conhecido Tibia (plataforma PC); primeiro jogo MMO para celulares; conexão a um servidor de jogo centralizado.
Trabalhos Correlatos Protótipo de motor de servidor de jogos online em massa desenvolvido por Presser (2006); protótipo de um servidor genérico para jogos MMO (plataforma PC); Estrutura de rede com divisão por camadas; Divisão do universo em partes menores para redução de informação enviada ao jogador.
Requisitos principais Arquitetura de servidores: efetuar login de clientes do jogo Galaxy Navigator devidamente instalados em telefones celulares (Requisito Funcional RF); permitir a conexão de todos os clientes de celulares que efetuarem login,, até um limite máximo estabelecido pelo administrador do servidor (RF); persistir os perfis de cada jogador na base de dados (RF); controlar as regras do jogo estabelecidas (RF);
Requisitos principais suportar a interação dos jogadores humanos com personagens NPC (RF); ser implementado na linguagem de programação Java (Requisito Não Funcional RNF); ser fortemente distribuído, o que engloba estratégias para ser tolerante a falhas e realizar a distribuição de sobrecarga entre os servidores distribuídos (RNF).
Requisitos principais cliente do jogo Galaxy Navigator: efetuar conexão com um servidor de contas, também denominado Login Server (RF); constantemente atualizar e exibir o ambiente em que se encontra o usuário, a partir dos dados recebidos dos servidores distribuídos de jogo, ou Game Servers (RF); repassar aos servidores de jogo as ações pretendidas pelo usuário (RF); funcionar em celulares com máquina virtual Java, perfil MIDP 2.0 e acesso à internet (RNF); ser implementado em J2ME (RNF).
Especificação Regras do jogo Galaxy Navigator: Universo matricial (linhas x colunas); Cada coordenada é um sistema solar; Jogadores criam sedes nos sistemas solares; Evoluem e criam naves transportadoras: Criar sedes em outros sistemas solares, Atacar sedes de outros jogadores; Ataques de jogador artificial; Ações executadas em espaço de tempo configurado.
Especificação - Topologia
Especificação Caso de uso
Especificação Diagrama de Classes
Especificação Diagrama de Seqüência
Especificação Diagrama de Estados
Especificação Modelo de dados
Especificação Protocolo de comunicação
Implementação Ferramentas utilizadas: Enterprise Architect (especificação); DBDesigner (modelo de dados); Netbeans 5.5; J2ME Wireless Toolkit 2.2; MySQL. comunicação com o cliente utiliza a conexão via Socket: envio bilateral de 4 bytes que seguem o protocolo descrito, assim como utilizou Hamer(2004); importante manter simples os dados enviados.
Implementação Conexão com socket em J2ME: DataInputStream dis = null; DataOutputStream dos = null; SocketConnection conn = null; byte[] fourbytes = new byte[4]; conn = (SocketConnection)Connector.open(SERVER_URL); conn.setsocketoption(socketconnection.keepalive, 1); dos = conn.opendataoutputstream(); dis = conn.opendatainputstream(); fourbytes[0]='l'; fourbytes[1]='j'; fourbytes[2]='b'; fourbytes[3]='c'; dos.write(fourbytes,0,fourbytes.length); dis.readfully(fourbytes);
Implementação Recebendo as conexões via socket: ServerSocket ss; ss = new ServerSocket(porta); Socket socketcelular = ss.accept(); socketcelular.setkeepalive(true); PlayerAction playeraction = new PlayerAction(socketCelular); playeraction.start();
Implementação Classe PlayerAction: implementa uma Thread; como parâmetro o objeto do tipo Socket que possui conexão de um único cliente; possui referência remota da classe Banco; todas as instâncias executam como Threads paralelamente; Executa métodos remotos de Banco: logajogador(), carregaregiao(), e outros.
Implementação GameServer e NPCServer são inicializadas pelo administrador do sistema: Possuem contador de tempo; GameServer: processamento das ações enfileiradas na base de dados; NPCServer: ataques da civilização rebelde aos jogadores.
Operacionalidade Administrador inicia arquitetura servidora; Pode verificar o que está acontecendo apenas modo texto.
Operacionalidade Cada jogador inicializa o cliente J2ME; Informa dados previamente cadastrados e endereço do servidor; Assim que efetuar conexão, recebe os dados diretamente de uma instância exclusiva de PlayerAction.
Operacionalidade Recebidos os seus dados, o jogador acessa no menu as ações que deseja realizar. O menu exibe ações para um jogador realizar. Construções; visualizar outra sede; visualizar outro transporte;
Operacionalidade PlayerAction persiste as ações na base de dados. Ações são executadas no tempo de jogo configurado. Jogadores não conhecem este tempo. Impossível saber quando ações são executadas após um jogador selecionar na interface J2ME. NPCServer apenas realiza ataques aleatórios aos jogadores em períodos de tempo (também configurados).
Resultados Testes feitos apenas com simulador, porém, satisfatórios. vários simuladores conectam ao mesmo tempo sem problemas na arquitetura servidora de Galaxy Navigator. jogos MMO comerciais: disponibilizado para testes gratuitamente sem a realização de um teste como esse, não há como determinar quantos celulares reais são suportados pela arquitetura servidora desenvolvida
Resultados Execução de vários simuladores ocorre de maneira satisfatória. autenticação com sucesso; interação no universo compartilhado; jogadores efetuam ações, interpretadas de acordo com as regras do jogo; persistência dos dados; ataques de jogador artificial aos jogadores reais;
Resultados Comparação com trabalhos correlatos MMO Plataforma Arquitetura Galaxy Navigator Sim Celular Distribuída TibiaMe Sim Celular Centralizada Motor MMO de Presser Sim PC Distribuída
Conclusão Objetivos alcançados. Jogo para celular possui as características de jogos MMO. Arquitetura distribuída: Divisão de carga de processamento Não há único ponto de falhas Simulador J2ME apareceu como excelente opção.
Conclusão É possível desenvolver jogos MMO para celulares. Área de jogos para celular que representa um diferencial em relação às demais. É viável a desenvolvedores explorar mais esta área (jogos MMO para celulares com maior complexidade)
Conclusão Limitações Administrador não possui painel de controle com funções típicas de adminsitradores; Sem preocupação com complexidade do jogo. Objetivou-se a funcionalidade da arquitetura servidora. impossível formar grupos de jogadores regras simples
Extensões adição de novas funcionalidades às regras já existentes; criação de enredo de jogo com alto grau de complexidade; alta segurança pode ser uma meta fundamental; a interface com o usuário pode ser melhorada. aumento do potencial de processamento de telefones celulares permitirá jogos MMO com maior qualidade gráfica e com maior complexidade.
Referências Bibliográficas CIPSOFT GMBH. Tibia micro edition.. [Munique], 2006. Disponível em: <http://www.cipsoft.com/products/index.php?language=en&subsecti on=tibiame>. Acesso em: 31 mar. 2007. FRANCE PRESSE. Games podem fornecer respostas sobre propagação de epidemias. Folha Online,, São Paulo, 2007. Disponível em: <http://www1.folha.uol.com.br/folha/informatica/ult124u322046.shtm l>. Acesso em: 29 set. 2007. GAMESPY. Massively Multiplayer Online Games. [Brisbane?], 2003. Disponível em: <http://archive.gamespy.com/amdmmog>. Acesso em: 22 set. 2007. GSM ASSOCIATION. GPRS. [S.l.], 2007. Disponível em: <http://www.gsmworld.com/technology/gprs/index.shtml>. Acesso em: 12 abr. 2007. HAMER, Carol. J2ME games with MIDP 2.. Berkeley: Apress, 2004.
Referências Bibliográficas KEOGH, James Edward. J2ME: : the complete reference. Berkeley: McGraw-Hill/Osborne, 2003. KNUDSEN, Jonathan. Wireless Java: : developing with J2ME. 2nd ed. New York: APress, 2003. LYRA STUDIOS. Lyra network engine features and architecture. Los Angeles, 2003. Disponível em: <http://www.lyrastudios.com/assets/lyraarchitecture.pdf>. Acesso em: 30 mar. 2007. MATTOS, Érico Tavares de. Programação Java para wireless: aprenda a desenvolver sistemas em J2ME! São Paulo: Digerati Books, 2005. NEAR DEATH STUDIOS. ABOUT MERIDIAN 59: Screenshots. [S.l.], 2001. Disponível em: <http://meridian59.neardeathstudios.com/m59-screenshots.shtml>. Acesso em: 22 set. 2007.
Referências Bibliográficas ONLINE EVOLUTION PTY. EverQuest 2 Realm: : general information. [S.l.], [2002?]. Disponível em: <http://eq2.crgaming.com/default.asp?column=6406>. Acesso em: 28 mar. 2007. PRESSER, Daniel. Protótipo de motor de servidor de jogos online em massa. 2006. 98 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. SUN MICROSYSTEMS. Sun Community Source Licensing (SCSL) - Mobile Information Device Profile (MIDP). [S.l.], [2007?]. Disponível em: <http://www.sun.com/software/communitysource/j2me/midp/>. Acesso em: 19 set. 2007. TRAVIAN GAMES GMBH. Maravilha do Mundo. [S.l.], [2004?]. Disponível em: <http://help.travian.com.pt/index.php?type=faq&mod=382&s=300>. Acesso em: 28 set. 2007. YOUXILAND DIGITAL; GAMASOFT; PLANETWIDE GAMES. What is Risk Your Life (RYL)?. [S.l.], 2005. Disponível em: <http://www.ryl.net/content.php?content.1>. Acesso em: 28 set. 2007.