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