Estrutura de servidor e de banco de dados para
Transcrição
Estrutura de servidor e de banco de dados para
AULA 03 REVISÃO DOS CONCEITOS TRABALHADOS ANTERIORMENTE 1. MMOS E SUAS SUBCATEGORIAS Os MMOs ou MMOGs (Massive Multiplayer Online Games – Jogos Multijogador On-Line Massivos). O termo “massivo” refere-se ao fato de serem mundos virtuais persistentes que são populados por centenas, e mesmo até milhares, de jogadores simultâneos por meio da Internet. Nestes, o jogador é representado por uma personagem gráfica denominada avatar. 2. SUBSCRIÇÃO [T.EN.: SUBSCRIPTION] A Subscrição é uma inscrição em m programa de pagamento seriado (mensal, bimestral, semestral, ou anual) na qual, mediante a taxa paga o jogador ou usuário tem o direito de jogar o jogo ou utilizar produtos – softwares oferecidos. Muitos jogos massivos multijogadores on-line adotam o sistema de subscrição, pois ele representa um fluxo contínuo para a entrada de recursos financeiros. CONTEÚDO PREVISTO: Estrutura de servidor e de banco de dados para multijogadores massivos COMPETÊNCIAS E HABILIDADES TRABALHADAS: Desenvolver projetos de estruturas de redes para jogos massivos pela internet. DOOM – A CHEGADA DOS PRIMEIROS FPS EM REDE Apesar de não ter sido exatamente o primeiro jogo de tipo First Person Shooter (FPS), jogo de tiro de primeira pessoa, o Doom foi o mais relevante entre os primeiros que surgiram. Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com O Doom permitia que até quatro jogadores jogassem cooperativamente ou uns contra os outros utilizando o protocolo IPX da Novell em uma rede local. O IPX, ou Internet Packet Exchange da Novell, era um protocolo de interconexão de redes que funcionava para a conexão de LANs. Era normalmente combinado com o SPX – Sequence Packet Exchange da Novell para formar o pacote SPX/IPX, funcionalmente equivalente ao TCP/IP sobre o qual a internet é baseada hoje. O SPX/IPX não conseguiu competir com o TCP/IP em relação à performance em áreas muito amplas, e acabou por desaparecer. As camadas de software e hardware do Doom, jogo multijogador em rede baseado em uma rede Novell. O Doom podia funcionar em duas topologias: com computadores conectados a uma LAN Ethernet ou por conexão via modem. As topologias possíveis utilizadas pelo Doom. Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com (a) computadores conectados a uma LAN Ethernet, cada um como um “peer” do Doom. (b) computadores conectados via modem, também cada um como “peer”. O Doom utilizava uma topologia de rede “peer-to-peer” que significa que cada jogador era um “peer” independente que fazia funcionar a sua própria cópia do jogo e comunicava-se diretamente com os outros “peers” do Doom. “Peer” é uma palavra em inglês que significa “colega”, “par” ou alguém igual a você. A cada 1/35 de segundo o nó de rede do Doom checava o input de cada jogador (tais como códigos de tecla de movimento, de tiro etc.) e retransmitia para todos os demais jogadores. Quando os comandos de todos os outros jogadores tivessem sido recebidos, a timeline do jogo avançava. O Doom utilizava números sequenciais para determinar se um pacote de dados havia sido perdido. Se algum dos nós de rede do jogo recebia um pacote de um número não esperado, este verificava qual número havia sido perdido e enviava um “acknowledgement” negativo ou NACK ao node para o qual o pacote havia sido perdido, para que este fosse reenviado (The Doom wiki, 2011). ARQUITETURAS E MODELOS DE COMUNICAÇÃO NOS JOGOS MULTIJOGADOR EM REDE Para podermos entender com propriedade os jogos multijogador em rede e seu funcionamento precisamos antes ter ideia clara de alguns elementos básicos sobre redes e os possíveis modelos de comunicação entre os nós da rede. Os jogos multijogador em rede dependem totalmente do tipo de conexão entre os nós da rede em que os jogadores estão conectados. O tipo de conexão determina uma série de fatores fundamentais para o perfeito funcionamento deste tipo de game, dentre eles a latência e a largura de banda da conexão. Para os jogos multijogador em rede podemos ter os seguintes tipos de conectividade em tempo real (RABIN, 2010, p. 606). Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com Link direto: ligar computadores em uma conexão curta normalmente garante baixa latência enquanto a largura de banda depende do meio. Modos populares de fazer links diretos incluem um cabo serial modificado (um cabo de modem de tipo NULL) e cabos USB. Links wireless populares incluem infravermelho e Bluetooth. Cada um deles possui protocolos especializados para facilitar a comunicação. Redes com comutação de circuitos: o exemplo claro desta é a conexão por telefone, que consiste em uma conexão direta dedicada (não compartilhada) de baixa latência e com pouca distribuição, ou seja, acaba sendo limitada a dois jogadores. Redes com comutação de pacotes: a comutação de pacotes é um paradigma de comunicação de dados em que pacotes (unidades de transferência de informação) são individualmente encaminhados entre nós da rede através de ligações de dados partilhadas por outros nós. A comutação de pacotes é utilizada para otimizar o uso da largura de banda da rede e minimizar a latência. MODELOS DE CONEXÃO O item a) da figura mostra um exemplo de jogo multijogador sem a utilização de rede. É um exemplo em que os jogadores utilizam um mesmo computador e compartilham a mesma tela. Há os casos dos jogos esportivos em que existe um único campo de jogo na tela para todos os jogadores a exemplo do Pong e do Atari Football. Em outros casos a tela é fisicamente dividida com cada lado mostrando o avatar de cada jogador em jogo. Diversos jogos de consoles atuais utilizam este modo, como o Boxe para o Wii, já mencionado. Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com As arquiteturas de comunicação possíveis para jogos multijogador: a) somente um computador utilizado por todos os jogadores e tela b) peerto-peer c) cliente-servidor d) híbrido de peer-to-peer e cliente-servidor e) rede de servidores. (Fonte: ARMITAGE et al., 2006 p.16) O item b) representa uma arquitetura peer-to-peer. Nesta arquitetura todos os clientes são “colegas” ou “peers”, isto é, nenhum tem mais controle do jogo que os outros. Trata-se de um sistema descentralizado e sem qualquer tipo de controle de segurança. Não há nenhum mediador que controle o estado do jogo ou que faça o roteamento de mensagens. Todos os clientes conversam entre si na rede. Este modelo apresenta a menor quantidade de latência Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com porque os pacotes não têm que ser enviados primeiro para um servidor para depois serem transferidos para o cliente final. O benefício em relação à latência tem como contrapartida um custo em maior utilização de banda. As arquiteturas “peer-to-peer” são populares em jogos multijogador jogados em redes locais geralmente por conta do pequeno número de jogadores participando de um jogo. Já o exemplo c) da figura 45 é o de uma arquitetura cliente-servidor. Em uma arquitetura deste tipo, um processo tem o papel de servidor, comunicando com cada cliente e mediando o estado do jogo. Os clientes não se comunicam diretamente uns com os outros, mas o servidor roteia as mensagens para os clientes apropriados. Este é um exemplo de arquitetura que possui uma estrutura centralizada no servidor e qualquer ação e comunicação da parte dos clientes precisa necessariamente passar pela autorização deste. O servidor é a parte crítica da comunicação na rede, se um cliente não puder comunicar-se com o servidor do jogo não conseguirá jogar e se o servidor puder mantiver a comunicação e computação necessárias, a jogabilidade poderá degradar para todos os clientes. A arquitetura cliente-servidor é a mais utilizada em jogos online comerciais, bem como nos clássicos MUDs. No exemplo d) da figura 45 de arquitetura híbrida de peer-to-peer e clienteservidor, o processo do servidor medeia o estado do jogo com base em informações enviadas pelos clientes como na arquitetura cliente-servidor tradicional, mas os clientes também são capazes de comunicarem-se uns com os outros como na arquitetura peer-to-peer tradicional. A comunicação entre os peers do cliente serve geralmente para informações do jogo que não são essenciais para alcançar pontos ou que possam afetar a jogabilidade dos outros jogadores. Por exemplo, é comum ter comunicação via VoIP (Voice Over Internet Protocol) feita de modo peer-to-peer enquanto os comandos para controlar um avatar continuam feitos pelo modo cliente-servidor. Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com BIBLIOGRAFIA PONTUSCHKA, Maigon Nacib. Metaversos e jogos digitais multijogador: Aspectos históricos e metodológicos de uma abordagem do ciberespaço. Dissertação de Mestrado. Pontifícia Universidade Católica de São Paulo. São Paulo, 2012. The Doom wiki (2011) Doom networking component [online] http://doom.wikia.com/wiki/Doom_networking_component RABIN, Steve (2010) Introduction to Game Development – Second edition. Boston: CENGAGE Learning. ARMITAGE, G.; Claypool, M.; Branch, P. (2006) Networking and online games: understanding and engineering multiplayer Internet games. England: John Wiley & Sons. CECIN, Fábio; TRINTA, Fernando. Jogos Multiusuário Distribuídos. Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS). 2007 MANOVICH, Lev. The language of the new media. 1. Ed. Massachusets, The MIT Press, 2001. NOJIMA, Miho. Pricing models and Motivations for MMO play. Seikei University, Faculty of Economics. Fábio Reis Cecin. FreeMMG: uma arquitetura cliente-servidor e par-apar de suporte a jogos maciçamente distribuídos. Dissertação de Mestrado, Instituto de Informática. Universidade Federal do Rio Grande do Sul, Janeiro 2005 Lothar Pantel and Lars C. Wolf. On the suitability of dead reckoning schemes for games. In Proceedings of the 1st workshop on Network and system support for games, pages 79–84. ACM Press, 2002. V. Lo C. GauthierDickey, D. Zappala. A fully distributed architecture for massively multiplayer online games. In SIGCOMM 2004 Workshops: Proceedings of ACM SIGCOMM 2004 workshops on NetGames ’04. ACM Press, 2004. Sun Microsystems. Java 2 Platform, Micro Edition, 2005. http://java.sun.com/j2me/. Prof º Marcelo Henrique dos Santos http://www.marcelohsantos.com Disponível em