Escolar Documentos
Profissional Documentos
Cultura Documentos
PONTA GROSSA
2011
RAFAEL DOS PASSOS CANTERI
PONTA GROSSA
2011
Ministério da Educação
Universidade Tecnológica Federal do Paraná
Campus Ponta Grossa
Diretoria de Graduação e Educação Profissional
Coordenação de Análise e Desenvolvimento de Sistemas
Tecnologia em Análise e Desenvolvimento de Sistemas
TERMO DE APROVAÇÃO
por
__________________________________
André Koscianski
Prof. Orientador
___________________________________
Gleifer Vaz Alves
Membro titular
___________________________________
Marcus Vinicius Drissen Silva
Membro titular
Video games are extremely complex software and constitute a field of increasing
interest, with several studies of techniques to be applied in their implementation.
This work deals with the development of a car simulator game in urban areas. The
project required a 3D graphics engine, definition of data structures and selection of
specific libraries. The project aims to simulate a town with cars, streets, buildings
and crossroads. The game contains computer-controlled cars that travel on the
streets, following the direction of the roads. Methods to create three-dimensional
virtual cities are discussed, as well as control techniques applied to guide
autonomous characters in games. A specific data structure was developed for the
city mapping and orientation of the computer guided vehicles.
1 INTRODUÇÃO .............................................................................................. 15
1.1 PROBLEMA ............................................................................................ 15
1.2 OBJETIVOS ............................................................................................ 16
1.2.1 Objetivo Geral ................................................................................... 16
1.2.2 Objetivos Específicos ....................................................................... 17
1.3 ORGANIZAÇÃO DO TRABALHO ........................................................... 17
2 EMBASAMENTO TEÓRICO ........................................................................ 18
2.1 VISÃO GERAL DE JOGOS..................................................................... 18
2.1.1 História dos Jogos Eletrônicos.......................................................... 18
2.1.2 Gêneros de Jogos ............................................................................ 20
2.1.2.1 Jogos de carros.......................................................................... 20
2.2 ARQUITETURA DE JOGOS ................................................................... 21
2.2.1 Análise de Jogos Eletrônicos ............................................................ 22
2.2.2 Engenharia de Software ................................................................... 23
2.2.3 Programação de Jogos ..................................................................... 24
2.2.3.1 APIs e Bibliotecas ...................................................................... 25
2.2.3.2 Engine Irrlicht ............................................................................. 25
2.3 TÉCNICAS DE IA EM JOGOS ................................................................ 26
2.3.1 Máquina de Estados Finitos ............................................................. 26
2.3.2 Estratégias de Busca ........................................................................ 27
2.3.3 Scripts ............................................................................................... 28
2.4 CIDADES VIRTUAIS ............................................................................... 28
2.4.1 Cidades Pseudo-Infinitas .................................................................. 29
2.4.2 Citygen ............................................................................................. 30
2.4.3 Modelagem Contínua de Prédios em Nível de Detalhe .................... 31
2.5 TECNOLOGIAS AUXILIARES ................................................................ 32
2.5.1 XML .................................................................................................. 32
2.6 ESTRUTURA DE DADOS....................................................................... 33
2.6.1 Grafo ................................................................................................ 33
3 DESENVOLVIMENTO .................................................................................. 35
3.1 IMPLEMENTAÇÃO ................................................................................. 35
3.1.1 Metodologia de Desenvolvimento ..................................................... 35
3.1.2 Paradigma de Desenvolvimento ....................................................... 36
3.2 LEVANTAMENTO DE CLASSES............................................................ 37
3.3 REPRESENTAÇÃO DA CIDADE ............................................................ 39
3.3.1 Cidade Procedural ............................................................................ 39
3.3.2 Cidade Modelada.............................................................................. 40
3.3.3 Relevo .............................................................................................. 41
3.4 BIBLIOTECA DE SONS .......................................................................... 42
3.5 MAPEAMENTO DA CIDADE .................................................................. 43
3.5.1 Tabela de Navegação....................................................................... 46
3.5.1.1 Arquivo de dados ....................................................................... 47
3.5.1.2 Classe CTable............................................................................ 48
3.5.1.3 Classe CLaserBeam .................................................................. 49
3.6 MOVIMENTAÇÃO DO CARRO .............................................................. 50
3.6.1 Visão Geral de Movimento ............................................................... 50
3.6.2 Controles .......................................................................................... 51
3.6.3 Câmera ............................................................................................. 52
3.6.4 Movimento dos Modelos 3D ............................................................. 53
3.7 CONTROLE DE NPCS ........................................................................... 54
3.7.1 Orientação dos Carros do Computador ............................................ 54
3.8 CINEMÁTICA DOS MOVIMENTOS ........................................................ 57
3.9 COLISÃO ................................................................................................ 58
3.9.1 Colisão entre NPCs .......................................................................... 59
3.9.2 Carro Principal e Prédios .................................................................. 59
3.10 INTERFACE DE USUÁRIO ..................................................................... 61
4 CONCLUSÃO ............................................................................................... 63
5 CONSIDERAÇÕES FINAIS .......................................................................... 64
5.1 TRABALHOS FUTUROS ........................................................................ 64
REFERÊNCIAS .................................................................................................... 66
APÊNDICE A ....................................................................................................... 70
APÊNDICE B ....................................................................................................... 73
15
1 INTRODUÇÃO
1.1 PROBLEMA
1.2 OBJETIVOS
2 EMBASAMENTO TEÓRICO
2.3.3 Scripts
2.4.2 Citygen
2.5.1 XML
2.6.1 Grafo
3 DESENVOLVIMENTO
3.1 IMPLEMENTAÇÃO
3.3.3 Relevo
soundEngine->play2D("../../media/sound.wav", true);
soundEngine->play3D("../../media/music.mp3", true);
43
Esses dois métodos são responsáveis por executar todos os sons, tanto
músicas quanto efeitos sonoros. A diferença entre os dois métodos é que sons 3D
possuem maior sensação de imersão. O primeiro parâmetro dos métodos é o
caminho do arquivo a ser tocado, o segundo parâmetro especifica se o arquivo
será tocado em loop ou não. Tocar som em loop é vantajoso quando se deseja
que a música não pare de tocar enquanto o jogo estiver em execução.
Foram incluídos no simulador, efeitos como som de partida no carro,
buzina e sons simples na interface de usuário. Além disso, foram colocadas
músicas para o jogo em execução e para o menu inicial.
scene::IBillboardTextSceneNode };
*mark;
};
Quadro 2 - Estruturas de Dados Usadas para Representar as Vias
Fonte: Autoria Própria
O arquivo base para a tabela contém dados sobre as ruas. Ele possui
informações sobre o nó de origem e nó de destino de determinada rua, a largura
total da rua, o número de pistas de cada rua e informações de velocidade e
sentido de cada pista (se a velocidade for negativa, o sentido é invertido). O
símbolo # é interpretado como comentário e, portanto a linha é ignorada pelo
método leitor do arquivo. Quando o leitor encontra uma linha que começa com o
valor -1, ele sabe que o arquivo acabou.
Para poder verificar como ficaram as ruas e suas respectivas pistas, foi
utilizada a classe CLaserBeam. Dado um ponto inicial e um ponto final, essa
classe cria linhas coloridas entre esses dois pontos. Em um laço de repetição,
todas as linhas da tabela de navegação foram utilizadas para criar os “laser
beams” que representam as vias.
A figura 15 exemplifica a representação das ruas utilizando a classe
CLaserBeam.
3.6.2 Controles
3.6.3 Câmera
câmera. Essa câmera possui uma visão aérea da cidade, semelhante à câmera
de um helicóptero, e com ela é possível visualizar toda a cidade.
pos_new=pos_old+dir*vel*∆t (1)
vel=vel+acc*∆t (2)
3.9 COLISÃO
4 CONCLUSÃO
5 CONSIDERAÇÕES FINAIS
REFERÊNCIAS
COHEN, Scott. Zap: Rise and Fall of Atari. New York, USA. Editora McGraw-Hill
Osborne Media, 1987.
MEIGS, Tom. Ultimate Game Design: Building Game Worlds. Editora McGraw-
Hill Osborne Media, 2003.
PENTON, Ron. Data Structures for Game Programmers. 1ª edição. Ohio, USA.
Editora Premier Press, 2003.
RICH, Elaine; KNIGHT, Kevin. Inteligência Artificial. Editora Makron Books. 2ª.
Edição. São Paulo, 1994.
SHEFF, David. Game Over: How Nintendo Conquered The World. 1ª edição.
Estados Unidos da América. Editora Vintage, 1994.
69
Tratando Curvas