Escolar Documentos
Profissional Documentos
Cultura Documentos
PORTO UNIO
2008
PORTO UNIO
2008
__________________________________
Nome do coordenador do curso
BANCA EXAMINADORA:
___________________________
Nome do presidente
___________________________
Membro
___________________________
Membro
___________________________
Membro Suplente (se houver)
Resumo
Os jogos eletrnicos movimentam o bilionrio mundo das produtoras e tem causado
uma revoluo nas formas de entretenimento, superando at mesmo o mercado
cinematogrfico. Porm o desenvolvimento de um jogo no uma tarefa simples e
pode demorar anos, envolver centenas de pessoas e custar milhes de dlares.
Para facilitar e agilizar este processo existem softwares especficos para criao de
jogos, eles so conhecidos como game engines. A game engine o ncleo bsico
para a criao de um jogo e tem o objetivo de simplificar o processo de codificao
alm de fornecer uma srie de funcionalidades agregadas, utilizada tanto por
desenvolvedores iniciantes como por profissionais da rea. O objetivo do presente
trabalho desenvolver uma game engine que permita a criao rpida e fcil de
jogos e aplicativos tridimensionais. A metodologia aplicada no desenvolvimento
deste trabalho foi a diviso da game engine em diversas sub-engines, como por
exemplo, a engine grfica, engine fsica, script engine, entre outras.
Palavras-Chave: Jogos, Game Engine, Computao Grfica, OpenGL.
Abstract
The electronic games move the billionaire world of game production companies, and
have caused a revolution on the entertainment forms, surpassing even the movie
industry. However the game developing is not a so simple task, it could take years,
involve hundreds of people and cost millions of dollars. There are specific softwares
that turn easier and speed up the creation process; these softwares are known as
game engines. The game engine is the basic centre of the game development, and it
has the objective of simplify the encoding process and besides it add a series of
functionalities. A game engine is used by both beginners and professional game
developers. The objective of this work is to develop a game engine that allows a fast
and easy creation of games and tridimensional applications. The applied
methodology on the development of this work was the division of the game engine in
many sub-engines, for example, the graphic engine, the physical engine, script
engine, and other sub-engines.
Word-Key: Games, Game Engine, Computer Graphics, OpenGL
LISTA DE ILUSTRAES
SUMRIO
1 INTRODUO ......................................................................................................... 8
2 JOGOS ELETRNICOS ........................................................................................ 10
2.2 TIPOS DE MDIA .................................................................................................... 10
2.3 TIPOS DE JOGOS.................................................................................................. 11
2.4 O MERCADO DE JOGOS MUNDIAL ................................................................... 12
2.5 O MERCADO DE JOGOS NO BRASIL ................................................................ 13
2.6 CONCLUSO .......................................................................................................... 16
3 GAME ENGINE ...................................................................................................... 17
3.1 ARQUITETURA DE UMA GAME ENGINE .......................................................... 17
3.2 SUB-ENGINES........................................................................................................ 20
3.2.1 Engine Grfica.................................................................................................. 21
3.2.1.1 OpenGL ..................................................................................................... 21
3.2.1.2 DirectX ....................................................................................................... 23
3.2.1.3 Outras engines grficas ........................................................................... 25
3.2.2 Engine Fsica.................................................................................................... 25
3.2.3 Script Engine .................................................................................................... 26
3.2.4 udio Engine .................................................................................................... 27
3.2.5 IA Engine .......................................................................................................... 28
3.2.6 Network Engine ................................................................................................ 29
3.3 TCNICAS E ALGORITMOS ................................................................................ 31
3.3.1 Transformaes Geomtricas ........................................................................ 31
3.3.2 Fontes Emissoras de Luz................................................................................ 32
3.3.3 Modelos Hierrquicos ...................................................................................... 32
3.3.4 Heightmap ........................................................................................................ 33
3.3.5 Projected Shadows .......................................................................................... 34
3.3.6 Clipping e Culling ............................................................................................. 34
3.3.6 Sistema a de Partculas .................................................................................. 35
3.3.7 Shaders ............................................................................................................. 36
3.3.8 Animao .......................................................................................................... 37
3.4 GAME ENGINES .................................................................................................... 39
3.4.1 3D Game Studio............................................................................................... 39
3.4.2 Unity3D ............................................................................................................. 41
3.4.3 C4 Engine ......................................................................................................... 42
3.4.4 Irrlicht................................................................................................................. 43
3.4.5 Unreal Engine................................................................................................... 44
3.5 CONCLUSO .......................................................................................................... 45
4 DESENVOLVIMENTO ........................................................................................... 46
4.1 PRINCIPAIS REQUISITOS ................................................................................... 46
4.2 PRINCIPAIS SUB-ENGINES E BIBLIOTECAS UTILIZADAS ........................... 47
4.3 ARQUITETURA DO 3D GAME BUILDER............................................................ 48
4.4 APLICAES ......................................................................................................... 54
1.4.1 Guerra do Contestado ..................................................................................... 54
1.4.2 Coelhinho Saltitante......................................................................................... 55
1.4.3 UnC Virtual ....................................................................................................... 56
1.4.4 Interao com ambientes 3D atravs de movimentos corporais ................ 58
1.4.5 Interao com uma maquete atravs de um ambiente 3D.......................... 59
5 CONCLUSO ........................................................................................................ 61
5.1 TRABALHOS FUTUROS ....................................................................................... 62
1 INTRODUO
10
2 JOGOS ELETRNICOS
11
12
13
14
Brasil
as
desenvolvedoras
ficam
focadas
principalmente
no
15
especialmente
para
esta
rea,
como
caso
da
Unidev
16
2.6 CONCLUSO
17
3 GAME ENGINE
18
19
Segundo PESSOA (2001), uma game engine completa deve atender aos
seguintes requisitos:
Arquitetura modular, para que possa ser utilizada em cada novo jogo;
20
3.2 SUB-ENGINES
Uma Game Engine pode ser dividida em diversas sub-engines, como por
exemplo, engine grfica, engine fsica, engine sonora, engine de inteligncia
artificial, etc. (MIGUEL; MONTEIRO; CAVALHIERI, 2006). A figura 3 ilustra os
diversos componentes que formam uma game engine e a figura 4 mostra as
possveis
sub-engines
que
poderiam ser
utilizadas
componentes.
para
estruturar
estes
21
3.2.1.1 OpenGL
22
23
3.2.1.2 DirectX
O DirectX uma API para o sistema operacional Microsoft Windows que foi
desenvolvida para prover uma interface para o controle eficiente de hardware
multimdia e permitir aos programadores trabalharem com comandos e estruturas de
dados de alto nvel. Ele construdo sobre uma camada abstrata de hardware,
chamada de HAL (Hardware Abstraction Layer) que oculta s dependncias
especificas de determinados dispositivos, o que torna os programas desenvolvidos
independentes de dispositivo, ou seja, funcionaro em qualquer hardware, desde
que sobre a plataforma Windows (KOVACH, 2000).
Segundo JONES (2004), o DirectX formado por diversos componentes,
cada um representando um diferente aspecto do sistema, cada um destes pode ser
utilizado independentemente, permitindo ao desenvolvedor utilizar apenas os
necessrios para a sua aplicao, os componentes so os seguintes:
24
25
26
Unidos a estimar a trajetria dos projteis utilizados pela sua artilharia quando
disparados sobre diversos ngulos e com diferentes armas e sofrendo a ao do
vento. Em jogos mais comum a utilizao de engines de tempo real, que
simplificam os clculos, e tem uma menor preciso, porm fornecem uma melhor
performance (WIKIPEDIA, 2008).
Na maioria dos jogos de computador a velocidade de uma simulao mais
importante do que a preciso desta simulao. Tipicamente a maioria dos objetos
3D em um jogo so representados por duas malhas ou formas separadas, umas
destas malhas o objeto, composto de diversas faces e vrtices, extremamente
complexo e detalhado, este objeto o que o jogador v. Entretanto, com o propsito
de melhorar a performance do jogo, o outro objeto uma forma extremamente
simplificada, com poucos vrtices e faces, este objeto no visvel ao jogador e
utilizado para representar o outro objeto para a engine fsica. Por exemplo um vaso
com uma planta em um ambiente 3D, a planta um objeto complexo, com diversas
curvas, diversas faces e vrtices, detectar uma coliso com este objeto pode custar
um certo tempo de processamento, para diminuir este tempo pode se utilizar um
cilindro, dentro deste ficar o vaso com a planta, para o jogador o cilindro no ser
visvel, mas ser utilizado pela engine fsica para determinar uma possvel coliso de
outros objetos com o vaso. Porm esta tcnica pode gerar certa limitao, pois, por
exemplo, a simular um tiro no vaso no seria realista, isto porque a engine fsica no
conhece as faces do vaso e sim as do cilindro que o envolve (MILLINGTON, 2007).
Uma das principais engines fsicas o ODE (Open Dynamics Engine).
Desenvolvido em 2001 por Russel Smith, a engine trabalha com as leis de fsica
clssica atuando sobre corpos rgidos, articulados ou no. A engine foi desenvolvida
em C/C++ e tambm bastante utilizada fora da rea de jogos, em aplicativos e
simulaes onde necessrio um ambiente virtual que simule as principais
caractersticas do ambiente real (MIGUEL; MONTEIRO; CAVALHIERI, 2006).
27
28
3.2.5 IA Engine
As
IA
Engines
(engines
de
inteligncia
artificial)
servem
para
29
30
31
(2003)
existem em computao
grfica
Figura 8 - Translao
Figura 9 - Rotao
Figura 10 - Escalonamento
32
Spot Light: A fonte de luz fica posicionada no ambiente, mas emite raios de
luz em forma de cone para uma terminada rea como mostrado na figura 13.
33
onde esta se reflete tambm sobre todos os objetos filhos ao nodo qual esta foi
aplicada (WANGENHEIM, 2003). Na figura 14 possvel observar um exemplo de
modelo hierrquico, formando uma perna rudimentar, nela todos os nodos esto
interligados, na figura 15 aplicado sobre a esfera central uma rotao, o que faz
com que todos os nodos seguintes se rotacionem, e os objetos anteriores no
sofram nenhuma transformao, j na figura 16 aplicada uma rotao no nodo
principal do objeto hierrquico, consequentemente todos os outros objetos filhos
sofrero transformaes equivalentes.
Figura 14 - Modelo
Hierrquico 1
Fonte: (WANGENHEIM,
2003)
Figura 15 - Modelo
Hierrquico 2
Fonte: (WANGENHEIM,
2003)
Figura 16 - Modelo
Hierrquico 3
Fonte: (WANGENHEIM,
2003)
3.3.4 Heightmap
34
Figura 18 - Heightmap 3D
Fonte
emissora
de luz.
Sombra
projetada
sobre o
objeto
ocluso.
Objeto
intercessor
da luz.
Figura 19 - Sombra projetada
35
36
3.3.7 Shaders
linguagens
de
programao
de
shaders
apresentam
recursos
37
3.3.8 Animao
38
cada junta, como o cotovelo, joelho, e assim por diante. Ento, em tempo real, esta
descrio traada a uma malha de um personagem no animado, e a animao
computada. Esta computao normalmente envolve matemtica complexa com
trigonometria e matrizes. Assim, estes mtodos produzem clculos intensivos para a
CPU (DALMAU, 2003). A figura 23 mostra um exemplo de animao implcita.
39
40
udio 3D, dando suporte a arquivos wav, mid, ogg, CD, mp3, avi, e mpg.
por se tratar de uma ferramenta comercial necessrio adquirir uma licena para
utiliz-la, as licenas variam de R$ 114,00 a R$ 1.500,00 (CONITEC, 2008).
Algumas Imagens:
41
3.4.2 Unity3D
Keyframe Animation.
Suporte a shaders.
Mesh Loading, oferece suporte aos formatos Collada, FBX, 3DS e OBJ.
Somente a verso trial para MacOS est disponvel para download, o que torna a
engine inacessvel para o publico que no utiliza este sistema operacional. O preo
das licenas varia entre R$ 354,00 e R$ 3.500.00 (UNITY3D, 2008).
Algumas Imagens:
42
3.4.3 C4 Engine
Suporte a shaders.
43
udio 2D e 3D.
3.4.4 Irrlicht
Dynamic shadows.
Hierarchical scene.
44
Algumas Imagens:
45
3.5 CONCLUSO
46
4 DESENVOLVIMENTO
framework
completo,
onde
todos
os
mdulos
necessrios
para
Possuir uma arquitetura modular para que novos recursos sejam facilmente
inseridos;
47
Site Oficial
OpenGL
http://www.opengl.org
ODE
http://www.ode.org
JEDI VCL
http://jvcl.sourceforge.net
FMOD
http://www.fmod.org
A API OpenGL foi utilizada para o processamento grfico 3D, ou seja como
engine grfica. Optou-se pelo uso do OpenGL pela sua simplicidade e portabilidade.
A engine fsica ODE foi usada para a simulao da fsica e deteco de colises
entre objetos. Para o mdulo de udio foi utilizada a biblioteca FMOD, permitindo a
utilizao de udio 3D integrado diretamente com o ambiente. A linguagem de
programao C++ foi utilizada para o desenvolvimento do 3D Game Builder. Em
algumas interfaces foram utilizados alguns componentes da biblioteca JEDI VCL.
48
49
50
51
52
Editor de Armas - Mdulo para criao e edio de armas que podem ser
utilizadas pelo ator principal em jogos de tiro. O modelo 3D das armas devem
ser modelados juntamente com o personagem e posteriormente exportados
em arquivos separados para que ao serem importados para o 3D Game
Builder as animaes dos modelos estejam sincronizadas. Alm das
propriedades da arma o editor de armas tambm permite a edio da forma,
velocidade e outras definies dos disparos feitos pelas armas.
53
utilizados para gerar uma nova aplicao, ou seja o jogo nele criado. A arquitetura
desta aplicao ilustrada na figura 35.
54
4.4 APLICAES
55
56
57
58
59
60
61
5 CONCLUSO
62
63
ferramenta que pode ser usada tanto para a criao de jogos como para o
desenvolvimento de ambientes e simulaes 3D, a implementao de um
exportador para o formato VRML seria algo interessante para ser estudado.
Atravs de um breve estudo realizado sobre o formato VRML constatou-se
que ele simples e pode ser facilmente integrado junto a arquitetura do 3D
Game Builder. Outro ponto interessante sobre o VRML que os ambientes
neste formato podem ser visualizados atravs da internet, utilizando um
navegador web, como por exemplo, o Internet Explorer, onde com a
instalao de um plugin possvel fazer navegao e interao direta com o
ambiente 3D.
64
REFERNCIAS
ABRAGAMES. A Indstria de Desenvolvimento de Jogos Eletrnicos no Brasil.
Pesquisa realizada em 01 mai. 2005. Disponvel em:
http://www.abragames.org/docs/PesquisaAbragames.pdf Acessado em: nov. 2008.
ABRAGAMES. A indstria brasileira de jogos eletrnicos: Um mapeamento do
crescimento do setor nos ltimos 4 anos. Pesquisa realizada em 17 jul. 2008.
Disponvel em: http://www.abragames.org/docs/Abragames-Pesquisa2008.pdf
Acessado em: nov. 2008.
ARMITAGE, Grenville; CLAYPOOL, Mark; BRANCH, Philip. Networking And
Online Games: Understanding And Engineering Multiplayer Internet Games.
England: John Wiley & Sons Ltd. 2006.
ASSIS, D., MATIAS, A. Game supera cinema como opo de entretenimento em
2003. Artigo da Folha de So Paulo, 31 dez. 2003. Disponvel em:
www1.folha.uol.com.br/folha/ilustrada/ult90u40114.shtml. Acessado em: nov. 2008.
ASTLE, Dave; HAWKINS, Kevin. Beginning OpenGL Game Programming. Boston:
Thomson, 2004.
AZEVEDO, Eduardo; CONCI, Aura. Computao Grfica - Teoria e pratica.
Editora Campus, 2003
BAKIE, R.T.. A Brief History of Video Games. Introduction to Game Development.
Hingham, USA, 2005.
BATTAIOLA, Andr L. et al. Desenvolvimento de jogos em computadores e
celulares. Revista de Informtica Terica e Aplicada, 2001.
BOURG, M. David; SEEMAN, Glenn. AI for Game Developers. O'Reilly, 2004.
CARVALHO, P. H. Gustavo. Um Modelo Preditivo para Desenvolvimento de
Jogos de Computador. Trabalho de Graduao, Universidade Federal de
Pernambuco, 2006.
CODEPLEX. GLSL Debugger. Disponvel em:
http://www.codeplex.com/hl2glsl/Wiki/View.aspx?title=GLSL%20Debugger&referring
Title=Home. Acessado em: nov. 2008.
CONITEC. 3D Game Studio. Disponvel em: http://www.conitec.net/english/gstudio/
Acessado em: nov. 2008.
65
66
67
Gnero
Descrio
Imagem
Ao
caracterstica a utilizao de
elementos rpidos de combate e
movimentao.
Starcraft Ghost
Super Mario 3
68
RTS
Estratgia
por
Turnos
RPG
69
Project Gotham
Race 3
Esporte
FIFA 2006
70
Tradicional
71