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]