A Revolta da Cabanagem - LaRV
Transcription
A Revolta da Cabanagem - LaRV
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO FABRÍCIO CARDOSO DA SILVA JOGO EDUCATIVO “A REVOLTA DA CABANAGEM” E AS TÉCNICAS DE GERAÇÃO DOS RECURSOS GRÁFICOS DE SEU AMBIENTE VIRTUAL BELÉM – PA 2009 i UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO FABRÍCIO CARDOSO DA SILVA JOGO EDUCATIVO “A REVOLTA DA CABANAGEM” E AS TÉCNICAS DE GERAÇÃO DOS RECURSOS GRÁFICOS DE SEU AMBIENTE VIRTUAL Trabalho de conclusão de curso apresentado para obtenção do grau de Engenheiro da Computação, do Instituto de Tecnologia, da Faculdade de Engenharia da Computação BELÉM – PA 2009 ii JOGO EDUCATIVO “A REVOLTA DA CABANAGEM” E AS TÉCNICAS DE GERAÇÃO DOS RECURSOS GRÁFICOS DE SEU AMBIENTE VIRTUAL Este trabalho foi julgado em 01/07/2009 adequado para obtenção do Grau de Engenheiro da Computação, e aprovado na sua forma final pela banca examinadora que atribuiu o conceito EXCELENTE. ______________________________ Prof. Dr. Manoel Ribeiro Filho (Orientador) Faculdade de Engenharia da Computação Universidade Federal do Pará ______________________________ Prof. Dr. Agostinho Luiz da Silva Castro (Membro) Faculdade de Engenharia da Computação Universidade Federal do Pará ______________________________ Prof. Dr. Ronaldo de Freitas Zampolo (Membro) Faculdade de Engenharia da Computação Universidade Federal do Pará ______________________________ Prof. Dr. Gervásio P. dos Santos Cavalcante Diretor da Faculdade de Engenharia da Computação da Universidade Federal do Pará Julho/2009 iii “Ninguém é tão ignorante que não tenha algo a ensinar; e ninguém é tão sábio que não tenha nada a aprender.” Blaise Pascal iv Aos meus pais e irmãos, pelo apoio, dedicação e motivação. v AGRADECIMENTOS Primeiramente, agradeço aos meus familiares, em especial aos meus pais, por todo o carinho, compreensão, apoio e dedicação dados a mim durante minha vida. A todos os professores que, direta ou indiretamente, me instruíram durante a minha formação acadêmica. Agradeço também aos membros do Laboratório de Realidade Virtual (LaRV), especialmente ao Prof. Manoel Ribeiro, pelo apoio e orientações a mim concedidas. Por fim, a todos os que demonstraram seu apoio ou fizeram votos pelo sucesso deste trabalho. vi SUMÁRIO Capítulo 1 – Introdução .............................................................................................. 1 Capítulo 2 – Jogos Eletrônicos.................................................................................... 4 2.1 - Histórico ........................................................................................................ 4 2.2 – Definição de jogos eletrônicos ....................................................................... 7 2.3 – Gêneros de jogos ........................................................................................... 7 2.4 – Jogos como ferramentas de auxílio na educação .......................................... 13 2.5 – Jogos educativos .......................................................................................... 15 2.5.1 – Tríade .................................................................................................. 15 2.5.2 – Revolution ............................................................................................ 15 2.5.3 – Laguna ................................................................................................. 16 2.6 – Jogo educativo “A Revolta da Cabanagem” ................................................. 16 2.6.1 – Fase Pré-revolucionária ...................................................................... 18 2.6.2 – Explosão do conflito armado: Batalha do Acará .................................. 20 2.6.3 – Explosão do conflito armado: Batalha em Belém ................................. 21 Capítulo 3 – Ferramentas ......................................................................................... 23 3.1 – Ogre3D ....................................................................................................... 23 3.2 – Blender ........................................................................................................ 25 3.3 – GIMP .......................................................................................................... 28 Capítulo 4 – Ambiente virtual da cidade de Belém ................................................. 32 4.1 – Objetos estáticos .......................................................................................... 32 4.1.1 – Igreja das Mercês e Arsenal de Guerra ................................................ 32 4.1.2 – Brigue Palhaço .................................................................................... 35 4.2 – Personagens ................................................................................................. 36 4.2.1 – Felipe Patroni e Batista Campos.......................................................... 38 4.2.2 – Lobo de Souza ...................................................................................... 38 4.2.3 – Eduardo Angelim ................................................................................. 39 4.2.4 – Comandante português ........................................................................ 39 vii 4.2.5 – Cabanos e escravos.............................................................................. 40 4.3 – Animações................................................................................................... 40 4.3.1 – Animações básicas ............................................................................... 43 4.3.2 – Animações de eventos do jogo .............................................................. 44 4.4 – Animações pré-renderizadas ........................................................................ 45 4.4.1 – Abertura da escotilha do Brigue Palhaço ............................................. 46 4.4.2 – Saída da fazenda Vila Nova ................................................................. 48 4.4.3 – Vitória dos cabanos na tomada do poder em Belém ............................. 49 4.5 – Terreno........................................................................................................ 50 4.6 – Configuração do ambiente virtual ................................................................ 51 Capítulo 5 – Considerações finais............................................................................. 55 Referências bibliográficas......................................................................................... 57 viii RESUMO Este trabalho apresenta técnicas de modelagem e configuração de objetos tridimensionais aplicadas ao desenvolvimento do ambiente virtual de um jogo eletrônico sobre a Revolta da Cabanagem, elaborado com o intuito de motivar o aprendizado de estudantes de Ensino Fundamental e Médio. Será apresentado inicialmente um estudo sobre jogos eletrônicos, tendo como objetivo introduzir o assunto de jogos educativos, ressaltando a importância de tais ferramentas no processo de ensino-aprendizagem, para que, por fim, sejam abordadas as características principais do projeto deste jogo. Em seguida, serão expostas as ferramentas e os métodos utilizados no processo de modelagem e mapeamento de texturas, que se concentram no desenvolvimento de construções históricas e personagens do período revolucionário, bem como suas respectivas animações, além da criação de vídeos de animações pré-renderizadas, os quais são mostrados em determinados momentos ao longo do jogo. Também serão mostradas as técnicas utilizadas na preparação do terreno e configuração do ambiente do jogo. Por se tratar de um jogo educativo, primou-se pelo desenvolvimento de um software que também possa ser utilizado em plataformas de baixo desempenho, de forma a atingir um público maior. Assim, será dada ênfase à simplificação dos modelos, de forma que o custo computacional demandado pelo processamento de uma cena seja o menor possível, mas que seja mantida a noção de realismo do ambiente. Palavras-chave: Realidade Virtual, Jogos Educativos, Modelagem 3D. ix ABSTRACT This work presents 3D object modeling and configuration techniques applied to the development of the virtual environment of a computer game about the Cabanagem Revolt, which intends to motivate the learning process for elementary and high school students. Firstly, a study about computer games will be addressed, aiming at the matter of educational games and highlighting their importance in the learning process; then, the main characteristics of the educational game project proposed by this work will be presented. In the following sections, the tools and techniques applied to the modeling and texture mapping process are discussed, with emphasis on the development of historical buildings and the characters of the revolutionary period, as well as their corresponding animations and pre-rendered animation sequences, which are shown during the game. The methods for the terrain and environment configuration of the game’s virtual city are also presented. Since this work addresses educational game issues, the text focuses on the development of a software that can be used in low end computers, in order to achieve a broader public. Therefore, low complexity versions of the models will be emphasized, so that the computational load demanded by processing a virtual scene are the lowest possible, while maintaining the notion of reality delivered by the environment. Keywords: Virtual Reality, Educational Games, 3D Modeling. x LISTA DE FIGURAS Figura 1.1: Comparação entre uma paisagem real e o ambiente do jogo Crysis ............... 1 Figura 2.1: Tennis for Two .................................................................................................... 4 Figura 2.2: Versão original de Spacewar! ........................................................................... 5 Figura 2.3: Jogos 3D na geração 16-bit ................................................................................ 6 Figura 2.4: Jogos de arcade na década de 1990 ................................................................... 6 Figura 2.5: TimeShift ............................................................................................................. 8 Figura 2.6: New Super Mario Bros ....................................................................................... 9 Figura 2.7: Street Fighter IV ................................................................................................. 9 Figura 2.8: The Legend of Zelda......................................................................................... 10 Figura 2.9: Age of Empires III ............................................................................................ 10 Figura 2.10: Shin Megami Tensei IMAGINE .................................................................... 11 Figura 2.11: Rune Factory Frontier: A Fantasy Harvest Moon ........................................ 11 Figura 2.12: OutRun 2006: Coast 2 Coast .......................................................................... 12 Figura 2.13: Professor Layton and the Curious Village .................................................... 12 Figura 2.14: Big Brain Academy ........................................................................................ 13 Figura 2.15: The Dark Spire ................................................................................................ 14 Figura 2.16: Tríade............................................................................................................... 15 Figura 2.17: Revolution – projeto Games-to-Teach .......................................................... 16 Figura 2.18: Ambientes do jogo Laguna ............................................................................ 16 Figura 2.19: Tela título ........................................................................................................ 17 Figura 2.20: Tela de seleção de missões ............................................................................. 18 Figura 2.21: Inventário apresentando os controles e objetivos ......................................... 18 Figura 2.22: Descrição de landmarks na missão “Conhecer Belém” ............................... 19 Figura 2.23: Felipe Patroni sendo perseguido por um soldado ......................................... 19 Figura 2.24: Batista Campos fugindo da capital em um bote............................................ 20 Figura 2.25: Jogo de estratégia que antecede a fase de batalha ........................................ 21 Figura 2.26: Missão da batalha no Acará ........................................................................... 21 Figura 2.27: Batalha pela tomada do poder na cidade de Belém ...................................... 22 Figura 3.1: Inicialização de uma aplicação em Ogre ......................................................... 24 Figura 3.2: Exemplos de jogos que utilizam Ogre ............................................................. 24 Figura 3.3: Tela de inicialização do Blender 2.49 ............................................................. 26 Figura 3.4: Interface do exportador OgreMeshes............................................................... 27 Figura 3.5: Técnica de mapeamento UV ............................................................................ 28 Figura 3.6: Janela principal do GIMP 2.6........................................................................... 29 Figura 3.7: Correção da imagem utilizando ajuste de perspectiva.................................... 30 Figura 3.8: Encaixe contínuo de texturas desordenadas .................................................... 30 Figura 3.9: Encaixe irregular observado ao deslocar a imagem ....................................... 31 Figura 4.1: Igreja das Mercês e Arsenal de Guerra............................................................ 33 Figura 4.2: Proporções dos prédios reais e modelados ...................................................... 33 Figura 4.3: Texturas da igreja das Mercês e do Arsenal de Guerra .................................. 34 xi Figura 4.4: Modelo final da igreja das Mercês e do arsenal de guerra ............................. 35 Figura 4.5: Imagem utilizada para a modelagem do brigue Palhaço ................................ 35 Figura 4.6: Modelo final do brigue Palhaço ....................................................................... 36 Figura 4.7: Mapeamento de textura sobre uma face .......................................................... 37 Figura 4.8: Modelos de Felipe Patroni e Batista Campos ................................................. 38 Figura 4.9: Lobo de Souza ................................................................................................... 39 Figura 4.10: Eduardo Angelim ............................................................................................ 39 Figura 4.11: Comandante do exército português ............................................................... 40 Figura 4.12: Cabano e escravo ............................................................................................ 40 Figura 4.13: Preparação do esqueleto para o processo de animação ................................ 41 Figura 4.14: Pintura de peso (Weight Paint) ..................................................................... 42 Figura 4.15: Animação utilizando o Action Editor ............................................................ 43 Figura 4.16: Animações de ataque ...................................................................................... 44 Figura 4.17: Animações de eventos do jogo ...................................................................... 44 Figura 4.18: Interface do Ipo Curve Editor ........................................................................ 46 Figura 4.19: Configuração geral de um Path ...................................................................... 47 Figura 4.20: Animação do Brigue Palhaço ......................................................................... 48 Figura 4.21: Animação na fazenda Vila Nova ................................................................... 49 Figura 4.22: Cena final do jogo da Cabanagem ................................................................. 50 Figura 4.23: Configuração do terreno por meio do script de material .............................. 51 Figura 4.24: Ambiente diurno da cidade de Belém............................................................ 53 Figura 4.25: Ambiente noturno da cidade de Belém ......................................................... 54 xii LISTA DE ABREVIATURAS 2D – Duas dimensões 3D – Três dimensões 3DS – 3D Studio File Format API – Application Programming Interface BMP – Bitmap File CAVE – Cave Automatic Virtual Environment DDS – DirectDraw Surface FPS – First Person Shooter GIF – Graphics Interchange Format GIMP – GNU Image Manipulation Program GPL – General Public License Ipo – Interpolation JPG – Joint Photographic Experts Group MIT – Massachusetts Institute of Technology NES – Nintendo Entertainment System NPC – Non-Player Character OGRE – Object-Oriented Graphics Rendering Engine PNG – Portable Network Graphics PSD – Photoshop Document RGB – Red, Green e Blue (sistema de cores) RPG – Role Playing Game SNES – Super Nintendo Entertainment System TGA – Targa File TIFF – Tagged Image File Format VCS – Video Computer System VRML – Virtual Reality Modeling Language XCF – Experimental Computing Facility XML – Extensible Markup Language 1 CAPITULO 1 – INTRODUÇÃO Videogames estão incluídos entre as mais praticadas formas de entretenimento do século XXI, apesar de terem suas origens em meados do século anterior a partir de interações muito simples com poucos elementos exibidos em uma tela. Com o grande e recente avanço das tecnologias de desenvolvimento desse tipo de software, é possível reproduzir ambientes virtuais com alto grau de realismo em vários aspectos, como gráficos, efeitos sonoros e simulações físicas, que o jogador experimenta simultaneamente e em tempo real enquanto joga. Um exemplo do nível atingido pela evolução gráfica em jogos é ilustrado na figura 1.1, do FPS (First Person Shooter, jogo de tiro em primeira pessoa) Crysis, criado pela desenvolvedora alemã Crytek, em que é feita uma comparação do nível de detalhamento de cenários reais com ambientes virtuais do game. (a) Paisagem real (b) Ambiente virtual Figura 1.1: Comparação entre uma paisagem real e o ambiente do jogo Crysis. A princípio, jogos eram rotulados como simples e vazias formas de entretenimento. Por esta razão, a prática de jogar não era aconselhada por muitos pais, mas atualmente, vive-se em uma era na qual a tecnologia faz parte da vida do ser humano em várias áreas, tornando-se natural a utilização de sistemas de computação no processo de ensino-aprendizagem. Dessa forma, educadores tentam utilizar jogos eletrônicos como um canal de comunicação com seus alunos, apresentando-os, através desses softwares educativos, a situações e problemas de diferentes naturezas e de complexidade variável, estimulando de maneira lúdica um aprendizado natural, aperfeiçoando as funções cognitivas e a curiosidade do estudante enquanto este busca uma solução para o que lhe é mostrado. Esse interesse da comunidade acadêmica em jogos tem crescido fortemente nos últimos anos, o que pode ser demonstrado pelas múltiplas ocorrências de estudos e projetos desenvolvidos em universidades de diversos países por equipes integrando pesquisadores e professores de diferentes áreas, envolvendo jogos em geral [5, 7, 14, 26, 27] ou educativos aplicados ao ensino de matemática [2, 4], química [27], história [6, 15, 28, 25], programação [23], dentre outras disciplinas. 2 Um fator importante a ser observado quando do desenvolvimento de um jogo é o que o torna atraente para o seu público-alvo. Entre os elementos que podem torná-lo atrativo destacam-se o desafio imposto ao jogador, o enredo e a qualidade gráfica, os quais recebem sólidos investimentos em projetos de grandes empresas de jogos, também chamadas de softhouses, resultando em um produto final com gráficos e animações exuberantes e enredos que rendem dezenas, ou mesmo centenas, de horas de jogo, como as populares séries de RPG Shin Megami Tensei e Final Fantasy, desenvolvidas pelas japonesas Atlus e Square-Enix. No entanto, jogos educativos não contam com volume de capital semelhante ao investido pelas softhouses em seus projetos de caráter comercial. Consequentemente, utilizar ferramentas de baixo custo, ou mesmo livres, no desenvolvimento de projetos acadêmicos é a solução mais comum na maioria dos casos. Em geral, softwares gratuitos possuem um grande número de restrições se comparados a softwares comerciais que possuem a mesma finalidade. O jogo da Cabanagem [6] é um projeto que visa o desenvolvimento de um software educativo para o ensino de história a alunos do ensino médio, para o qual foram utilizados principalmente softwares livres. Ao longo do jogo, são abordados fatos como a adesão do Pará à Independência e o surgimento da imprensa no estado, além de conflitos armados entre cabanos e tropas portuguesas. Esse conteúdo é apresentado de maneira interativa, em que o jogador assume o controle de personagens da história e precisa cumprir objetivos que lhe são apresentados, ou através de recursos multimídia, como imagens e vídeos, que narram os acontecimentos que antecedem ou sucedem cada fase. Este trabalho apresentará inicialmente um estudo sobre jogos eletrônicos e a importância destes como ferramentas educativas. Em seguida, concentrar-se-á na modelagem de parte do ambiente virtual da cidade de Belém, apresentando alguns landmarks (construções importantes da cidade) e objetos importantes que compõem o cenário, dando destaque à criação e animação de personagens do jogo, bem como a construção das sequências de vídeo pré-renderizadas que são mostradas entre algumas fases. Por fim, será apresentada a forma final deste ambiente, delineando os principais recursos utilizados neste processo de configuração. O capítulo 2 expõe uma base teórica sobre jogos eletrônicos, que abrange um breve histórico, definição, gêneros de jogos e a importância destes no processo de ensino-aprendizagem, apresentando o jogo da Cabanagem e alguns trabalhos relacionados na área de desenvolvimento de jogos educacionais. No capítulo 3, serão apresentadas as ferramentas utilizadas no desenvolvimento do jogo, especificamente ferramentas de modelagem, animação e o módulo gráfico do CabanEngine [19], motor desenvolvido para o jogo da Cabanagem. Os outros módulos 3 componentes do motor estão fora do escopo deste trabalho, portanto, não serão apresentados. No capítulo 4, o processo de modelagem de alguns componentes do ambiente urbano será descrito, apresentando alguns landmarks, os personagens, suas animações e o processo de síntese das animações pré-renderizadas utilizando o software de modelagem, além dos métodos de configuração do terreno e do ambiente da cidade, utilizando recursos de materiais e o módulo gráfico do motor do jogo, respectivamente. Por fim, no capítulo 5, serão apresentadas as conclusões sobre este trabalho e suas contribuições para o cenário atual de produção de softwares com fins educacionais. 4 CAPITULO 2 – JOGOS ELETRÔNICOS Este capítulo será introduzido com um breve histórico dos sistemas de jogos eletrônicos [10]. Será mostrada em seguida a definição de jogos, os gêneros nos quais podem ser classificados e alguns estudos que demonstram a importância deles como forma de entretenimento. Em seguida, serão apresentados projetos de jogos educativos cuja proposta se assemelha à do objeto deste trabalho. Por fim, será apresentado o jogo da Cabanagem. 2.1 – HISTÓRICO Os primeiros jogos interativos datam do final da década de 1940 e início da década de 1950, a partir de interações rudimentares do usuário com alguns objetos que eram desenhados na tela. O exemplo mais comum é o jogo Tennis for Two, no qual a tela de um osciloscópio foi utilizada para jogar uma partida de tênis bastante simplificada. Foi criado em 1958, no Brookhaven National Laboratory, pelo cientista William Higinbotham, mostrado na figura 2.1. Figura 2.1: Tennis for Two. No entanto, o primeiro jogo considerado influente na história dos videogames foi desenvolvido em 1961, por um estudante do Massachusetts Institute of Technology (MIT) chamado Steve Russel. Intitulado Spacewar!, o jogo, mostrado na figura 2.2, possibilitava que dois adversários humanos controlassem duas naves exibidas simultaneamente em uma tela com o objetivo de abater o jogador oponente, dando origem também ao popular gênero shoot ’em up. 5 Figura 2.2: Versão original de Spacewar! Na década de 1970, começavam a surgir os primeiros sistemas de consoles domésticos e arcades, os últimos tendo o início de seu auge durante essa década. Em 1971, Nolan Bushnell desenvolveu uma versão de Spacewar! chamada Computer Space, a qual foi vendida para a empresa Nutting Associates, que produziu e lançou no mesmo ano a primeira máquina de arcade da história. Em 1972, Bushnell fundou a empresa Atari, lançando no mesmo ano o jogo Pong, criado por Allan Alcorn, dando origem à indústria de videogames. No mesmo ano foi lançado o Magnavox Odyssey, o qual incluía um pequeno conjunto de jogos com jogabilidade muito semelhante. Em 1977, a Atari lançou seu primeiro console baseado em cartuchos, o Atari 2600 Video Computer System (VCS), que contava com uma variação maior em sua biblioteca de jogos. Ao final desta década, muitas novas empresas já haviam ingressado na indústria de jogos, em especial no desenvolvimento de arcades. Exemplos de companhias que surgiram nesta época e ainda desenvolvem jogos para sistemas de gerações atuais são SNK, Namco e Taito. A década de 1980 foi marcada pelo apogeu da indústria de arcades, com o surgimento de gráficos (estes até mesmo em 3D, utilizando desenho vetorial em wireframe) e efeitos sonoros mais sofisticados. Em 1985 e 1986, Nintendo e Sega lançam seus consoles domésticos da era 8-bit: Nintendo Entertainment System (NES) e Sega Master System, respectivamente. O desenvolvimento de jogos para computadores se popularizou com o lançamento de Zork, um jogo de aventura baseado em texto desenvolvido pela Infocom, que posteriormente perdeu sua popularidade devido ao lançamento de jogos de aventura gráficos, introduzidos pela empresa Sierra On-Line (atualmente Sierra Entertainment) através do jogo Mystery House. Nos anos 90, o amadurecimento da indústria de videogames propiciou o desenvolvimento de jogos mais complexos e desafiadores. Esse período foi marcado pela disputa entre Nintendo, Sega e Sony pela maior fatia do mercado global de jogos para consoles. Os primeiros jogos 3D a utilizarem formas poligonais sólidas foram desenvolvidos para os consoles de 16-bit, Super Nintendo Entertainment System (SNES) e Sega Genesis, como Star Fox e Out of This World, mostrados nas figuras 2.3a e 2.3b. Wolfenstein 3D, desenvolvido pela id Software em 1992, também proporcionou 6 a exploração de um ambiente tridimensional e é considerado o primeiro jogo do popular gênero de tiro em primeira pessoa (FPS), sendo mostrado na figura 2.3c. (a) Star Fox (b) Out of This World (c)Wolfenstein 3D Figura 2.3: Jogos 3D na geração 16-bit. Os sistemas de 32-bit, Sega Saturn, Sony Playstation e o malsucedido 3DO, e o de 64-bit, Nintendo 64, aprimoraram as experiências com gráficos e efeitos sonoros 3D. Em 1998, enquanto Nintendo e Sony ainda desenvolviam jogos para seus consoles mais recentes, a Sega lançou o Dreamcast, de 128-bit, que representou um grande avanço nas tecnologias de jogos, adicionando também recursos de jogabilidade em rede. Ainda nessa década, jogos de luta se popularizaram bastante em arcades devido ao grande avanço no hardware desses sistemas, proporcionando melhoras gráficas que tornaram os títulos mais atraentes, como Street Fighter e Killer Instinct, sendo neste último utilizada a técnica Motion Capture nas animações dos personagens, que captura movimentos executados por atores para reprodução através computação gráfica. Além disso, ocorreu o “amadurecimento” do gênero shoot ’em up, originando os chamados maniac shooters, como Radiant Silvergun e DoDonPachi, jogos que apresentam uma quantidade altíssima de projéteis na tela e um nível de desafio bastante alto, demandando elevado grau de concentração e precisão do jogador. Os jogos Killer Instinct e Radiant Silvergun são mostrados na figura 2.4. (a) Killer Instinct 2 (b) Radiant Silvergun Figura 2.4: Jogos de arcade na década de 1990. Em 2001, o Dreamcast teve sua produção prematuramente interrompida pela Sega, devido à grande popularização do concorrente Playstation 2, lançado em 2000 e 7 seguido pelo lançamento do Nintendo Gamecube e do primeiro console da Microsoft, Xbox, de 32-bit. Com isso, a produção de consoles domésticos da Sega chegou ao fim e a empresa se dedicou ao desenvolvimento de placas de arcades e softwares para diferentes plataformas. A mais recente geração de consoles domésticos é dominada pelos sistemas Nintendo Wii, Playstation 3 e Xbox 360. O primeiro recebeu grande destaque devido ao uso de tecnologia de sensores de movimento em seus jogos, tornando possível capturar e reproduzir as ações do jogador no ambiente virtual. Desenvolveu-se também nesta geração grande interesse em recursos online, com grande popularização de modos de jogo em rede e disponibilidade de conteúdo para download, como Web browsers e jogos de pequeno porte. 2.2 – DEFINIÇÃO DE JOGOS ELETRÔNICOS Jogos eletrônicos podem ser definidos como sistemas compostos por três partes: enredo, interface interativa e motor. A associação harmoniosa destes elementos é necessária para uma aplicação bem sucedida. O enredo define o tema, a trama, objetivo(s) e o conjunto de ações que devem ser tomadas pelo jogador para que este chegue ao final do jogo, surgindo a partir de pesquisas sobre o assunto a ser abordado pelo jogo, da criatividade para adaptar o tema a um ou mais gêneros e da interação entre profissionais de áreas relacionadas ao tema. A interface interativa controla a comunicação entre o motor de jogo e o usuário, a qual se estabelece a partir da atualização das informações disponíveis para o jogador. Interfaces bem elaboradas proporcionam ao jogador facilidade de compreensão e usabilidade das informações e funções que lhe são disponibilizadas, tornando a utilização do software um processo eficiente e satisfatório. O motor do jogo, ou game engine, é o seu sistema de controle, o componente responsável pela execução de diversas funcionalidades dentro da aplicação, especificamente as tarefas de baixo nível, como comunicação com o hardware gráfico, transformação de modelos, simulações físicas, sonoras e captura e tratamento das entradas do jogador, informações que um desenvolvedor de jogos não precisa ou tem desejo de conhecer profundamente para programar um jogo [29]. 2.3 – GÊNEROS DE JOGOS Jogos podem ser classificados em gêneros de acordo com seu estilo de gameplay, que define a forma pela qual o jogador será capaz de realizar suas ações. No entanto, muitos jogos incorporam características bastante variadas nas interações do jogador com o mundo virtual, sendo mais adequado pensar em cada jogo como elemento de um conjunto de gêneros associados. Nesta seção são apresentados os principais gêneros de 8 jogos e suas definições, tomando como base algumas características convergentes observadas em diferentes trabalhos [18, 22]. a) Ação: Um gênero utilizado em uma ampla variedade de jogos, cuja principal característica é o teste de reflexos e da habilidade manual do jogador para sobrepor os obstáculos que lhe são impostos. Existe uma variedade de subgêneros nesta categoria, que podem ser divididos em shooters, plataforma e luta. Shooters são jogos caracterizados pelo controle de veículos ou personagens portando armas de fogo com ênfase ao combate, em que o jogador deve avançar por um estágio eliminando seus inimigos, culminando, na maioria dos casos, em um confronto contra um chefe que representa o epítome do desafio. Enquadram-se nesta categoria FPSs, jogos de tiro em terceira pessoa e shoot ’em ups. Exemplos de tais jogos são Time Shift (mostrado na figura 2.5), Gears of War e Ikaruga, respectivamente. Figura 2.5: TimeShift. Em jogos de plataforma, o jogador deve explorar um ambiente ou mundo realizando ações como correr, pular ou escalar estruturas, completando objetivos e coletando itens que permitam o seu progresso. Jogos como Mario, mostrado na figura 2.6, Sonic e Mega Man se encaixam neste subgênero. 9 Figura 2.6: New Super Mario Bros. Em jogos de luta, o jogador controla um personagem que entra em combate contra outro personagem em uma luta equilibrada, como Street Fighter, mostrado na figura 2.7, ou simultaneamente contra um conjunto de personagens controlados por computador, chamados NonPlayer Characters (NPC), os quais possuem atributos reduzidos para dar equilíbrio ao jogo, como Devil May Cry. Figura 2.7: Street Fighter IV. b) Aventura: Jogos de aventura, como Myst, colocam o jogador no controle de um personagem que deve interagir com diversos NPCs e elementos do cenário, obtendo itens e solucionando desafios e enigmas para dar continuidade à história, que recebe grande ênfase neste gênero. Alguns jogos abrangem características do gênero ação, como ênfase ao combate, associadas às do gênero aventura, sendo chamados Action-Adventure, como a série The Legend of Zelda, mostrada na figura 2.8. 10 Figura 2.8: The Legend of Zelda c) Estratégia: Gênero que envolve o controle de múltiplas unidades para cumprir determinado objetivo, que, na maioria dos casos, é derrotar um exército ou conquistar o território inimigo. Jogos de estratégia são divididos em estratégia em tempo real, como Age of Empires, mostrado na figura 2.9, e Warcraft III, nos quais o jogador dispõe de um mapa que pode explorar livremente, ou baseada em turnos, como as séries Advance Wars e Fire Emblem, em que cada unidade é movida individualmente sobre o mapa, como ocorre em jogos de tabuleiro. Figura 2.9: Age of Empires III. d) RPG: Jogos de RPG evolvem um conjunto de personagens que interagem entre si e com um mundo bastante complexo, ganhando novas habilidades e itens à medida que o jogador avança. Uma característica marcante deste gênero é o desenvolvimento de um enredo rico e detalhado, que é apresentado ao longo do jogo e, em alguns casos, pode levar a múltiplos finais, que dependem das ações realizadas pelo jogador. Exemplos de tais jogos 11 são as já mencionadas séries Shin Megami Tensei, ilustrada na figura 2.10, e Final Fantasy. Figura 2.10: Shin Megami Tensei IMAGINE. e) Simulação: Propõe a experimentação de situações que se aproximem até certo ponto da realidade. Jogos desse gênero envolvem toda ou parte da complexidade existente no artefato simulado, como o conjunto de comandos para partida e operação de uma aeronave e a física do ambiente que a cerca, que é a proposta do jogo Flight Simulator. Um exemplo menos próximo da realidade é a série Harvest Moon, ilustrado na figura 2.11, na qual o jogador controla um personagem que tem como objetivo gerenciar, de forma simplificada, as tarefas diárias de uma fazenda, como cultivo de vegetais e criação de animais, além de acumular recursos, através da venda dos produtos adquiridos na propriedade, para expandir sua casa, comprar novas ferramentas e desenvolver uma vida social entre os NPCs da cidade. Figura 2.11: Rune Factory Frontier: A Fantasy Harvest Moon. f) Esporte: Envolve um amplo conjunto de jogos de diversas modalidades esportivas, como futebol, tênis ou automobilismo, não havendo necessariamente o compromisso com a realidade (como ocorre em jogos de 12 simulação), mas possibilitando que o jogador experimente de maneira lúdica o esporte abordado pelo jogo e suas características. Pro Evolution Soccer e OutRun, mostrado na figura 2.12, são exemplos de jogos de futebol e automobilismo, respectivamente. Figura 2.12: OutRun 2006: Coast 2 Coast. g) Puzzle: Jogos desse gênero desafiam o raciocínio lógico-matemático do jogador com quebra-cabeças de diversos tipos. Exemplos de jogos deste gênero são Tetris e Professor Layton, o qual é mostrado na figura 2.13. Figura 2.13: Professor Layton and the Curious Village. h) Educativos: Pode envolver características de qualquer gênero. Contudo, existe a proposta didático-pedagógica por trás do desenvolvimento, que visa desenvolver alguma habilidade ou conhecimento específico no jogador. Age of Empires é um jogo que, apesar da clara ênfase à jogabilidade estratégica, possui enredo baseado em fatos da história, possuindo certo caráter educativo. 13 Big Brain Academy, mostrado na figura 2.14, também pode ser considerado um jogo educativo ao utilizar mini-jogos que visam estimular as capacidades do jogador em diversos aspectos, como raciocínio, memória e identificação, exibindo ao final de cada sessão de jogo um gráfico que demonstra o desempenho do jogador em cada característica analisada. Figura 2.14: Big Brain Academy. 2.4 – JOGOS COMO FERRAMENTAS DE AUXÍLIO NA EDUCAÇÃO Jogos emergiram como a mais proeminente forma de entretenimento nos últimos anos. Além do caráter lúdico, estimulam o aprendizado prazeroso do jogador a partir de experiências “vividas” no ambiente do jogo, sendo mais notável o desenvolvimento de habilidades como raciocínio estratégico, planejamento, comunicação, aplicação de números, negociação, tomada de decisões e manipulação de dados [11]. Além dessas características individuais, jogos em que personagens assumem comportamento prósocial1 podem ter efeito significativo no comportamento pró-social de jogadores de diferentes faixas etárias na vida real [7]. Essas características tornam jogos importantes ferramentas para o meio educacional, principalmente por estarem bastante próximos ao público jovem. No entanto, é importante ressaltar que um jogo educativo não deve se prender somente a valores pedagógicos e ignorar os aspectos lúdicos que são atraentes aos jogadores: jogos que carecem de desafios grandes e motivadores ou de enredos ricos e bem elaborados não despertam o interesse do aluno. Isto acontece na maioria dos casos pelo fato da equipe de elaboração do jogo ser composta em sua maioria por pedagogos, que veem como principal finalidade da aplicação os aspectos educativos. Outros fatores relacionados ao desinteresse em jogos educativos são a inadequação do conteúdo à 1 Em tais jogos, o usuário deve ajudar diversos NPCs que possuem algum tipo problema. Ao realizar esta tarefa, o jogador recebe uma recompensa que pode ajudá-lo a progredir no jogo. 14 proposta do jogo, baixa qualidade gráfica, pouca usabilidade, funções de jogo limitadas, mal projetadas e que tendem a se tornar repetitivas. Estas deficiências estão em parte relacionadas às condições de desenvolvimento, em que a equipe responsável não recebe investimentos adequados para a produção de um software de grande porte como um jogo. Enredos bem elaborados são elementos fundamentais em jogos educativos, pois alimentam o interesse do jogador pelo conteúdo oferecido e o estimulam a continuar jogando e, consequentemente, construindo o conhecimento abordado pelo jogo [1]. Este enredo deve ser apresentado através de desafios e narrativas coerentes, ligados ao assunto central do jogo, mas não de forma integralmente didática (como em simples jogos de perguntas e respostas, que tendem a ser desinteressantes). Para Mukherjee [14], videogames são firmemente baseados em mídias mais antigas, como filmes e livros, sendo importantes para o desenvolvimento de noções de textualidade, tecnicidade e identidade no jogador. O autor destaca o valor literário da narrativa dos jogos em comparação a livros da literatura, em especial nos jogos de RPG, que é um gênero dotado de um enredo rico e, em alguns casos, fortemente voltado a narrativas, como o jogo The Dark Spire, mostrado na figura 2.15, que apresenta uma perspectiva em primeira pessoa e introduz ao jogador os eventos do jogo se baseando principalmente em narrações e diálogos textuais bastante ricos. (a) Narrativa (b) Diálogo Figura 2.15: The Dark Spire. Segundo Jenson & Castel [9], a meta principal do educador é engajar os aprendizes como agentes e arquitetos de sua própria educação. O maior desafio dos jogos educacionais é oferecer um ambiente imersivo ao usuário, que desperte neste o interesse de estar, explorar e aprender da mesma forma que em jogos comerciais, por 15 serem softwares extremamente atraentes para crianças e jovens, apesar de considerados sem valor educacional pela sociedade. Jogos educativos devem, portanto, buscar a trilha de sucesso de jogos comerciais, que se deve principalmente pelo fato destes apresentarem controles e interface avançados, imersão e exploração aprimorados em um mundo virtual vasto e complexo. 2.5 – JOGOS EDUCATIVOS Nesta seção serão apresentados alguns projetos relacionados ao objeto deste trabalho, com suas características descritas sucintamente. Trata-se de jogos educativos desenvolvidos com o intuito de auxiliar o ensino de história nos níveis fundamental e médio. Na seção seguinte, o projeto do jogo da Cabanagem será apresentado, delineando algumas características do contexto histórico e das fases que o compõem. 2.5.1 – Tríade A proposta do jogo Tríade [25], mostrado na figura 2.16, é o ensino dos eventos da Revolução Francesa, ocorrida no século XVIII. O jogador deve assumir o controle da jovem Jeanne de Vallois e tem a opção de percorrer a história de duas formas diferentes: vingando a morte do pai de Jeanne ou aderindo aos ideais revolucionários que ele seguia. Esta característica confere ao jogo um caráter de RPG, o qual é desenvolvido utilizando o motor de jogo Torque Game Engine, projetado principalmente para o desenvolvimento de jogos de ação. Figura 2.16: Tríade. 2.5.2 – Revolution Parte do projeto Games-to-Teach, que propunha o desenvolvimento de uma série de jogos com caráter educativo, Revolution [21] visava o desenvolvimento de um jogo 3D do tipo Massive Multiplayer Online (MMO), que agrega diversos jogadores no mesmo ambiente virtual e permite que estes possam cumprir tarefas em grupo ou 16 interagir uns com os outros, tendo como tema central a Revolução Americana de 1776. O jogo, mostrado na figura 2.17, foi desenvolvido utilizando o motor comercial Neverwinter Nights Engine, projetado para o desenvolvimento de jogos do gênero RPG. Figura 2.17: Revolution – projeto Games-to-Teach. 2.5.3 – Laguna Laguna [15] tem como objetivo narrar os acontecimentos da Guerra do Paraguai, sendo sua primeira etapa referente ao episódio conhecido como retirada de Laguna. O jogo possui características do gênero aventura e é desenvolvido utilizando o Blender Engine, motor incluso no software livre de modelagem Blender, que se baseia na linguagem Python. Cenários do jogo são mostrados na figura 2.18, ilustrando a vila onde o jogador inicia e uma das tribos que deve ser visitada. Figura 2.18: Ambientes do jogo Laguna. 2.6 – Jogo educativo “A Revolta da Cabanagem” Jogo educativo que narra os principais acontecimentos do movimento da Cabanagem, ocorrido no século XIX, especificamente entre 1835 e 1840, em diferentes fases e níveis de dificuldade, englobando os gêneros aventura, ação e estratégia, tendo como principais ambientes a cidade de Belém e a região do Acará, no interior do estado, os quais são totalmente tridimensionais e permitem livre navegação do usuário. O projeto se originou através da chamada pública MCT/FINEP/MEC – Jogos Eletrônicos 17 Educacionais 02/2006, aprovado sob o título “Jogo Lúdico Educacional de Estratégia: A Revolta da Cabanagem”. O movimento cabano se originou a partir das pregações do Frei Luiz Zagalo sobre liberdade. Zagalo foi expulso do Pará em 1817. Felipe Alberto Patroni (1748-1866) e João Batista Gonçalves Campos (1782-1834) acolheram as idéias do frei e se tornaram os personagens-chave do movimento [20]. Felipe Patroni, nascido na cidade do Acará, estudava direito em Portugal, mas retornou ao Pará para lutar pelo reconhecimento da independência do estado. Realizou pronunciamentos, discursos e fundou o primeiro jornal do Pará, criticando duramente o governo português, que o perseguiu e prendeu. Depois de solto, Patroni abandona a causa paraense e retorna à Portugal para continuar seus estudos, morrendo em 1866. Batista Campos deu continuidade às publicações do jornal fundado por Felipe Patroni. Também perseguido pelos portugueses, foi obrigado a fugir para o interior do estado. A partir de então, intensificaram-se as ações violentas dos cabanos. Em 1834, Batista Campos morre devido a um ferimento infeccionado. Uma semana após a sua morte, os cabanos invadem e tomam o controle da capital paraense. O jogo inicia com a exibição da tela título, mostrada na figura 2.19, de onde o jogador pode escolher se deseja começar a campanha, visualizar os créditos ou o conteúdo extra adicionado ao jogo, como a primeira edição do jornal O Paraense ou as referências utilizadas durante o desenvolvimento. Figura 2.19: Tela título. Selecionando o modo campanha, é exibida a tela de seleção de missões, mostrada na figura 2.20, a qual exibe no lado esquerdo um menu com as missões disponíveis e outro para seleção de dificuldade (não disponível para a primeira missão) e no lado direito um mapa que representa o contexto da missão atual e uma janela de texto com a descrição da situação. 18 Figura 2.20: Tela de seleção de missões. Há um total de três fases, divididas em cinco missões que abrangem estilos de jogos diferentes. Antes de cada missão, é apresentado ao jogador um inventário, como na figura 2.21, que indica os objetivos a serem cumpridos durante a missão, além das teclas de controle do personagem. A localização de cada objetivo é mostrada em um mini-mapa no canto superior direito da tela, que também ilustra a direção em que o jogador se move. A seguir, é feita uma breve descrição de cada fase. Figura 2.21: Inventário apresentando os controles e objetivos. 2.6.1 – Fase Pré-Revolucionária A primeira fase tem como palco a capital paraense e é dividida em três estágios ou subfases, intituladas “Conhecer Belém”, “Fundar o jornal ‘O Paraense’” e “Batista Campos”, as quais abordam as ações dos primeiros líderes da Cabanagem nos momentos que antecedem o conflito armado. A primeira subfase é iniciada com um vídeo que expõe algumas informações sobre Felipe Patroni, personagem controlado nesta missão, enquanto realiza um passeio 19 pela cidade de Belém. Ao iniciar o jogo, o usuário deve navegar pela capital e, enquanto se adapta aos controles básicos do jogo, conhecer prédios históricos importantes (landmarks), como o antigo Palácio do Governo (atualmente chamado Palácio Lauro Sodré), o Hospital Real Militar (atual Casa das Onze Janelas) e o Arsenal de Guerra, os quais são apresentados através de descrições textuais, conforme mostra a figura 2.22, e narrações faladas. Figura 2.22: Descrição de landmarks na missão “Conhecer Belém”. No segundo estágio, o jogador assume novamente o controle de Felipe Patroni, mas desta vez, há vários soldados em patrulha, que devem ser evitados para que se obtenha sucesso na missão, caso contrário, o jogador será perseguido pelo soldado que o detectar, conforme ilustrado na figura 2.23. Os objetivos deste estágio estão relacionados ao surgimento da imprensa no Pará: Patroni deve obter uma máquina tipográfica, tinta e papel para, enfim, poder fundar o jornal O Paraense. O objetivo final da missão é entregar o primeiro exemplar do periódico a Batista Campos. Figura 2.23: Felipe Patroni sendo perseguido por um soldado. O estágio final da fase pré-revolucionária representa a fuga de Batista Campos para o interior do estado devido à perseguição do governo português. O objetivo do 20 jogador é seguir para um determinado local da cidade para tomar um bote que possibilite sua fuga. Novamente, soldados estarão em patrulha para evitar o progresso do jogador e atacarão Batista Campos quando este estiver próximo: a missão falha se Batista Campos receber muitos ataques dos soldados. Alcançando o sucesso nesta missão, a fase pré-revolucionária chega ao fim. O ato da fuga de Batista Campos é mostrado na figura 2.24. Figura 2.24: Batista Campos fugindo da capital em um bote. 2.6.2 – Explosão do Conflito Armado: Batalha do Acará Terminada a fase pré-revolucionária, é abordado o início ao conflito armado entre cabanos e portugueses, iniciado em outubro de 1834, com o ataque por um grupo cabano, liderado por Eduardo Angelim e Antônio Vinagre, a uma tropa de 30 soldados portugueses, acampados na fazenda Vila Nova, sob o comando de José Maria Nabuco de Araújo, que havia sido enviado pelo governador Lobo de Souza para prender o jornalista Lavor Papagaio na fazenda Acará-açu. Na segunda fase, a batalha do Acará, o usuário controla inicialmente dois personagens em duas localidades distintas: Félix Clemente Malcher, na fazenda Acaráaçu, e Antônio Vinagre, no sítio Santa Cruz. Deve ser alternado o controle dos personagens para gerenciar a aquisição de recursos em suas respectivas fazendas, preenchendo um contador que determina a possibilidade de “chamar” Eduardo Angelim, para que possa ser iniciado o primeiro ataque. O desafio consiste em acumular recursos suficientes para o ataque dentro de um limite de tempo, caso contrário, o jogador é atacado pelas tropas portuguesas e falha a missão. Uma cena deste estágio é mostrada a figura 2.25. 21 Figura 2.25: Jogo de estratégia que antecede a fase de batalha. Em uma segunda parte, o jogador controla Eduardo Angelim e deve comandar o ataque cabano ao acampamento português. Inicialmente é apresentada a tela de seleção de unidades de ataque, mostrada na figura 2.26a, em que o jogador seleciona os grupos de cabanos e suas posições iniciais no mapa da batalha. Após a queda de alguns soldados portugueses, o comandante José Maria Nabuco de Araújo se junta à batalha e deve ser eliminado pelo jogador para que a missão possa ser cumprida, como mostra a figura 2.26b. (a) Tela de seleção de unidades (b) Ataque ao comandante Figura 2.26: Missão da batalha no Acará. 3.6.3 – Explosão do conflito armado: Batalha em Belém A fase final representa a batalha pela tomada do poder na cidade de Belém. O jogador, no controle de Angelim, deve liderar um grupo de cabanos no ataque aos Quartéis, Arsenal de Guerra, Forte do Castelo e o Palácio do Governo, culminando com a morte do governador Lobo de Souza, o Malhado (assim chamado devido a uma mecha de cabelo que possuía uma coloração diferente), nas escadarias dos fundos do palácio. O jogador inicia a missão em uma região afastada da cidade, próximo ao mosteiro São José Liberto, e deve percorrer a cidade, agora com ambientação noturna, e eliminar 22 tropas portuguesas guarnecidas nas localidades do ataque que são indicadas no minimapa. Uma cena da batalha é mostrada na figura 2.27. Caso o jogador obtenha sucesso na missão, um vídeo de encerramento mostra os cabanos comemorando a vitória em frente ao palácio, sendo então anunciado o fim do jogo. Figura 2.27: Batalha pela tomada do poder na cidade de Belém. 23 CAPÍTULO 3 – FERRAMENTAS Este capítulo propõe uma descrição detalhada das ferramentas utilizadas no processo de desenvolvimento do ambiente virtual, dos personagens, das animações e dos vídeos utilizados no jogo A Revolta da Cabanagem, sendo automaticamente expostas as razões que levaram a equipe de desenvolvimento a realizar tais escolhas. A seleção das ferramentas utilizadas em um projeto de software, seja de pequeno ou grande porte, é uma etapa que deve ser executada com cautela, pois é fundamental para o sucesso do produto final. É importante ter conhecimento a priori de todos os requisitos e metodologias que serão aplicados durante o desenvolvimento, pois a alteração de algum destes fatores pode demandar, por exemplo, recursos indisponíveis em alguma ferramenta que já esteja em uso, sendo necessária a sua substituição, causando indesejáveis atrasos ao processo, já que será necessária uma adaptação da equipe de desenvolvimento à ferramenta e desta ao contexto do projeto. Entre os critérios mais importantes, destacam-se custo, usabilidade, portabilidade, compatibilidade e tendências (como a continuidade de atualizações) da ferramenta. Caso o projeto não disponha de capital vultoso, é interessante considerar a utilização de ferramentas livres, gratuitas ou distribuídas sob licença GPL (General Public License) [8], que permite livre distribuição de cópias sem infringir direitos autorais. Em termos de usabilidade, avalia-se o esforço necessário para tornar a equipe apta a utilizar efetivamente a ferramenta, observando a disponibilidade de documentação, como manual e tutoriais, e suporte dos desenvolvedores ou de comunidades de usuários, além do tempo previsto para a conclusão do projeto. Questões de portabilidade devem considerar as plataformas para as quais o software se destina, avaliando a complexidade das alterações necessárias para adequá-lo a uma nova plataforma. Caso uma ferramenta esteja em desuso ou não conte com suporte e atualizações frequentes, sua escolha também poderá ser prejudicial ao projeto. As ferramentas que serão apresentadas nesta seção foram utilizadas na composição gráfica do jogo. São os softwares livres Blender (utilizado na criação e animação dos modelos), GIMP (GNU Image Manipulation Program – utilizado para a edição de imagens e texturas) e o módulo gráfico do CabanEngine, o qual é baseado no Object-Oriented Graphics Rendering Engine (OGRE 3D), motor de renderização gráfica 3D. 3.1 – Ogre3D Ogre3D [16], ou simplesmente Ogre, constitui o módulo gráfico do motor CabanEngine, oferecendo uma API (Application Programming Interface) para 24 renderização em tempo real de ambientes, objetos e efeitos de partículas (como fogo, fumaça e chuva). Foi desenvolvido na linguagem de programação C++, é orientado a objetos e possui código fonte aberto. A caixa de diálogo de configuração de uma aplicação desenvolvida em Ogre é mostrada na figura 3.1. Nesta janela, é permitido ao usuário escolher o subsistema de renderização gráfica, a resolução da tela, opções de suavização (anti-aliasing), dentre outras configurações. Para o CabanEngine, foi realizada a integração de Ogre com bibliotecas de simulação sonora e física, detecção de colisão e inteligência computacional, além de scripting utilizando a linguagem Lua, tornando possível o desenvolvimento de jogos educacionais 3D bastante complexos. Figura 3.1: Inicialização de uma aplicação em Ogre. A utilização de Ogre em projetos comerciais tem sido crescente devido à sua flexibilidade e documentação consistente. Podem ser citados o Action RPG Torchlight [24] e o simulador de corrida MOTORM4X [12] como exemplos de jogos que utilizam Ogre como motor gráfico, ambos mostrados na figura 3.2. (a) MOTORM4X (b) Torchlight Figura 3.2: Exemplos de jogos que utilizam Ogre. 25 O motor oferece suporte a diversos recursos amplamente utilizados em jogos 3D. Entre os quais, pode ser mencionado o suporte a Level of Detail (LoD), animação de esqueletos (Skeletal Animations), efeitos avançados de sombreamento e suporte à projeção de textura. Além disso, suporta múltiplas camadas de textura (multitexturing, que consiste na aplicação de mais de uma textura sobre um polígono), as quais podem ser de vários formatos, como PNG, JPEG, TGA, BMP e DDS. Ogre utiliza scripts em diversos elementos, sendo uma abordagem interessante para um desenvolvimento mais ágil e eficiente da aplicação. A vantagem de utilizar scripts é que estes não estão integrados ao código, portanto, um elemento controlado por script pode ser alterado sem que seja necessária nova compilação do software, que em um projeto de grande porte pode ter custos de tempo altos. Neste trabalho, será mostrada a forma básica de configuração de scripts para gerenciamento de materiais. Ogre realiza renderização baseada nas APIs OpenGL (Open Graphics Library) e Direct3D, que são as bibliotecas mais utilizadas em aplicações profissionais de realidade virtual desktop e os elementos responsáveis pelo acesso ao hardware gráfico para processamento e manipulação de objetos, sendo ambas implementadas nos drivers do dispositivo de vídeo, o que torna o desenvolvimento de uma aplicação utilizando diretamente essas duas bibliotecas bastante dificultoso devido à programação em baixo nível. Portanto, a interface oferecida por Ogre com estas duas APIs o torna uma ferramenta bastante eficiente para o desenvolvimento de jogos e de quaisquer aplicações que possuam gráficos tridimensionais. OpenGL é uma biblioteca que oferece funções de renderização 2D e 3D e pode ser utilizada em vários sistemas operacionais, como Windows, UNIX, Mac OS, além de ser utilizada no console Playstation 3 e possuir uma variante no Nintendo Wii. Oferece somente funções de renderização, não havendo suporte a funções de criação de janelas, áudio, entradas de teclado ou captura de tela, o que a torna independente de sistemas operacionais. Direct3D é o componente responsável pelo processamento gráfico tridimensional do DirectX (o processamento bidimensional é realizado pelo DirectDraw), conjunto de bibliotecas multimídia proprietárias da Microsoft, presente somente em ambiente Windows e nos consoles da empresa (Xbox e Xbox 360). Esta versatilidade, que torna possível o desenvolvimento de uma aplicação para ambientes Windows e UNIX, foi um critério importante na escolha do Ogre como motor gráfico do jogo. 3.2 – Blender O Blender [3] é um software de modelagem 3D livre e multiplataforma desenvolvido atualmente pela Blender Foundation e distribuído sob a licença GPL. Possui um amplo conjunto de funcionalidades para modelagem, animação, texturização, renderização, composição e edição de vídeos e até mesmo para criação de jogos 3D, utilizando um motor de jogo interno, conhecido como Blender Engine. Outra 26 característica interessante do Blender é sua extensibilidade: é possível desenvolver plugins (extensões) na linguagem Python que executem diversas funções para o programa, como scripts para animações de esqueleto, exportação da cena para formatos diferentes (VRML, 3DS, entre outros) ou elaboração de scripts no game engine. Todas essas características tornam o Blender uma ferramenta tão eficiente quanto softwares de modelagem comerciais bastante utilizados, como 3D Studio MAX e Maya. A escolha do Blender como ferramenta de modelagem foi realizada com base nessas características, juntamente com a vasta documentação disponível sobre o software, que possibilitou o estudo dos recursos mais importantes para o desenvolvimento dos modelos para o jogo. A tela inicial do Blender é mostrada na figura 3.3. Figura 3.3: Tela de inicialização do Blender 2.49. O processo de modelagem é baseado nos vértices, arestas e faces do objeto, os quais são manipulados através de operações como translação, escala, rotação, extrusão, junção, entre outras. Para ativação de cada operação existe uma ou mais teclas de atalho, que são de grande importância para agilizar o processo de desenvolvimento. A utilização dos atalhos pelos usuários do software é mais comum principalmente porque a interface do Blender é bastante “carregada”, sendo muitas vezes considerado o maior entrave para o aprendizado das funções da ferramenta. Para adicionar cores e detalhes aos modelos, é importante realizar o mapeamento de texturas sobre as faces do objeto. No Blender, a imagem pode ser projetada sobre o modelo utilizando diferentes técnicas de mapeamento, nas quais podem ser aplicados recursos como normal mapping (proporciona à textura um efeito de relevo) e stencil maps (texturas usadas como máscaras para combinar duas ou mais texturas), para multitexturing. Tendo finalizado o modelo, é necessário exportá-lo para o formato utilizado pelo Ogre (arquivos mesh), sendo este processo realizado em duas etapas. A primeira etapa 27 utiliza um plugin do Blender para exportação: um script escrito em Python chamado OgreMeshes [17], cuja interface é mostrada na figura 3.4, o qual é desenvolvido e atualizado por um membro da comunidade do Ogre. Com este plugin, é possível exportar o modelo e suas animações, em arquivos no formato XML, e o arquivo .material, que contém as informações sobre os materiais do objeto, como texturas, transparência e especularidade. Na segunda etapa, os arquivos XML precisam ser convertidos para o formato compatível com Ogre utilizando o pacote de ferramentas CommandLineTools, que converte o arquivo do objeto para o formato mesh e o arquivo que contém as animações para o formato skeleton. No entanto, o OgreMeshes permite somente a exportação de modelos cujas texturas foram mapeadas utilizando o chamado método de mapeamento UV (UV Mapping). Figura 3.4: Interface do exportador OgreMeshes. Esta técnica de mapeamento se baseia na distribuição, ou projeção, dos vértices das faces do modelo 3D sobre um plano pertencente a um espaço de coordenadas 2D, em que o eixo das abscissas e ordenadas são chamados U e V, respectivamente. Neste espaço, o usuário tem a liberdade de controlar a posição dos vértices sobre os pixels distribuídos no plano UV, podendo também utilizar comandos que automatizam o processo a partir de cálculos feitos pelo software, dos quais se destacam Unwrap, recomendado para texturas não intercaláveis, e Cubic Projection, no caso de texturas replicáveis. Além disso, o resultado do mapeamento pode ser visualizado no momento em que os vértices são posicionados, sem que haja a necessidade de nova renderização do objeto ou da cena. Um exemplo de mapeamento utilizando o comando Unwrap para posicionamento da textura é mostrado na figura 3.5. 28 Figura 3.5: Técnica de mapeamento UV. É importante ressaltar neste momento a importância das retas normais para o processo de modelagem. Cada face possui uma reta que emerge perpendicularmente a uma de suas superfícies, a qual determina o lado, ou a direção, da face em que a textura será renderizada no modelo. O lado oposto da normal é ignorado pelo processo de renderização, ou seja, a face inversa à da normal permanece transparente. O Blender permite controle integral da direção das normais pelo usuário, podendo este inverter a direção das retas a qualquer momento ou, no caso de modelos fechados, utilizar um comando para recalcular automaticamente as normais para as faces externas, facilitando bastante o processo em modelos complexos. 3.3 – GIMP O GIMP, GNU Image Manipulation Program, é uma ferramenta livre utilizada para edição de imagens, disponível para diversos sistemas operacionais, que se tornou bastante robusta e eficiente, tendo sido amplamente utilizada em diversas aplicações profissionais, principalmente devido ao seu rico conjunto de funções, comparável ao do software comercial Adobe Photoshop. O GIMP tem a capacidade de manipular imagens em diversos formatos, sendo os mais comuns BMP, JPG, PNG, GIF, TGA e TIFF, seu formato nativo XCF e até mesmo o formato do Photoshop, PSD. A interface principal do aplicativo é mostrada na figura 3.6. 29 Figura 3.6: Janela principal do GIMP 2.6. O software conta com uma interface bastante simples, que recebe melhorias constantemente, além de um conjunto de teclas de atalho que podem ser configuradas pelo usuário, tornando o trabalho com a ferramenta mais fácil e flexível. Também é oferecida uma grande quantidade de filtros para produção automática de diversos efeitos artísticos em imagens, abrangendo renderização, animação, luz e sombras, entre outros. É importante lembrar, no entanto, que a principal função do GIMP é edição de imagens, sendo seus recursos de criação (desenho) limitados em comparação aos softwares comerciais. O processo de criação de texturas para o jogo foi desenvolvido com base em edição de imagens, obtidas em sua maioria a partir de fotografias dos objetos reais. Apesar do cuidado de tentar manter as inclinações no menor nível possível, essas imagens apresentavam diversas irregularidades que precisavam ser tratadas para que se obtivessem texturas apropriadas para os objetos, principalmente modelos de construções, que possuem estruturas repetidas que podem utilizar um mesmo segmento de textura. Entre os principais recursos utilizados para o ajuste dessas imagens, destacam-se os recursos Ajuste de perspectiva, Deslocamento e o filtro de mapeamento Tornar encaixável. A ferramenta Ajuste de perspectiva constitui um recurso bastante útil e eficiente para criação de texturas baseadas em fotografias, o qual permite que o usuário, a partir de alongamentos nas bordas da imagem, corrija ou atenue inclinações de determinados elementos, como mostra a figura 3.7. 30 (a) Imagem inclinada (b) Perspectiva ajustada Figura 3.7: Correção da imagem utilizando ajuste de perspectiva. O filtro Tornar encaixável possibilita a criação de texturas que possam ser replicadas ao lado uma das outras sem a percepção descontinuidades na imagem. Devese ressaltar, no entanto, que a técnica utilizada por este filtro não pode ser aplicada em todos os casos, sendo recomendada a texturas que não possuam direção predominante, ou seja, em que o encaixe horizontal (no eixo x) e vertical (no eixo y) não exige tratamento específico. Podem ser assim classificadas texturas de água, terra ou grama, que possuem uma estrutura naturalmente desordenada e podem ser mapeadas lado a lado sem a necessidade de ajustes em seus eixos. Um exemplo da disposição de tal tipo de textura é mostrado na figura 3.8, mostrando uma imagem replicada duas vezes em cada eixo. Figura 3.8: Encaixe contínuo de texturas desordenadas. Por outro lado, texturas que possuem direções predominantes, ou estruturas ordenadas, e precisem ser intercaladas devem receber outro tipo de tratamento, a partir do recurso Deslocamento, com o qual o usuário pode tratar diretamente as bordas a 31 partir da translação do centro da imagem em direção às suas extremidades. Com isso, as bordas são posicionadas em áreas nas quais é possível visualizar claramente as irregularidades de encaixe, que podem ser ajustadas pelo usuário utilizando recursos comuns de edição para mascarar essas falhas. Uma imagem de um muro de tijolos como a mostrada na figura 3.8 pode ser utilizada como exemplo de textura com estrutura ordenada, na qual o encaixe dos tijolos deve obedecer a um padrão definido de alinhamento, que se mostra irregular após o deslocamento da imagem. Também é mostrada a baixa eficiência do filtro Tornar encaixável em atender a esses requisitos de alinhamento. É notável a simplicidade do problema para essa textura, que foi utilizada somente para ilustrar um cenário de utilização do recurso Deslocamento. (a) Original (b) Deslocada (c) Após filtro Figura 3.9: Encaixe irregular observado ao deslocar a imagem. 32 CAPÍTULO 4 – AMBIENTE VIRTUAL DA CIDADE DE BELÉM Jogos eletrônicos 3D propõem a navegação pelo usuário em um ambiente virtual, o qual deve ser constantemente atualizado para cada ação do jogador, constituindo uma interação em tempo real. Esse tipo de interação requer custo computacional alto, sendo imprescindível o controle da quantidade de informações que é processada e exibida durante a execução do jogo. Os gráficos de um jogo estão entre os principais elementos responsáveis pelo comprometimento do seu desempenho em uma determinada plataforma: constantemente, modelos 3D são transformados e novas texturas, carregadas, além do processamento de recursos como partículas, céu e neblina. Questões de desempenho foram prioritárias durante a construção do ambiente virtual para o jogo da Cabanagem, manifestadas, entre outros aspectos, através do controle da quantidade de vértices dos objetos e da resolução de texturas, dependendo do que o modelo representava (um prédio ou personagem, por exemplo). Serão apresentadas neste capítulo as técnicas utilizadas na modelagem, animação e texturização dos personagens e objetos utilizados no ambiente de Belém e nas sequências de vídeo de abertura e encerramento de algumas missões, além do processo de configuração deste ambiente nas fases que ocorrem na cidade. 4.1 – Objetos estáticos Objetos estáticos constituem elementos do cenário que não possuem interação com o jogador, isto é, objetos inanimados que, neste caso, representam construções que darão forma ao ambiente como um todo. Os objetos estáticos apresentados nesta seção são a igreja das Mercês, o arsenal de guerra e o brigue Palhaço. 4.1.1 – Igreja das Mercês e Arsenal de Guerra A igreja das Mercês e o arsenal de guerra constituem dois landmarks da cidade de Belém no período da revolução, os quais ainda existem atualmente, sendo o antigo prédio do arsenal a atual alfândega da cidade. Para essas construções, foram obtidas imagens que ilustravam suas estruturas no século XIX, que possibilitaram o início do processo de modelagem. No entanto, após pesquisas sobre o passado desses prédios, constatou-se que possuíam seus contornos inalterados desde o período da Cabanagem, tornando possível realizar a modelagem com base em fotografias obtidas durante visitas ao local em que se encontram, algumas das quais mostradas nas figuras 4.1a e 4.1b. 33 (a) Igreja das Mercês (b) Arsenal de Guerra Figura 4.1: Igreja das Mercês e Arsenal de Guerra. O processo de modelagem baseado em fotografias é interessante porque, além de oferecerem uma grande quantidade de detalhes sobre o que se deseja modelar, também é possível utilizá-las, após o tratamento adequado, como texturas para os objetos, proporcionando um aspecto mais realista e possibilitando uma otimização do modelo, em que estruturas geométricas podem ser substituídas por imagens, isto é, estruturas pouco relevantes que, ao invés de modeladas, são simplesmente substituídas por texturas bem elaboradas que ilustrem suas características, como janelas ou portas fechadas. No entanto, fotografias não fornecem noção das proporções do prédio, que são comumente representadas em desenhos esquemáticos, como plantas da construção, os quais não foram fornecidos para a modelagem desses landmarks. Na tentativa de substituir esses elementos utilizou-se o programa Google Earth [13], a fim de se obter, por exemplo, uma estimativa da proporção da largura em relação ao comprimento dos prédios, como mostra a figura 4.2, que compara a imagem obtida pelo programa (4.2a) com o objeto modelado (4.2b). (a) Imagem obtida pelo Google Earth (b) Modelo no Blender Figura 4.2: Proporções dos prédios reais e modelados. 34 A partir da observação das fotografias, foi possível delinear a forma desses landmarks e iniciar efetivamente o processo de modelagem no Blender, em que se buscou a maior simplicidade possível, já que o jogador não teria muitas interações com esses modelos durante o jogo. Sendo assim, a fachada de ambos os prédios foi modelada de forma que os detalhes da arquitetura fossem representados por texturas. Após o desenvolvimento do modelo, iniciou-se a etapa de mapeamento de texturas. Este processo foi inteiramente baseado nas imagens disponíveis sobre os prédios reais, que foram devidamente tratadas utilizando, entre outros recursos, deslocamentos e correções de perspectiva com o GIMP. Fragmentos de imagens como as figuras 4.1a e 4.1b foram utilizados para criação das texturas, sendo algumas das quais mostradas na figura 4.3. (a) Porta principal da igreja das Mercês (b) Lateral do Arsenal de Guerra Figura 4.3: Texturas da igreja das Mercês e do Arsenal de Guerra. O mapeamento das texturas foi executado utilizando o método UV Mapping, a partir dos comandos de projeção internos do Blender chamados Unwrap e Project from View, que realizam a distribuição das faces do modelo sobre o plano de mapeamento de tal forma que a disposição dessas faces sobre a textura possa ser encaixada sobre a textura adequadamente. O modelo final dos landmarks é mostrado na figura 4.4. 35 Figura 4.4: Modelo final da igreja das Mercês e do arsenal de guerra. 4.1.2 – Brigue Palhaço A tragédia do brigue Palhaço foi um evento importante para o desencadeamento do movimento cabano. Em 1823, a mando do comandante John Pascoe Grenfell, foram trancadas no porão da embarcação 256 pessoas, das quais 252 morreram asfixiadas. A cena em que soldados portugueses abrem a escotilha do navio e se deparam com esta grande quantidade de cadáveres, cujo processo de desenvolvimento será descrito adiante, é mostrada no jogo, implicando na necessidade de um modelo para a embarcação. A modelagem do brigue Palhaço foi realizada com base em imagens de embarcações do período do movimento cabano, as quais não continham informações detalhadas o bastante sobre o navio, exceto por uma noção da forma do casco e número de mastros, como mostra a figura 4.5. Devido à complexidade dos detalhes do modelo, sua modelagem foi realizada em partes separadas, em que casco, contornos, mastros e velas foram modelados e texturizados individualmente, para que ao final do processo fosse realizada a junção do conjunto de objetos que compunham o brigue. Figura 4.5: Imagem utilizada para a modelagem do brigue Palhaço. 36 O mapeamento de texturas seguiu o método utilizado no desenvolvimento do modelo da igreja e do arsenal, com a adição do recurso de renderização Two Sided Face, que foi aplicado nas faces das velas, permitindo que a textura seja exibida independente da direção apontada pela normal. O modelo do brigue finalizado é mostrado na figura 4.6. Figura 4.6: Modelo final do brigue Palhaço. 4.2 – Personagens Personagens são elementos fundamentais para o desenvolvimento da trama de um jogo, que ocorre a partir de antagonismos entre os protagonistas e seus oponentes. Em A Revolta da Cabanagem, um extenso conjunto de humanos virtuais foi modelado, sendo descritos neste trabalho os personagens principais das fases de Belém – Felipe Patroni, Batista Campos, Eduardo Angelim (que também toma parte na batalha do Acará) e Lobo de Souza – e outros personagens de caráter genérico, isto é, personagens replicados pelo cenário para povoar o ambiente ou unidades de batalha, especificamente escravos, cabanos e soldados portugueses de alta patente, aos quais se torna desnecessária a elaboração de modelos distintos para cada uma de suas ocorrências. A criação de personagens para qualquer jogo exige grande esforço quanto ao detalhamento de suas características. Neste caso, por se tratar de um jogo com tema histórico, é necessária a correta representação de suas vestimentas, ferramentas e armas. Informações sobre esses elementos foram obtidas a partir de relatos de documentos da época ou imagens que representassem esses personagens. O desenvolvimento dos humanos virtuais foi iniciado a partir da construção de um modelo-base do corpo humano, do qual seriam gerados os diversos personagens utilizados no jogo, de forma que características próprias de cada um, como vestimenta e acessórios, exigissem menor esforço no processo de adaptação do modelo. Sobre este modelo-pai, foram mapeadas as texturas comuns a todos os outros personagens, como 37 face, mãos e pernas, de forma que não fosse necessário repetir o mapeamento em cada um dos filhos. Este procedimento foi realizado utilizando integralmente o comando Unwrap, com o auxílio do recurso de marcação de borda, chamado Seam Mark, no qual arestas de polígonos podem ser marcadas a fim de que as bordas selecionadas neste processo sejam cortadas e distribuídas de forma mais eficiente sobre o plano UV ao ser executada essa distribuição. O mapeamento de um rosto utilizando os comandos mencionados é mostrado na figura 4.7a, enquanto o mapeamento sem a utilização destes comandos é mostrado na figura 4.7b. Observa-se que no primeiro caso a projeção se encaixa naturalmente sobre a textura. (a) Mapeamento utilizando Unwrap e Seam Mark. (b) Mapeamento sem utilização de Unwrap e Seam Mark. Figura 4.7: Mapeamento de textura sobre uma face. Com isso, a texturização de cada personagem individualmente se resumiria ao detalhamento das vestimentas individuais de cada um, o que não deixou de ser um processo trabalhoso, já que as texturas ainda precisaram ser elaboradas. 38 4.2.1 – Felipe Patroni e Batista Campos Felipe Patroni foi o responsável pela fundação do primeiro periódico da Amazônia e, juntamente com Batista Campos, foi líder ideológico do movimento cabano, em que ambos criticavam duramente o governo português. Estes personagens são controlados pelo jogador durante a primeira fase do jogo, na qual não ocorrem combates, sendo obrigados somente a evitar os soldados em patrulha para obter sucesso na missão. Dado este caráter intelectual desses personagens, optou-se por vestimentas formais para melhor representá-los. As diferenças estruturais e nas texturas dos modelos são bastante diminutas, sendo observada pouco mais claramente a diferenciação da estatura de cada um. O mapeamento das texturas também foi realizado utilizando o comando Unwrap, já que os detalhes das imagens não permitiam simples replicação das texturas sobre o modelo, cujas versões finais são mostradas na figura 4.8. Figura 4.8: Modelos de Felipe Patroni e Batista Campos. 4.2.2 – Lobo de Souza Bernardo Lobo de Souza, também conhecido como Malhado devido a uma mancha em seu cabelo, foi o presidente da província do Pará durante o movimento cabano, oprimindo severamente os revolucionários. Seu modelo apresenta a mesma estatura de Felipe Patroni, sendo seu traje também apresentado de uma maneira formal, dado o seu cargo de presidente, tendo o mapeamento de suas texturas também sido realizado da mesma maneira que no caso anterior. O modelo final do Malhado é mostrado na figura 4.9. 39 Figura 4.9: Lobo de Souza. 4.2.3 – Eduardo Angelim Eduardo Angelim foi o líder do primeiro ataque cabano às tropas portuguesas acampadas na fazenda Vila Nova, em outubro de 1834. O jogador assume o controle de Angelim durante as batalhas do Acará e de Belém, justificando sua vestimenta mais casual. Por participar das batalhas, foi necessário que o modelo de Angelim fosse equipado com uma arma, um mosquete desprovido de baioneta, caracterizando o personagem como uma unidade de combate à longa distância. O modelo final é mostrado na figura 4.10. Figura 4.10: Eduardo Angelim. 4.2.4 – Comandante português Este modelo foi utilizado para representar o comandante José Maria Nabuco de Araújo, líder da tropa acampada às margens do rio Acará, na fazenda Vila Nova. O personagem deve ser derrotado pelo jogador na missão da batalha do Acará para que a história avance. Sua vestimenta obedece aos padrões portugueses da época, os quais foram obtidos a partir de uma imagem de referência. Foi modelado um sabre, arma leve 40 de combate à curta distância, para que Nabuco pudesse participar da batalha. O modelo final do comandante é mostrado na figura 4.11. Figura 4.11: Comandante do exército português. 4.2.5 – Cabanos e escravos Alguns cabanos e escravos foram incluídos para povoar a cidade na primeira fase. Dessa forma, são modelos básicos, mostrados na figura 4.12, sem características especiais, que foram desenvolvidos de maneira semelhante aos anteriores. Figura 4.12: Cabano e escravo. 4.3 – Animações de personagens Animações são de grande importância em qualquer aplicação interativa de Realidade Virtual, não sendo diferente no caso de um jogo, em que a existência de animações envolvendo personagens, objetos ou efeitos especiais torna a aplicação mais atrativa ao jogador. As animações para os personagens do jogo foram desenvolvidas utilizando uma técnica conhecida como skeletal animation (animação de esqueleto). Esta técnica, como o nome implica, consiste no desenvolvimento de um conjunto de 41 ossos utilizados para alterar a posição, escala e rotação de um modelo 3D. Um osso pode ser definido como pai de um ou mais ossos do esqueleto, criando uma relação hierárquica em que os filhos herdam todas as transformações aplicadas sobre os pais. O Blender possibilita um processo de criação de esqueletos bastante rápido e simples. A partir da criação de um osso, podem ser criados diversos outros a partir do comando de extrusão, sendo os ossos subsequentes automaticamente considerados filhos do primeiro osso criado. Utilizando este procedimento, foi criado um esqueleto simplificado do corpo humano, como mostra a figura 4.13a, com o qual foram construídas todas as animações dos personagens, havendo algumas pequenas modificações em alguns casos. Contudo, para que um modelo possa ser de fato animado, é necessário que ele esteja associado ao esqueleto. Esta tarefa é realizada tornando o esqueleto pai do modelo a partir do comando interno do Blender chamado Make Parent, cujo menu de habilitação é mostrado na figura 4.13b, que cria uma relação hierárquica entre dois objetos quaisquer. (a) Esqueleto de animação (b) Associação entre modelo e esqueleto Figura 4.13: Preparação do esqueleto para o processo de animação. Apesar do modelo já estar associado ao esqueleto, ainda é necessário definir a “influência” de cada osso sobre os vértices do modelo, de forma que a movimentação do esqueleto seja coerente com a do modelo. Este processo é realizado em duas etapas: criação de grupos de vértices e pintura de peso. Vertex Groups (grupos de vértices) podem ser utilizados para facilitar a manipulação de vértices em um modelo, sendo um recurso bastante útil para a modelagem de objetos complexos. No contexto de animações de esqueleto, no entanto, definem os vértices que serão transformados quando da transformação de um determinado osso, sendo necessário que os nomes do grupo e do seu respectivo osso sejam iguais para que o software “entenda” a associação entre eles. 42 Blender possibilita criação manual ou automática de grupos de vértices para animações a partir de quatro opções: Don’t Create Groups, Name Groups, Create from Envelopes e Create from Bone Heat. A primeira entrega o processo de criação de grupos inteiramente ao usuário; a segunda somente cria os grupos, baseando-se nos nomes dos ossos, mas não realiza inclusão de vértices; por fim, a terceira e quarta opções criam e preenchem os grupos de vértices automaticamente de acordo com os nomes dos ossos, mas utilizando algoritmos diferentes. Dada a complexidade dos modelos e a atual imaturidade dos algoritmos de inserção, o processo automático apresentou resultados imprecisos, incluindo vértices em grupos indesejados, sendo, por esta razão, utilizada a opção Name Groups para criação automática de grupos e inclusão manual de vértices. Criados os grupos de vértices, um recurso chamado Weight Paint determina o percentual de influência do osso na deformação dos vértices do modelo. O valor do peso é definido em uma escala de zero a um, que utiliza o código de cores mostrado na figura 4.14a. O usuário seleciona o valor desejado e “pinta” os vértices de acordo com a influência desejada para cada osso, como mostra a figura 4.14b. Após a execução desses procedimentos, é possível iniciar o processo de animação do personagem. (a) Relação entre cores e pesos (b) Modelo com aplicação de pintura Figura 4.14: Pintura de peso (Weight Paint). As técnicas utilizadas na animação dos personagens requerem muito empenho do animador em movimentar os ossos do esqueleto adequadamente e, principalmente, temporizar esses movimentos de maneira eficiente, de modo que a animação se torne coerente (referente aos membros que realmente devem ser movimentados) e suave (referente à sua fluidez). 43 No Blender, através do editor de ações (Action Editor), o usuário necessita somente da posição dos ossos em determinados quadros, chamados quadros-chave, ou keyframes, definindo-os na linha de tempo com seu devido espaçamento. O software é capaz de interpolar esses quadros e gerar seus intermediários dentro do intervalo estabelecido, ou seja, quanto maior o espaçamento entre keyframes, mais suave a animação se torna. O processo de síntese da animação é mostrado na figura 4.15, sendo possível identificar na janela à direita a interface do Action Editor, onde são mostrados os marcadores de quadros-chave utilizados ao longo do desenvolvimento da animação. Figura 4.15: Animação utilizando o Action Editor. 4.3.1 – Animações básicas Utilizando a técnica descrita nos parágrafos anteriores, foram geradas inicialmente as animações de ações básicas, que seriam utilizadas por todos os personagens, sendo nomeadas da seguinte maneira: Parado, Andar, Correr e Morrer. Os nomes de cada uma explicitam sua função, dispensando explicações mais detalhadas. Foram criadas também animações de ataque para o modelo de Eduardo Angelim, na qual ele dispara seu mosquete, e do comandante do exército português, que desfere golpes com seu sabre, as quais foram intituladas Atacar. É interessante manter padronizados os nomes das animações para todos os personagens, já que estes nomes são referenciados no código do jogo quando as animações precisam ser reproduzidas. Quadros das animações de ataque dos personagens armados são mostrados na figura 4.16. 44 (a) Angelim (b) Soldado Figura 4.16: Animações de ataque. 4.3.2 – Animações de eventos do jogo Foram desenvolvidas também animações de caráter mais específico, isto é, animações utilizadas para representar algum evento do jogo. Essas animações envolvem uma interação simples entre personagens ou objetos dispostos na cena. Optou-se por construí-las em modelos específicos, exportados separadamente para o Ogre, devido à maior simplicidade no momento da execução. Especificamente, as animações mostram a conversa entre Batista Campos e Felipe Patroni durante a cena de entrega de um exemplar da primeira edição do O Paraense, uma discussão entre Lobo de Souza e Batista Campos nas proximidades do Palácio do Governo, a fuga de Batista Campos da capital e a aliança entre ele e Félix Clemente Malcher. Estas animações utilizam dois esqueletos, um para cada personagem envolvido, que foram cuidadosamente sincronizados utilizando a interface do Action Editor. Imagens de algumas dessas animações são mostradas na figura 4.17. (a) Patroni entregando o jornal (b)Malhado e Batista Campos discutindo Figura 4.17: Animações de eventos do jogo. 45 4.4 – Animações pré-renderizadas Animações pré-renderizadas são animações em vídeo geradas por aplicações de computação gráfica 3D. O Blender, por ser um software de renderização, permite a criação de tais sequências animadas, que foram desenvolvidas para representação de cenas grandes e complexas do jogo da Cabanagem, as quais envolvem uma grande quantidade de personagens e ações. A vantagem de utilizar essa técnica de animação reside na possibilidade de utilizar todos os recursos disponíveis pelo software de modelagem, como efeitos avançados de iluminação, sombreamento, transparência, reflexão e refração sobre superfícies, entre outros. Além disso, utilizar o método descrito anteriormente, em que modelos eram exportados individualmente com as animações a serem reproduzidas, apesar de possível, é menos eficiente, por ser necessária a sincronização da câmera e de vários objetos na linha de tempo, com animações que começam ou terminam em momentos distintos, tornando demasiado complexo o controle dessas sequências por meio do código. Assim, visto que o Blender proporciona recursos para geração de animações em vídeo, optou-se por utilizar este método para as cenas mostradas ao jogador no intervalo entre as missões (em que são mostrados eventos referentes ao estágio vencido ou introduzida a situação da missão seguinte). Essas cenas foram geradas a partir da técnica de animações de esqueleto vista anteriormente com a adição de novas técnicas para translação da câmera, pois esta não pode ser transformada a partir da utilização de ossos, sendo para isto utilizado um recurso chamado editor de curva de Ipo (Interpolation). O Ipo Curve Editor permite que sejam editadas as curvas 2D que definem a animação no Blender através de um gráfico que mostra o valor editado (posição, tamanho, rotação, entre outros) no eixo vertical, enquanto mostra a linha de tempo no horizontal. A interface deste editor pode ser vista na figura 4.18. Pode-se observar mais claramente a interpolação realizada pelo Blender entre os keyframes, sendo possível também que o animador ajuste as variações desta interpolação de acordo com a sua necessidade, acentuando, atenuando ou tornando constantes essas variações. 46 Figura 4.18: Interface do Ipo Curve Editor. De forma diferente da realizada com o Action Editor, o usuário pode inserir um keyframe no editor de Ipo para qualquer objeto, sem a necessidade de anexá-lo a um esqueleto. No menu de inserção de quadros-chave, o usuário pode selecionar quais informações deseja que o Blender armazene sobre o modelo no frame atual, sendo elas localização (Loc), rotação (Rot) e tamanho (Scale). Ao fazer uma seleção, a informação é mostrada no gráfico através de um ponto (como os mostrados no gráfico da figura 4.18), que pode ter sua posição alterada tanto em magnitude (no eixo vertical), quanto na linha de tempo (no eixo horizontal). 4.4.1 – Abertura da escotilha do Brigue Palhaço A primeira animação desenvolvida representa a cena em que a escotilha do Brigue Palhaço é aberta por soldados portugueses, que encontram um vasto número de cadáveres no porão do navio. Nesta animação, três soldados representados pelo modelo do comandante português são utilizados, sendo eles transformados utilizando somente animações de esqueleto, que também foi utilizada para a animação da escotilha do navio, a qual necessitou de somente um osso para controlá-la. Para a orientação da câmera, utilizou-se um procedimento bastante simples, baseado no rastreamento de um osso pela câmera, a partir do comando Track To. Com isso, a câmera fica constantemente “olhando” para o osso, sendo desnecessária a modificação de sua orientação a cada keyframe. A técnica utilizada para translação da câmera utilizou um elemento denominado Path (caminho), que consiste em um conjunto de pontos definidos pelo animador, os quais são interpolados pelo software para gerar uma curva sobre a qual um objeto pode ser transladado. Caminhos são recomendados para animações em que a câmera se 47 movimente de maneira sinuosa e contínua (sem mudanças bruscas de posição), podendo ser criados a partir do mesmo procedimento utilizado para criação de um objeto comum. Para tornar a câmera móvel sobre um path, é necessário primeiramente torná-la pai do caminho, utilizando o comando Make Parent e selecionando a opção Follow Path no menu subsequente. A partir disso, a reprodução da animação já movimentará a câmera ao longo do caminho, mas utilizando as configurações padrão do recurso, as quais precisam ser ajustadas adequadamente para produzir o efeito desejado. A caixa de configuração de um caminho é mostrada na figura 4.19a. Entre as opções disponíveis, foram utilizadas as referentes ao tamanho do caminho em quadros (campo PathLen) e controle da interpolação dos pontos (campo Width). A variação de velocidade do objeto sobre o caminho pode ser controlada no editor de Ipo, conforme mostra a figura 4.19b. (a) Configuração do Path (b) Controle de velocidade do objeto Figura 4.19: Configuração geral de um Path. A partir da utilização destas técnicas, foi necessário somente inserir os keyframes referentes ao osso rastreado pela câmera para definir a orientação desta durante a animação, já que sua translação é realizada pelo Path. Para os soldados, utilizou-se a animação previamente desenvolvida Andar e foram criadas animações para as ações de cada personagem enquanto abrem a escotilha e olham para o porão do navio. Um quadro da renderização final da animação é mostrado na figura 4.20. 48 Figura 4.20: Animação do Brigue Palhaço. 4.4.2 – Saída da fazenda Vila Nova Esta animação reproduz os eventos ocorridos após a vitória cabana na batalha do Acará, mostrando alguns personagens mortos durante o confronto e os sobreviventes sendo levados pelos cabanos para a fazenda Acará-açu. Foram utilizados diversos modelos de cabanos, escravos e soldados portugueses para representar as unidades envolvidas, além de Eduardo Angelim e o comandante Nabuco de Araújo, o qual foi morto durante a batalha e é mostrado sendo levado por cabanos, juntamente com os prisioneiros, até o navio utilizado no transporte dos sobreviventes e cadáveres. A câmera desta animação possui movimentação mais simples que a desenvolvida para a anterior, sendo desenvolvida sem grandes dificuldades. Nesse caso, a atividade mais trabalhosa foi a configuração da cena e sincronização da grande quantidade de personagens, que se baseou em operações realizadas no Action Editor, já que se tratava somente de animações de esqueleto. Foram utilizados efeitos de renderização avançados para geração da água do rio Acará, utilizando recursos de transparência, reflexão, refração e normal mapping, sendo este último um método para gerar rugosidade em uma superfície a partir das variações de tonalidade em uma imagem, que resultou no surgimento do aspecto ondulado da superfície do rio. Para o terreno, foi utilizada a técnica conhecida como stencil mapping para misturar duas ou mais texturas sobre uma superfície. Esse método utiliza imagens em escala de cinza como máscaras para definir regiões de transparência entre camadas de textura. Com isso, foi possível gerar um terreno com mais detalhes em sua superfície. A animação final tem dois de seus quadros mostrados na figura 4.21. 49 (a) Visão da cena em que ocorreu a batalha (b) Cabanos levando o comandante e prisioneiros ao navio Figura 4.21: Animação na fazenda Vila Nova. 4.4.3 – Vitória dos cabanos na tomada do poder em Belém Após a batalha pela tomada do poder na capital paraense, Félix Clemente Malcher e Antônio Vinagre se tornam o novo presidente da província e o comandante das armas, respectivamente. Esta animação constitui a cena final do jogo da Cabanagem, mostrando os personagens citados entrando no Palácio do Governo e sinalizando para os revolucionários que se encontram na frente do prédio, os quais, por sua vez, comemoram a vitória alcançada na batalha. A animação dos personagens foi desenvolvida da mesma maneira que nos casos anteriores. Para a câmera, optou-se por movimentos mais suaves utilizando somente o editor de Ipo, sem o auxílio de Paths. Apesar do ambiente aberto, os movimentos da câmera não capturam grande parte do cenário, por isso, não foram utilizadas técnicas avançadas na criação do terreno além de stencil mapping, para criar um aspecto mais detalhado. Um quadro da animação é exibido na figura 4.22. 50 Figura 4.22: Cena final do jogo da Cabanagem. 4.5 – Terreno A modelagem do terreno da cidade de Belém não será abordada aqui, mas a configuração do modelo já pronto utilizando o script de materiais do módulo gráfico do CabanEngine, Ogre3D. O terreno da cidade apresenta muitas variações de detalhes, como terra, grama, areia e cascalho, sendo necessário inserir múltiplas camadas de texturas utilizando máscaras como as utilizadas na técnica de stencil mapping, as quais são definidas a partir da edição do arquivo de materiais referente ao modelo do terreno, com o qual também é possível ajustar outras características, algumas das quais vistas adiante. Os scripts de material do Ogre proporcionam uma forma bastante eficiente de definir as características dos materiais de um objeto (que pode ser um modelo 3D, céu, fontes de partículas, entre outros), como LoD, sombreamento, transparência e texturas, utilizando uma linguagem com sintaxe semelhante a C++. Essa definição de materiais pode ser executada por meio do código fonte do jogo, utilizando funções das classes Material e TextureLayer, mas se torna um processo bastante trabalhoso na prática. Um material é definido a partir de sua declaração no script e deve conter técnicas (techniques), passes (passes) e unidades de textura (texture units), em uma estrutura hierárquica. Técnicas representam o nível mais básico de configuração de um material, como controle do índice de LoD (quando existem múltiplos níveis de detalhe em um objeto), bem como diferentes configurações para projeção de sombra pelo objeto ou sobre ele. Passes devem ser declarados dentro do escopo de uma técnica para gerar diferentes efeitos de renderização a partir da aplicação de atributos para controle de características como efeitos de luz difusa ou especular e iluminação dinâmica. Por fim, unidades de textura, que devem ser incluídas em passes, identificam as texturas utilizadas pelo material, sendo possível controlar também combinação de texturas. 51 A utilização efetiva de materiais requer um extenso estudo para entender todas as suas funcionalidades. Isto se aplica quando da necessidade de definir efeitos bastante avançados e complexos ao objeto. Para o terreno da cidade de Belém, a configuração do material foi realizada de forma simplificada, a partir da criação de um conjunto de passes em uma mesma técnica, que receberiam unidades de textura para realizar o mapeamento e a combinação das texturas no objeto. Para cada camada de textura foi criado um pass, configurado para permitir a combinação de múltiplas camadas através do atributo scene_blend, que determina a forma como o conteúdo de um pass é combinado à cena, o qual habilita combinação de texturas com o parâmetro alpha_blend. Cada pass recebeu duas unidades de textura, uma contendo a imagem difusa a ser repetida sobre o terreno (grama, cascalho, etc.) e outra utilizada como máscara, utilizando o atributo colour_op_ex, que permite controle detalhado da combinação aplicada à camada atual e às anteriores, sendo a camada final formada pela combinação entre as duas imagens do pass e das camadas previamente processadas. O terreno mostrado na figura 4.23 ilustra o efeito produzido pela configuração do material no ambiente do jogo. Figura 4.23: Configuração do terreno por meio do script de material. 4.6 – Configuração do ambiente virtual Nesta seção será descrito o processo de configuração do ambiente virtual da cidade de Belém utilizando os recursos oferecidos pelo Ogre para controle de iluminação e sombreamento de uma cena. A cidade virtual possui duas ambientações, utilizadas na primeira e terceira fase do jogo, que correspondem a um ambiente diurno e noturno, respectivamente. Para esses ambientes, foram utilizadas técnicas distintas de iluminação e renderização de céu e neblina. 52 O controle da iluminação de ambientes no Ogre é realizado de duas formas diferentes: utilizando a iluminação nativa da cena ou fontes de luz criadas pelo programador. A iluminação nativa pode ser controlada através da função SceneManager::setAmbientLight(), que recebe como parâmetro um objeto do tipo ColourValue, definido pelo Ogre para representar valores de cor no sistema RGB (Red, Green e Blue), e realiza iluminação uniforme de todos os objetos da cena, sem aplicação de técnicas de sombreamento. A criação de fontes de luz, a partir da função SceneManager::createLight(), instancia um objeto do tipo Light, o qual possibilita a ativação de diferentes métodos de projeção de sombras pelo objeto, cada qual com custo computacional variado. Fontes de luz podem ser do tipo point, spotlight e directional. A primeira é utilizada para fontes pontuais, que emitem luz em todas as direções; a segunda simula o efeito de uma lanterna, criando uma luz concentrada em uma região circular ou elíptica; a última, por sua vez, simula uma luz distante que banha toda a cena em uma direção, como a iluminação da lua em uma cena noturna, a qual pode ser configurada pelo programador. Técnicas de projeção de textura são divididas em dois grandes grupos: stencil (estêncil) ou texture-based (baseado em textura), as quais possuem algumas subdivisões que utilizam algoritmos de projeção diferentes. Sombras do tipo estêncil proporcionam um efeito mais realista à cena, com sombras dinâmicas e precisas, mas requerem custo computacional bastante alto. O uso de sombras baseadas em textura, por outro lado, resulta em efeitos mais básicos, pois utilizam texturas de resolução fixa para projeção de sombras, demandando, por esta razão, processamento muito inferior quando comparadas às sombras do tipo estêncil. As diferentes técnicas de sombreamento são habilitadas através da função SceneManager::setShadowTechnique(), cujo parâmetro é o tipo de sombra que se deseja utilizar. Para os dois ambientes da cidade foi utilizado o método baseado em texturas, dada a grande complexidade do mapa. Sombras do tipo estêncil foram utilizadas nas fazendas do ambiente virtual do Acará, por possuírem quantidade de modelos muito inferior à da cidade. Ogre oferece três tipos diferentes de céu para adicionar a uma cena: SkyBoxes, SkyDomes e SkyPlanes, habilitados, respectivamente, através das funções setSkyBox(), setSkyDome() e setSkyPlane() da classe SceneManager. SkyBox gera uma caixa que engloba toda a cena, cujas faces internas possuem texturas que representam o fundo do cenário, como o céu propriamente dito, espaço ou montanhas, utilizado em cenários extensos e abertos. SkyDome determina um cubo, o qual não possui fundo, em que a projeção de texturas é realizada de maneira esférica, recomendado para ambientes em que um terreno impede a visualização da parte inferior do cenário. SkyPlane utiliza somente um grande plano sobre a cena, sendo o tipo que requer menor custo computacional, recomendado para cenários em que não é possível visualizar o horizonte. 53 Para neblina, ou fog, existem dois tipos básicos utilizados por Ogre: linear e exponencial. A neblina pode ser habilitada a partir da função SceneManager::setFog(), que recebe, entre outros parâmetros, o tipo de fog, sua coloração e distâncias de renderização mínima e máxima. Os dois modos se diferenciam pela forma com que tornam a neblina mais densa, linear ou exponencialmente, afetando também o custo computacional requerido. É interessante ressaltar que ao habilitar uma neblina demasiado espessa, esta pode inibir a visibilidade do céu, o qual deve ter no pass de seu material o atributo fog_override – que torna o objeto visível através da neblina, não importando a densidade desta – ativado para que possa ser exibido corretamente. Para o ambiente diurno, foi utilizada somente a iluminação nativa da cena, dispensando outras fontes de luz, já que se trata de um ambiente externo, com grande visibilidade. Por esta razão, optou-se por fog em modo linear, com valores para a distância mínima e máxima altos. O tipo de céu utilizado neste cenário foi SkyBox, pois o material utilizado possibilitava a exibição de um céu bastante nublado, que foi julgado adequado para o ambiente da cidade. Este ambiente é mostrado na figura 4.24, na qual se percebe que os recursos utilizados se adequam de fato ao cenário da cidade. Figura 4.24: Ambiente diurno da cidade de Belém. Para o ambiente noturno da batalha em Belém, foram utilizadas técnicas mais elaboradas para a configuração do ambiente. Buscou-se restringir a visibilidade do jogador através de uma iluminação nativa fraca, com a adição de uma luz direcional que simulasse a iluminação da lua. Avaliou-se a inclusão de outras fontes de luz no cenário, mas por questões de simplicidade e redução de custo computacional, esta proposta foi descartada, juntamente com a inclusão de efeitos de sombreamento avançados, principalmente porque a neblina utilizada nesta fase foi habilitada no modo exponencial, para dar uma maior noção de escuridão, claramente tornando mais complexo o 54 processamento da cena em relação ao ambiente anterior. Para o céu, utilizou-se o tipo SkyDome, pelo fato do material aplicado se adaptar melhor à cena, dada a grande restrição de visibilidade. O ambiente da fase final do jogo pode ser visualizado na figura 4.25. Figura 4.25: Ambiente noturno da cidade de Belém. 55 CAPÍTULO 5 – CONSIDERAÇÕES FINAIS Este trabalho expôs as principais características de jogos eletrônicos e como eles podem ser importantes no processo de ensino-aprendizagem, por constituírem ferramentas em que é possível criar enredos ricos e narrativas bem elaboradas, além de possibilitarem ao jogador o aprendizado de conteúdos de diversas naturezas. A equipe de desenvolvimento do jogo A Revolta da Cabanagem buscou elaborar um enredo fiel ao movimento popular mais importante da história do estado do Pará, representando seus principais personagens e eventos através de diversos recursos comumente utilizados em jogos comerciais, exatamente por serem considerados atrativos para o público jovem. É importante ressaltar, no entanto, que um jogo educativo não é projetado para substituir o professor ou livros que abordem o conteúdo oferecido, mas para ser utilizado como ferramenta de motivação ao aluno, estimulando-o a buscar o conhecimento enquanto é guiado pelo professor. Este jogo também auxilia o aluno nos primeiros passos dessa busca ao oferecer as referências bibliográficas utilizadas na elaboração do enredo. As técnicas empregadas no desenvolvimento do jogo da Cabanagem demandaram grande esforço da equipe integrada ao projeto. No caso dos métodos apresentados neste trabalho, diferentes técnicas foram estudadas para tornar possível a geração do ambiente virtual do jogo em sua totalidade, dada a grande complexidade dos objetos que precisaram ser criados e, quando aplicável, animados. Buscou-se constantemente utilizar recursos para simplificação dos modelos de forma que fosse obtido o melhor desempenho possível sem a perda da noção de realismo que aplicações de realidade virtual devem proporcionar. É interessante notar que os métodos apresentados podem ser aplicados não somente em jogos eletrônicos, mas em qualquer aplicação que utilize elementos virtuais para um determinado fim, como cavernas digitais ou CAVEs (Cave Automatic Virtual Environment), ambientes virtuais colaborativos e simuladores para treinamento de funcionários da indústria. Ressalta-se também a utilização de ferramentas livres no desenvolvimento de um jogo eletrônico, podendo representar um caminho viável, apesar de trabalhoso, para projetos de jogos eletrônicos cujo orçamento não permita a aquisição de ferramentas comerciais com recursos de última geração, que é o caso, conforme foi visto, da maioria dos projetos desenvolvidos em âmbito acadêmico. Atualmente o jogo se encontra em sua fase final de desenvolvimento, na qual ainda estão sendo realizados testes para correção de falhas e, em menor escala, adição 56 de recursos que se façam necessários. Futuramente, pretende-se avaliar a eficiência pedagógica do jogo em escolas de ensino médio, a partir de sua implantação em laboratórios que possibilitem o acesso dos alunos, enquanto supervisionados por um professor, os quais fornecerão um feedback que possibilitará melhorias posteriores no sistema. 57 REFERÊNCIAS BIBLIOGRÁFICAS [1] AMORY, Alan. Building an Adventure Educational Game: Theory, Design and Lessons In: Journal of Interactive Learning Research, 2001, v. 12 num. 23. pp. 249-263. [2] BITTENCOURT, J. R. & FIGUEIREDO, C. Z. Jogos Computadorizados para Aprendizagem Matemática no Ensino Fundamental. Novas Tecnologias na Educação, Porto Alegre, v. 3, n. 1, p. 4-5, Maio 2005. [3] Blender 2.49. Blender Foundation, 2009. Disponível http://www.blender.org. Acessado em 01 de junho de 2009. no endereço [4] CIPRIANI, O. N.; MONSERRAT, J.; SOUZA, Ila M. S. Construindo um Jogo Para Uso na Educação Matemática. SBGAMES, 2007. [5] CLUA, Esteban W. G.; BITTENCOURT, João R. Mini-curso: Uma Nova Concepção para a Criação de Jogos Educativos. SBIE 2006. [6] DAMASCENO, R. Rodrigues, REIS, F. Vaz, RIBEIRO, Filho M., SILVA, F. Cardoso, SOUZA, M. Soares, Jogo Educativo com Tema Histórico: A Revolução da Cabanagem, SBGAMES, 2008. [7] GENTILE, Douglas A. et al. The Effects of Prosocial Video Games on Prosocial Behaviors: International Evidence From Correlational, Longitudinal, and Experimental Studies. Personality and Social Psychology Bulletin, 2009. [8] GNU GPL. Free Software Foundation , 2007. Disponível no endereço http://www.gnu.org/licenses/gpl.html. Consultado em: 01 de junho de 2009. [9] JENSON, Jennifer & CASTEL, Suzanne. Serious Play: Challenges of Educational Game Design In: American Research Association Annual Meeting in New Orleans. Louisiana: AERA, 2002. Disponível no endereço http://edtech.connect.msu.edu/Searchaera2002/viewproposaltext.asp?propID =5573. Consultado em 01 de junho de 2009. [10] KENT, Steven L. The Ultimate History of Video Games: From Pong to Pokémon and Beyond – The Story Behind the Craze that Touched our Lives and Changed the World. New York: Three River Press, 2001. [11] KIRRIEMUIR, John & MacFarlane, Angela. Literature Review in Games and Learning. FutureLab Series, 2004. Disponível no endereço http://www.futurelab.org.uk/resources/documents/lit_reviews/Games_Review.pdf. Consultado em 01 de junho de 2009. 58 [12] MOTORM4X. The Easy Company, 2009. Disponível no endereço http://www.easyco-games.com/games.html. Acessado em 01 de junho de 2009. [13] Google Earth. Google Inc., 2009. Disponível http://earth.google.com/intl/pt/. Acessado em 01 de junho de 2009. no endereço [14] MUKHERJEE, Souvik. From Reading Games to Playing Books: Game, Text and Technicity in Computer Game Narratives. Nottingham Trent University, 2009. [15] MÜLLER, Raquel M.; CAVALCANTE, Gabriel D.; SANTOS, Leandro A. Laguna – Aprendendo sobre a Guerra do Paraguai com jogo educativo. XIII Workshop de Informática na Escola, 2006. [16] Ogre3D. Disponível no endereço http://www.ogre3d.org. Consultado em 01 de junho de 2009. [17] OgreMeshes. Disponível no endereço http://www.ogre3d.org/forums/viewtopic.php?t=45922. Consultado em 01 de junho de 2009. [18] PEDERSEN, Roger E.. Game Design Foundations. Wordware Game and Graphics Library. 2003. [19] REIS, Felipe Vaz. Implementação de um jogo educativo sobre a revolução da Cabanagem. Dissertação de mestrado. PPGEE/UFPa. Maio, 2009. [20] RAIOL, Domingos Antônio. Motins Políticos, ou História dos Principais Acontecimentos Políticos da Província do Pará desde o Ano de 1821 até 1835. Editora da UFPA, 1970. [21] Revolution (Games-to-Teach Project), 2003. Disponível no endereço http://www.educationarcade.org/gtt/revolution/index.html. Consultado em 01 de junho de 2009. [22] ROLLINS, A. & MORRIS, D. "Game Architecture and Design", Coriolis Ed, 2000. [23] ROSA, N. dos Santos & RAPKIEWICZ, C. E. Ensinando princípios básicos de programação utilizando jogos educativos em um programa de inclusão digital, SBGAMES, 2007. [24] Torchlight. Runic Games, 2009. Disponível no endereço: http://en.runicgamesfansite.com/rgwiki/index.php?title=Torchlight. Consultado em 01 de junho de 2009. 59 [25] SANTANA, Camila; SENA, Gildeon; MOURA, Juliana; ALVES, Lynn. Tríade: delineando o processo de construção de um roteiro de um jogo eletrônico. SBGames 2007. 2007. [26] SAVI, Rafael. Jogos digitais educacionais: benefícios e desafios. Novas Tecnologias na Educação, Porto Alegre, v. 3, n. 1, Maio 2005. [27] TIMM, Maria I.; RIBEIRO, Luis O. M.; LANDO, Vanusa R.; AZEVEDO, Ana M. P.; VIEIRA, Everton. Game educacional: desafios da integração de elementos ficcionais, tecnológicos, cognitivos e de conteúdo. SBGAMES, 2008. [28] TOBALDINI, Michele A.; MARTINELLI, Michelli; BRANCHER, Jacques D. Arquiteturas Históricas no Ambiente de um Jogo de RPG Educacional Computadorizado, SBGAMES, 2006. [29] ZERBST, Stefan & DÜVEL, Oliver. 3D Game Engine Programming. Thomson Course Technology PTR. 2004.