clique para adicionar texto netgamesnrt leonardo de souza brasil orientador: ricardo pereira e...

35
NetGamesNRT NetGamesNRT Leonardo de Souza Brasil Leonardo de Souza Brasil Orientador: Ricardo Pereira e Orientador: Ricardo Pereira e Silva, Dr Silva, Dr Modelagem do framework Netgames

Upload: stella-de-barros

Post on 07-Apr-2016

224 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NetGamesNRTNetGamesNRT

Leonardo de Souza Brasil Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Orientador: Ricardo Pereira e Silva,

DrDr

Modelagem do framework Netgames

Page 2: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

TópicosTópicos• IntroduçãoIntrodução• Net games frameworkNet games framework• Adaptando um jogo (cookbook)Adaptando um jogo (cookbook)• Modelagem de aplicaçõesModelagem de aplicações• Considerações finaisConsiderações finais

Page 3: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

IntroduçãoIntrodução• Jogos possibilitam diversão, Jogos possibilitam diversão,

educação, etc...educação, etc...• Com o surgimento dos computadores Com o surgimento dos computadores

e as primeiras redes surgem também e as primeiras redes surgem também os jogos multi-player on-line.os jogos multi-player on-line.

Page 4: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

IntroduçãoIntrodução• Problema: Como jogar jogos multi-player?Problema: Como jogar jogos multi-player?

– Mesmo PC?Mesmo PC?• Fácil implementaçãoFácil implementação• Necessidade dos jogadores no mesmo lugar.Necessidade dos jogadores no mesmo lugar.• Mais entediante.Mais entediante.

– Conectar os jogos em rede?Conectar os jogos em rede?• Difícil implementação.Difícil implementação.• Jogadores podem estar em qualquer parte do mundo, desde Jogadores podem estar em qualquer parte do mundo, desde

que conectados através da mesma rede.que conectados através da mesma rede.• Mais divertido.Mais divertido.• Mais trabalho para o desenvolvedor do jogo.Mais trabalho para o desenvolvedor do jogo.• Conhecimento de uma tecnologia que possibite essa Conhecimento de uma tecnologia que possibite essa

conexão.conexão.

Page 5: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

IntroduçãoIntrodução– Como possibilitar a conexão, de um jogo Como possibilitar a conexão, de um jogo

multi-player, em rede, de maneira simples?multi-player, em rede, de maneira simples?•NetGamesNRT (NG)NetGamesNRT (NG)

– Conjunto de artefatos desenvolvido para facilitar aos Conjunto de artefatos desenvolvido para facilitar aos desenvolvedores a adaptação de seus jogos ao modo desenvolvedores a adaptação de seus jogos ao modo multi-jogador. multi-jogador.

– NetGamesNRTServer e NetGamesNRTFramework.NetGamesNRTServer e NetGamesNRTFramework.– NetGamesNRTServer possibilita a intereção de NetGamesNRTServer possibilita a intereção de

diferentes jogadores e possui a capacidade de diferentes jogadores e possui a capacidade de manipular mais de um jogomanipular mais de um jogo

– NetGamesNRTFramework facilita a programação do NetGamesNRTFramework facilita a programação do desenvolvedor de jogos abstraindo todos os detalhes desenvolvedor de jogos abstraindo todos os detalhes da comunicação via rede. da comunicação via rede.

Page 6: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

IntroduçãoIntrodução

Page 7: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Os artefatosOs artefatos

Page 8: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGServerNGServer• CaracterísticasCaracterísticas

– Conexão de diferentes jogos (sem Conexão de diferentes jogos (sem exigência de tempo real), ao mesmo exigência de tempo real), ao mesmo tempo.tempo.

– Desconhecimento da lógica dos jogos Desconhecimento da lógica dos jogos tratados.tratados.

– Possibilitar comunicação entre jogadores Possibilitar comunicação entre jogadores desses jogos através de partidas.desses jogos através de partidas.

Page 9: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGServerNGServer• JogosJogos

Page 10: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGServerNGServer• PartidasPartidas

Page 11: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFrameworkNGFramework• NetGamesNRTFrameworkNetGamesNRTFramework

– Domínio: Computação Distribuída.Domínio: Computação Distribuída.– Aplicações: Jogos digitais sem exigência Aplicações: Jogos digitais sem exigência

de tempo real.de tempo real.– Benefícios:Benefícios:

•Facilitar implementação de rede para Facilitar implementação de rede para desenvolvedores de jogos (NRT).desenvolvedores de jogos (NRT).

•Economia de mensagens de rede (trata um Economia de mensagens de rede (trata um conjunto de regras de comunicação, e.g. conjunto de regras de comunicação, e.g. tentar conectar duas vezes, desconectar tentar conectar duas vezes, desconectar sem estar conectado).sem estar conectado).

Page 12: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Casos de NGFramework – Casos de UsoUso

Page 13: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Diagrama de NGFramework – Diagrama de interaçãointeração

Page 14: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Diagrama de NGFramework – Diagrama de classesclasses

Page 15: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Máquina de NGFramework – Máquina de estados do Proxyestados do Proxy

Page 16: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Estado NGFramework – Estado JogandoJogando

Page 17: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Sequência NGFramework – Sequência conectarconectar

Page 18: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Sequência NGFramework – Sequência desconectardesconectar

Page 19: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Sequência NGFramework – Sequência receber jogadareceber jogada

Page 20: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Enviando NGFramework – Enviando JogadasJogadas

Page 21: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Enviando NGFramework – Enviando JogadasJogadas

Proxy• Classe que o jogo invoca sempre que desejar uma comunicação com o servidor.• Classe fachada do framework.• É possível obter apenas uma instancia (Singleton).

Jogada• Interface que deve ser implementada pelos objetos trocados entre aplicações.• Sem métodos

Page 22: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Recebendo NGFramework – Recebendo JogadasJogadas

Page 23: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework – Recebendo NGFramework – Recebendo jogadasjogadas

OuvidorProxy• Classe implementada para receber as mensagens vindas do servidor.• É necessário se cadastrar no proxy (Observer).• Todos seus métodos são abstratos.• É possível existirem mais de uma por aplicação.

Page 24: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework - DeployNGFramework - Deploy

Page 25: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework - DeployNGFramework - Deploy

Page 26: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

NGFramework - DeployNGFramework - Deploy

Page 27: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Adaptando um jogoAdaptando um jogo• Primeiros passos:Primeiros passos:

– 1 - Download do framework.1 - Download do framework.– 2 - Download do arquivo de configuração no 2 - Download do arquivo de configuração no

portal.portal.• Conexão:Conexão:

– Proxy.Proxy.getInstancegetInstance().conectar(ipServidor, nome);().conectar(ipServidor, nome);– Ip padrão: “Ip padrão: “venus.inf.ufsc.br”venus.inf.ufsc.br”– Exceções: Exceções: ArquivoNaoExisteException, ArquivoNaoExisteException,

JahConectadoException, JahConectadoException, NaoPossivelConectarException;NaoPossivelConectarException;

Page 28: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Adaptando um jogoAdaptando um jogo• Iniciar Partida:Iniciar Partida:

– Proxy.Proxy.getInstancegetInstance().().iniciarPartida(numJogadoresiniciarPartida(numJogadores););– Implementar no OuvidorProxy:Implementar no OuvidorProxy:

• iniciarNovaPartida(posicao);iniciarNovaPartida(posicao);

– Exceções: NaoConectadoExceptionExceções: NaoConectadoException• Para uma classe se tornar uma “ouvidora" de Proxy é Para uma classe se tornar uma “ouvidora" de Proxy é

necessário, além de implementar a interface necessário, além de implementar a interface OuvidorProxy, chamar o método:OuvidorProxy, chamar o método:

•Proxy.getInstance().addOuvinte(Proxy.getInstance().addOuvinte(thisthis););• Se uma partida não for iniciada o método Se uma partida não for iniciada o método

tratarPartidaNaoIniciada é chamado nos Ouvidores;tratarPartidaNaoIniciada é chamado nos Ouvidores;

Page 29: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Adaptando um jogoAdaptando um jogo

•Enviar Jogada:Enviar Jogada:– Proxy.Proxy.getInstancegetInstance().enviaJogada(jogada);().enviaJogada(jogada);– jogadajogada pode ser qualquer objeto que pode ser qualquer objeto que

implemente a interface Jogada.implemente a interface Jogada.

Page 30: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Adaptando um jogoAdaptando um jogo• Receber Jogada:Receber Jogada:

– Implementar método do OuvidorProxy Implementar método do OuvidorProxy public void receberJogada(Jogada jogada);public void receberJogada(Jogada jogada);

• Desconexão:Desconexão:– Proxy.Proxy.getInstancegetInstance().desconectar();().desconectar();

Page 31: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Adaptando um jogoAdaptando um jogo• Alem disso existem métodos para:Alem disso existem métodos para:

– Proxy:Proxy:• Enviar mensagens texto (String);Enviar mensagens texto (String);• Reiniciar uma partida;Reiniciar uma partida;• Obter lista ordenada com nome dos Obter lista ordenada com nome dos

jogadores de uma partidajogadores de uma partida– Ouvidor Proxy:Ouvidor Proxy:

• Finalizar partida com erro;Finalizar partida com erro;• Tratar conexão perdida;Tratar conexão perdida;

Page 32: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Jogo da velhaJogo da velha• Jogo criado pelo professor Ricardo para as Jogo criado pelo professor Ricardo para as

aulas de análise e projetos.aulas de análise e projetos.

Page 33: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Jogo da velhaJogo da velha• Jogo adaptado:Jogo adaptado:

Page 34: Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr Modelagem do framework Netgames

Considerações finaisConsiderações finais• ResumindoResumindo

– Para adaptar um jogo é necessário:Para adaptar um jogo é necessário:• Configurar ambiente (arquivo configuração).Configurar ambiente (arquivo configuração).• Invocar a instância de Proxy para se conectar Invocar a instância de Proxy para se conectar

no servidor, desconectar, iniciar partidas, no servidor, desconectar, iniciar partidas, enviar e receber jogadas;enviar e receber jogadas;

• Implementar a interface OuvidorProxy para Implementar a interface OuvidorProxy para receber as jogadas, solicitação de inicio de receber as jogadas, solicitação de inicio de partida, possíveis erros*;partida, possíveis erros*;

– Não esquecer de adicionar no Proxy (design Não esquecer de adicionar no Proxy (design pattern Observer)pattern Observer)

• Implementar os objetos trocados entre as Implementar os objetos trocados entre as aplicações com a interface Jogada;aplicações com a interface Jogada;

• Tratar as Exceções.Tratar as Exceções.