Desenvolvimento de Jogos Eletrônicos



Documentos relacionados
Professor: Ronilson Morais Lobo. Salvador / 2015

Ciências da Computação Disciplina:Computação Gráfica

GNU Image Manipulation Program, mais conhecido pelo acrônimo GIMP.

Sumário. Computação Gráfica Illustrator

AULA 2. Aspectos Técnicos. Luciano Roberto Rocha. MBA em Marketing Digital SOCIAL GAMES

LEAS ONLINE: PROTÓTIPO DE UM JOGO DE MMORPG

1 Introdução. Sistemas de Autoria

7.Conclusão e Trabalhos Futuros

Trabalhando com arquivos de som. Prof. César Bastos Fevereiro 2008

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

11/06/2013. O que é Software Aplicativo? Suítes de Software. Adquirindo Software SOFTWARES APLICATIVOS

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

SISTEMAS OPERACIONAIS

CorelDRAW UM PROGRAMA DE DESIGN

CURSOS OFERECIDOS. seus objetivos e metas. E também seus elementos fundamentais de Administração, como: PLANEJAMENTO, ORGANIZAÇÃO E CONTROLE.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Oficina de produção de tutoriais. WALESKA - TUTORIAL Audacity

Pág. 1 de 9 geral@cadtresd.pt Room Player

DESENVOVIMENTO DE GAMES APRESENTAÇÃO. MARCELO HENRIQUE DOS SANTOS

Tutorial Audacity. Índice

DESENVOLVIMENTO DE PROGRAMA MULTIMIDIA PARA O ENSINO DEDINÂMICA DE MÚLTIPLOS CORPOS

Um Driver NDIS Para Interceptação de Datagramas IP

Introdução à Computação

Roteiro 3: Apresentações eletrônicas (parte 1)

Aplicação Prática de Lua para Web

Soluções Autodesk Transferência de Tecnologias. Parcerias tecnológicas, treinamentos e licenciamentos

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Curso Básico de Edição de Vídeo - Windows Movie Maker. Windows Movie Maker

C D. C) Coleções: é usada para organizar o conteúdo de áudio, vídeo e imagens em pastas, buscando facilitar a montagem do storyboard.

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Informática Aplicada

Noções de. Microsoft SQL Server. Microsoft SQL Server

Multimídia. Hardware/Software para Multimídia (Parte I) Sistemas Multimídia. Tópico. Hardware e Software para Multimídia

Menus Personalizados

Desvendando Jogos 2D. Por Marcos Romero Setembro / Cyborg Arena - RHGames

Projeto de Jogos Parte II Gráficos

PROJETO INFORMÁTICA NA ESCOLA

UTILIZANDO O GIMP PARA EDIÇÃO DE IMAGENS

Universidade Estadual de Campinas Faculdade de Educação Laboratório de Novas Tecnologias Aplicadas à Educação

Prof. Marcelo Henrique dos Santos

ENG1000 Introdução à Engenharia

Utilizando o 3D Studio Max como Level Editor para Construção de Cenários para Ogre3D

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Apostila para o 7º ano Profª Yandra

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Técnicas para Animação de Imagens em Jogos 2D Utilizando Java

MANUAL PARA INCLUSÃO DIGITAL- ANDRAGOGIA

Serviço Técnico de Informática. Curso Básico de PowerPoint

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

O que é um Objeto Educacional? página 01. Objeto Educacional passo a passo página 05

Utilizando o 3D Studio Max como Level Editor para Construção de Cenários para Ogre3D

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

VERSÃO 1 PRELIMINAR MÓDULO 3 - PRESENCIAL

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

PROPOSTA DE UM MODELO DE SISTEMA HIPERMÍDIA PARA APRESENTAÇÃO DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

17:47:08. Introdução à Informática com Software Livre

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

Capítulo 2 Introdução à ferramenta Flash

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

Esse tutorial visa apresentar as principais funcionalidades do Editor de Roteiro de Aprendizagem do Portal Clickideia.

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos

Salvando arquivos em PDF nos Sistemas Mainframes, utilizando emuladores de terminal

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

TECNOLOGIA EM SISTEMAS PARA INTERNET Disciplina:FERRAMENTAS E TÉCNICAS DE ANIMAÇÃO WEB. Professora Andréia Freitas

Ferramenta de Design Gráfico/ Imagem Digital Adobe Photoshop Fábio Fernandes

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Sistemas Operacionais

Aula 5 Microsoft PowerPoint 2003: Criando uma Apresentação

JOOPP O construtor de sites mais rápido do mundo!

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha.

Pesquisa e organização de informação

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Engenharia de Software III

Trabalho GA - Editor de Cenário Parallax

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 05: Editores de Imagem Paint / GIMP

Ptex e outras ferramentas para modelagem de animação

Tecnologia e Informática

Persistência e Banco de Dados em Jogos Digitais

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

Processos de Desenvolvimento de Software

PASSO A PASSO MOVIE MAKER

Sphinx Scanner Informações gerais V

LABORATÓRIO VIRTUAL DE MATEMÁTICA EM DVD

15 Computador, projeto e manufatura

Taxa de Gravação da Memória RAM (MegaBytes / segundo) G5 2.7 Ghz (Mac) Linux Kernel

Vivaldo Armelin Júnior

ProgramaTchê Programação OO com PHP

ÍNDICE MANUAL SITE ADMINISTRÁVEL TV. 1. Introdução 2. Acessando o site administrável/webtv SITE ADMINISTRÁVEL 3. CONFIGURAÇÕES

Desenvolvimento de cenários 3D com estereoscopia utilizando a engine de jogos UDK Unreal Development Kit. Hipólito Douglas França Moreira

Sistemas de Informação I

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens

Conceitos sobre Sistemas Operacionais. Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

Transcrição:

Revista Eletrônica da Faculdade Metodista Granbery http://re.granbery.edu.br - ISSN 1981 0377 Curso de Sistemas de Informação - N. 7, JUL/DEZ 2009 Desenvolvimento de Jogos Eletrônicos Mônica de Lourdes Souza Batista 1, Sérgio Muinhos Barroso Lima 1 1 Faculdade Metodista Granbery CEP: 36010-532 Juiz de Fora MG Brazil monicasouzabatista@gmail.com, smblima@gmail.com Resumo Como acontece no desenvolvimento de um Sistema de Informação, a produção de um jogo eletrônico, seja ele 2D ou 3D, necessita da adoção de um processo de desenvolvimento. No caso dos jogos eletrônicos, é necessário levar em consideração os aspectos artísticos. O objetivo deste artigo é analisar quais são as etapas do processo de elaboração de um jogo e quais as ferramentas que auxiliam este processo. Palavras-Chave: jogos eletrônicos, desenvolvimento de jogos, ferramentas para jogos, máquinas de jogos. Abstract. As it happens in the development of an Information System, the production of an electronic game, be it 2D or 3D, requires the adoption of a development process. In the case of electronic games, you must take into account the artistic aspects. This article aims to examine wich are the steps of the process drafting a game and what are the tools that help this process. Key-words: eletronic games, game development, game tools, game engines. 1. INTRODUÇÃO O fascínio exercido pelos jogos eletrônicos vem atraindo consumidores e profissionais para as áreas de computação e artes gráficas, tornando a indústria dos jogos eletrônicos tão próspera quanto a do cinema (SANTOS e VALE, 2006). O desenvolvimento de um game torna-se complexo devido a sua natureza interdisciplinar e ao fato de que se espera que games atuais sejam capazes de prover, em

tempo real, o maior grau de realismo possível, tanto no aspecto gráfico como no aspecto de simulação. O interesse pelo acréscimo de realismo físico em jogos digitais é suportado, atualmente, pelo aumento de velocidade das CPUs e da evolução das unidades de processamento gráfico que implementam em hardware muitas das funções de visualização. Este trabalho apresenta, então, as etapas do processo de elaboração de um jogo, as máquinas de jogos (game engines), as considerações finais e as referências bibliográficas utilizadas. 2. ETAPAS DO PROCESSO DE ELABORAÇÃO DE UM JOGO Para se desenvolver um jogo eletrônico, é necessário realizar as seguintes etapas: confecção do Design Bible, produção de áudio, produção de imagens 2D (duas dimensões), modelagem 3D (três dimensões) e a escolha do engine que será utilizado ou o desenvolvimento do mesmo. 2.1 Design Bible Design bible (bíblia do projeto) é um documento que possui todas as especificações do jogo, ou seja, é um manual de instruções para quem desenvolverá o game. Este documento é composto por um design document (detalhamento do jogo), game play (jogabilidade) e interface gráfica (CLUA e BITTENCOURT, 2005). O Design document é parecido com o roteiro de um filme (CLUA e BITTENCOURT, 2005). A partir deste documento os artistas irão criar o visual e os programadores desenvolver o produto. Todos os itens da etapa de game design (projeto do jogo) e as perguntas analisadas na fase de detalhamento do jogo são descritas no design document. Este documento é muito trabalhoso e exaustivo de se desenvolver, pois ele detalha tudo o que vai acontecer no jogo. Com ele é possível repensar as decisões tomadas, validar alguns conceitos, suprimir algumas regras e adicionar outras (PERUCIA et al, 2005). O design document é muito requisitado pelos investidores para que eles possam ter uma visão mais precisa de como será o jogo; então, ele é um elemento crucial para convencê-los do potencial de venda (CLUA e BITTENCOURT, 2005). Neste documento se encontra o nome do jogo, uma apresentação resumida, público-alvo, estilo de jogo, história; especificações técnicas de hardware, de sistema 2

operacional, gráficos; dispositivos de entrada e sonorização, onde são definidas as músicas nos menus e nas fases (PERUCIA et al, 2005). No detalhamento do jogo é necessário pensar em cada ação do jogador. Para isso deve-se levar em conta algumas perguntas como: o que o jogador fará no jogo? Ele anda, nada ou voa? Como e quando ele realiza cada uma dessas ações? Qual a personalidade do personagem principal? Quantos inimigos o personagem enfrentará? Como são estes inimigos? Quais as armas que o jogador usará para enfrentá-los? Como será o sistema de vida do jogador? Como ele ganhará novas vidas? Qual o objetivo do jogo? Quantas fases o jogador terá que passar para alcançar o objetivo final? Como será o cenário, dificuldades e objetivos destas fases? Quantos jogadores poderão jogar o jogo? Qual será a visualização gráfica? 2D, 3D, primeira pessoa ou terceira pessoa? Qual será a trilha sonora do jogo? (PERUCIA et al, 2005). O Game Play é o documento que descreve as regras do jogo, ou seja, como será a sua jogabilidade. O Game Play é o documento que irá guiar o programador na etapa de scripting, ou seja, na etapa de programação (codificação) do jogo (CLUA e BITTENCOURT, 2005). Na interface gráfica é necessário analisar a interface ingame e outgame. A interface ingame é responsável pela entrada dos dados do jogador para a aplicação. Já a interface outgame é responsável por apresentar a introdução do jogo, a sua configuração, as instruções, carregar um jogo que foi salvo anteriormente, entre outras funções (CLUA e BITTENCOURT, 2005). 2.2 Produção de áudio A ambientação sonora é uma das características mais importantes de um jogo. Um jogo com belos gráficos torna-se incompleto sem uma boa trilha musical e efeitos sonoros bem selecionados. Os recursos de áudio dão mais vida ao jogo, tornando-o muito mais emocionante (SANTEE, 2005). Duas ferramentas comerciais são utilizadas para a produção do áudio: o Cubase e o SoundForge. O Cubase é um software utilizado por músicos, compositores e produtores para a criação de músicas (AUDIOWARE, 2007). Já o Sound Forge é um software que permite a edição de áudio. Ele é muito produtivo, estável e intuitivo. Permite gravar, editar, produzir loops, corrigir e limpar material de áudio, processar 3

efeitos, gerar áudio para Internet, entre outros. Este é usado mais para a produção de trilhas e efeitos sonoros; é muito comum no cinema, na televisão e na produção de vinhetas (PEOPLEWARE, 2007). Existe também o Audacity que é um software livre, de código aberto e multiplataforma, compatível com os sistemas operacionais GNU/Linux, Mac OSX e Windows. Este software é utilizado para edição de áudio profissional ou caseiro, no qual pode-se fazer gravações ao vivo, criar vinhetas, mixagem final de arquivos de áudio e muitas outras atividades, tendo para isso os mais diversos recursos e plugins 1 para que o profissional de áudio tenha um bom resultado no seu trabalho (AMARAL, 2007). O Audacity permite (AUDACITY, 2007) transformar fitas cassete em gravações digitais e CD`s; gravações ao vivo; editar arquivos em formato Ogg Vorbis, MP3 e WAV; cortar, copiar, colar e juntar sons e faixas de áudio; alterar a velocidade ou timbre de uma gravação; grava em até 16 canais; efetuar dublagem de faixas sobre outras previamente gravadas; edição e mixagem de infinitas faixas de áudio; alterar o volume de uma faixa suavemente com os envelopes; remove sons de estática, cliques e estalos no som de fundo; mudança de frequência dos sons; incrementar efeitos; alterar a qualidade; e adicionar plug-ins para ampliar a quantidade de formatos de áudios suportados. 2.3 Produção de imagens 2D Na produção de um game, tanto 2D quanto 3D, é necessário compor imagens bidimensionais (SANTEE, 2005). Estas imagens serão utilizadas como texturas para compor a interface gráfica ingame e outgame, como por exemplo, botões, janelas, barra de energia do jogador, munição, dentre outros. Na produção destas imagens são utilizadas algumas ferramentas de editoração gráfica como o Adobe Photoshop e GIMP (CLUA e BITTENCOURT, 2005). O Adobe Photoshop é uma ferramenta de edição de imagens muito usada em computadores com plataforma Macintosh ou Windows. Apesar da forte concorrência entre os mais variados programas ao longo dos anos, as vendas do Photoshop são responsáveis por mais de 80% do mercado de edição de imagens. É importante ressaltar 1 Segundo Portalinfornet (2007), plugin é um software que é acoplado a um aplicativo para ampliar suas funções. 4

que esse número está crescendo, fazendo com que esta ferramenta se torne quatro vezes mais usada do que todos os seus concorrentes juntos. O Photoshop possui ferramentas de seleção que são rápidas e que permitem o acabamento das bordas de uma imagem; uma interface bem simples, permitindo que o usuário utilize o aplicativo com mais facilidade; converte imagens que estão em preto para branco, além de possuir um alto processamento de imagens (ADOBE PHOTOSHOP, 2007). O GIMP oferece, basicamente, as mesmas funcionalidades do Photoshop. Ele é uma ferramenta free de edição de imagens que permite a criação e manipulação de imagens. Para isso ele oferece vários recursos, dentre eles, uma série de pincéis que permite trabalhar com várias camadas, converte e salva as imagens em diferentes formatos (BMP, PNG, JPG, TIG, TGA, PCX, GIF, SVG, ICO, PSD, TIF); permite, ainda, o uso de máscaras, oferece grande quantidade de filtros (detecção de bordas, distorções, efeitos de luz), apresenta suporte a macros e permite adicionar novas funcionalidades (filtros e formatos de arquivos) no programa através de plug-ins desenvolvidos em C (CLUA e BITTENCOURT, 2005; SISNEMA, 2007). Esta ferramenta é multiplataforma, ou seja, funciona na plataforma Windows, Unix, Linux e MacOS (SISNEMA, 2007). O GIMP permite que o usuário adicione novas funcionalidades ao programa através de uma extensão que se chama Script-Fu. O Script-Fu interpreta scripts e permite a automatização de certas tarefas do programa, como, por exemplo, executar, para várias imagens, um determinado número de passos para a obtenção de um determinado efeito. Com o Script-Fu é possível escrever um script que realize todos estes passos. Semelhante ao Script-Fu existe o Python-Fu que utiliza o interpretador Python (CLUA e BITTENCOURT, 2005; SISNEMA, 2007). Após o registro do script no GIMP, a nova funcionalidade pode ser usada em outros plug-ins. A possibilidade de criação de scripts faz com que o GIMP seja utilizado no desenvolvimento de jogos, pois se o artista e o desenvolvedor desejam um determinado visual gráfico, ao invés de se preocuparem na criação de uma ferramenta de edição gráfica, procuram desenvolver um script que possa ser integrado na arquitetura do GIMP (CLUA e BITTENCOURT, 2005). 2.4 Modelagem 3D 5

Modelagem 3D ou modelagem tridimensional é a área da computação gráfica que tem como objetivo gerar objetos em três dimensões, renderizar cenas, animar imagens, ou seja, a modelagem 3D é responsável pela criação dos personagens, dos objetos e dos cenários das fases do jogo (CLUA e BITTENCOURT, 2005). Existem alguns softwares que auxiliam o processo de modelagem. Atualmente os mais utilizados são o 3D Studio Max, Maya e Blender (CLUA e BITTENCOURT, 2005). O 3D Studio Max permite a renderização de imagens e animação. Ele é utilizado em vinhetas e comerciais para TV, produção de filmes de animação e na criação de mundos virtuais. Sua renderização é de alta qualidade, com luzes, sombras e transparências, sendo possível assim, a criação de imagens realistas e a simulação de ambientes e cenários (AUTODESK, 2007). Figura 1: Renderização de imagem produzida no 3D Studio Max. Fonte: (AUTODESK, 2007) O software Maya possui todas as ferramentas básicas de modelagem, iluminação, textura e animação. O Maya possui simuladores de partículas, conseguindo assim, representar os fluidos de uma forma muito real. Este software possui algumas desvantagens como o preço e a interface, que é pouco intuitiva (MAYA, 2009). O Blender é um programa de modelagem tridimensional que permite a renderização, animações tridimensionais, pós-produção e criação 3D (CLUA e BITTENCOURT, 2005). Ele possui avançadas ferramentas de simulação tais como Rigid Body Dynamics (dinâmica rígida de corpos), Fluid Dynamics (dinâmica de fluidos), e Soft Body Dynamics (dinâmica de corpos macios); avançadas ferramentas de modelagem que permitem ao usuário manipular vértices, faces e arestas; ferramentas de transformação que possibilitam o escalonamento, a rotação e a translação da imagem; ferramentas que permitem o detalhamento da modelagem, possibilitando o 6

arredondamento de quinas e a subdivisão de malhas; além de ferramentas que realizam a animação de personagens (CAVALCANTI, 2006). Figura 2: Imagens de jogos criadas no Blender Fonte: (BLENDER, 2007) O Blender se encontra disponível para vários sistemas operacionais, dentre eles, Microsoft Windows, GNU/Linux, MacOS, Solaris, FreeBSD, Irix, dentre outros (BLENDER, 2007). O Blender utililiza Python para a criação de scripts. Sendo assim, é possível desenvolver novos plug-ins que permitem automatizar e ampliar as funcionalidades básicas da ferramenta (CAVALCANTI, 2006). Um exemplo de plug-in livre desenvolvido para o Blender3D é o script MakeHuman, ilustrado nas figuras 3 e 4, que visa a modelagem de personagens humanos. Este script é usado para criar humanóides, de forma rápida e simples, com opções que permitem modificar os músculos de várias partes de corpo, e com isso criar uma série de expressões faciais (GASPAR, 2006). Figura 3: Script desenvolvido para o Blender para modelagem de personagens humanos Fonte: (CLUA e BITTENCOURT, 2005) 7

Figura 4: Modelagem de personagens humanos Fonte: (MONTENEGRO, 2008) Este software de modelagem também pode ser utilizado como engine de jogos computadorizados, oferecendo tratamento de colisão, suporte a áudio, e permite que a lógica do jogo seja programada em Python (CLUA e BITTENCOURT, 2005). 3. GAME ENGINES Game engine, ou motor de jogo, pode ser definido como um conjunto de funcionalidades reutilizáveis em alto nível que auxiliam o desenvolvedor a implementar as tarefas mais comuns de um jogo. Um game engine é um ambiente de criação de um jogo, ou aplicação gráfica, que utiliza uma interface gráfica e evita a necessidade de se programar. Os recursos oferecidos pelo engine se baseiam no tipo de jogo que se deseja desenvolver, ou seja, para a criação de jogos 2D, deve-se possuir recursos de desenho que permitam a manipulação de camadas, imagens, animação de sprites, detecção de colisão, entre outros; para jogos 3D, o engine deve-se permitir que o programador realize a manipulação e o posicionamento da câmera, posicionamento de objetos no espaço de coordenadas (x,y,z), recursos para implementação da física, rendering (renderização), entre outros (ENGERS et al, 2004). Uma das vantagens do engine é que ele faz com que o desenvolvimento de jogos seja mais simples e mais ágil (ENGERS el at, 2004). A desvantagem é o fato de que os games com ele contruídos são mais específicos. Nesse contexto, é comum encontrar engines gráficos, engines para jogos de primeira pessoa, engines para jogos 2D, dentre outros (FEIJÓ, PAGLIOSA e CLUA, 2006). Cada engine tem o seu foco e objetivos 8

voltados para a resolução de problemas relacionados ao tipo de jogo em questão, como, por exemplo, leis da física, colisões e expressões faciais (SOUZA e ROCHA, 2005). Os principais requisitos que um engine deve possuir são (FEIJÓ, PAGLIOSA e CLUA, 2006); (CLUA e BITTENCOURT, 2005) e (SANTEE, 2005): encapsular da melhor forma possível códigos que podem ser reutilizados para diversos projetos com alguma semelhança entre si; permitir uma perfeita integração entre outros recursos de arte (modelos, imagens, texturas, sons) com a programação; fazer com que o desenvolvimento se torne o mais independente possível de tecnologias e plataformas; fazer com que a aplicação seja capaz de explorar o máximo possível os recursos de hardware disponíveis (GPU Graphic Processor Unit, processamento distribuído, hardware de áudio); permitir um gerenciamento de projeto adequado; lidar com o hardware gráfico; controlar os modelos para serem visualizados; processar o controle de física e colisão da cena; renderização, ou seja, visualização; animação facial; controle de dispositivos de rede; tratar as entradas de dados do jogador; e tratar todo o processamento de baixo nível. 3.1 Arquitetura básica de um engine A arquitetura de um engine se basea em dois níveis de abstração: nível SDK (software development toolkit) e nível ferramental. No nível SDK se encontram todas as bibliotecas de funções básicas, separadas de acordo com suas funções. Nele encontram-se as bibliotecas de Matemática, controladores de recursos, física, visualização, redes e áudio/vídeo (FEIJÓ, PAGLIOSA e CLUA, 2006). A Figura 5 ilustra a arquitetura do SDK. O elemento básico do SDK é a biblioteca de matemática. Conforme visto na Figura 5, esta biblioteca é utilizada por outros módulos. Ela realiza funções matemáticas típicas, como por exemplo, operações com vetores, operações de matrizes, entre outras (FEIJÓ, PAGLIOSA e CLUA, 2006). 9

Figura 5: Arquitetura do SDK Fonte: (FEIJÓ, PAGLIOSA e CLUA, 2006) A biblioteca de renderização é responsável por abstrair a etapa de visualização. Nesta biblioteca se encontra implementado todo o pipeline gráfico que é o processo de gerar imagens 2D partindo de modelos 3D. A biblioteca de Física utiliza as funções da biblioteca de Matemática (FEIJÓ, PAGLIOSA e CLUA, 2006). O interpretador de scripts possibilita que o usuário tenha um controle de recursos, objetos e cenário sem ter que utilizar o código fonte do SDK. Para isso, o interpretador permite o acesso e algumas operações com os objetos e variáveis do sistema. A implementação da lógica do jogo e da inteligência artificial dos elementos dinâmicos é realizada sobre scripts e não sobre o Engine Core (Programa que executa a aplicação do jogo, manipula a fase e os objetos, renderiza as cenas. Pode ser considerado como o sistema operacional do jogo). Cada engine possui a sua linguagem de programação script. As linguagens mais utilizadas são JavaScript, Python e Lua (CLUA e BITTENCOURT, 2005). A biblioteca de áudio/vídeo e a de recursos implementam funções para a manipulação de vários formatos de áudio (mp3, wav, midi), de vídeo e imagens (FEIJÓ, PAGLIOSA e CLUA, 2006). A biblioteca de redes implementa funções que permite o tráfego de mensagens. 10

Figura 6: Principais componentes da arquitetura ferramental de um engine. Fonte: (FEIJÓ, PAGLIOSA e CLUA, 2006) No nível ferramental (figura 6), o componente editor de fases (level editor) permite a elaboração de uma fase. É nele que são inseridos todos os elementos geométricos que compõem a fase, como por exemplo, elementos estáticos, dinâmicos, terrenos, luzes estáticas, luzes dinâmicas, sprites e câmeras. Os objetos estáticos são pré-processados pelo módulo de renderização do engine. Eles não sofrem nenhuma transformação no decorrer do jogo. Estes objetos podem ser paredes, objetos decorativos, como colunas e vigas, entre outros. Já os objetos dinâmicos possuem scripts associados que definem seu comportamento, ou seja, diferente dos objetos estáticos, os objetos dinâmicos podem sofrer alterações no decorrer do jogo (CLUA e BITTENCOURT, 2005). A Figura 7 ilustra o level editor de vários engines comerciais. O componente editor de terrenos, em geral, pode ser encontrado dentro do editor de fases. Ele permite a geração e manipulação de mapas de altura e de camadas de texturas (FEIJÓ, PAGLIOSA e CLUA, 2006). Os terrenos, também conhecidos como height maps, consistem em imagens com várias tonalidades de cinzas. Os pixels claros correspondem a áreas altas do terreno e os escuros a partes mais baixas. Existem várias ferramentas utilizadas exclusivamente para a edição de terrenos, como o Pandromeda Mojo World Generator, Vue D Espirit, Terragen e o Corel Bryce (CLUA e BITTENCOURT, 2005). Estas ferramentas são mostradas na Figura 8. 11

Figura 7: Exemplos de level editor pertencentes a diversos engines Fonte: (CLUA e BITTENCOURT, 2005) Um outro componente é o editor de modelos. Este editor permite a criação e animação de modelos dinâmicos e de terrenos. Ele permite também a adaptação de modelos que foram criados em outras ferramentas (FEIJÓ, PAGLIOSA e CLUA, 2006). O componente de ambiente de teste é um ambiente que permite a execução do jogo. Ele possibilita que o usuário altere variáveis que foram definidas nos scripts em tempo de execução (FEIJÓ, PAGLIOSA e CLUA, 2006). O editor de scripts possibilita um ambiente de programação integrado, permitindo que o usuário associe o código a elementos dinâmicos (FEIJÓ, PAGLIOSA e CLUA, 2006). O componente conversores e exportadores é uma ferramenta que possibilita a leitura de arquivos que foram desenvolvidos em outros programas. Esta ferramenta faz a importação destes arquivos para o formato específico do engine (CLUA e BITTENCOURT, 2005). 12

Figura 8: Softwares utilizados para criação de height maps Fonte: (CLUA e BITTENCOURT, 2005) Por último os otimizadores. Através deste componente, o engine executa uma série de etapas de pré-processamento para a otimização do processo de visualização, como por exemplo, a geração de level of details (nível dos detalhes), height maps (mapas de profundidade, figura 8), portais, entre outros. Este componente pode ser encontrado dentro do level editor (FEIJÓ, PAGLIOSA e CLUA, 2006). Existe ainda o motor de execução que é o programa que executa toda a aplicação. A tabela a seguir lista várias engines, jogos famosos nelas produzidos e sua disponibilidade no mercado (COMERCIAL GAME ENGINES, FREE GAMES ENGINES, 2009). 13

Engine Jogos Disponibilidade Nebula Device 3 Drakensang: The Dark Eye Livre Project Nomads Far West Railroad Pioneer Tigris & Euphrates Torres SAGE engine Red Alert 3 Generals Tiberium Wars The Battle for Middle-earth II Source engine Half Life 2 Team Fortress 2 Portal Vampire: The Masquerade Bloodlines Sin Episodes Dark Messiah of Might and Magic Dunia Engine Far Cry 2 Essence Engine Company of Heroes Opposing Fronts Warhammer 40,000: Dawn of War 2 Alamo Empire at War Forces of Corruption Universe at War: Earth Assault Unreal Engine 2 Exteel The Chronicles of Spellborn Unreal Engine 3 BioShock BlackSite: Area 51 Gears of War Unreal Tournament 3 Rainbow Six Vegas Lost Odyssey Mass Effect The Last Remnant id Tech 4 Doom 3 Quake 4 Prey Enemy Territory: Quake Wars Neon Engine Operation Flashpoint 2: Dragon Rising Race Driver Grid Riot Engine Drakan: Order of the Flame Drakan: The Ancients' Gates The Lord of the Rings: The Fellowship of the Ring The Suffering The Suffering: Ties That Bind RAGE Midnight Club: Los Angeles 14

Grand Theft Auto IV Rockstar Games Presents Table Tennis TGEA Marble Blast Ultra Fallen Empire: Legions Dreamlords Penny Arcade Adventures: On the Rain-Slick Precipice of Darkness Ghajini - The Game HeroEngine Hero's Journey Gamebryo Dark Age of Camelot The Elder Scrolls IV Fallout 3 Tabela 1: algumas das principais engines no mercado e jogos nelas produzidos Fonte: (COMERCIAL GAME ENGINES, FREE GAMES ENGINES, 2009). 4. CONSIDERAÇÕES FINAIS A indústria de jogos está em crescimento acelerado, já superando em volume financeiro a indústria do cinema, tornando-se uma das principais ferramentas de entretenimento atuais. Porém, o desenvolvimento de um jogo eletrônico, não é tarefa simples, envolve profissionais de várias áreas, desde programadores a artistas gráficos, denotando área de extensa interdisciplinaridade. Esta complexidade é inerente ao processo de desenvolvimento de um jogo eletrônico. Envolvendo a análise e projeto do sistema, o roteiro do jogo, a produção de áudio, a produção de imagens 2D, a modelagem 3D, a utilização de game engines, etc. 5. REFERÊNCIAS BIBLIOGRÁFICAS ADOBE PHOTOSHOP. Adobe photoshop Creative Suíte 3. Disponível em <http://www.adobe.com/br/products/photoshop/photoshop/> Acesso em 19 agosto 2007. AMARAL, K. Edição de áudio profissional com Audacity. 2007. AUDACITY. O editor de áudio livre e fácil de usar!. Disponível em: <http://audacity.com> Acesso em 19 agosto 2007. AUDIOWARE. Cubase SX 1.02. 2007. Disponível em <http://audioware.cifraclub.terra.com.br/download-140-cubase.html>. Acesso em 03 julho 2007 AUTODESK. Autodesk 3DSutdio. 2007. Disponível em <http://area.autodesk.com/>. Acesso em 19 agosto 2007. 15

BLENDER. Blender Brasil. Disponível em <http://www.blender.org/featuresgallery/gallery/images/>. Acesso em 19 agosto 2007. BLENDERFOUNDATION. History. Disponível em <http://www.blender.org/blenderorg/blender-foundation/history/>. Acesso em 09 julho 2007. CLUA, E., BITTENCOURT, J. Desenvolvimento de Jogos 3D: Concepção, Design e Programação. Anais da XXIV Jornada de Atualização em Informática do Congresso da Sociedade Brasileira de Computação, pp. 1313-1356, São Leopoldo, Brazil, Julho de 2005. COMERICAL GAMES ENGINES. 3D Game Development Software. Disponível em: <http://www.3d-animation.com.ar/game_engines_commercial_01.php>. Acesso em fevereiro de 2009. FEIJÓ, B., PAGLIOSA, P., CLUA, E. Visualização, Simulação e Games. Anais da XXIV Jornada de Atualização em Informática do Congresso da Sociedade Brasileira de Computação, Campo Grande, Brazil, Julho de 2006. FREE GAME ENGINES. Complete and Funcional Game Engines List. Disponível em: <http://www.freegameengines.org/>. Acesso em janeiro de 2009. GASPAR, B. Ferramentas Open Source para 3D: MakeHuman. 2006. ENGERS, Estela Maris Bolzan ; MALFATTI, Silvano M. ; BRANCHER, Jacques ; NUNES, M. A. S. N.. Aplicação de uma propsta pedagócia para a utilização do aplicativo LOGO3D no processo de ensino-aprendizagem da geometria. In: Simposio Brasileiro De Informatica a Educação - SBIE 2004, 2004, Manaus. Simposio Brasileiro De Informatica a Educação - SBIE 2004, 2004 MAYA. Maya Tutorials. Disponível em: http://www.highend3d.com/maya/tutorials/. Acesso em fevereiro de 2009. MONTENEGRO, A. Computação Gráfica 1. Notas de aula, 2008. PEOPLEWARE. Sony Sound Forge 9.0 a. Disponível em < http://www.pplware.com/?p=4731 > Acesso em 03 julho 2007. PERUCIA, A. S.; BERTHÊM, A. C.; BERTSCHINGER, G. L.; MENEZES, R. R. C. Desenvolvimento de jogos eletrônicos. Teoria e prática. São Paulo SP: Novatec, 2005. SANTEE, A. Programação de jogos com C++ e DirectX. São Paulo, SP: Novatec, 2005. SANTOS,C., VALE, F. Jogos Eletrônicos na Educação: Em Estudo da Proposta dos Jogos Estratégicos. Universidade Federal de Sergipe, São Cristóvão SE, Outubro/2006. SISNEMA. Gimp: Excelente Editor de Imagens Open Source. Disponível em <http://inema.com.br/mat/idmat061699.htm> Acesso em 04 julho 2007. 16