Desenvolvimento de Persistent Browser-Based Games - DI

Propaganda
Desenvolvimento de Persistent Browser-Based Games:
Ferramentas e Implementação do Multiversia
Jezmael Oliveira Basilio1 , Thalles Robson Barbalho1 , Ceres Germana Braga Morais2 ,
Marcelino Pereira dos Santos Silva1
1
Departamento de Informática
Universidade do Estado do Rio Grande do Norte (UERN)
BR 110 - Km 46, Bairro Pres. Costa e Silva
CEP 59625-620, Mossoró - RN
2
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte(IFRN)
Ipanguaçu - RN - Brasil
{jezmaelbasilio,thall3sr,prof.marcelino}@gmail.com, [email protected]
Abstract. With the ease of use of more powerful and faster technologies, local
applications lost out space to web-based applications. Among these applications, the games got bigger advantage with the creation of tools for the virtual
environment. This article proposes an analysis of emerging tools to create persistent browser-based games and prototyping of a game with one of the tools
discussed.
Resumo. Com a facilidade de utilização de tecnologias mais poderosas e
velozes, aplicativos de instalação locais perderam espaço para aplicações
baseadas na web. Entre essas aplicações, os jogos obtiveram maior vantagem com a criação de ferramentas para esse ambiente virtual. Esse artigo
propõe avaliação das ferramentas emergentes para criação de jogos persistentes baseados em navegadores e a prototipação de um jogo com uma das
ferramentas abordadas.
1. Introdução
Os Jogos Persistentes Baseados em Navegadores (Persistent Browser-based Game PBBG) fazem parte de uma categoria de jogos que são acessados em um navegador da
web e apresentam um ambiente virtual persistente, onde mesmo que o jogador não esteja
atuando no mundo ele permanece em atividade, podendo ele recuperar suas informações
na sua sessão seguinte [Project 2010]. Os PBBGs podem ser baseados em texto, com
gráficos bidimensionais ou tridimensionais e, em alguns casos, podem ser jogados em
aparelhos móveis.
Seu crescente sucesso pode ser explicado pela facilidade no acesso a tecnologias mais robustas e velozes para o uso em aplicações baseadas web ou webware. Essas
aplicações vêm se tornando cada vez mais presentes por não ser necessária a instalação
de softwares adicionais, mas apenas uma conexão de Internet [Magalhães 06].
Os PBBG são baseados na arquitetura cliente-servidor, na qual o lado servidor
persiste o estado do mundo virtual enquanto o lado cliente recupera esse estado e o apresenta ao usuário por meio de sua interface [Barbalho; Bası́lio e Silva 2009].
Devido as constantes atualizações dessas ferramentas, se faz necessário um levantamento sobre o potencial e caracterı́sticas que auxiliem o desenvolvedor no processo de
escolha de ferramentas adequadas ao desenvolvimento dessas aplicações. Dessa forma,
este trabalho apresenta uma avaliação das ferramentas que se adequam aos requisitos
necessários para o desenvolvimento de PBBGs. Essa avaliação verificará entre as ferramentas, as caracterı́sticas comerciais, de conteúdo e técnicas.
Além disso, propõe-se também a criação de um protótipo do lado cliente de jogo
com caráter social bidimensional se limitando à interface do cliente para a demonstração
de uma dessas ferramentas.
2. Requisitos das ferramentas
Segundo [Santos e Battaiola 06], os requisitos dessas ferramentas estão agrupados em
quatro diferentes termos: em produção de conteúdo, de implementação, de operacionalidade no navegador web e em aspectos comerciais e ideológicos.
Em termos de produção de conteúdo, os requisitos estão voltados ao suporte de
criação e manipulação de diferentes mı́dias tais como: áudio, vı́deo, textos, imagens e
animações. Em termos de implementação são requisitos: manipulação de gráficos vetoriais, criação de estruturas de dados complexos, suporte à detecção de eventos de entradas convencionais (teclado, mouse, etc), detecção de colisão, manipulação de eventos
e integração com outras linguagens. Em termos de operação no ambiente, os requisitos são: independência de navegador, fácil utilização nos navegadores, compactação de
dados e/ou mecanismos de gerenciamento de fluxo de dados. No aspecto comercial e
ideológico são ditos como requisitos: preço para utilização, padronização internacional,
código fonte aberto, documentação e ambiente de desenvolvimento integrado (Integrated
Developmente Enviroment - IDE) próprio para criação, edição e publicação.
3. Ferramentas para o desenvolvimento
Atualmente, exitem milhares de tı́tulos de jogos baseados em navegadores. Em [FBBG
10] é possı́vel encontrar uma extensa lista de tı́tulos populares, no entanto, eles se limitam
a um número pequeno de ferramentas utilizadas.
Entre elas, podem ser encontrados jogos desenvolvidos com Adobe Flash, Adobe
Shockwave, Java e Unity além de diversos jogos baseados em texto (apenas HTML e
imagens). Nos jogos relacionados é possı́vel observar que na categoria de conteúdo 2D a
ferramenta Flash predomina, enquanto para criação de conteúdos 3D ferramentas como
Java 3D, Unity e Shockwave são bastante utilizadas.
3.1. Adobe Flash
O Adobe Flash é uma IDE que suporta e manipula diversos tipos de mı́dias digitais.
Nele é possı́vel desenvolver a criação de animações contendo mı́dias como: áudio, vı́deo,
imagens, texto e desenhos vetoriais. Suas animações (ou Filmes Flash, com extensões
.swf) são executadas em um player com máquina virtual denominado Flash Player, que
atualmente tem a maior representação no mercado de plugin web com participação em
96,87% dos navegadores.
Na IDE do Flash é possı́vel ainda a utilização de recursos como: interpolação de
componentes; manipulação do eixo z dos elementos; criação, importação e exportação
de bibliotecas de elementos; integração com outros software da Adobe; movimentação
cinematográficas nos elementos (bones).
Além da IDE e do player, o Flash conta com uma linguagem de programação
própria, a ActionScript. Baseada na ECMAScript, a ActionScript na sua atual versão 3
tornou o Flash tão poderosa quanto o Shockwave, em alguns casos ainda mais poderosa
e veloz [Rozenzweig 08]. Com o paradigma de Programação Orientada a Objetos, sua
interface de programação de aplicações (Application Programming Interface - API) de
alto-nı́vel, possui diversas estruturas de dados. Também pode-se obter a integração com
outras linguagens como: JavaScript, XML, CSS e HTML.
Com a facilidade da integração entre os componentes gráficos e a programação,
o Flash tem se tornado a ferramenta mais utilizada por meio dos desenvolvedores de
jogos na web [Makar 07]. Algo que tem ajudado na sua popularidade é que apesar de
ser um software proprietário, existem alternativas livres para criação de jogos em Flash,
a programação com Flex via FlashDevelop e é um exemplo disso. Nele é possı́vel a
criação de animações, jogos e aplicativos web utilizando apenas a programação em ActionScript. São exemplo de PBBG populares em Flash: zOMG, AdventureQuest, Gilfor’s
Tales, Habbo, Fantasy Online e Puzzle Pirates.
3.2. Adobe Shockwave
O Adobe Shockwave é um player para arquivos na extensão .dcr nativo do Adobe Director.
Com o Director é possı́vel criar e publicar jogos, simulações e demonstrações interativas
para a web.
O Director na sua atual versão 11, possui diversas capacidades como: filtros de
imagens; suporte de diferentes formatos de vı́deo, áudio e imagens; suporte a DirectX
9; movimentações com as leis da fı́sica (NVIDIA PhysX engine); mixagem de áudio em
tempo real e efeitos sonoros; integração com outros programas da Adobe e suportes a
diferentes formatos de conteúdos 3D. Apesar da confusão das pessoas, o Shockwave tem
bastante diferenças com o Flash. Ele de fato é uma ferramenta mais poderosa, porém
perde em popularidade. Atualmente, o Shockwave player encontra-se em apenas 47%
dos computadores com Internet.
3.3. Unity
O Unity é uma ferramenta multiplataforma para o desenvolvimento fácil de jogos 3D.
Com ele é possı́vel produzir jogos para navegadores (Windows e Mac), iPad, Wii, PS3,
XBox 360, iPhone e Android. Seu editor possui uma ótima interface onde rapidamente se
pode ter a visualização do protótipo, controle de câmeras, texturas, sonoplastia 3D, por
meio apenas de arrastar e soltar os componentes.
Entre as suas diversas possibilidades pode-se listar: grande poder gráfico com
renderização OpenGL e DirectX 9; suporte a diferentes formatos de programas populares (Photoshop, Maya, 3ds Max, Blender, entre outros), funcionalidades para jogar em
rede, movimentações realistas com efeitos fı́sicos, streaming de áudio e vı́deo com codecs
livres, efeitos de iluminação, entre outros.
A programação dos jogos é feitas via Mono. Com ele, os programadores podem
utilizar linguagem como JavaScript, C ou Java. Por ser bastante poderosa, grandes tı́tulo
de jogos como: FusionFall, NOMBZ: Online, Star Wars: the Quest for R2-D2 utilizam
essa ferramenta.
3.4. Java 3D
O Java 3D ou J3D consiste em um conjunto de classes Java que serve interface para
a manipulação de conteúdos gráficos tridimensionais. Em seus programas são criadas
instâncias de objetos gráficos que são colocadas em um grafo de cena, onde é possı́vel
conter diversos outros componentes como: luzes, áudio, imagens, etc, que possibilitam a
criação do ambiente virtual tridimensional [Manssour 03].
A criação de cenas pode ser feita de dois modos. A primeira é feita pela
instanciação de elementos primitivos já existentes no J3D. A segunda consiste em fazer
o carregamento de modelos de cenas já elaborados por ferramentas de modelagem. Santos e Battaiola [2006] descrevem o segundo caso como a solução mais viável, já que o
J3D API possui carregadores internos nos formatos VRML, Object e outros formatos de
modelos geométricos.
Outra caracterı́stica importante do J3D é a derivação das demais possibilidades
que a linguagem Java propõe, como criação de estruturas complexas, comunicação com
sockets TCP/IP, interação com outras linguagens, suporte a comunicação com joysticks e
outras entradas não usuais, etc.
4. Avaliação e Resultados
Tabela 1. Avaliação comparativa das ferramentas
Com a avaliação comparativa das ferramentas, pode-se observar na Tabela 1 que
todas as ferramentas têm um grande poder para o desenvolvimento de jogos baseados em
navegadores, porém, algumas encontram-se com limitações para diferentes ambientes.
Enquanto o J3D ganha em questão de compatibilidade, ele perde na questão da
fácil utilização e fácil desenvolvimento, já que requer um maior entendimento para tanto.
Uma outra observação importante sobre J3D é que ele não tem suporte a diferentes mı́dias,
porém a sua integração com o Java Media Framework - JMF resolve esse problema e adiciona muitas outras como: mixagem de áudio, captura de vı́deo, suporte a threads, entre
outros [Santos e Battaiola 06]. O Shockwave Player e o Unity ainda não se encontram
disponı́veis para o Linux, o que limita o número de usuários de jogos com esses tipos
ferramentas. Uma informação que deve-se levar em conta é a capacidade do Adobe Flash
utilizar dados 3D por meio da biblioteca adicional PaperVisio3d, o que aumenta ainda
mais a sua capacidade.
5. Projeto Multiversia
Para a prototipação foi criado o Projeto Multiversia que se propõe a ser um PBBG
de caráter social com gráficos bidimensionais. Na escolha da ferramentas para a
implementação foram propostos os seguintes requisitos:
•
•
•
•
Utilização de gráficos bidimensionais
Comunicação com outras linguagens
Facilidade na criação do protótipo
Rápida linha de aprendizado
Entre as ferramentas avaliadas foi proposta a utilização apenas do Adobe Flash
para criação do protótipo, justificada devido a sua facilidade na utilização de elementos
multimı́dia, o que facilita na colaboração entre os elementos do jogo com a programação,
ponto esse que torna a ferramenta ainda mais utilizada para criação de jogos casuais e
persistentes na web [Makar 09]. O Multiversia tem como objetivo a interação do personagem com o ambiente virtual e outros avatares (caminhar, falar, receber informações
sobre estágios e armazenar informações de status). A recuperação das informações a cada
sessão é feita por meio de arquivos XML e para o envio de mensagens entre os usuários
utiliza-se o EletroServer, um socket-server para jogos multi-jogadores. É mostrada na
Figura 1 a captura de tela do protótipo do jogo Multiversia.
Figura 1. Captura de Tela do protótipo do jogo Multiversia
6. Conclusão e Trabalhos Futuros
Apesar das limitações e popularidade das ferramentas, elas podem ser escolhidas de
acordo com a necessidade do jogo. Jogos de com grandes temas e mundos realistas podem ser criados com Unity, onde há a muitos recursos de sonoplastia 3D e efeitos fı́sicos,
além da facilidade na hora do desenvolvimento. O Adobe Shockwave se adéqua a jogos
3D que não requerem tanto realismo e a equipe de desenvolvimento que já tenha uma boa
base de manipulação de objetos 3D.
O Java 3D vem com alternativa livre para criação de jogos, porém há um custo
para o desenvolvimento, apesar de seu plugin estar presente em muitos computadores o
desenvolvimento de jogos em Java pode se tornar complicado na hora da utilização de
diversas mı́dias. O Flash se encontra como a melhor alternativa para a primeira criação
de jogo baseada em navegadores, porém a sua utilização ainda causa muitas discussões
devido a sua performance.
Espera-se que futuramente possam ser estudadas novas ferramentas emergentes
para criação de jogos 2D com HTML 5, SVG e e 3D com WebGL, englobando o estudo das
vantagens que elas podem trazer e dos custos que usuário tem que pagar para a utilização
de jogos com essas ferramentas.
Referências
MAGALHÃES, A., 2006. O que esperar da internet nos próximos anos?
[online]
IBOPE Inteligência, IBOPE//NetRatings, Internet, Notı́cias 2006. Disponı́vel em:
www.ibope.com.br [Acesso em 04 abril de 2006].
SANTOS, R. J. dos, BATTAIOLA, A. L. (2006) Análise de Tecnologias para a
Implementação de Jogos Web. Simpósio Brasileiro de Games - SBGames. Disponı́vel
em http://www.sbc.org.br/bibliotecadigital/download.php?paper=526 [Acesso em 13 de
janeiro de 2010].
Project, P. (2009). Persistente Browser-Based Game - Defining a genre. Disponı́vel em
http://www.pbbg.org [Acessado em 05 de agosto 2009]
Barbalho, T. R., Basilio, J. O., Silva, M. P. dos S. (2010) Projeto e Implementação de um Servidor
para Pesistência e Recuperação do Estado de Persistent Browser-Based Games. Natal,
RN: Escola Potiguar de Computação e suas Aplicações, 2009.
Gamer,
F. B. (2010) Free to play Browser Based Games. Disponı́vel em
http://www.freebrowsergamer.com/2008/12/browser-based-games-top-10.html [Acesso
10 de agosto de 2010]
Makar, J. (2009) ActionScript-Multiplayer-Games-Virtual-Worlds. News Rider. Berkeley, CA.
ISBN-13: 978-0-321-64336-0.
Rozenzweig, G. (2008) ActionScript 3.0 Game Programming University. USA. ISBN: 0-78973702-7.
Manssour, I. H. (2003) Introdução ao Java 3D. Faculdade de Informática - PUCRS,
Av. Ipiranga 6681, P. 30, 90619-900 Porto Alegre/RS, Brasil. Disponı́vel em
www.inf.pucrs.br/ manssour/Publicacoes/TutorialSib2003.pdf [Acesso 10 de agosto de
2010]
Download