Você está na página 1de 71

CENTRO UNIVERSITRIO DE ARARAQUARA - UNIARA

DEPARTAMENTO DE CINCIAS DA ADMINISTRAO E


TECNOLOGIA

SISTEMAS DE INFORMAO

LUIS HENRIQUE FERREIRA

DESENVOLVIMENTO DE JOGOS ELETRNICOS


UTILIZANDO A TECNOLOGIA UNITY

ARARAQUARA
2015

LUIS HENRIQUE FERREIRA

DESENVOLVIMENTO DE JOGOS ELETRNICOS


UTILIZANDO A TECNOLOGIA UNITY

Trabalho de Concluso de Curso (TCC) apresentado ao Departamento de Cincias da Administrao e Tecnologia, do Centro Universitrio
de Araraquara - UNIARA, como parte dos requisitos para obteno do ttulo de Bacharel em
Sistemas de Informao.
Orientador: Prof. Me. Saulo Svio Leite Santos

Araraquara
2015

TERMO DE AUTENTICIDADE
Eu, LUIS HENRIQUE FERREIRA, RG: XX.XXX.XXX-X, aluno regularmente matriculado no Curso de SISTEMAS DE INFORMAO do Centro Universitrio de Araraquara
- UNIARA, declaro ser o autor do texto apresentado como Trabalho de Concluso de Curso TCC com o ttulo Desenvolvimento de Jogos Eletrnicos utilizando a tecnologia Unity.
Afirmo, tambm, ter seguido as normas da ABNT referentes s citaes textuais que
utilizei e das quais eu no sou autor, dessa forma, creditando a autoria a seus verdadeiros autores
(Lei n 9.610, 19/02/1998).
Atravs dessa declarao dou cincia de minha responsabilidade sobre o texto apresentado
e assumo qualquer responsabilidade por eventuais problemas legais, no tocante aos direitos
autorais e originalidade do texto.

Araraquara, 03 de dezembro de 2014

Assinatura:

OFF OBSERVAES P/ DISPONIBILIZAO ONLINE


LUIS HENRIQUE FERREIRA

DESENVOLVIMENTO DE JOGOS ELETRNICOS


UTILIZANDO A TECNOLOGIA UNITY

Para disponibilizao online foram removidos dados pessoais do autor no termo de autenticidade
e a folha de aprovao.
Contato para informaes:
E-mail Principal: tecnoluisao@hotmail.com. Secundrio: luisaohf@gmail.com
Linkedin: https://br.linkedin.com/in/luishenriqueferreira

Dedico este trabalho especialmente para a minha famlia,


ao meu Megadrive 16 bits e a minha fita Strider japonesa.

AGRADECIMENTOS
Primeiramente agradeo Deus por mais um dia de vida, sade e alegria. Os agradecimentos principais so direcionados minha me, ao meu pai por sempre estarem lembrando
que tenho um trabalho a terminar, a Maynara Mercaldi, ao Eric Delamodarme e ao Saulo por
contribuir na produo deste trabalho acadmico.

Talvez no tenha conseguido fazer o melhor,


mas lutei para que o melhor fosse feito.
No sou o que deveria ser, mas Graas a Deus,
no sou o que era antes.
(Marthin Luther King)

RESUMO
O presente trabalho tem como objetivo demonstrar a eficincia da tecnologia Unity como um
instrumento importante no desenvolvimento de jogos profissionais, atraentes e sofisticados. A
utilizao desta diminui a necessidade de cdigos complexos, sendo possvel obter resultados
satisfatrios em curto prazo. Foi realizada uma breve anlise do mercado atual no entretenimento
dos games e a sua expectativa para o futuro. Em seguida, so destacados e discutidos os
principais processos no desenvolvimento de jogos, desde o planejamento da concepo inicial
ao lanamento do produto final. Sero apresentadas aqui a tecnologia Unity e as diversas
ferramentas utilizadas em conjunto neste trabalho, destacando-se suas funes para a modelagem
3D, tratamento de imagem, gravao e edio de udio. Em seguida, sero demonstradas as
decises e metodologias tcnicas utilizadas na modelagem dos objetos, prottipo, texturizao
avanada, renderizao, iluminao, personagens, mecnica de combate, animaes, efeitos
sonoros e etc. Por fim, so apresentadas algumas qualidades encontradas na pratica deste estudo,
assim como as limitaes do uso da tecnologia e as solues na criao de jogos mais atraentes.
Palavras-chave: Unity. games. 3D. jogos. desenvolvimento. entretenimento. metodologia.

ABSTRACT
The objective of the present work is to demonstrate the efficiency of technology Unity as an
important instrument in the development of professional gaming, attractive and sophisticated.
The use of this reduces the need for complex codes, it is possible to obtain satisfactory results
in the short term. There was a brief analysis of the current market in entertainment of games
and their expectations for the future. Then are highlighted and discussed the main processes
in the developments of games, from the planning of the initial design for the launch of the
final product. Will be presented here, technology Unity and the various tools used together
in this work, highlighting its functions for the 3D modeling, image processing, recording and
editing of audio. Then will be demonstrated the decisions methodologies and techniques used in
the modeling of objects, prototype, advanced texturing, rendering, lighting, characters, combat
mechanics, animations, sound effects, etc. Finally, there are some qualities found in practice this
study, as well as the limitations of the use of technology and solutions in the creation of games
more attractive.
Key-words: Unity. games. 3D. games. development. entertainment. methodology.

LISTA DE ILUSTRAES
Figura 1
Figura 2
Figura 3
Figura 4
Figura 5
Figura 6
Figura 7
Figura 8
Figura 9
Figura 10
Figura 11
Figura 12
Figura 13
Figura 14
Figura 15
Figura 16
Figura 17
Figura 18
Figura 19
Figura 20
Figura 21
Figura 22
Figura 23
Figura 24
Figura 25
Figura 26
Figura 27
Figura 28
Figura 29
Figura 30
Figura 31
Figura 32
Figura 33
Figura 34
Figura 35
Figura 36
Figura 37

Jogo de ao FPS - Left 4 Dead 2 . . . . . . . . . . . . . . . . . . . . . . .


Jogo de ao em terceira pessoa - God of War 3 . . . . . . . . . . . . . . .
Jogo de aventura - Full Throttle . . . . . . . . . . . . . . . . . . . . . . . .
Jogo de RPG - Dungeon Siege 2 . . . . . . . . . . . . . . . . . . . . . . . .
Simulador de caminho EuroTruck Simulator 2 . . . . . . . . . . . . . . .
Jogo de estratgia - Company of Heroes . . . . . . . . . . . . . . . . . . .
Historia de vingana do jogo Max Paine . . . . . . . . . . . . . . . . . . .
Personagem Kratos de God of War II . . . . . . . . . . . . . . . . . . . . .
Personagens Sonic e Mario . . . . . . . . . . . . . . . . . . . . . . . . . .
Mundo do jogo Arma 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jogo Silent Hill 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prottipo ScareSupreme . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produo ScareSupreme . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minecraft na verso alfa . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minecraft verso beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loja online Steam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interface do Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formas tridimensionais com texturas . . . . . . . . . . . . . . . . . . . . .
Interface do Jogo Rust . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lanterna editada no Maya para o projeto ScareSupreme . . . . . . . . . . .
Esculpindo monstro no Mudbox para o projeto ScareSupreme . . . . . . . .
Interface do Photoshop, editando mapa normal para o projeto ScareSupreme
Interface do Audacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interface do FL Studio 11 Demo . . . . . . . . . . . . . . . . . . . . . . .
Modelagem dos corredores e salas . . . . . . . . . . . . . . . . . . . . . .
Modelagem dos objetos mesa e galo . . . . . . . . . . . . . . . . . . . . .
Modelagem de diversos objetos . . . . . . . . . . . . . . . . . . . . . . . .
Mapeamento UV de diversos objetos . . . . . . . . . . . . . . . . . . . . .
Mapeamento UV de Objetos . . . . . . . . . . . . . . . . . . . . . . . . .
Planar Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Visualizao de texturas aplicadas no projeto . . . . . . . . . . . . . . . . .
Visualizao das texturas importadas automaticamente para o Unity juntamente com o modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rochas criadas no editor de terreno do Unity . . . . . . . . . . . . . . . . .
Floresta criada no editor de terreno do Unity . . . . . . . . . . . . . . . . .
Ajustando o efeito neblina no Unity . . . . . . . . . . . . . . . . . . . . . .
Incluindo lago com o Assets Water . . . . . . . . . . . . . . . . . . . . . .
Partculas de vapor totalmente personalizadas . . . . . . . . . . . . . . . .

19
20
20
21
22
23
23
24
25
26
26
27
28
28
29
29
30
34
36
37
37
38
39
39
40
41
41
42
42
43
43
44
44
45
45
46
46

Figura 38
Figura 39
Figura 40
Figura 41
Figura 42
Figura 43
Figura 44
Figura 45
Figura 46
Figura 47
Figura 48
Figura 49
Figura 50
Figura 51
Figura 52
Figura 53
Figura 54
Figura 55

Material com shader avanado . . . . . . . . . . . . . . . . . . .


Comparao de Textura simples e textura com Shaders avanados .
Comparao de textura simples e textura com Shaders avanados .
Componente de coliso do armrio de madeira . . . . . . . . . . .
Gatilho de ao instalado dentro de sala . . . . . . . . . . . . . .
Raio Raycast projetado . . . . . . . . . . . . . . . . . . . . . . .
Personagem modelado no Maya e importado para o Unity . . . . .
Rosto do monstro modelado no Mudbox . . . . . . . . . . . . . .
Resultado final do monstro modelado no Mudbox . . . . . . . . .
Jogador com sanidade alta e com risco de morte . . . . . . . . . .
Objeto que simula som do mar . . . . . . . . . . . . . . . . . . .
Animao da porta inicial . . . . . . . . . . . . . . . . . . . . . .
Animao da porta inicial . . . . . . . . . . . . . . . . . . . . . .
Tela Inicial do jogo . . . . . . . . . . . . . . . . . . . . . . . . .
Menu aberto dentro do jogo . . . . . . . . . . . . . . . . . . . . .
Boto de chamada da tela de jogo . . . . . . . . . . . . . . . . . .
Painel de propriedades da compilao . . . . . . . . . . . . . . .
Jogo compilado . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

47
47
48
48
49
50
50
51
51
52
53
53
54
54
55
55
56
56

LISTA DE ABREVIATURAS E SIGLAS


GUI

Game User Interface / Graphical User Interface

FPS

First-Person Shooters

RPG

Role-Playing Games

MMORPG

Massive Multiplayer Online RPG

NPC

Non-Player Characters

MOD

Modification

3D

3a Dimension

MP3

Moving Picture Experts Group 1 (MPEG) Audio Layer 3

UV

Unpleasant Visual

FBX

Filmbox

ESC

Escape

PC

Personal Computer

MAC OS

Macintosh Operating System

SUMRIO

1
1.1
1.2
1.3
1.4
1.5

INTRODUO . . . . . . . . .
Contextualizao . . . . . . . . .
Justificativa . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . .
Problema e Hiptese da Pesquisa
Metodologia . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

15
15
15
16
16
16

2
2.1
2.2
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12

PROCESSO DE DESENVOLVIMENTO DE JOGOS


Desenvolvimento de conceito . . . . . . . . . . . . . . .
Pr-produo . . . . . . . . . . . . . . . . . . . . . . . .
Definindo o gnero . . . . . . . . . . . . . . . . . . . . .
Gnero Ao . . . . . . . . . . . . . . . . . . . . . . .
Gnero Aventura . . . . . . . . . . . . . . . . . . . . .
Gnero RPG . . . . . . . . . . . . . . . . . . . . . . .
Gnero Simulao . . . . . . . . . . . . . . . . . . . .
Gnero Estratgia . . . . . . . . . . . . . . . . . . . .
Criando a histria . . . . . . . . . . . . . . . . . . . . .
Criando a Identidade . . . . . . . . . . . . . . . . . . . .
Criando o Mundo . . . . . . . . . . . . . . . . . . . . .
Criando o udio . . . . . . . . . . . . . . . . . . . . . .
Desenvolvendo o Prottipo . . . . . . . . . . . . . . . .
Produo . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase Alfa . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase Beta . . . . . . . . . . . . . . . . . . . . . . . . . .
Fase Ouro . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

18
18
18
18
19
20
21
21
22
22
24
25
25
26
27
27
28
29

3
3.1
3.2
3.2.1
3.2.1.1
3.2.1.2
3.2.1.3
3.2.1.4
3.2.1.5
3.2.1.6
3.2.2
3.2.3

UNITY E OUTRAS FERRAMENTAS UTILIZADAS


Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Estrutura do Unity . . . . . . . . . . . . . . . . . . . . .
Interface . . . . . . . . . . . . . . . . . . . . . . . . . .
Project . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inspector . . . . . . . . . . . . . . . . . . . . . . . . . .
Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . .
Scene . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Game . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Barra de Ferramentas ou toolbar . . . . . . . . . . . . .
Componentes . . . . . . . . . . . . . . . . . . . . . . .
Prefabs . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

30
30
30
30
30
31
31
31
31
31
32
32

3.2.4
3.2.5
3.2.6
3.2.7
3.2.8
3.2.9
3.2.10
3.2.11
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5

Materiais, Texturas e Shaders .


Terrenos . . . . . . . . . . . . .
Linguagens de desenvolvimento
Animao . . . . . . . . . . . .
Renderizao . . . . . . . . . .
Iluminao . . . . . . . . . . .
Sistema de partculas . . . . . .
Rust . . . . . . . . . . . . . . .
Outras Ferramentas Utilizadas . .
Autodesk Maya . . . . . . . . .
Autodesk Mudbox . . . . . . .
Photoshop . . . . . . . . . . . .
Audacity . . . . . . . . . . . . .
FL Studio Demo . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

32
33
33
33
34
35
35
36
36
36
37
38
38
39

4
4.1
4.2
4.3
4.4
4.5
4.5.1
4.5.1.1
4.5.1.2
4.5.2
4.6
4.7
4.8
4.8.1
4.9
4.10
4.11
4.12
4.13
4.13.1
4.13.2
4.13.3
4.14
4.15
4.16

DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . .
Mundo do jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelagem dos Cenrios . . . . . . . . . . . . . . . . . . . . . .
Criando um Prottipo . . . . . . . . . . . . . . . . . . . . . . . .
Modelagem dos Objetos . . . . . . . . . . . . . . . . . . . . . . .
Insero de texturas . . . . . . . . . . . . . . . . . . . . . . . . .
Mapeamentos UV . . . . . . . . . . . . . . . . . . . . . . . . . .
Automatic Mapping . . . . . . . . . . . . . . . . . . . . . . . . .
Mapeamento Manual . . . . . . . . . . . . . . . . . . . . . . . .
Edio de materiais e texturas . . . . . . . . . . . . . . . . . . .
Criao de Terreno . . . . . . . . . . . . . . . . . . . . . . . . . .
Efeitos de renderizao . . . . . . . . . . . . . . . . . . . . . . .
Assets e modelos Importados . . . . . . . . . . . . . . . . . . . .
Partculas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shaders avanados e iluminao . . . . . . . . . . . . . . . . . . .
Roteiro de eventos . . . . . . . . . . . . . . . . . . . . . . . . . .
Coliso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gatilhos e aes . . . . . . . . . . . . . . . . . . . . . . . . . . .
Personagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelagem dos Personagens . . . . . . . . . . . . . . . . . . .
Movimentao do personagem jogvel . . . . . . . . . . . . . .
Movimentao do personagem monstro e Inteligncia Artificial
Mecnica de Combate . . . . . . . . . . . . . . . . . . . . . . . .
Msicas e Efeitos Sonoros . . . . . . . . . . . . . . . . . . . . . .
Animaes de objetos . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

40
40
40
40
41
41
42
42
43
43
44
45
45
46
46
48
48
49
49
49
50
51
51
52
53

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

4.17
4.18
4.19
4.20
4.21
4.22
4.23

Objetivos do jogo . . . . . . .
Transies de telas e opes . .
Tutoriais e mensagens de ajuda
Compilando o projeto . . . . .
Testes . . . . . . . . . . . . . .
Manuteno . . . . . . . . . .
Dificuldades do projeto . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

53
54
55
55
55
57
57

CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

REFERNCIAS BIBLIOGRFICAS . . . . . . . . . . . . . . . . . . .

59

ANEXOS

62

ANEXO A PRINCIPAIS SCRIPTS . . . . . . . . . . . . . . . . . . .

63

ANEXO B SCRIPT COMPLETO DE CONTROLE DAS AES DO


JOGADOR . . . . . . . . . . . . . . . . . . . . . . . . . .

68

15

1 INTRODUO
1.1

Contextualizao

Em 2010, a receita no setor de games ultrapassou 30 bilhes de dlares anuais em


todo o mundo, superando as receitas de outros entretenimentos como concertos e cinemas
nos Estados Unidos de acordo com a NPD Group(2011), empresa norte americana que realiza
acompanhamentos semestrais de relatrios sobre o estudo dos padres de consumo e distribuio
de entretenimento chamado Entertainment Trends in America (ETA). Constatou-se que os perfis
dos consumidores esto mudando constantemente.
A International Game Developers Association (IGDA), organizao sem fins lucrativos,
para incentivar a criao de jogos e promover o desenvolvimento profissional do setor, relatou
que em vrios pases, a exportao de games constitui um dos principais itens de venda e de
empregabilidade. A indstria de games est em constante expanso desde meados dos anos 80 e
tem uma expectativa de receita de mais de 86 bilhes de dlares em 2016 (WARMAN, 2013).
Indies games so jogos desenvolvidos por produtoras independentes, ou seja, um jogo
que no produzido ou publicado por uma grande empresa de games. Diversos problemas
so encontrados nos desenvolvimentos de jogos e um investimento de alto custo para obter
ferramentas a serem utilizadas para este propsitos.
Neste sentido, a Unity Technologies disponibiliza a tecnologia Unity, que consiste em
uma ferramenta para criao de jogos eletrnicos, e a sua distribuio completa custa aproximadamente US$ 1500,00; existe tambm a verso gratuita com algumas limitaes especiais que
no interferem no desenvolvimento de um jogo completo. Apresenta uma interface simples mas
com muitos recursos importantes, e facilitando a implementao de jogos para computadores
Windows, iOS, consoles XBox 360, XBox One, PS3, PS4, PS Vita, celulares Windows Phone 8 e
BlackBarry.
1.2

Justificativa

O interesse principal deste trabalho desenvolver um jogo eletrnico utilizando a tecnologia Unity tendo como metas: simplificar a codificao para o programador, mesmo que
no trabalhe na rea de games; reduzir tempo no desenvolvimento do game pelo motivo de
vrias funes estarem previamente implementadas e custos, por existir a opo da ferramenta
na verso grtis.
Inclui classes de bibliotecas especficas para o desenvolvimento de jogos permitindo reuso
de cdigo e materiais para plataformas diferentes. O Unity engine simplifica elementos grficos,
udio, entrada, armazenamento, loops de desenho e modelagem. Tambm na sua comunidade
online so disponibilizados muitas documentaes, materiais, modelos e texturas disponveis
gratuitamente.

16

1.3

Objetivos

O objetivo deste trabalho desenvolver um jogo eletrnico utilizando a tecnologia Unity,


apresentando as diferentes fases dessa, desde concepo inicial ao produto final no processo de
desenvolvimento de jogos.
1.4

Problema e Hiptese da Pesquisa

O Elemento principal deste trabalho o jogo eletrnico ou game. Trata-se de um produto


de software e alguns problemas sero apresentados juntamente com as possveis solues ou
alternativas. Abaixo, encontram-se algumas dvidas sobre o foco da pesquisa.
Para utilizar o Unity necessrio saber programar?
Quais os processos para o desenvolvimento de um jogo eletrnico de qualidade e aceitao
no mercado?
No desenvolvimento de um jogo eletrnico, a utilizao do GUI do Unity diminui a
necessidade de programar desde o incio, reduzindo custos e tempo. Por mais simples que seja
necessrio ter conhecimento em programao para criar jogos mais sofisticados e dinmicos.
Para uma melhor organizao e que alcance um jogo satisfatrio necessrio dividir em
fases o ciclos de desenvolvimento que so planejamento, produo, montagem do prottipo,
testes de jogabilidade e distribuio.
1.5

Metodologia
A metodologia utilizada na execuo deste trabalho apresentou basicamente as seguintes

etapas:
Foram utilizadas pesquisas bibliogrfica em revistas, artigos cientficos, Internet e livros
relacionados ao tema.
Participao em fruns de discusses no intuito de abstrair informaes para as tcnicas
envolvidas na estrutura dos jogos.
Primeiro captulo apresentou como so os processos de desenvolvimento de jogos desde
planejamento, personagem, ambiente, produo e lanamento.
O captulo seguinte apresentou as ferramentas utilizadas no desenvolvimento deste trabalho.
Foi utilizado o Unity para a criao de animaes, vegetao, scripts e demais itens.
Foi utilizado o programa Autodesk Maya para os desenvolvimentos de animaes, parte
do cenrio, modelos e personagens 3D.
Foi utilizado o Autodesk Mudbox para o desenvolvimento e detalhamento mais profissional
do personagem.
Foi utilizado o editor de imagens Photoshop para editar as texturas dos objetos, cenrios e
detalhes grficos dos personagens.

17

Foi utilizado o programa de edio de udio, Audacity para gravaes de sons da atmosfera
e efeitos especiais do jogo.
Foi utilizado o FL Studio Demo para as edies de loops e msicas que foram utilizados
na produo, pois o mesmo um estdio musical virtual.
O captulo seguinte abordou detalhamento do projeto ScareSupreme, desenvolvido em
paralelo a este trabalho.

18

2 PROCESSO DE DESENVOLVIMENTO DE JOGOS


Neste captulo descrito algumas fases do desenvolvimento de jogos, com o principal
objetivo de torna-los mais profissionais e competitivos no mercado atual.
Por que as pessoas gostam de games? A compreenso disso pode ajud-lo a
desenvolver games que satisfaam essas necessidades. Alguns desenvolvedores
criam games sem considerar por que seu publico desejaria jog-los; e seus
componentes mais atraentes no so utilizados suficientemente para manter os
jogadores interessados (NOVAK, 2010, p. 40).

2.1

Desenvolvimento de conceito

A fase de desenvolvimento de conceito inicia-se quando existe uma ideia de desenvolver


um jogo pensando em seus aspectos, pblico-alvo, avaliar os recursos e quanto o tanto possa atrair
os desenvolvedores. Est fase termina quando concretizada a ideia de iniciar o planejamento
do projeto, consiste como principal objetivo transmitir a ideia do jogo para outras pessoas de
forma escrita.
Desenvolver um game como tentar montar um avio enquanto se aprende
a voar nele. Para mim, o movimento mais difcil integrar todas as partes
dispares - modo de jogar, som, motor 3D - em um formato coerente dentro do
que parece ser um prazo impossvel. Acredito que o setor tem sido vtima do seu
prprio sucesso. Os melhores designers e programadores de games disponveis
no mercado vm surpreendendo as pessoas com tanta frequncia que, quanto
aparece um game realmente slido que no tem algum aspecto inovador, os fs
se decepcionam (NOVAK, 2010, p. 341).

2.2

Pr-produo

A fase do planejamento (ou pr-produo) do desenvolvimento consiste em ter uma


proposta, como o guia da arte e o plano de produo. Esta fase tem como principal objetivo
desenvolver o documento de design do game e documento tcnico do design.
Eu costumava pensar que finalizar um projeto era o processo mais difcil, mas
mudei de ideia. Depois de terminar alguns ttulos, voc j sabe que necessrio
para finalizar um game. Agora acho que a parte mais difcil do projeto de
desenvolvimento a pr-produo. Gerar nova ideias para um game difcil,
mas o verdadeiro desafio determinar quais dessa ideias so realmente boa e
quais, utilizadas conjuntamente, podero gerar um sucesso. Se os objetos da
pr-produo no forem estabelecidos com preciso, mais adiante voc acabara
tendo de trabalhar muito para tornar o game divertido e bem-sucedido (NOVAK,
2010, p. 342).

2.3

Definindo o gnero

Gneros de games so baseados em diferente temas, ambiente, interface do jogador e


plataformas. Para uma melhor definio precisa ser levado em conta o publico alvo desejado,

19

pois os gneros diferenciam entre eles.


2.3.1

Gnero Ao

O principal objetivo dos games do gnero de ao destruir seus inimigos, evitando ser
destrudo. Geralmente no possuem muita histria ou a necessidade de muito raciocnio, pois se
aprofunda mais na velocidade dos movimentos e na adrenalina das sequncias.
Os subgneros dos games de ao sero brevemente definidos a seguir:
Games de plataforma so jogos com personagens caractersticos que geralmente saltam
sobre plataformas recolhendo itens e destruindo inimigos.
Games de tiro so jogos que se concentra na disputa entre um jogador contra vrios
personagens, e geralmente utilizam-se armas de fogo nos jogos. Nos jogos de tiro em
primeira pessoa (FPS), o jogador visualiza somente a arma do personagem com a sensao
de estar dentro do prprio jogo (Figura 1). Jogos em terceira pessoa permitem ter a viso
do personagem em vez de somente a arma como no FPS (Figura 2). O jogo ScareSupreme
que foi desenvolvido em paralelo com este trabalho, um exemplo de jogo de ao com
itens e aspectos de aventura em uma ambientao de terror.
Games de corrida tambm utilizam a perspectiva de primeira ou terceira pessoa. O cenrio
sempre abrange em controlar um veculo sendo uma moto ou um carro. Existem vrias
modalidades neste gnero, como disputas online, tempo de volta nas pistas e at percorrer
uma cidade inteira a procura de desafios.
Games de luta so jogos na qual personagens distintos so controlados por jogadores ou
pela inteligncia artificial do prprio jogo, com o objetivo de atacar o seu adversrio por
meios de movimentos combinados.

Figura 1: Jogo de ao FPS - Left 4 Dead 2


Fonte:
http://1.bp.blogspot.com/_hlRWVCzwczY/S_f3x96A_6I/AAAAAAAAACw/aPZL1Ed6hIM/s1600/
165160fa.jpg(25/06/2011)

20

Figura 2: Jogo de ao em terceira pessoa - God of War 3


Fonte:
http://3.bp.blogspot.com/_sGJGR7YvdV4/TAwSiy41_NI/AAAAAAAAA90/zYn7uYbR7R8/s1600/
god_of_war_iii_profilelarge.jpg(25/06/2011)

2.3.2

Gnero Aventura

Jogos do gnero aventura so geralmente criados conforme um filme, possuem roteiros e


uma historia convincente. Seu principal objetivo solucionar enigmas em busca de tesouros ou
algo importante. So apelidados de jogos point-and-click, porque a maioria utilizam apenas o
mouse no controle de todas as aes. A Figura 3 apresenta o jogo de aventura Full Throttle.
Hoje em dia, apenas alguns poucos games de aventura so lanados a cada
ano, mas ainda h um nicho de mercado para os aficionados do gnero. As
caractersticas dos games de aventura incluem explorao, coleta de itens, soluo de quebra-cabeas, orientao em labirintos e decodificao de mensagens
(NOVAK, 2010, p. 101).

Figura 3: Jogo de aventura - Full Throttle


Fonte: http://www.scummvm.org/data/screenshots/lec/ft/scummvm_0_9_1-full.png(25/06/2011)

21

2.3.3

Gnero RPG
Os games de representao de papis (RPG) originam-se da tradio iniciada
na dcada de 1970 pela srie de jogos de RPG Dungeons & Dragons, que eram
jogados com papel e lpis. Neles, os jogadores assumiam papis de guerreiros,
magos, sacerdotes, elfos ou ladres e exploram calabouos, matavam monstros
(como drages e ogros) e coletavam tesouros. Um dos jogadores, o Mestre
dos Calabouos (mais tarde designado Mestre do Jogo) configurava o mundo
do jogo e assumia os papis de outros personagens (no jogadores) (NOVAK,
2010, p. 103).

Os games de RPG digitais no possuem um mestre, mais todo o aspecto do antigo RPG
geralmente est diretamente relacionado, que incluem mundo de fantasias, heris e monstros. Os
personagens podem fazer praticamente o que quiserem nesta modalidade, como criar alimentos,
enfrentar drages e diversas aes. A Figura 4 apresenta o jogo de RPG Dungeon Siege 2.

Figura 4: Jogo de RPG - Dungeon Siege 2


Fonte: http://www.escapistmagazine.com/images/display/67151.jpg(25/06/2011)

Os Jogos de interpretao online massivos (MMORPG) so aquelas aonde diversas


pessoas se conectam e jogam simultaneamente em um mesmo mundo, formando grupos, inimigos,
lideres, comrcio de itens e guerras. Os MMORPG geralmente no possuem um final, mas
recebem constantemente atualizaes de novos mundos, inimigos e misses.
2.3.4

Gnero Simulao

O principal objetivo dos games do gnero de simulao representar mquinas, sistemas,


veculos e papeis do mundo real. Existem simuladores para treinamentos militares, motoristas,
pilotos de avio e alguns so criados especialmente para entretenimento por proporcionarem
baixo nvel de dificuldade.
Os subgneros dos games de simulao sero brevemente definidos a seguir:

22

Simulaes de veculos - o jogador opera mquinas muito detalhadas em seu manuseio,


podem necessitar algum tempo para a aprendizagem, eles geralmente so simuladores de
automveis (Figura 5), navios, tanques e jatos de guerra.
Simulaes de processos - o jogador abrangem processos e sistemas do mundo real, podem
ser um prefeito de uma cidade que controla seus gastos e construes, ou um Deus em um
mundo primata lutando contra a insatisfao das tribos que o idolatram.
Simulao esportiva e participativa - envolvem o jogador como se fossem participantes de
uma partida de futebol por exemplo. um subgnero de simulao com grande sucesso e
repercusso nos jogos digitais, pois o jogador tem a sensao de representar um ou mais
atletas profissionais, com a possibilidade de alcanar o ttulo de melhor jogador do mundo,
desbloquear novos atletas com as caractersticas dos atletas do mundo real para a sua
equipe, negociar vendas e compras destes personagens com outros jogadores do mundo
digital.

Figura 5: Simulador de caminho EuroTruck Simulator 2


Fonte: http://i1-games.softpedia-static.com/screenshots/Euro-Truck-Simulation-2_22.jpg(11/08/2014)

2.3.5

Gnero Estratgia

"Games de estratgia originam-se dos jogos clssicos de tabuleiro, como xadrez, em


que os jogadores devem administrar um conjunto limitado de recursos para atingir uma meta
especifica"(NOVAK, 2010, p. 109).
A maioria dos games de estratgia desenrolam-se em um ambiente militar, controlando
tropas, fabricando armas e adquirindo tecnologia. O seu principal objetivo utilizar a inteligncia
para derrotar seus adversrios (Figura 6).
2.4

Criando a histria

Para o projeto ScareSupreme, a historia sobre um escritor cientifico de fenmenos


naturais, que aps uma sesso de autgrafos em uma cidade pequena e isolada, preferiu seguir
um atalho para chegar mais rpido em sua residncia. Aps um perodo percorrendo a estrada
principal, encontrou a mesma interditada em um certo trecho, restando apenas um caminho

23

Figura 6: Jogo de estratgia - Company of Heroes


Fonte: http://m.mygames.pt/g4/images/impressions/shot_3_261.jpg(26/06/2011)

por dentro da floresta. Por coincidncia, o combustvel do seu carro acabou prximo a uma
construo antiga e abandonada. Acreditando ter a resposta para todos os acontecimentos e
irritado de tantos remdios que tomou para manter-se acordado, ele ir verificar a entrada da
construo em busca de combustvel ou at mesmo um abrigo para est noite chuvosa. A Figura
7 apresenta uma parte da histria do jogo de Max Paine.

Figura 7: Historia de vingana do jogo Max Paine


Fonte: http://3.bp.blogspot.com/_tNn9FRQNoUA/SorHKECyZJI/AAAAAAAAATY/HV2d0aUKhiA/s1600h/Untitled-1.jpg(06/07/2011)

Nos meios de entretenimentos tradicionais, como cinema, literatura, televiso


e rdio, comum que os redatores produzam histrias completas, com personagens atraentes e ambientes especifica como base para o contedo. Embora
muitos games tambm incluam uma historia, isso no essncia para proporcionar uma experincia de jogo satisfatria. Na outra extremidade do espectro,
alguns games de representao de papis (RPGs) dependem fundamentalmente
da narrativa. De fato, para alguns jogadores, um RPG semelhante a um filme;
nesses casos, o game pode tornar-se um mero veculo para o desenvolvimento
da histria (NOVAK, 2010, p. 130).

24

2.5

Criando a Identidade

Personagens de um jogo podem assumir caractersticas marcantes, atravessando barreiras


alm do mundo dos jogos. Dividem-se em personagens jogveis e no jogveis (NPC), estes
so muitos usados em jogos de RPG na funo de ajudar os jogadores, contar historias, solicitar
misses e vender itens. Dependendo do gnero do jogo, possvel controlar vrios personagens
em conjunto; geralmente so encontrados em jogos de simulao esportiva. A Figura 8 apresenta
o personagem Kratos de God of War II e a figura 9 apresenta os dois maiores rivais da histria
dos jogos.
Para desenvolver um personagem com caractersticas marcantes, habilmente recomendado levar em considerao a historia escolhida. Para o projeto ScareSupreme, o personagem
principal o cientista Robert, sobre o qual o jogador assume o controle em todo momento, mas
tambm foi criado um segundo personagem em forma de palhao com o objetivo de perseguir e
derrotar Robert.
Um efeito interessante, conhecido como interao parassocial, pode ocorrer
quando o pblico torna-se to ligado aos personagens que comea a acreditar
que so pessoas reais. Esse efeito ocorre com telespectadores que estabelecem
fortes vnculos com os personagens do mundo de faz-de-conta que observam
semana aps semana em novelas. Os viles so detestados pelos telespectadores
e comum que recebam cartas ameaadoras (enviadas para os personagens, no
para os atores). A interao parassocial um fenmeno extremamente poderoso,
embora os telespectadores no assumam o papel de nenhum dos personagens
da novela e sejam apenas observadores passivos. Esse tipo de ligao com o
personagem no poderia ser ainda mais forte nos Games? (NOVAK, 2010, p.
154, 155).

Figura 8: Personagem Kratos de God of War II


Fonte: http://i51.photobucket.com/albums/f362/Solidarchive/god-of-war-ii-kratos.jpg(06/07/2011)

25

Figura 9: Personagens Sonic e Mario


Fonte: http://images.wikia.com/sonic/images/9/9c/Mario_e_sonic.jpg(06/07/2011)

2.6

Criando o Mundo
No h muitos problemas de design especficos, contanto que voc se limite
a formula do game de representao de papis (RPG); lembre-se de espalhar
bem suas cenouras pelo nvel(aqui est um item exclusivo, aqui est um detalhe do mistrio da histria a ser solucionado, aqui est um lugar em que o
jogador pode obter uma vista panormica do nvel); finalmente, se possvel,
tente proporcionar aos jogadores diferente opes para perseguir seus objetivos dependendo de como construram seus personagens (por exemplo, ladres
que podem entrar furtivamente em situaes, diplomatas que podem sair de
situaes com uma argumentao convincente ou pistoleiros que podem matar
tudo o que encontram pela frente at o final). Um game deve apelar para o ego
dos jogadores, e no h melhor maneira de fazer isso do que oferecer nveis e
situaes que lhe permitam exercitar as habilidade e recursos em que gastaram
mais pontos (NOVAK, 2010, p. 224).

Existem muitas ferramentas para o desenvolvimento de mundos e a maioria dos fabricantes as disponibilizam gratuitamente, com o intuito de aumentar o nmero de modificaes
(MOD) em seus jogos lanados. Para o projeto ScareSupreme, o mundo foi desenvolvido com
vrias ferramentas e limitado atravs da programao do Unity, ou seja, o personagem no
conseguir navegar pelo mundo da forma que quiser e depender de certas aes para prosseguir
pelo mesmo. A Figura 10 apresenta o mundo do jogo Arma 3.
2.7

Criando o udio

Jogos de suspenses e terror, como Silent Hill 2 (Figura 11), possuem uma qualidade
impactante em termos de msicas e efeitos sonoros, pois, em cada cena percorrida, o jogo se
torna mais assustador, aumentando o envolvimento do jogador.

26

Figura 10: Mundo do jogo Arma 3


Fonte: http://media.pcgamer.com/files/2013/08/altis-tour.jpg(17/08/2014)

O udio para games pode consistir em sons sampleados(gravados), como vozes


e msica; sons de interface, como rudos eletrnicos e cliques de boto; e efeitos
sonoros do game, como exploses e passos. O udio pode ser extremamente
importante para a atmosfera do game, tanto para definir o clima como para alterlo. Pode-se usar udio para fornecer indicaes sonoras ao jogador, intensificar
sua satisfao e aumentar a qualidade de um game (NOVAK, 2010, p. 272).

Figura 11: Jogo Silent Hill 2


Fonte: http://ui04.gamefaqs.com/1859/gfs_22655_2_2.jpg(06/07/2011)

2.8

Desenvolvendo o Prottipo

A fase de desenvolvimento do prottipo essencial para todo o processo e pode ser o


item mais importante na deciso de ir para o prximo nvel de desenvolvimento do jogo.
Usar vrias tecnologias de criao de jogos no desenvolvimento de prottipo bastante
comum, mesmo que a tecnologia empregada no final do jogo seja outra. Para a criao do
prottipo, em vrios casos, so utilizados apenas rascunhos de lpis e papel, demonstrando a
viso bastante simplificada do que o jogo possa se tornar, mas em algum momento o prottipo
pode ser descartado no desenvolvimento. A Figura 12 apresenta o prottipo usado no projeto
ScareSupreme.

27

Figura 12: Prottipo ScareSupreme


Fonte: Elaborada pelo Autor

Criar um prottipo na fase preliminar significa concentrar a ateno da equipe


em prottipos rudimentares, mas jogveis, no inicio do processo de design,
antes que uma equipe de produo completa esteja disponvel. Um pequeno
grupo de designers pode cria rapidamente uma verso jogvel de uma ideia
consumindo recursos de produo extremamente baixos. A ideia testar e
revisar seguidamente o prottipo redumentar utilizando a pequena equipe at
desenvolver um sistema de jogo realmente interessante. S ento a ideia devera
ser colocada em produo e uma equipe completa, incorporada ao projeto
(NOVAK, 2010, p. 345).

2.9

Produo

A fase de desenvolvimento mais extensa a produo (Figura 13), ou seja, quando


inicia-se realmente o desenvolvimento do jogo. Nesta fase, so desenvolvidos os efeitos sonoros,
todo o cdigo fonte, os modelos 3D, os testes e tudo que for necessrio para concluir o jogo.
Pode durar de 6 meses a 2 anos ou mais, desde que seja corretamente calculado o tempo de todas
as etapas no planejamento.
O aspecto mais complexo do processo de produo de um game equilibrar a
criatividade com os requisitos comerciais e profissionais impostos produo.
muito difcil criar um ambiente em que os artistas se divirtam e, ao mesmo
tempo, terminem seu trabalho dentro do prazo e do oramento. Acredito, porm
que esse equilbrio que leva criao dos melhores games (NOVAK, 2010, p.
346).

2.10

Fase Alfa

A fase alfa (Figura 14) especialmente voltada para o acabamento e ajustes finais do
jogo, como acabamentos artsticos, musicais, efeitos de som ou remover alguns detalhes que
no sejam necessrios. quando a interface do usurio est completa, ou seja, o jogo pode ser
jogado do comeo ao fim, passando por cada etapa a procura de erros, falhas e desempenho. Esta
fase pode incluir testadores externos que no participaram de nenhuma das etapas anteriores.

28

Figura 13: Produo ScareSupreme


Fonte: Elaborada pelo Autor

Como artista de games, voc frequentemente estar criando projetos e esperando


que a tecnologia funcione como foi prometido - ou ento voc j criou boa parte
do material e, quando o game est quase terminado, aparece algo novo que
torna suprfluo tudo o que foi feito at ento. nesse ponto que voc precisa
decidir: o plano original ser mantido, mesmo correndo o risco de o game
parecer ultra-passado, ou voc jogar fora todo o trabalho anterior e tentar
dominar a nova tcnica no tempo que lhe resta? Essa sempre uma deciso
difcil (NOVAK, 2010, p. 347).

Figura 14: Minecraft na verso alfa


Fonte:
http://games.planeta-informatica.com/wp-content/uploads/2011/04/MineCraftCastle_nosologeeks635x465.jpg(20/06/2011)

2.11

Fase Beta

A fase beta (Figura 15) da nfase na correo de problemas quando todos os matrias do
jogo estejam terminados e a sua fase de produo esteja encerrada. A maioria dos fabricantes
utilizam seus prprios testadores ou recrutam jogadores online para serem testadores betas dos
jogos, na funo de encontrar o mximo de defeitos, erros e ajustes de desempenhos antes
que sejam publicados e comercializados. Algumas das principais melhorias durante a fase beta
incluem o desenvolvimento da verso final de cdigo, contedo e manual do jogo.

29

Figura 15: Minecraft verso beta


Fonte: http://verrytechnical.com/wp-content/uploads/2010/12/Minecraft_Beta.jpg(20/04/2014)

Para mim, a parte mais difcil do desenvolvimento decidir quando parar.


Em ltima anlise, qualquer game sempre pode ter um pouco mais disso ou
daquilo e um ou dois recursos adicionais. Cabe a voc estabelecer um limite,
quando o ttulo ser dado por terminado e lanado no mercado. Isso sempre
gera um frenesi final de trabalho nas equipes mais dedicadas. Uma boa equipe
de administrao canaliza essas horas extras para tornar um bom produto e no
para simplesmente se livrar dele de qualquer maneira (NOVAK, 2010, p. 349).

2.12

Fase Ouro

Aps concluir a fase Beta, inicia-se a fase ouro (Figura 16). Nesta fase o produto e as
correes de erros foram avaliadas; enviada uma cpia do jogo para a fbrica e pode durar
semanas a sua produo em mdias fsicas, manuais e caixas. Este formato est perdendo espao
para os jogos comercializados diretamente pela Internet, pois so disponibilizados atravs de
pagamentos online e posteriormente os usurios podem efetuar o download.

Figura 16: Loja online Steam


Fonte: Elaborada pelo Autor

30

3 UNITY E OUTRAS FERRAMENTAS UTILIZADAS


Neste captulo descrito algumas caractersticas do Unity e as demais ferramentas
utilizadas no desenvolvimento deste trabalho.
3.1

Unity
Para estdios e desenvolvedores independentes, o democrtico ecossistema da
Unity derruba barreiras de tempo e custo para criar jogos exclusivamente lindos.
Eles esto usando o Unity para viver do que adoram fazer - desenvolver jogos
que cativam e encantam os jogadores em qualquer plataforma (UNITY, 2014).

Foi utilizado a verso 4.6.0b17 do software (UNITY, 2014) e encontra-se disponvel


gratuitamente para download em https://unity3d.com/pt/unity/download.
3.2

Estrutura do Unity

Basicamente o Unity trabalha com o gerenciamento de GameObjects. Os GameObjects


representam objetos contidos no projeto e se estendem a objetos slidos, objetos inanimados, e
at seres vivos como plantas, animais e seres humanos.
3.2.1

Interface

A interface Unity (Figura 17) simples e de fcil aprendizagem para novos utilizadores.
Em apenas um curto tempo de uso possvel conhecer as interaes entre os visualizadores, que
so as partes da interface.

Figura 17: Interface do Unity


Fonte: Elaborada pelo Autor

3.2.1.1

Project

um navegador que lista todos os itens e diretrios includos no projeto atual do Unity,
possibilitando importar novos itens pelo menu ou simplesmente arrastando-os para a rea de

31

trabalho.
3.2.1.2

Inspector

Cada GameObject possui propriedades e detalhamentos de vrios parmetros no projeto,


permitindo a possibilidade de alterar algumas informaes antes da prpria incluso do item na
cena. A manipulao das propriedades pode ser feita por meio da palheta Inspector e incluir
novos componentes no objeto, varireis de tipos de valores e tambm de referencia para outros
GameObjects.
3.2.1.3

Hierarchy

O painel Hierarchy lista todos os objetos que esto sendo usados na cena atual. Para
incluir novos recursos neste painel, pode-se usar o menu de Create ou arrast-los a partir do painel
Project.A organizao dos objetos so definidos pela hierarquia, ou seja, podem existir objetos
que so filhos de outros, desta forma, ao arrastar um objeto em cima de outro, automaticamente
o mesmo se tornar filho, assumindo a movimentaes e outras funcionalidades do pai.
3.2.1.4

Scene

Compe a cena do jogo e onde tudo realmente construdo. o local aonde todos os
GameObjects e demais itens so inseridos. A manipulao intuitiva e baseada no conceito drag
and drop (arrastar e largar), ou seja, selecionar o GameObject com o mouse e arrasta-lo para o
lugar desejado.
3.2.1.5

Game

Esta paleta apresenta o resultado final do jogo, permitindo que o desenvolvedor avalie e
altere as propriedades dos GamesObjets em tempo de execuo. No Layout padro do Unity,
este visualizador est atrs de outro visualizador de nome Scene. possvel enxergar-lo quando
selecionado em sua aba na interface principal e quando iniciado o jogo pelo boto (Start) da
barra de ferramentas, automaticamente o visualizar Game sobrepem qualquer outro que esteja
em destaque anteriormente.
3.2.1.6

Barra de Ferramentas ou toolbar

As caractersticas da Barra de Ferramentas do Unity definem-se em facilidade de aprendizagem, agilidade nas alteraes e testes de desenvolvimento. Os botes do lado esquerdo so
para manipulaes dos objetos, como alterar o tamanho, rotao e posio. Os botes do meio
so controles de execuo do jogo e para testar as suas etapas, alternando do ambiente de criao
para o ambiente do jogo. Referente aos botes da direita, um para desabilitar ou habilitar as

32

camadas no painel Scene, ou seja, na edio do jogo possvel desabilitar a camada de gua e a
mesma ficar invisvel. O outro boto manipula o layout de visualizao dos painel, h vrios
tipos e possibilidade de alterar o layout conforme a preferencia do desenvolvedor.
3.2.2

Componentes
Ao vincular Componentes a um GameObject, voc cria comportamento e movimento e define a aparncia. Luzes, malhas, efeitos especiais, udio, cmeras
e emissores de partculas so exemplos de Componentes. Por sua vez, cada
Componente tem um conjunto prprio de propriedades ajustveis, alcance e
intensidade para luz (UNITY, 2014).

Praticamente quase todos os itens do cenrio so GameObjects, que podem ter vrios
tipos de componentes associados ao mesmo tempo, como, por exemplo, um script para alterar
seus comportamentos em tempo real no jogo.
3.2.3

Prefabs
Uma instncia, na maior parte do mundo 3D, a ideia de exibir um objeto
mltiplas vezes em vez de ter mltiplas copias do objeto. Em aplicativos como o
Maya, isso significa que, se uma alterao foi feita no objeto original, a mudana
ocorre automaticamente em cada instancia do objeto. No Unity, essa mesma
ideia est presente, mas usa uma nomenclatura ligeiramente diferente. No Unity,
a ideia de exibir um objeto vrias vezes e fazer essas verses adicionalmente
exibidas herdarem as alteraes chama-se prefab (WATKINS, 2012, p. 403).

Prefabs a necessidade de ter o mesmo objeto repetido vrias vezes em um cenrio, e


caso ocorrer alteraes especificas em algum deles, possvel propagar para os demais itens
automaticamente. Prefabs podem ser exportadas para outros projetos, caso necessrio, ou seja,
a possibilidade de criar uma biblioteca de objetos reutilizveis para novos jogos.
3.2.4

Materiais, Texturas e Shaders


Texturas so imagens; elas podem ser fotos ou imagens pintadas. Texturas so
elementos 2D que definem determinado atributo de um material. Texturas pode
ser usadas para definir os elementos tteis visual ou coloridos de um material,
como relevo. Quando um material aplicado a um objeto, shader usado para
mostrar como esse material vai reagir a luz e ao angulo de viso do observador
(WATKINS, 2012, p. 63).

Materiais, texturas e shaders so importados automaticamente quando includo um


novo objeto no projeto; so separados fisicamente os materiais e as texturas, ainda assim a
associao importada entre eles continua. Caso necessrio, possvel atribuir outra textura no
material e alterar o seu tipo de shader, desta forma fica fcil a manipulao entre os mesmos.
O Unity permite criar materiais com diversos tipos de efeitos de shaders, sem a necessidade de atributos adicionais, e ainda a Asset Store disponibiliza muitos materiais e texturas

33

para serem utilizadas. Os Assets so itens prontos para serem utilizados tais como modelos de
objetos, modelos de personagens 3D, kits de efeitos de sons, scripts e texturas. A Asset Store a
centralizao online destes pacotes da comunidade Unity.
3.2.5

Terrenos
Os terrenos podem ser muito interessantes na situao certa. Um Terrain
um GameObject criado no Unity e pode conter mapas de textura e objetos
inteligentes", como arvores e grama. Por inteligente"quero dizer que eles criam
algumas coisas realmente sofisticadas, como mudar o nvel de detalhes a medida
que o jogador se aproxima ou se afasta deles (WATKINS, 2012, p. 121).

O Unity possui uma completa palheta de editar terrenos em suas ferramentas, com
flexibilidade e eficincia na modelagem 3D de paisagens. possvel projetar superfcies planas e
irregulares com diversos tipos de pinceis, adicionar rochas, rvores, gramas, e ainda permite a
personalizao das distncias e quantidades a serem desenhadas pelo pincel.
3.2.6

Linguagens de desenvolvimento
O Unity usa trs linguagens de script: JavaScript(UnityScript), C# e Boo. Essas
trs linguagens de script so maneiras muito diversas de acessar a mesma
funcionalidade bsica do mecanismo do jogo; trs ferramentas com o mesmo
objetivo (WATKINS, 2012, p. 334).

Para este projeto foi utilizada a linguagem JavaScript(UnityScript) por existir diversas
documentaes na comunidade Unity, e tambm mais simples para iniciantes no desenvolvimento do games. Para usurios mais experientes recomendado utilizar o C#, pois este tem
acesso de baixo nvel no sistema e no prprio Unity.
Constantemente citado neste trabalho, os Scripts "[...]contm comandos (instrues),
organizados em blocos e funes[...] Uma coleo de comandos chamada de blocos do
cdigo.[...]Os comandos podem estar em vrios locais dentro de um script, mas geralmente os
blocos de comandos so agrupados em uma funo "(WATKINS, 2012, p. 337, grifo do autor).
3.2.7

Animao
Pense nas animaes como componentes de GameObjects. Sempre que um
objeto deve ser animado no Unity, o Unity cria um arquivo separada editavel(com um rotulo .anim) que armazenar as informaes. O que isso significa
que a animao pode ser usada repetidas vezes em outros objetos(o que
um poderoso recurso por s s). Isso tambm significa que h um novo recurso
armazenado na pasta recursos.(WATKINS, 2012, p. 320)

Existem vrias ferramentas para animao no mercado, mas o prprio Unity possui um
painel para editar animaes de um objeto ou vrios objetos desde que pertenam na hierarquia

34

de pai e filho no painel Hierarchy. O Unity permite importar objetos com animaes includas
no mesmo e elas podem ser criadas em outras ferramentas 3D, como Maya, 3DStudio, Blender e
etc.
3.2.8

Renderizao

A teoria 3D possui uma vasta quantidade de informaes e detalhes tcnicos, mas para
este trabalho sero citadas as definies mas relevantes para os jogos.
Formas tridimensionais em um aplicativo 3D so criadas quando as colees de
polgonos so agrupadas. Pense nos polgonos como folhas de metal inflexveis.
As folhas de metal podem dobrar onde se conectam, mas o polgono em si
no pode. Isso significa que, quando mais polgonos esto presentes, em mais
lugares a malha pode dobrar, portanto, mais complexa a forma pode ser.[...]O
desenho dos polgonos, texturas e iluminao associados a eles chamado de
renderizao (WATKINS, 2012, p. 11/12).

Adam Watkins tambm explica como os jogos so renderizados na categoria via hardware.
Os jogos entram nessa categoria porque a placa de vdeo renderiza os polgonos
dentro do espao digital para representar o espao 3D. O hardware desenha o
que est na tela (incluindo todos os objetos, texturas e luzes), e precisa fazer
isso muitas vezes por segundo, os jogadores percebero um tremido na imagem
do jogo (WATKINS, 2012, p. 12).

A quantidade de polgonos muito importante na renderizao do jogo, ou seja, no


momento que os polgonos esto sendo desenhados no espao 3D, quanto maior a quantidade
de polgonos visualmente for, maior ser o consumo de processamento e sucessivamente o
desempenho do jogo poder ser prejudicado. A Figura 18 apresenta formas tridimensionais
com texturas criadas para o projeto ScareSupreme; o objeto a esquerda possui uma quantidade
razovel de polgonos e o da direta uma quantidade baixa de polgonos.

Figura 18: Formas tridimensionais com texturas


Fonte: Elaborada pelo Autor

35

3.2.9

Iluminao

A criao de recursos de iluminao no Unity, a cada verso, est mais poderosa. Para
desenvolvedores que possuem a verso PRO, os recursos de iluminao so bem mais completos
em relao a verso grtis. Um fator importante a ser considerado no desenvolvimento de um
jogo, a diferena visvel de iluminao de um monitor para outro, em alguns casos mais claro
ou mais escuro.
Para alterar a luz do ambiente de todo o projeto necessrio editar as propriedades do
RenderSettings. O projeto ScareSupreme, por ser um jogo de horror, foi definido utilizar a cor
preta da luz do ambiente com o intuito de deixar o mais assustador possvel. Existem quatro
tipos de GameObjects de luz no Unity, estes so Point Light, SpotLight, Directional Light e Area
lights. Todos podem ser espalhados no projeto e possuem caractersticas distintas de iluminao,
como, por exemplo, projetar a luz de uma Lanterna ou at a claridade do sol.
Tambm existe a tcnica de Backing, que consiste em pintar a luz e sombras de objetos em
outros objetos; o processador de vdeo apenas desenha a textura e no a passagem de iluminao
e sombra. O principal objetivo do Backing reduzir o custo de processamento e velocidade de
execuo.
Baking o processo de seleciona a iluminao que uma luz emite - e, mais
importante, as sombras que os objetos projetam em outros objetos - e pintar
esses valores de cores ajustados nos objetos. Pense em pintar sombras que so
projetadas ao longo de uma superfcie e pintar uma matriz em uma superfcie
que mostra a luz amarelada do poste de iluminao suja (WATKINS, 2012, p.
146).

3.2.10

Sistema de partculas
Essencialmente, partculas do Unity so minsculos cartazes ou planos(embora
a malha possa ser mais complexa) que so emitidas na cena e sempre permanecem na frente da cmera. Isso d a iluso de volume a coisas como fumaa
quando esse planos so texturizados com texturas semitransparentes. Como o
objeto de emisso-padro um lugar, a contagem de polgonos permanece baixa,
mas grandes efeitos so acionados.[...]Partculas podem ser usadas eficazmente
para fumaa, fogo, faixas, vapor e etc (WATKINS, 2012, p. 137).

Partculas no Unity so simples de serem adicionadas no projeto e os resultados dentro do


jogo sempre so atraentes. Na propriedade do GameObject especificamente no componente de
partculas possvel definir o tamanho, a quantidade, a transparncia, o tempo de visibilidade, a
direo e demais configuraes do mesmo. O desenho da textura criado em qualquer software
de edio de imagem e, desde que contenham o fundo na cor preta, o Unity reconhece esta cor
como canal alpha, deixando-o transparente em tempo de execuo, sendo assim, ficam visveis
somente as partculas como poeira, fumaas e etc.

36

3.2.11

Rust
O nico objetivo em Rust sobreviver.Para fazer isso voc ter que superar
dificuldades como fome, sede e frio. Construir uma fogueira. Construir um
abrigo. Matar animais pela carne. Proteja-se contra outros jogadores. Criar
alianas com outros jogadores e juntos criar uma fortaleza (STUDIOS, 2014).

Rust (Figura 19) um jogo de FPS Multiplayer de acesso antecipado com o principal
objetivo de sobrevivncia em terrenos perigosos que, ainda em fase de desenvolvimento na
engine do Unity, superou a barreira de 1 milho de cpias vendidas em fevereiro de 2014.

Figura 19: Interface do Jogo Rust


Fonte: http://leviathyn.com/wp-content/uploads/2014/01/rust-beta-gameplay-buildings.jpg(02 jun. 2014)

3.3
3.3.1

Outras Ferramentas Utilizadas


Autodesk Maya
O software de animao 3D, modelagem, simulao, renderizao e composio
Maya oferece um conjunto completo de recursos para animao computadorizada 3D, modelagem, simulao e renderizao em uma plataforma de produo
com alta capacidade de expanso. O Maya oferece conjuntos de ferramentas
avanados de personagens e efeitos com maior produtividade em tarefas de
modelagem, texturizao e criao de graduador (AUTODESK, 2014b).

Para este projeto a ferramenta Maya (Figura 20) foi o software mais importante antes
do Unity, pois as teclas de atalhos e a interface dos comandos so muito parecidas em ambas
ferramentas. O desenvolvimento do jogo foi baseado no livro "Criando jogos com o Unity e
Maya"de Adam Watkins e ele apresenta muitas vantagens para a gerao de objetos e cenrios que
podem ser convertidos para o Unity, embora apresente as desvantagens de ser muito complexa
e no gratuita, ainda sim vrias verses so disponibilizadas para estudantes diretamente no
site do Autodesk. Foi utilizado a verso 2012 do software e est disponvel para download em
http://www.autodesk.com/products/maya/overview.

37

Figura 20: Lanterna editada no Maya para o projeto ScareSupreme


Fonte: Elaborada pelo Autor

3.3.2

Autodesk Mudbox
Projetado por artistas profissionais das indstrias de cinema, jogos e design, o
software de escultura digital e pintura texturizada Autodesk Mudbox oferece aos
profissionais de modelagem 3D e textura a liberdade de criar se a preocupao
com detalhes tcnicos (AUTODESK, 2014a).

Para este projeto, a ferramenta Mudbox (Figura 21) foi a opo mais profissional na modelagem do monstro inimigo. Entre vrias ferramentas esta se destaca pela interao com o Maya
e por possuir as teclas parecidas com o mesmo e as do Unity. Existem vrias verses disponibilizadas para estudantes diretamente no site do Autodesk. Foi utilizado a verso 2015 do software e
est disponvel para download em http://www.autodesk.com/products/mudbox/overview.

Figura 21: Esculpindo monstro no Mudbox para o projeto ScareSupreme


Fonte: Elaborada pelo Autor

38

3.3.3

Photoshop

O Photoshop (Figura 22) uma ferramenta de edio grfica para criao e alterao de
imagem, sendo que poderosa para texturas avanadas, alm de possuir milhares de plugins
disponveis gratuitamente.
Para este projeto o Photoshop foi essencial na edio de todas as imagens e cores,
utilizando as tcnicas de texturas sem costuras, mapeamento UV e Normal mapping. disponibilizada na verso 30 dias de uso pela Creative Cloud, aps o vencimento possvel adquirir
diversos planos para continuar a utilizao da mesma. Foi utilizado a verso CS 11.0 do software
e est disponvel para download em https://creative.adobe.com/pt/products/download/photoshop.
O Adobe Photoshop o editor grfico mais avanado que existe, capaz de fazer
desde simples fotomontagens at complexas imagens 3D e ilustraes. So
muitssimas as suas funes e possibilidades, e existem numerosos tutoriais
para voc aprender a utiliz-lo (SOFTONIC, 2014).

Figura 22: Interface do Photoshop, editando mapa normal para o projeto ScareSupreme
Fonte: Elaborada pelo Autor

3.3.4

Audacity

"O Audacity um programa que permite editar, gravar, importar e exportar diversos
formatos diferentes de arquivos de udio. possvel gravar msicas e sons ao vivo ou converter
diretamente material em fitas e CDs"(TECHTUDO, 2014).
Para este projeto o Audacity (Figura 23) foi utilizado nas gravaes manuais de alguns
efeitos sonoros, como abrir portas, rudo de chave arrastando e entre outros. Alguns efeitos e
sons naturais de ambientes foram adquiridos de sites sem copyright, e editados no Audacity para
a adaptao correta dentro do jogo. Foi utilizado a verso 2.0.2 do software e est disponvel
para download em http://audacity.sourceforge.net/download/windows.

39

Figura 23: Interface do Audacity


Fonte: http://www.superdownloads.com.br/imagens/screenshots/9/3/93746,O.png(19 ago. 2014)

3.3.5

FL Studio Demo

FL Studio (Figura 24) um software completo para editar e criar msicas, possui muitos
efeitos sonoros em sua biblioteca.
Para o projeto ScareSupreme, foi utilizada a verso de demonstrao para criar loops
de ambiente e passos do personagem. A sua nica limitao no poder salvar o projeto, mas
a exportao para o formato mp3 liberada. Foi utilizado a verso 11.1.0 do software e est
disponvel para download em http://www.image-line.com/downloads/flstudiodownload.html.

Figura 24: Interface do FL Studio 11 Demo


Fonte: Elaborada pelo Autor

40

4 DESENVOLVIMENTO
Neste captulo descrito os processos de desenvolvimento do projeto ScareSupreme por
meio da descrio e explanao de seus componentes.
Para estdios e desenvolvedores independentes, o democrtico ecossistema da
Unity derruba barreiras de tempo e custo para criar jogos exclusivamente lindos.
Eles esto usando o Unity para viver do que adoram fazer - desenvolver jogos
que cativam e encantam os jogadores em qualquer plataforma (UNITY, 2014).

4.1

Mundo do jogo

ScareSupreme um jogo de terror em primeira pessoa, com o objetivo de escapar de


um ambiente escuro e assustador. Aps misteriosamente o combustvel do carro do personagem
acabar, a sua nica alternativa tentar localizar algo que solucione o seu problema em uma
construo antiga e isolada. Com grandes corredores e uma atmosfera negativa, o jogador ser
obrigado a explorar o lugar e sobreviver at o final.
4.2

Modelagem dos Cenrios

Modelar o cenrio foi um dos desafios deste projeto. O Unity disponibiliza objetos
para criao de cenrios, mas para a modelagem dos corredores e salas principais utilizou-se o
Autodesk Maya, por ser uma ferramenta mais poderosa.
A exportao do resultado da modelagem feita atravs de plugins da prprio Maya para
o formato FBX. A Figura 25 apresenta a modelagem dos corredores do jogo ScareSupreme.

Figura 25: Modelagem dos corredores e salas


Fonte: Elaborada pelo Autor

4.3

Criando um Prottipo

Aps a modelagem dos corredores e salas principais, o arquivo FBX importado para o
Unity e includo no cena atual. Foi adicionado um First Person Controller, que um objeto da

41

assets padro do Unity para controle de personagem com viso em primeira pessoa. O objetivo
principal do prottipo foi realizar testes de proporo de tamanho, movimentao de jogabilidade
no ambiente criado e possvel continuao do projeto.
4.4

Modelagem dos Objetos

Vrios objetos foram criados diretamente no Maya para interagirem ou no com o


personagem do jogo, entre eles destacam-se caixas de madeiras, chaves, galo de gasolina, mesas
e diversos objetos. As Figuras 26 e 27 apresentam objetos modelados para o jogo ScareSupreme.

Figura 26: Modelagem dos objetos mesa e galo


Fonte: Elaborada pelo Autor

Figura 27: Modelagem de diversos objetos


Fonte: Elaborada pelo Autor

4.5

Insero de texturas

Texturas de qualidades e uma boa incluso nos modelos desenvolvidos proporcionam


realismo e perceptiva de profissionalismo que podem impressionar qualquer jogador. Aps o
desenvolvimento de todos os objetos do cenrio, foram utilizadas tcnicas de mapeamento UV e
texturizao dos mesmos no prprio Maya.

42

4.5.1

Mapeamentos UV

Vrios tipos de tcnicas de mapeamento de UV (Figura 28) foram utilizadas para texturizao e logo sero citadas; mapeamento UV a tcnica de desembrulhar todas as faces do
objeto para a aplicao correta das texturas em seu plano. Foi utilizado o prprio editor de UV
do Maya, aplicado uma textura xadrez(preto e branco) em todos os planos mapeados para ter a
perspectiva do tamanho da UV e evitar imagens distorcidas aps a aplicao da texturas.

Figura 28: Mapeamento UV de diversos objetos


Fonte: Elaborada pelo Autor

4.5.1.1

Automatic Mapping

Est funo no Maya calcula e gera automaticamente o mapeamento UV do objeto em


questo, em casos de uma geometria que possuem faces para todos os eixos ou mais complexas,
o mapeamento manual o mais indicado. A Figura 29 apresenta o resultado do Automatic
Mapping.

Figura 29: Mapeamento UV de Objetos


Fonte: Elaborada pelo Autor

43

4.5.1.2

Mapeamento Manual

Utilizao do mapeamento manual mais preciso nas superfcies por ser mais cuidadoso
e trabalhoso. Foi utilizada a funo Planar Mapping (Figura 30) para todas superfcies lisas no
mesmo eixo. Por exemplo, pisos e paredes longas necessitam repeties de texturas. Para objetos
circulares foram utilizados a funo Culindrical Mapping.

Figura 30: Planar Mapping


Fonte: Elaborada pelo Autor

4.5.2

Edio de materiais e texturas

Todos os materiais criados para este projeto so do tipo lambert e sero alterados somente
quando necessrio dentro do Unity. Aps a criao do material, o mesmo aplicado no objeto
ou plano correspondente, substituindo o formato anterior em xadrez, mas mantendo o mesmo
mapeamento UV, ou seja, as imagens no sero distorcidas. A Figura 31 apresenta uma textura
aplicada no jogo ScareSupreme.
Todos as texturas aplicadas foram editadas no tamanho mltiplos de 2, o Unity consegue converter imagens de tamanhos diferentes, mas precisaria de processamento adicional no
momento da execuo do jogo.

Figura 31: Visualizao de texturas aplicadas no projeto


Fonte: Elaborada pelo Autor

44

Vrios objetos podem receber o mesmo material. Na importao para o Unity so


separados os materiais e as texturas fisicamente (Figura 32), ambos podem ser atrelados a outros
tipos de Objetos do projeto, mesmo que estes sejam diferentes dos modelos da importao.
Para Objetos que necessitam de repetio de textura, como pisos, paredes e tetos de
extensos corredores, foi editada no Photoshop a textura no tamanho 512x512 e removidas as
suas bordas utilizando a ferramenta Clone, na inteno de criar uma imagem contnua. Para
planos maiores, foram criadas texturas de tamanho 2048x2048, pois estas imagens precisam de
um detalhamento mais elaborado.

Figura 32: Visualizao das texturas importadas automaticamente para o Unity juntamente com o modelo
Fonte: Elaborada pelo Autor

4.6

Criao de Terreno

Foram modelados dois terrenos no projeto Unity aps a importao e posicionamento do


modelo principal. Um destes foi posicionado na entrada da construo enquanto o outro ficou do
lado oposto (Figura 34). A Figura 33 apresenta a insero de rochas pelo editor de terreno.

Figura 33: Rochas criadas no editor de terreno do Unity


Fonte: Elaborada pelo Autor

45

Figura 34: Floresta criada no editor de terreno do Unity


Fonte: Elaborada pelo Autor

4.7

Efeitos de renderizao

Aps a concluso dos passos anteriores, foram adicionados alguns efeitos do prprio
editor do Unity no projeto. A princpio o Skybox foi adicionado apresentando uma noite de lua
cheia, mas para o propsito do jogo o mesmo foi removido e ativado a nebrina(Fog) (Figura 35)
com a cor prxima ao preto. A luz de ambiente est na mesma cor da neblina, com o objetivo
de intensificar o ambiente noturno e tambm para o personagem no enxergar objetos a longa
distncia.

Figura 35: Ajustando o efeito neblina no Unity


Fonte: Elaborada pelo Autor

4.8

Assets e modelos Importados

Para este projeto foram importados vrios assets da comunidade, e tambm as que vieram
por padres na instalao do Unity. Na criao de um novo projeto existe a possibilidade de
selecionar quais destes pacotes sero importados, mas posteriormente podem ser acionados
manualmente no projeto.
Foram utilizados os Assets padres de terreno, controle de personagem, partculas, Skyboxes e Water (Figura 36). Assets da comunidade foram para rvores, chuvas e tambm foram
adquiridos alguns modelos de sites externos, como carro e camas de dormir.

46

Figura 36: Incluindo lago com o Assets Water


Fonte: Elaborada pelo Autor

4.8.1

Partculas

Aps importar a Assets de partculas, as mesmas foram includas em diversos lugares


no projeto, como fumaa de um lago (Figura 37), fumaa de um gerador ligado e poeira de um
antigo porto. Algumas esto visivelmente por padro, ou esperando a sua ativao em uma
determinada ao do jogador.
As partculas foram editadas individualmente no Unity e a sua texturas foram personalizadas no Photoshop.

Figura 37: Partculas de vapor totalmente personalizadas


Fonte: Elaborada pelo Autor

4.9

Shaders avanados e iluminao


Normal mapping uma tcnica de computao grfica para simular imperfeies e rugosidades no presentes na geometria do modelo. Para isso, perturbamos as normais do objeto e a usamos no clculo das equaes de iluminao. A
geometria do material no alterada e isso implica que as silhuetas dos modelos
no sofreram alteraes, apenas nos interiores que teremos a tradicional iluso
de aumento de polgonos (PASTOR, 2011).

Foi aplicado em quase todos os materiais deste projeto a tcnica de shaders avanados
(Figura 38), que a criao de Normal mapping a partir das suas texturas e a alterao dos

47

shaders para bumped Specular. Desta forma, as superfcies estaro mais tteis em suas aparncias,
midas e ainda mais realistas na presena de luz em sua direo. As Figuras 39 e 40 apresentam
texturas com e sem aplicao de shaders.

Figura 38: Material com shader avanado


Fonte: Elaborada pelo Autor

Com o auxilio do plugin da Nvidia, o mapa normal foi extrado a partir dos mapa de
cores das texturas de praticamente todos os objetos do jogo.

Figura 39: Comparao de Textura simples e textura com Shaders avanados


Fonte: Elaborada pelo Autor

A iluminao do jogo est principalmente na lanterna do jogador. Por ser um jogo de


ambiente escuro, foram utilizados poucos pontos de luzes. Quando todas as aes e tarefas forem
executadas pelo jogador, a sala final e as luzes dos corredores da construo sero iluminados,
indicando o caminho para a vitria. Foi utilizado o objeto SpotLight para dar alguma iluminao
ao ambiente.

48

Figura 40: Comparao de textura simples e textura com Shaders avanados


Fonte: Elaborada pelo Autor

4.10

Roteiro de eventos

Foram definidos todos os passos que o jogador precisa efetuar para conseguir avanar na
partida. Em vrios momentos o mesmo precisar encontrar determinados itens ou aes para
abrir uma porta ou porto. Este roteiro programado tem a vantagem de ter poucas chances de
falhas no jogo, mas caso queira iniciar uma nova partida, praticamente o roteiro ser parecido ao
anterior, mesmo que foi programado para vrios itens mudarem de lugar aleatoriamente.
4.11

Coliso

Foi usado o sistema padro do prprio Unity para as colises dos personagens, itens,
mapa e triggers. O Character Controller define o raio de coliso do corpo do personagem. Para
cada objeto importado ativado o Generate Colliders em propriedades, antes ou depois de
incluir na Cena, desta forma possvel colidir sem atravessar o mesmo. Cada objeto pode ter
o seu formato de coliso (Figura 41) editado manualmente no visualizador Inspector em suas
propriedades, e objetos criados diretamente no Unity recebem automaticamente o collider mais
apropriado para o seu formato.

Figura 41: Componente de coliso do armrio de madeira


Fonte: Elaborada pelo Autor

49

4.12

Gatilhos e aes

Gatilhos no Unity so chamados de trigger (Figura 42), estes so um dos itens mais
importantes e usados em um desenvolvimento de jogos. Define quando determinado som deve ser
tocado, uma porta a ser aberta, um personagem teleportar, um monstro aparecer ou desaparecer.
Foram usados cubos para os trigger, pois desta forma, o caminho que o jogador percorrer
ser totalmente preenchido, impossibilitando o mesmo de no acionar os gatilhos plantados.
O componente renderer esta desativado, tornando-o invisvel na visualizao do jogador e o
componente de Coliso ativado como um trigger na propriedades deste GameObject. Tambm
foram associados scripts personalizados para as aes dos trigger.

Figura 42: Gatilho de ao instalado dentro de sala


Fonte: Elaborada pelo Autor

Os triggers somente foram usados quando o raio raycast no encaixasse na ao em


questo. Pois podem consumir processamento com muitos Triggers em um cenrio.
Para este projeto foi utilizado a tcnica Raycast (Figura 43) que consiste em formar um
raio invisvel, e o mesmo acompanha a viso do jogador, identificando tudo aquilo que esteja em
sua frente. Desta forma, possvel identificar qual objeto o personagem est olhando e ativar
uma ao determinada. Foi criado apenas um Script com as regras do Raycast e associado a
cmera de visualizao principal. Este contm a maior quantidade de linha programada, pois
possui muitos objetos do jogo associado em suas variveis.
4.13

Personagens

Foi decidido criar dois personagens neste projeto. O primeiro controlado pelo jogador
em pessoa e visvel somente a lanterna do mesmo; o segundo personagem um monstro
que parece em diversos lugares aleatoriamente.
1o

4.13.1

Modelagem dos Personagens

Apenas o personagem monstro possui uma forma fsica modelada, e inicialmente foi
desenvolvido na ferramenta Maya (Figura 44) com poucos detalhes, mas com um certo aspecto

50

Figura 43: Raio Raycast projetado


Fonte: Elaborada pelo Autor

assustador.

Figura 44: Personagem modelado no Maya e importado para o Unity


Fonte: Elaborada pelo Autor

Aps vrias pesquisas, foi decidido modelar novamente o personagem na ferramenta


MudBox (Figuras 45 e 46), que tambm do Autodesk e totalmente voltada para esculturas,
objetos e personagens. Na importao do modelo, foi necessrio diminuir a qualidade, pois
dentro do jogo apresentava travamentos no momento de visibilidade na cmera do personagem
controlvel.
4.13.2

Movimentao do personagem jogvel

As movimentaes do personagem jogvel esto inclusas nas assets padres do Unity e


podem ser importadas na criao do projeto ou posteriormente. Foram feitas algumas alteraes
nas propriedades, como acelerao dos passos, altura do pulo e todos sendo controlados pelo
teclado; a viso que simula a movimentao da cabea feita pelo mouse.

51

Figura 45: Rosto do monstro modelado no Mudbox


Fonte: Elaborada pelo Autor

Figura 46: Resultado final do monstro modelado no Mudbox


Fonte: Elaborada pelo Autor

4.13.3

Movimentao do personagem monstro e Inteligncia Artificial

A movimentao do personagem monstro definido por scripts em diferentes momentos;


podem ser ativados por raycast em objetos e triggers. Um dos scripts verificar o posicionamento
atual do personagem jogvel e efetuar clculos para criar um raio circular com o objetivo de
teleportar o mostro nas proximidades. O outro script utiliza o algortimo Pathfinding que vem
integrado no Unity para identificar o ambiente e os possveis caminhos que o mostro deve
perseguir.
4.14

Mecnica de Combate

Aps concludo todas as movimentaes, foram criadas as regras de combate entre os dos
personagens. O jogador no conseguir derrotar o mostro, mas poder morrer desde que a sua
sanidade alcance o valor 100. O script desenvolvido para o controle das aes do personagem
jogvel possui a funo update, que um mtodo integrado no prprio Unity e qualquer cdigo
inserido dentro do mesmo executado a cada quadro (ou frame) do jogo, ou seja, foi utilizado a
tcnica raycast em conjunto a funo update para quando o personagem estiver olhando para
o mostro a sua sanidade aumente (Figura 47), causando a morte instantnea do jogador caso

52

alcanar o valor 100. Caso o jogador consiga escapar de um possvel ataque do monstro, isso
ocorre quando existir uma pequena distncia entre ambos ou no estiver mais olhando para o
mesmo, a sua sanidade voltar ao normal a cada update.

Figura 47: Jogador com sanidade alta e com risco de morte


Fonte: Elaborada pelo Autor

4.15

Msicas e Efeitos Sonoros

Para este projeto foi criada uma pasta Sound dentro do diretrio principal no visualizador
Project, onde so arrastados todos os sons usados no jogo. O Unity suporta muitos tipos de
arquivos de som e foram usados no formato mp3 e wav (WAVEform audio format).
Para cada som foi criado um Gameobject, includo o componente Audio Source (Figura
48) que manter as propriedades do som e arrastado-o at o lugar aonde deseja que o mesmo seja
reproduzido. Sons de passos, abrir portas, ambientes e outros, foram adicionados na hierarquia
do Player Controller na visualizao Hierarchy, ou seja, sempre estar acompanhando o jogador
para que sejam reproduzidos por algumas aes especificas, no mesmo volume frequente e
tambm podendo exclu-los quando necessrio.
Quase todos os sons tiveram que ser editados no Audacity, principalmente para reduzir o
tempo de execuo, remoo de rudo, cortar a faixa de udio ou at desacelerao. Para sons de
passos e repetitivos com pequenas diferenas no tempo, foi utilizado o FL Studio Demo que
bastante simples e no requer conhecimento profissional de edio.
Os sons de ambiente foram adquiridos no site www.freesound.org que uma base de
dados em udio colaborativa de Creative Commons Licensed sounds que especialmente
para propsitos de udio que no possuem copyright; muitos dos efeitos sonoros como chave
arrastando, destrancando portas e etc. Foram gravados diretamente pelo microfone do Microsoft
Headset: LifeChat LX-3000.

53

Figura 48: Objeto que simula som do mar


Fonte: Elaborada pelo Autor

4.16

Animaes de objetos

O prprio Unity possui um editor de animaes e alguns objetos dentro deste projeto
foram editados com est ferramenta. A maioria das portas so movimentadas pressionando o
boto esquerdo do mouse e outras arrastando-as para os lados, mas algumas so abertas ou
fechadas por animaes criadas referente a este objeto, e acionadas pela distancia, clique do
mouse ou triggers. Algumas animaes foram compartilhadas para o mesmo tipo de objeto.
Foram criados vrias animaes para diversos objetos como caixas de madeira, travesseiro, pedra,
monstro e botes de acionamento. As Figuras 49 e 50 apresentam a edio de animao da porta
inicial.

Figura 49: Animao da porta inicial


Fonte: Elaborada pelo Autor

4.17

Objetivos do jogo

O objetivo do jogo explorar toda a construo abandonada e encontrar itens para acionar
novas aes para liberaes de eventos bloqueados. exibida a mensagem para retornar ao carro
inicial aps todas as tarefas serem concludas com sucesso, quando ocorrer a aproximao com
este Objeto ser finalizada a partida atual com vitria.

54

Figura 50: Animao da porta inicial


Fonte: Elaborada pelo Autor

Para o jogo ficar mais desafiador, o personagem corre o risco de morte em determinadas
trajetrias do caminho e quando visualizar o monstro inimigo a uma proximidade muito baixa.
4.18

Transies de telas e opes

Para este projeto as transies de telas ou Scenes so efetuadas entre o menu inicial
(Figura 51), o jogo em si, que o proposito principal, e a tela de vitria.

Figura 51: Tela Inicial do jogo


Fonte: Elaborada pelo Autor

A tela inicial carregada automaticamente na execuo do jogo e pode ser chamada na


tela de vitria; existe o boto de informaes do jogo e o boto iniciar que o responsvel de
carregar a tela do jogo. Dentro do jogo possvel abrir um menu de botes apertando a tecla
Esc (Figura 52), no uma transio de tela, ou seja, pode ser chamado a qualquer momento e
possui apenas as opes de sair e reiniciar a partida.
O menu de vitoria executado quando o jogador conclui com sucesso todas as tarefas
dentro do jogo. A Figura 53 apresenta o cdigo-fonte da transio da tela inicial para a tela do
jogo.

55

Figura 52: Menu aberto dentro do jogo


Fonte: Elaborada pelo Autor

Figura 53: Boto de chamada da tela de jogo


Fonte: Elaborada pelo Autor

4.19

Tutoriais e mensagens de ajuda

Na tela de carregamento do jogo existe o boto input que define os comandos de movimentao do personagem. Jogadores acostumados com jogos em primeira pessoa provavelmente
no tero problemas para se acostumarem. A cada movimento do personagem dentro do jogo,
sempre so apresentadas algumas mensagens explicando ou alertando o que necessrio para
avanar nos eventos, desta forma o mesmo no ficar perdido dentro do ambiente.
4.20

Compilando o projeto

Obrigatoriamente para cada projeto criado no Unity necessrio a incluso das cenas
usadas na tela de configurao de compilao e escolher qual plataforma ser destinada o jogo
a ser compilado. Este projeto foi totalmente desenvolvido para ser jogado usando o mouse e o
teclado, sucessivamente foi escolhido a compilao para PC com opo de Windows, MAC OS
e Linux. A Figura 54 apresenta as configuraes da tela de compilao do jogo e a Figura 55
apresenta a execuo do jogo aps a compilao.
4.21

Testes

Durante o desenvolvimento deste projeto vrias etapas de testes foram efetuadas para
identificar possveis falhas no jogo, principalmente quando ocorriam alteraes de cdigos,
sons ou demais objetos. Apenas o desenvolvedor do jogo tm acesso aplicao e a execuo

56

Figura 54: Painel de propriedades da compilao


Fonte: Elaborada pelo Autor

Figura 55: Jogo compilado


Fonte: Elaborada pelo Autor

57

diretamente na ferramenta de desenvolvimento. Na fase alfa, o jogo estar aberto para possveis
testadores.
4.22

Manuteno

Este jogo receber atualizaes e novas funcionalizadas em todos os aspectos. Desenvolvimento de melhorias nos scripts dos principais controladores, com o objetivo de simplificar as
manutenes. Ser criado um esqueleto para o personagem monstro, com o objetivo de tornar as
suas movimentaes mais realistas. Sero criados novos efeitos sonoros, animaes de objetos,
correes de bugs e melhorias na dificuldade do jogo.
4.23

Dificuldades do projeto

A maior dificuldade durante todo o estudo e criao deste trabalho estava na modelagem
dos objetos no Maya, pois foi necessrio muito tempo e dedicao para os detalhes, com o
objetivo de desenvolver um jogo mais atraente e divertido.

58

5 CONCLUSO
De uma maneira geral, o projeto proposto em questo foi iniciado seguindo uma pequena
anlise sobre o crescimento mundial do mercado de jogos, pois estima-se que a receita da
industria de games ultrapasse 86 bilhes de dlares em 2016 (WARMAN, 2013). A fim de
compreender todos os passos para o desenvolvimento de jogos profissionais, foi necessrio
estudar algumas etapas dos processos em geral.
O estudo sobre a tecnologia Unity foi essencial para a realizao deste trabalho, pois
a simplicidade na codificao no requer conhecimentos especficos na rea de games, desde
que o desenvolvedor tenha conhecimentos em programao. H tambm reduo no tempo
de desenvolvimento por prover a manipulao de praticamente todos os itens de uma forma
simples e rpida. A verso grtis possui algumas limitaes principalmente nos recursos de
iluminao e efeitos, mesmo assim possvel a converso do jogo para vrias plataformas de
consoles, computadores pessoais e celulares. Com um estudo mais aprofundado na iluminao,
pode-se diminuir o processamento em tempo real e uma viso mais realista das texturas quando
combinados com shaders avanados. O Unity dispe de recursos padres e prontos para serem
utilizados e esto disponveis pacotes para download em sua comunidade online.
Durante o desenvolvimento, o Unity apresentou limitaes referente a modelagem de
objetos 3D. Vrias ferramentas foram utilizadas em conjunto para o proposito final, como para
a modelagem da maioria dos objetos 3D, foi utilizado o Autodesk Maya; as texturas destes
objetos foram criadas e editadas na ferramenta Adobe Photoshop. Aps a importao para o
Unity, alguns destes itens foram trocados ou anexados a outros objetos 3D, o que possibilita a
manipulao de matrias entre os objetos. A utilizao das ferramentas Audacity e FL Studio
Demo na edio de udio como um todo foram cruciais para a concluso acelerada do projeto.
Outro contratempo foi a modelagem do personagem inimigo do jogador, que inicialmente foi
criado no Autodesk Maya. Como o resultado final ficou bastante abaixo do esperado, foi decidido
desenvolver um novo modelo a partir da ferramenta Autodesk MudBox. Esta tem o objetivo de
trabalhar nas modelagens de objetos, personagens e esculturas. Esta alternativa demandou novos
estudos da modelagem 3D.
Conclui-se que o Unity uma excelente ferramenta para desenvolvimento de jogos
profissionais para diversas plataformas do mercado, embora a necessidade do uso de outras
ferramentas para o sucesso visivelmente percebida no desenvolvimento de qualquer projeto.

59

REFERNCIAS BIBLIOGRFICAS
2010 TOTAL CONSUMER SPEND ON ALL GAMES CONTENT IN THE U.S.
ESTIMATED BETWEEN 15.4T O15.6 BILLION. NPD Group, n. 110113. Disponvel em:
<http://npd.com/lps/standard/EntertainmentTrends.html>. Acesso em: 04 abr. 2011. Nenhuma
citao no texto.
3DMAGICMODELS. 3d Magic Models. 2014. Disponvel em: <https://3dmagicmodels.com>.
Acesso em: 08 jul. 2014. Nenhuma citao no texto.
ADL. ADL 3D Repository. 2014. Disponvel em: <http://3dr.adlnet.gov/Public/Model.aspx?
ContentObjectID=adl:640>. Acesso em: 11 ago. 2014. Nenhuma citao no texto.
AUTODESK. Autodesk mudbox. 2014. Disponvel em: <http://www.autodesk.com.br/adsk/
servlet/index?siteID=1003425&id=11485463>. Acesso em: 11 set. 2014. Citado na pgina 37.
AUTODESK. Software de animao computadorizada maya autodesk. 2014. Disponvel em:
<http://www.autodesk.com.br/products/maya/overview>. Acesso em: 19 ago. 2014. Citado na
pgina 36.
BERKEBILE, B. iTween for Unity by Bob Berkebile. 2014. Disponvel em: <http:
//itween.pixelplacement.com/>. Acesso em: 10 mar. 2014. Nenhuma citao no texto.
BORGO. Pathfinder. 2014. Disponvel em: <http://unity3dbrasil.com/showthread.php?tid=
205>. Acesso em: 30 jun. 2014. Nenhuma citao no texto.
DISHFUNCTIONALDESIGNS. Dishfunctional Designs. 2014. Disponvel em: <http:
//dishfunctionaldesigns.blogspot.com.br/2013/03/salvaged-repurposed-vintage-lockers.html>.
Acesso em: 28 jul. 2014. Nenhuma citao no texto.
FFONTS. WoodenCasket. 2014. Disponvel em: <http://pt.ffonts.net/WoodenCasket.font.
download>. Acesso em: 22 jul. 2014. Nenhuma citao no texto.
GAME DEVELOPMENT. [S.l.], 2011. Disponvel em: <http://create.msdn.com/en-US/
education/gamedevelopment>. Acesso em: 28 fev. 2011. Nenhuma citao no texto.
HAINESM, E. DragObject. 2014. Disponvel em: <http://wiki.unity3d.com/index.php?title=
DragObject>. Acesso em: 11 set. 2014. Nenhuma citao no texto.
INTRODUCAO AO MICROSOFT XNA - Desenvolvendo Jogos em casa.
Bruno Amaral. Disponvel em: <http://brunoamaral.wordpress.com/2008/06/03/
desenvolvendo-jogos-com-xna-microsoft-parte-1/>. Acesso em: 10 maio. 2011. Nenhuma
citao no texto.
INTRODUCING FL Studio 11. Disponvel em: <http://www.image-line.com/flstudio/l>. Acesso
em: 19 ago. 2014. Nenhuma citao no texto.
KING, T. Texture King. 2014. Disponvel em: <http://www.textureking.com/>. Acesso em: 20
abr. 2014. Nenhuma citao no texto.
MANIACOSPORFILME. Blog dos Manacos por Filme. 2011. Disponvel em: <http:
//maniacosporfilme.files.wordpress.com/2011/08/amaldic3a7oados-pelo-demc3b4nio-3.png>.
Acesso em: 07 jul. 2014. Nenhuma citao no texto.

60

NAGAOKA, T. T. Desenvolvimento de um jogo integrado rede social facebook.


Universidade de So Paulo Instituto de matemtica e estatstica, 2013. Disponvel em:
<http://bcc.ime.usp.br/principal/tccs/2013/thiago/docs/Thiago_Nagaoka-Monografia.pdf>.
Acesso em: 22 fev. 2014. Nenhuma citao no texto.
NEWS AND UPDATES. International Game Developers Association. Disponvel em:
<http://www.igda.org/>. Acesso em: 20 mai. 2014. Nenhuma citao no texto.
NOVAK, J. Desenvolvimento de Games. 2. ed. So Paulo: Cergage Learning, 2010. Citado 11
vezes nas pginas 18, 20, 21, 22, 23, 24, 25, 26, 27, 28 e 29.
NVIDIA. Nvidia texture tools for adobe photoshop. Disponvel em: <https://developer.nvidia.
com/nvidia-texture-tools-adobe-photoshop>. Acesso em: 05 mar. 2014. Nenhuma citao no
texto.
OPENGAMEART. Beds, mattresses. 2014. Disponvel em: <http://opengameart.org/content/
beds-mattresses>. Acesso em: 02 abr. 2014. Nenhuma citao no texto.
PALACE, T. CG Textures. 2014. Disponvel em: <http://www.cgtextures.com/>. Acesso em:
10 fev. 2014. Nenhuma citao no texto.
PALACE, T. Texture Palace - textures for photoshop free! 2014. Disponvel em:
<http://www.texturepalace.com/page/5/>. Acesso em: 02 fev. 2014. Nenhuma citao no texto.
PASTOR, T. D. Normal mapping com shaders. pontov, 2011. Disponvel em: <http:
//www.pontov.com.br/site/xna/70-shaders/274-normal-mapping-com-shaders>. Acesso em: 10
ago. 2014. Citado na pgina 46.
SKY. Scripts teis para seus jogos na unity (java). 2012. Disponvel em: <http:
//www.stageweb.com.br/forum/24-unity3d/24-scripts-uteis-para-seus-jogos-na-unity-java.
html#axzz3AgcYTWAO>. Acesso em: 26 mai. 2014. Nenhuma citao no texto.
SMITH, W. Mayangs Free Textures. 2014. Disponvel em: <http://mayang.com/textures/>.
Acesso em: 02 fev. 2014. Nenhuma citao no texto.
SOFTONIC. Adobe Photoshop 2014. 2014. Wiki do abnTeX2. Disponvel em:
<http://adobe-photoshop.softonic.com.br/>. Acesso em: 02 jun. 2014. Citado na pgina 38.
SPEEDTUTOR. Horror game series - Part 1: Creating a sanity meter in Unity3D.
2014. Disponvel em: <https://www.youtube.com/watch?v=ECd2a8c0Vco&list=
UUwYuQIa9lgjvDiZryUVtFGw>. Acesso em: 25 mai. 2014. Nenhuma citao no texto.
SPEEDTUTOR. [Unity3D] Horror game series: Part 2B - Enemy Scare. 2014. Disponvel
em: <https://www.youtube.com/watch?v=QtplzSEDu58&list=UUwYuQIa9lgjvDiZryUVtFGw>.
Acesso em: 06 jun. 2014. Nenhuma citao no texto.
SPEEDTUTOR. [Unity3D] Horror game series: Part 4 - Fading Torch. 2014. Disponvel em:
<https://www.youtube.com/watch?v=IfJXttE3h04&list=UUwYuQIa9lgjvDiZryUVtFGw>.
Acesso em: 02 jul. 2014. Nenhuma citao no texto.
STUDIOS, F. Rust. 2014. Disponvel em: <hhttp://store.steampowered.com/app/252490/>.
Acesso em: 02 maio. 2014. Citado na pgina 36.
TEAM, F. Freesound. 2014. Disponvel em: <http://www.freesound.org/>. Acesso em: 05 ago.
2014. Nenhuma citao no texto.

61

TECHNOLOGIES, U. Asset Store. 2014. Disponvel em: <https://www.assetstore.unity3d.com/


en/>. Acesso em: 24 mai. 2014. Nenhuma citao no texto.
TECHNOLOGIES, U. Unity Community. 2014. Disponvel em: <http://forum.unity3d.com>.
Acesso em: 10 set. 2014. Nenhuma citao no texto.
TECHTUDO. Audacity 2.0.5. 2014. Disponvel em: <http://www.techtudo.com.br/tudo-sobre/s/
audacity.html>. Acesso em: 15 ago. 2014. Citado na pgina 38.
UNITY. Unity - game engine. 2014. Disponvel em: <http://unity3d.com/>. Acesso em: 25 ago.
2014. Citado 3 vezes nas pginas 30, 32 e 40.
VENTER, J. Rust sales top 1 million. Disponvel em: <http://www.ign.com/articles/2014/02/10/
rust-sales-top-1-million>. Acesso em: 04 maio. 2014. Nenhuma citao no texto.
WARMAN, P. Global games market grows to $86.1bn in 2016. Newzoo, 2013. Disponvel em:
<http://www.newzoo.com/press-releases/global-games-market-grows-to-86-1bn-in-2016/>.
Acesso em: 22 abr. 2014. Citado 2 vezes nas pginas 15 e 58.
WATKINS, A. Criando Jogos Com Unity e Maya - Como Desenvolver Jogos 3D Divertidos
e de Sucesso. 1. ed. So Paulo: ED CAMPUS, 2012. Citado 4 vezes nas pginas 32, 33, 34 e 35.
WATKINS, A. Creating 3D Games with Unity & Maya. 2014. Disponvel em:
<http://www.creating3dgames.com/>. Acesso em: 02 Fev. 2014. Nenhuma citao no texto.

ANEXOS

63

ANEXO A PRINCIPAIS SCRIPTS


Este projeto foi baseado no livro "Criando jogos com o Unity e Maya"de Adam Watkins, ele incentiva o uso da linguagem JavaScrit para iniciar a aprendizagem da programao,
e tambm muitas vezes referenciado como UnityScript. Vrios scripts foram escritos no
desenvolvimento deste jogo; entrem eles, RaycastFuncoesScript.js, GameController.js, PlayerController.js e o OpenSceneButtonsScript.js.
RaycastFuncoesScript.js: Responsvel por criar o Raio Rayscast (Figura 43); este determina qual objeto est a frente do personagem controlvel e qual ao devera ser acionada. o
principal script do projeto, pois a maioria das interaes esto includas em seu cdigo. Tambm
mais leve para o processamento das aes em vez do uso de Triggers espalhados pelo jogo.
1
2

/ / f u n c a o U p d a t e do R a y c a s t
f u n c t i o n Update ( ) {

Screen . showCursor = f a l s e ;
d i s t a n c i a R a y c a s t = 100;
distanciaObjeto = 2.7;

4
5
6
7

var h i t : RaycastHit ;

8
9
10

11

12

13
14

15

//

i f ( Physics . Raycast ( t r a n s f o r m . p o s i t i o n , t r a n s f o r m . forward , hit ,


d i s t a n c i a R a y c a s t ) ) { / / C r i a o r a i o a f r e n t e do j o g a d o r
Debug . DrawLine ( t r a n s f o r m . p o s i t i o n , h i t . p o i n t ) ; / / Desenha o r a i o p a r a
o mecanismo de r a y c a s t i n g
Debug . Log ( " o O b j e t o s e l e c i o n a d o eh " + h i t . c o l l i d e r . g a m e O b j e c t .
name+ " d i s t a n c i a eh "+ h i t . d i s t a n c e ) ; / / E s c r e v e o nome do o b j e t o s o b r e o
r a i o que i n c i d e no c o n s o l e
}
i f ( ! Physics . Raycast ( t r a n s f o r m . p o s i t i o n , t r a n s f o r m . forward , hit ,
d i s t a n c i a R a y c a s t ) ) / / m e l h o r a a p e r f o r m a n c e do s c r i p t
return ;

16
17

PlayerController . AtivaCrossahairs = false ;

18
19

20

21
22
23
24

25

i f ( h i t . c o l l i d e r . g a m e O b j e c t . name == " g a l a o " && h i t . d i s t a n c e <=


d i s t a n c i a O b j e t o && a b r i u P o r t a F i n a l && ! p e g o u G a l a o G a s o l i n a ) { / /
v e r i f i c a r s e o o b j e t o que i n c i d e tem o nome do o b j e t o d e s e j a d o
P l a y e r C o n t r o l l e r . A t i v a C r o s s a h a i r s = t r u e ; / / A p a r e c e uma m a o z i n h a no
c u r s o r do mouse
i f ( I n p u t . GetMouseButtonDown ( 0 ) ) { / / a p e r t a r o b o t a o do mouse
pegouGalaoGasolina = t r u e ;
sustoGalaoMostro ( ) ;
g u i T e x t O b j e c t . GetComponent ( E n t r a d a I n s t a l a c a o G U I T e x t S c r i p t ) .
pegarGalao ( ) ;
D e s t r u i r O b j e t o s ( h i t . c o l l i d e r . gameObject ) ;

64

26

27
28

...

GameController.js: responsvel por controlar as mudanas de estado das variveis na


partida atual. Em sua funo Update, quando o jogador apertar a tecla ESC, ser aberto o menu
de opes e tambm quando a sua sanidade alcanar o valor 100, ser chamada a funo de
morte dentro do prprio script, ou seja, aqui a morte do personagem controlvel.
1
2
3
4
5
6
7

v a r cam : GameObject ;
v a r v o l t a r B u t t o n : GameObject ;
v a r s a i J o g o B u t t o n : GameObject ;
v a r s a i r P a r t i d a B u t t o n : GameObject ;
v a r voceMorreuLogo : GameObject ;
var estaMorto : boolean = f a l s e ;
p r i v a t e v a r pauseMenu : b o o l e a n = f a l s e ;

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

f u n c t i o n Awake ( ) {
Time . t i m e S c a l e = 1 ;
voltarButton . SetActive ( false ) ;
saiJogoButton . SetActive ( false ) ;
sairPartidaButton . SetActive ( false ) ;
voceMorreuLogo . S e t A c t i v e ( f a l s e ) ;
}
f u n c t i o n Update ( ) {
i f ( I n p u t . GetKey ( KeyCode . E s c a p e ) && ! pauseMenu && ! e s t a M o r t o ) {
Escape ( ) ;
} e l s e i f ( I n p u t . GetKey ( KeyCode . E s c a p e ) && pauseMenu &&! e s t a M o r t o ) {
Unpause ( ) ;
}
i f ( P l a y e r C o n t r o l l e r . c u r r e n t S a n i t y >= 1 0 0 . 0 f ) {
estaMorto= true ;
MenuDeMorte ( ) ;
}
}
function ReiniciarPartida () {
Screen . showCursor = f a l s e ;
PlayerController . currentSanity =20.0;
A p p l i c a t i o n . L o a d L e v e l ( " ProjetoTCCgameCena " ) ;
Time . t i m e S c a l e = 1 ;
cam . GetComponent ( " C h a r a c t e r M o t o r " ) . e n a b l e d = t r u e ;
cam . GetComponent ( " MouseLook " ) . e n a b l e d = t r u e ;
cam . GetComponent ( " F P S I n p u t C o n t r o l l e r " ) . e n a b l e d = t r u e ;
AnimacaoTriggerScript . portaFechada
= false ;
AnimacaoTriggerScript . finalizarSalaSangrenta
= false ;
AnimacaoTriggerScript . finalizarFecharSalaSangrenta
= false ;
BanheiroScript . jaAtivouMonstroCorredor
= true ;

65

MonstroController . AtivaMonstro
PonteTriggerScript . jaAtivouMonstroPonte
P o n t e T r i g g e r S c r i p t . CairNaAaguar
estaMorto= f a l s e ;

39
40
41
42
43
44

= true ;
= false ;
= false ;

}
...

PlayerController.js: responsvel por controlar a sanidade do jogador, movimentaes da


lanterna e est anexado no GameObject do personagem controlvel em forma de componente do
tipo script. Possui a funo aumentarInsanidade que chamada atravs do script RaycastFuncoesScript.js, com o comando playerGame.GetComponent(PlayerController).aumentarInsanidade(),
ou seja, est funo somente executada por aes decididas em outro script. Em sua funo
Update verificado o valor da varivel currentSanity; a viso do jogador prejudicada conforme
este valor ir aumentando, da mesma forma que a viso melhorada caso este valor diminuir. O
script GameController.js tambm monitora a varivel currentSanity, para quando o seu valor
chegar ao valor 100 e sucessivamente acionar a funo de morte do jogador;
1
2
3
4
5
6
7
8
9
10
11
12
13

p r i v a t e v a r S o m C l i q u e L a n t e r n a : GameObject ;
p r i v a t e v a r l a n t e r n a J o g o : GameObject ;
p r i v a t e var lanternaLigada : boolean ;
s t a t i c var c u r r e n t S a n i t y : f l o a t = 20.0;
var maxSanity : f l o a t = 1 0 0 . 0 ;
var minSanity : f l o a t = 0 . 0 ;
var scarePerc : f l o a t = 20.0;
p r i v a t e v a r E f e i t o S a n i d a d e : GameObject ;
var feedbackMonstro : Renderer ;
v a r B o t a o L a n t e r n a : GameObject ;
s t a t i c var AtivaCrossahairs : boolean= f a l s e ;
v a r C r o s s a h a i r s : GameObject ;

14
15
16

17

18
19
20
21

22
23
24
25
26

f u n c t i o n Awake ( ) { / / C a r r e g a n d o
S o m C l i q u e L a n t e r n a = g a m e O b j e c t . F i n d ( "SomC l i q u e L a n t e r n a " ) ; / / a t r i b u i n d o
o b j e t o s n a s v a r i a v e i s em v e z de m a n u a l m e n t e
l a n t e r n a J o g o = gameObject . Find ( " L a n t e r n a " ) ; / / a t r i b u i n d o o b j e t o s nas
v a r i a v e i s em v e z de m a n u a l m e n t e
}
function Start () {
lanternaLigada = true ;
iTween . MoveBy ( B o t a o L a n t e r n a , iTween . Hash ( " y " , 0.004 , " e a s e T y p e " , "
l i n e a r " , " time " ,0.0001) ) ;
E f e i t o S a n i d a d e = GameObject . F i n d ( " P l a y e r " ) ;
}
f u n c t i o n Update ( ) {
if ( AtivaCrossahairs ){
Crossahairs . SetActive ( true ) ;

66

} else Crossahairs . SetActive ( false ) ;


/ / d e s l i g a e a c e n d e l a n t e r n a com a n i m a c a o
i f ( I n p u t . GetKeyUp ( KeyCode . F )&& l a n t e r n a L i g a d a ) {
SomCliqueLanterna . audio . Play ( ) ;
lanternaJogo . l i g h t . enabled = f a l s e ;
lanternaLigada = false ;
iTween . MoveBy ( B o t a o L a n t e r n a , iTween . Hash ( " y " , 0 . 0 0 4 , " e a s e T y p e " , "
l i n e a r " , " time " ,0.0001 ) ) ;

27
28
29
30
31
32
33

34

} e l s e i f ( I n p u t . GetKeyUp ( KeyCode . F )&& ! l a n t e r n a L i g a d a ) {


SomCliqueLanterna . audio . Play ( ) ;
lanternaJogo . l i g h t . enabled = true ;
lanternaLigada = true ;
iTween . MoveBy ( B o t a o L a n t e r n a , iTween . Hash ( " y " , 0.004 , " e a s e T y p e " , "
l i n e a r " , " time " ,0.0001) ) ;
}
/ / f i m d e s l i g a e a c e n d e l a n t e r n a com a n i m a c a o
/ / C o n t r o l e de s a n i d a d e
i f ( c u r r e n t S a n i t y < 100)
{

35
36
37
38
39

40
41
42
43
44
45
46
47
48

c u r r e n t S a n i t y = Time . d e l t a T i m e ;

49
50

...

OpenSceneButtonsScript.js: responsvel por controlar as aes da tela principal do jogo.


Quando clicado ou somente arrastar o mouse por cima de algum dos botes, o mesmo decide
qual ao executar, desde clarear uma figura a carregamento do nvel principal do jogo.
//atualiza posio do objeto
1
2
3
4

5
6

p r i v a t e v a r d a t a P a n e l B i o g r a p h y : GameObject ;
p r i v a t e v a r d a t a P a n e l M i s s i o n : GameObject ;
f u n c t i o n Awake ( ) { / / C a r r e g a n d o
d a t a P a n e l B i o g r a p h y = gameObject . Find ( " DataPanel_Biography " ) ; / /
a t r i b u i n d o o b j e t o s n a s v a r i a v e i s em v e z de m a n u a l m e n t e
dataPanelMission
= gameObject . Find ( " DataPanel_Mission " ) ;
}

7
8
9
10
11
12
13
14

f u n c t i o n OnMouseEnter ( ) {
guiTexture . c o l o r = Color (1 ,1 ,1) ;
}
f u n c t i o n OnMouseExit ( ) {
/ / OnMouseExit P a s s a r o mouse
g u i T e x t u r e . c o l o r = C o l o r ( . 2 , . 2 , . 2 ) ; / / 0 . 2 no r g
}

67

15
16
17
18
19
20
21
22
23
24

25
26
27
28
29
30

f u n c t i o n OnMouseDown ( ) {
i f ( name == " B u t t o n _ B i o " ) { / / nome do O b j e t o
dataPanelBiography . guiTexture . enabled = true ;
dataPanelMission . guiTexture . enabled = f a l s e ;
}
i f ( name == " B u t t o n _ M i s s i o n " ) {
dataPanelBiography . guiTexture . enabled = f a l s e ;
dataPanelMission . guiTexture . enabled = true ;
}
/ * P r a i n i c i a r c o r r e t a m e n t e a chamada de t e l a , deves e c o l o c a r na
configuracoes
de c o m p l i c a c a o do p r o j e t o . f i l e > b u i l d S e t t i n g s
*/
i f ( name == " B u t t o n _ B e g i n " ) {
A p p l i c a t i o n . L o a d L e v e l ( " ProjetoTCCgameCena " ) ;
}
}
...

68

ANEXO B SCRIPT COMPLETO DE CONTROLE DAS AES DO JOGADOR


1
2
3
4
5
6
7
8
9
10
11

p r i v a t e var S o m C l i q u e L a n t e r n a : GameObject ;
p r i v a t e var l a n t e r n a J o g o : GameObject ;
p r i v a t e var l a n t e r n a L i g a d a : b o o l e a n ;
// variaveis de sanidade
s t a t i c var c u r r e n t S a n i t y : f l o a t = 2 0 . 0 ;
var m a x S a n i t y : f l o a t = 1 0 0 . 0 ;
var m i n S a n i t y : f l o a t = 0 . 0 ;
var s c a r e P e r c : f l o a t = 2 0 . 0 ;
p r i v a t e var E f e i t o S a n i d a d e : GameObject ;
var f e e d b a c k M o n s t r o : Renderer ;

12
13

var B o t a o L a n t e r n a : GameObject ;

14
15
16

s t a t i c var A t i v a C r o s s a h a i r s : b o o l e a n = f a l s e ;
var C r o s s a h a i r s : GameObject ;

17
18
19

20

21
22
23
24

25
26

f u n c t i o n Awake ( ) { // Carregando
S o m C l i q u e L a n t e r n a = gameObject . F i n d ( "Som - CliqueLanterna " ) ; // atribuindo
objetos nas variaveis em vez de manualmente
l a n t e r n a J o g o = gameObject . F i n d ( "Lanterna " ) ; // atribuindo objetos nas
variaveis em vez de manualmente
}
function S t a r t () {
lanternaLigada = true ;
iTween . MoveBy ( B o t a o L a n t e r n a , iTween . Hash ( "y" , 0.004 , "easeType " , "linear"
, "time" , 0 . 0 0 0 1 ) ) ;
E f e i t o S a n i d a d e = GameObject . F i n d ( "Player" ) ;
}

27
28

f u n c t i o n Update ( ) {

29
30
31
32
33
34
35
36
37

if ( AtivaCrossahairs ){
Cro ssahai rs . SetActive ( true ) ;
} else Crossahairs . SetActive ( false ) ;
// Controle de sanidade
i f ( c u r r e n t S a n i t y < 100)
{
c u r r e n t S a n i t y = Time . d e l t a T i m e ;
}

38
39
40
41
42

i f ( c u r r e n t S a n i t y >= 1 0 0 )
{
c u r r e n t S a n i t y = maxSanity ;
SetFeedBackAlpha ( 1 . 0 f ) ;

69

43

44
45
46
47
48

i f ( c u r r e n t S a n i t y <= 0 )
{
c u r r e n t S a n i t y = minSanity ;
}

49
50
51
52
53
54
55
56
57
58
59
60
61
62

i f ( P o n t e T r i g g e r S c r i p t . C a i r N a A a g u a r ) // Matando ao cair na agua da ponte


{
c u r r e n t S a n i t y = maxSanity ;
}
// Controle visual da Sanidade
i f ( c u r r e n t S a n i t y < 65)
{
SetFeedBackAlpha ( 0 . 0 f ) ;
}
i f ( c u r r e n t S a n i t y >= 6 5 )
{
SetFeedBackAlpha ( 0 . 2 f ) ;
}

63
64
65
66
67

i f ( c u r r e n t S a n i t y >= 6 8 )
{
SetFeedBackAlpha ( 0 . 3 f ) ;
}

68
69
70
71
72

i f ( c u r r e n t S a n i t y >= 7 0 )
{
SetFeedBackAlpha ( 0 . 3 5 f ) ;
}

73
74
75
76
77

i f ( c u r r e n t S a n i t y >= 8 0 )
{
SetFeedBackAlpha ( 0 . 4 0 f ) ;
}

78
79
80
81
82
83
84
85
86

i f ( c u r r e n t S a n i t y >= 9 0 )
{
SetFeedBackAlpha ( 0 . 4 5 f ) ;
}
i f ( c u r r e n t S a n i t y >= 9 2 )
{
SetFeedBackAlpha ( 0 . 5 f ) ;
}

87
88

// fim sanidade

89
90

// desliga e acende lanterna com animacao

70

i f ( I n p u t . GetKeyUp ( KeyCode . F )&& l a n t e r n a L i g a d a ) {


SomCliqueLanterna . audio . Play ( ) ;
lanternaJogo . l i g h t . enabled = false ;
lanternaLigada = false ;
iTween . MoveBy ( B o t a o L a n t e r n a , iTween . Hash ( "y" , 0 . 0 0 4 , "easeType " , "linear
" , "time" , 0 . 0 0 0 1 ) ) ;

91
92
93
94
95

96

} e l s e i f ( I n p u t . GetKeyUp ( KeyCode . F )&& ! l a n t e r n a L i g a d a ) {


SomCliqueLanterna . audio . Play ( ) ;
lanternaJogo . l i g h t . enabled = true ;
lanternaLigada = true ;
iTween . MoveBy ( B o t a o L a n t e r n a , iTween . Hash ( "y" , 0 . 0 0 4 , "easeType " , "
linear" , "time" , 0 . 0 0 0 1 ) ) ;
}
// fim desliga e acende lanterna com animacao

97
98
99
100
101

102
103
104
105
106
107
108
109
110

111

// funcao de visualizacao da sanidade.


f u n c t i o n OnGUI ( )
{
GUI . Box ( R e c t ( 5 , 5 , 5 5 , 2 5 ) , "Sanidade " ) ;
GUI . Box ( R e c t ( 6 5 , 5 , 5 5 , 2 5 ) , c u r r e n t S a n i t y . T o S t r i n g ( "0" ) + "/" +
maxSanity ) ;
}

112
113
114
115
116

function aumentarInsanidade () {
c u r r e n t S a n i t y += s c a r e P e r c * Time . d e l t a T i m e ;
}
function SetFeedBackAlpha ( alpha : f l o a t ) {

117

var c u r r e n t A l p h a : C o l o r = f e e d b a c k M o n s t r o . m a t e r i a l . c o l o r ;
currentAlpha . a = alpha ;
feedbackMonstro . m a t e r i a l . color = currentAlpha ;

118
119
120
121

}
PlayerController.js

Você também pode gostar