Roteiro Introdução Objetivos do trabalho Conceitos e técnicas Trabalhos Correlatos Requisitos principais Especificação Implementação Operacionalidade

Documentos relacionados
TURNO: Matutino VERSÃO: 1 N o

ARQUITETURA SERVIDORA DE JOGOS DE CELULAR ONLINE MASSIVAMENTE MULTIPLAYER

HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP

João Max Deggau Orientador: Prof. Mauro Marcelo Mattos, Doutor 2013/2

Processamento distribuído em ambiente peer-to-peer

IMPLEMENTAÇÃO DE VISUALIZAÇÃO DE PERSONAGEM NÃO JOGADOR NA MOBILE 3D GAME ENGINE (M3GE)

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

CIDADÃO FISCAL: APLICATIVO PARA A ABERTURA E ACOMPANHAMENTO DE PROCESSOS NO SETOR DE OUVIDORIA DA PREFEITURA MUNICIPAL DE BLUMENAU

MOBILE-FURBOT: UMA VERSÃO DO FURBOT PARA CRIAÇÃO DE JOGOS EM DISPOSITIVOS MÓVEIS

FRAMEWORK CELEPAR MANUAL DE INSTALAÇÃO/UTILIZAÇÃO DE JVM EM POCKET PC

Aula 7 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

SOFTWARE DE APOIO A GESTÃO DE SOLICITAÇÃO DE MUDANÇAS

SISTEMA DISTRIBUÍDO PARA GERENCIAMENTO DE LIBERAÇÃO DE RELEASES DE SOFTWARE

Protótipo tipo de um ambiente virtual distribuído

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009.

Software para compartilhamento de arquivos entre celulares usando a tecnologiapeer-to-peer aliada à plataforma JXME

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE CIÊNCIAS E TECNOLOGIA COORDENAÇÃO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE CURSO

SISTEMA PARA AUTOMATIZAÇÃO RESIDENCIAL CONTROLADO POR

SISTEMA DE PEDIDOS DE VENDA OFF-LINE

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

SISTEMAS DISTRIBUÍDOS

ANÁLISE DE DADOS DE LINHA DE PRODUÇÃO

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Gustav Dallmann Júnior

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

VISEDU: JOGO DE REALIDADADE AUMENTADA DE LETRAS COM CONTEÚDO DINÂMICO

Acadêmica: Rosana Ittner Prof. Orientador: Dr. Oscar Dalfovo

DISPOSITIVOS DE REDE E SERVIDORES UTILIZANDO SNMP. Luciano Lingnau Orientador: Francisco Adell Péricas

Gerenciador de ambientes para testes manuais

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

SISTEMA DE E-COMMERCE PARA PEQUENOS VAREJISTAS. Aluno: Leonardo Rossetti Orientador: Roberto Heinzle

Introdução ao Desenvolvimento de

Rafael Antonio Pires Orientador: Francisco Adell Péricas

Aplicativo para TV Digital Interativa de acesso ao Twitter

Visualizador de imagens radiológicas 2D para iphone. Acadêmico: Marwin Roepke Orientador: Dalton Solano dos Reis

MJ3I- PA - AMBIENTE VIRTUAL 3D PARA VISUALIZAÇÃO DE BRAÇOS ARTICULADOS NO IOS

Xororrasco. 1. Características Técnicas

Introdução a Computação em Nuvem

Acadêmica: Jerusa Cristina Duarte Casas Orientador: Oscar Dalfovo

Aplicações Visuais Mobile com Netbeans 6.0

UMA PLATAFORMA PARA JOGOS MULTIUSUARIO

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

VisEdu-MAT: Visualizador de material educacional, módulo de matemática

Documento de Arquitetura de Software- SGE

Sistemas Distribuídos

FURBUP: UM PROCESSO DE SOFTWARE PARA USO ACADÊMICO BASEADO NO OPENUP. Acadêmico: João Paulo Pedri Orientador: Everaldo Artur Grahl

Sistemas Distribuídos

GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS

OBD-JRP Monitoramento Veicular com Java e Raspberry Pi. Ricardo Artur Staroski Miguel Alexandre Wisintainer

APLICATIVO DE CONTROLE DE PEDIDOS EM AMBIENTE WEB Roni Rohling Orientando Prof. Ricardo de Alencar de Azambuja Orientador

RECONHECIMENTO FACIAL 2D

DOCUMENTAÇÃO SISTEMA DE ADMINISTRAÇÃO DE CONSULTÓRIO MÉDICO

Introdução a Computação em Nuvem

Desenvolvimento de Aplicações Distribuídas

PROTÓTIPO DE UM SISTEMA DE SERVIÇOS WAP PARA A BIBLIOTECA CENTRAL DA FURB

Sistema de Gestão de Clubes Recreativos e Esportivos

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Roteirização de veículo para realização de coleta utilizando algoritmo evolucionários

Sistema para automação e controle residencial via Twitter

Trabalho elaborado por: Ricardo Nuno Mendão da Silva Jorge Miguel Morgado Henriques

Aprendendo Braille: O Ensino do Sistema Braille com o uso do Tagarela

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM

PROTÓTIPO DE APLICATIVO PARA ACOMPANHAMENTO E CONTROLE DE

Nuvem e Virtualização Redes Programáveis

Protótipo de um software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

AULA 1 INTRODUÇÃO AO JAVA

[ Arquitecturas Móveis ] 2017/2018

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO JOGO DE XADREZ PARA CELULAR ENTRE DOIS PARTICIPANTES. alternativo:

Curso online de Fundamentos em Android. Plano de Estudo

iar 2.0: API o,mizada para aplicações de entretenimento em realidade aumentada na plataforma ios

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Objetos e Componentes Distribuídos: EJB

FERRAMENTA WEB PARA AUXÍLIO À GERÊNCIA DE ERROS CONHECIDOS E PROBLEMAS COM BASE EM ITIL

Programação com Sockets

Avanços e Perspectivas do Projeto Integrade na UFMA

Aplicativo para auxiliar crianças autistas no desenvolvimento e aquisição da linguagem

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

DESENVOLVIMENTO DE UM SISTEMA DE ARQUIVOS INSTALÁVEL PARA LINUX. Thiago Klein Flach Orientador: Mauro Marcelo Mattos

Desenvolvimento de Software I

Roteiro 01: Introdução a redes de computadores

Características de Sistemas Distribuídos

MIDDLEWARE PARA A COMUNICAÇÃO DE DADOS ENTRE SISTEMAS DISTRIBUÍDOS COM WS SECURITY. CAIO RENAN HOBUS Orientador: Jhony Alceu Pereira

Caracterização de Sistemas Distribuídos

Desenvolvimento para dispositivos móveis JavaME

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Ontologia de Livro: Aplicativo Android para Busca de Dados

Data Warehouse ETL. Rodrigo Leite Durães.

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Leia-me do monitor do Veritas System Recovery 16

Transcrição:

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.