Você está na página 1de 56

UNIVERSIDADE FEDERAL DO CEARÁ

INSTITUTO UNIVERSIDADE VIRTUAL


SISTEMAS E MÍDIAS DIGITAIS

VINICIUS NOGUEIRA MOTA DA SILVA

RELATÓRIO TÉCNICO SOBRE


O DESENVOLVIMENTO DO JOGO POLICIA E LADRÃO

FORTALEZA
2013
VINICIUS NOGUEIRA MOTA DA SILVA

RELATÓRIO TÉCNICO SOBRE


O DESENVOLVIMENTO DO JOGO POLICIA E LADRÃO

Relatório técnico apresentado ao Curso de


Graduação em Sistemas e Mídias Digitais da
Universidade Federal do Ceará, como requisito
parcial à obtenção do título de Bacharel em
Sistemas e Mídias Digitais. Área de
concentração: Jogos Digitais.

Orientador: Prof. George Allan Menezes


Gomes.

FORTALEZA
2013
Dados Internacionais de Catalogação na Publicação
Universidade Federal do Ceará
Biblioteca de Ciências e Tecnologia

S584r Silva, Vinicius Nogueira Mota da.


Relatório técnico sobre o desenvolvimento do jogo polícia e ladrão / Vinicius Nogueira Mota da
Silva. – 2013.
55 f. : il. color., enc. ; 30 cm.

Relatório (graduação) – Universidade Federal do Ceará, Instituto Universidade Virtual,


Bacharelado em Sistemas e Mídias Digitais, Fortaleza, 2013.
Orientação: Prof. Me. George Allan Menezes Gomes.

1. Animação por computador. 2. Jogos eletrônicos. I. Título.

CDD 006
VINICIUS NOGUEIRA MOTA DA SILVA

RELATÓRIO TÉCNICO SOBRE


O DESENVOLVIMENTO DO JOGO POLICIA E LADRÃO

Relatório técnico apresentado ao Curso de


Graduação em Sistemas e Mídias Digitais da
Universidade Federal do Ceará, como requisito
parcial à obtenção do título de Bacharel em
Sistemas e Mídias Digitais. Área de
concentração: Jogos Digitais.

Aprovada em: ___/___/______.

BANCA EXAMINADORA

________________________________________
Prof. George Allan Menezes Gomes
Universidade Federal do Ceará (UFC)

_________________________________________
Prof. Antonio José Melo Leite Junior
Universidade Federal do Ceará (UFC)

_________________________________________
Prof. Liandro Roger Memória Machado
Universidade Federal do Ceará (UFC)
A Deus.
AGRADECIMENTO

Agradeço a Deus por tudo.

Ao professor George pela ajuda e orientação no desenvolvimento desse trabalho.

A toda a primeira turma do curso de Sistemas e Mídias Digitais, foi um orgulho fazer
parte dessa turma.

Por fim, meu agradecimento à Caroline, que foi minha parceira durante todo o curso e
inclusive no desenvolvimento do jogo que resultou desse relatório.
“A melhor maneira de ter boas ideias é ter
muitas ideias.”
Linus Pauling
RESUMO

O mercado de jogos é um dos mais lucrativos atualmente e está presente na vida das pessoas
de diversas maneiras, alguns jogam para se divertir e passar o tempo, outros utilizam jogos
como treinamento de funcionários e também existem jogadores que trabalham jogando
videogames. Muitas pessoas querem desenvolver jogos, mas desconhecem o processo de
criação de um jogo eletrônico, além dos elementos envolvidos nesse processo. Existem
diversas ferramentas para criação de jogos e este relatório técnico tem o objetivo de levantar
diversas informações sobre motores gráficos e motores de jogos, relatar suas funcionalidades
e apontar suas vantagens e desvantagens com relação a diversos aspectos do desenvolvimento
de jogos, como prazos, tamanho da equipe, custo, complexidade do jogo, entre outros. A
partir desta análise, utilizar a ferramenta mais adequada para o desenvolvimento do jogo
Policia e Ladrão e mostrar as etapas que foram seguidas pela equipe para a conclusão deste
projeto.

Palavras-chave: Motores gráficos. Motores de jogos. Desenvolvimento de Jogos.


ABSTRACT

The game market is one of the most profitable nowadays and is currently present at people’s
lives in many ways. Some people play to have fun, others use games for professional training,
like serious games, and there are also players who work playing games. Many people want to
develop games but are unaware of the intricacies of how to create an electronic game, along
with many elements involved in this process. There are several tools to create games and this
technical work aims to raise a lot of information about graphic engines and game engines,
report their features, and point out their advantages and disadvantages regarding to various
aspects of game development, such as time limits, size staff, cost, complexity of the game,
among others. From this analysis, using the most appropriate tool for the development of the
game "Policia e Ladrão" and show the steps that were followed by the team to complete this
project.

Keywords: Graphic Engine. Game Engine. Game Development.


LISTA DE ILUSTRAÇÕES

Figura 01 – Jogo Tennis for Two ...................................................................................... 13


Figura 02 – Jogo Spacewar! ............................................................................................. 13
Figura 03 – Camadas de aplicação de um motor gráfico .................................................. 18
Figura 04 – Camadas de abstração de API 3D num subsistema de renderização ............ 20
Figura 05 – Jogo desenvolvido utilizando 3DSTATE ...................................................... 21
Figura 06 – Jogo desenvolvido utilizando Irrlicht ............................................................ 22
Figura 07 – Jogo desenvolvido utilizando CrystalSpace .................................................. 23
Figura 08 – Comportamento interno de um motor de jogos ............................................. 26
Figura 09 – Colisão de um objeto em alta velocidade com outros objetos ...................... 27
Figura 10 – Sistemas de particulas ................................................................................... 28
Figura 11 – Inteligência artificial utilizando pathfinding ................................................. 28
Figura 12 – Imagem renderizada em um motor de jogos.................................................. 29
Figura 13 – Fable: Legends, desenvolvido no motor de jogos Unreal Engine 4 .............. 30
Figura 14 – Crysis 3, desenvolvido no motor de jogos CryEngine 3 ............................... 30
Figura 15 – Battlefield 4, desenvolvido no motor de jogos Frostbite 3 ........................... 31
Figura 16 – Curta-metragem desenvolvido no motor de jogos Unity 4 ........................... 32
Figura 17 – Exemplo de concept art ................................................................................. 34
Figura 18 – Triângulo de Restrições do desenvolvimento de um jogo ............................ 36
Figura 19 – Temple Run, Jetpack Joyride e Stylish Sprint ............................................... 40
Figura 20 – Jesse, personagem do jogo Policia e Ladrão ................................................. 41
Figura 21 – Hank, personagem do jogo Policia e Ladrão ................................................. 41
Figura 22 – Cenário do jogo Polícia e Ladrão .................................................................. 42
Figura 23 – Painel "Project" do motor de jogos Unity 3D ............................................... 43
Figura 24 – Comportamento do cenário com a câmera no jogo Polícia e Ladrão ............ 43
Figura 25 – Elementos do jogo montados no motor de jogos Unity 3D .......................... 44
Figura 26 – Visão da câmera do jogo Polícia e Ladrão .................................................... 44
Figura 27 – Animações dos personagens utilizando o recurso "Mecanim" do Unity 3D . 45
Figura 28 – Scripts utilizados no jogo Polícia e Ladrão no painel "Project" ................... 46
Figura 29 – Tela inicial do jogo Polícia e Ladrão ............................................................. 46
SUMÁRIO

1 INTRODUÇÃO ................................................................................................ 13
1.1 Objetivos ........................................................................................................... 14
1.2 Trabalhos relacionados .................................................................................... 14
1.3 Estrutura do trabalho ...................................................................................... 16
2 MOTORES GRÁFICOS ................................................................................. 17
2.1 Estrutura dos motores gráficos ....................................................................... 17
2.1.1 Núcleo ................................................................................................................ 19
2.1.2 Subsistemas ....................................................................................................... 19
2.1.3 Carregamento de Elementos do Mundo Virtual ........................................... 20
2.2 Exemplos de motores gráficos ......................................................................... 21
2.2.1 3DSTATE .......................................................................................................... 21
2.2.2 Irrlicht ............................................................................................................... 22
2.2.3 CrystalSpace ..................................................................................................... 22
2.3 Vantagens e Desvantagens ............................................................................... 23
3 MOTORES DE JOGOS .................................................................................. 25
3.1 Estrutura dos motores de jogos ...................................................................... 25
3.1.1 Motor de Física ................................................................................................. 26
3.1.2 Sistema de Partículas ....................................................................................... 27
3.1.3 Inteligência Artificial ....................................................................................... 28
3.1.4 Renderização .................................................................................................... 29
3.2 Exemplos de motores de jogos ........................................................................ 29
3.2.1 Unreal Engine 4 ................................................................................................ 29
3.2.2 CryEngine3 ....................................................................................................... 30
3.2.3 Frostbite 3 ......................................................................................................... 31
3.2.4 Unity 4 ............................................................................................................... 31
3.3 Vantagens e Desvantagens ............................................................................... 32
4 PROCESSO DE DESENVOLVIMENTO DE JOGOS ................................ 34
4.1 Conceito Inicial ................................................................................................. 34
4.2 Análise ............................................................................................................... 35
4.3 Projeto ............................................................................................................... 35
4.4 Cronograma ...................................................................................................... 36
4.5 Orçamento ........................................................................................................ 36
4.6 Implementação ................................................................................................. 37
4.7 Testes ................................................................................................................. 37
5 ESTUDO DE CASO: JOGO POLÍCIA E LADRÃO ................................... 39
5.1 Descrição do Jogo ............................................................................................. 39
5.2 Ideia Principal .................................................................................................. 40
5.3 Elementos Visuais ............................................................................................ 40
5.3.1 Personagens ...................................................................................................... 41
5.3.2 Cenário .............................................................................................................. 42
5.4 Programando com o Unity 3D ........................................................................ 42
5.5 Dificuldades ...................................................................................................... 47
6 CONCLUSÃO E TRABALHOS FUTUROS ................................................ 48

REFERÊNCIAS ............................................................................................... 49
ANEXO A - DOCUMENTO DE GAME DESIGN........................................ 53
13

1 INTRODUÇÃO

A indústria de jogos está cada vez mais amostra. E além do setor industrial, os
jogos vem se destacando no meio acadêmico. Nusowitz (2008) afirma que:

Os jogos de hoje divertem milhões de pessoas, trazem felicidade a muitos lares em


todo o planeta, além de fazer muito bem a saúde, mantendo a mente ativa,
aumentando a atenção, melhorando a coordenação motora, entre muitos outros
benefícios e a cada dia que passa, os jogos vem se tornando uma linguagem
universal.

Alguns consideram como o primeiro jogo eletrônico já desenvolvido o Tennis for


Two (Nusowitz, 2008), desenvolvido no ano de 1958, em um laboratório de pesquisas
militares chamado Brookhaven National Laboratory, pelo físico Willian Higinbotham,
conforme a figura 01. Já outros dizem que foi o Spacewar! (Retrospace, 2007), desenvolvido
em 1961, por estudantes do Massachusetts Institute of Technology, conforme a figura 02.

Figura 01 - Jogo Tennis for Two Figura 02 - Jogo Spacewar!

Fonte: Luizbelonio's Blog (2009) Fonte: The History of Spacewar (2010)

Independente de qual foi o primeiro, esses dois foram o ponto de partida para que
outros se interessassem em se aventurar no ramo de desenvolvimento de jogos eletrônicos,
que era inexplorado até aquele momento e hoje é uma das áreas de entretenimento mais
importantes e lucrativas do mundo.
Segundo Brito (2011), "O mercado de jogos é conhecido hoje por ser ainda maior
que a indústria do cinema com toda a sua pompa e investimentos pesados em marketing." Isso
faz com que cada vez mais pessoas queiram criar jogos. A indústria dos jogos eletrônicos, que
14

envolve a venda de consoles, hardwares e softwares voltados especificamente para este


propósito, chegou a crescer, segundo dados do NPD Group, um dos mais importantes órgãos
de pesquisa de mercado dos Estados Unidos, de 1999 até 2009, mais de 400% em faturamento
(Pilllegi, 2010). Logo, ferramentas que auxiliem no desenvolvimento de jogos estão cada vez
mais presentes na indústria e sendo bastante utilizadas por desenvolvedores e empresas de
todos os tipos.

1.1 Objetivos

O objetivo geral deste relatório é descrever o uso do motor de jogos Unity 3D no


planejamento e desenvolvimento do jogo Polícia e Ladrão.
Os objetivos específicos do trabalho são: descrever a estrutura e as características
de motores gráficos e motores de jogos, exemplificar e mostrar algumas vantagens e
desvantagens de ambos sob o ponto de vista do autor; e mostrar como é o desenvolvimento de
um jogo digital, destacando alguns desafios que uma equipe pequena tem durante o processo
de criação de um game.

1.2 Trabalhos relacionados

O tema jogos eletrônicos fica mais em evidência a cada dia que passa, tanto no
cenário acadêmico, quanto na indústria, logo a quantidade de pesquisas nessa área é
considerável. No trabalho de Macedo (2010) é detalhado o processo da construção de um jogo
3D de acordo com os principais passos da engenharia de software, detalhando as fases e
ferramentas utilizadas no processo, desde o conceito até a finalização do jogo "FunCopter".
Outro trabalho que também segue está linha é o de Valente (2012), que retrata como funciona
o mercado brasileiro de jogos, além de mostrar como jogos são desenvolvidos, os
profissionais envolvidos no processo e os passos que foram utilizados na construção do jogo
"Xadrez sem limites". Lemes (2009), descreve de forma detalhada como ocorre o processo
criativo na criação de um game, organizando a forma como devem ser pensados a
argumentação narrativa, a organização de ideias, a mecânica de jogo, gênero e personagens.
Diversos trabalhos também discutem como as ferramentas de desenvolvimento de
jogos são importantes e auxiliam os desenvolvedores, porém é necessário dominar tais
ferramentas para tirar o máximo de proveito de suas funcionalidades. Os motores gráficos são
15

ferramentas extremamente importantes para a história do desenvolvimento de jogos


eletrônicos. Na pesquisa de Maia (2005), é explicado como funciona um sistema de realidade
virtual, que se assemelha em diversas partes a um jogo tridimensional, que necessita de
ferramentas especificas para renderização1 e detecção de colisões2. Neste trabalho são
apresentadas diversas características sobre a arquitetura de motores gráficos, seus subsistemas
e funcionalidades como, renderização, som tridimensional, detecção de colisões, suporte a
linguagens de script, entre outras e também dá diversos exemplos de motores gráficos
existentes. Já o trabalho de Amazonas (2007), relata o desenvolvimento de jogos utilizando
um motor gráfico e todas as ferramentas adicionais necessárias.
Atualmente o desenvolvimento de jogos está bastante difundido, existem diversas
empresas de criação de jogos de todos os tipos, cada vez mais pessoas querendo fazer seus
próprios jogos, fazendo com que os motores de jogos se tornem cada vez mais populares e as
empresas que desenvolvem essas ferramentas, estão tornando-os muito mais acessíveis e
cheios de recursos. Segundo Lemes (2009), "A lista de motores de jogos existentes nos dias
de hoje é extensa e vale ressaltar que o produtor independente deve analisar todas as suas
funcionalidades antes de escolher o motor mais adequado para o seu projeto.", desta forma
pode ser observado no trabalho de Dalmina (2012), a utilização de um motor de jogos e as
funcionalidades utilizadas na implementação do jogo "Cryshooter". Na pesquisa de Valient
(2001) é mostrado o funcionamento de um motor de jogos, detalhando sua arquitetura, as
API3s necessárias para o seu funcionamento e uma descrição do mundo dos games sob o
ponto de vista do jogador e do desenvolvedor. Valente (2012), também relata sobre o
surgimento dos motores de jogos, os primeiros jogos que utilizaram esse recurso, além das
vantagens em se utilizar este tipo de ferramenta.
Muitos trabalhos utilizam o tema desenvolvimentos de jogos, falam do mercado
de games no Brasil e no mundo e descrevem as ferramentas que auxiliam os desenvolvedores
como motores gráficos e motores de jogos. Neste trabalho será relatado o desenvolvimento do
jogo "Policia e Ladrão", por uma equipe de apenas duas pessoas, uma para a parte técnica e
outra para a parte artística. Também será feita mostrado o funcionamento de motores gráficos
e motores de jogos, mostrando as vantagens e desvantagens de cada tipo de ferramenta e as
situações em que devem ser utilizados, baseado no tipo de jogo, tamanho da equipe, tempo

1
É o processo pelo qual pode-se obter o produto final de um processamento digital qualquer.
2
Simulação física, que envolve algoritmos de verificação de colisões, como a intersecção de dois corpos sólidos.
3
Interface de Programação de Aplicativos é um conjunto de rotinas e padrões utilizados para o desenvolvimento
de aplicações sem a necessidade de um envolvimento detalhado da implementação do software.
16

para o desenvolvimento e outros fatores que são importantes para o desenvolvimento de um


jogo de qualidade e foram levados em conta na escolha da ferramenta para o desenvolvimento
do jogo "Policia e Ladrão".

1.3 Estrutura do trabalho

O presente relatório está estruturado em cinco capítulos. No capítulo 2, faz-se um


pequeno levantamento histórico sobre os motores gráficos, como é sua estrutura, exemplos de
motores gráficos e produtos desenvolvidos com eles, vantagens e desvantagens na utilização
de motores gráficos. No capitulo 3, é mostrado como os primeiros motores de jogos surgiram
e foram utilizados, como funcionam, as ferramentas que estão integradas aos motores de
jogos, exemplos de motores de jogos e produtos desenvolvidos com eles, vantagens e
desvantagens da utilização de motores de jogos. No capítulo 4, é mostrada a descrição do jogo
"Polícia e Ladrão", como foi o seu desenvolvimento, quais são as etapas na criação de um
jogo eletrônico, quais os profissionais necessários, as ferramentas utilizadas, assim como as
dificuldades encontradas pela equipe. No capítulo 5, são feitas algumas conclusões sobre o
processo de criação do jogo "Policia e Ladrão", os resultados obtidos pela equipe, possíveis
implementações futuras para o jogo e algumas tendências de quais ferramentas serão mais
utilizadas no desenvolvimento de jogos no futuro.
17

2 MOTORES GRÁFICOS

Os jogos tridimensionais de computador tem-se tornado cada vez mais realistas e


complexos, demandando a utilização das mais modernas técnicas de computação gráfica,
interação e simulação na forma de bibliotecas (Cal3D, 2004) e kits de desenvolvimento
conhecidos como Motores Gráficos. Nos anos oitenta a programação era feita diretamente
para o hardware, mas com o crescimento de placas aceleradoras 3D de vídeo e com a ajuda do
paradigma de programação orientada a objetos (POO) houve o aparecimento de um novo tipo
de interface de programação conhecido como Motor Gráfico. (Macedo, 2007)
Maia (2005) diz:

Os motores gráficos são componentes de software concebidos, originalmente, para a


criação de jogos tridimensionais. Atualmente, esse tipo de componente tem sido
utilizado com sucesso no desenvolvimento de aplicações de Realidade Virtual. A
boa qualidade visual e a economia de memória e processamento são as principais
vantagens na utilização de um motor gráfico para a construção de um ambiente de
Realidade Virtual.

O motor gráfico é parte de um programa que monitora, gerencia e atualiza os


gráficos 3D em tempo real. Segundo Argente (2004), "Os softwares criados são mais
avançados do que o hardware pode suportar, então os programadores tem que criar meios de
utilizar menos polígonos, sem perder detalhes nem poder computacional." (Traduzido
livremente pelo autor)

2.1 Estrutura dos motores gráficos

A utilização de um motor gráfico para a construção de um jogo, principalmente


para o desenvolvimento em ambientes de Desktop, é muito indicada, já que um motor gráfico
conta com as seguintes características (Maia, 2005):
• Desempenho e qualidade. Geralmente integra as mais modernas técnicas e
soluções de baixo nível;
• Confiabilidade. Os jogos produzidos são testados sob as mais diversas
condições de hardware e software;
18

• Controle. A camada de aplicação é responsável tanto pela descrição do


ambiente virtual quanto pela gerência, sob vários aspectos, desse ambiente.

Figura 03 - Camadas de Aplicação de um motor gráfico

Fonte: CRAbGE – UMA ARQUITETURA PARA MOTORES


GRÁFICOS FLEXÍVEIS, EXPANSÍVEIS E PORTÁVEIS (2005)

Um motor gráfico pode ser dividido em módulos, o que facilita a compreensão de


suas funcionalidades. Sistemas complexos são descritos de maneira detalhada, utilizando essa
abordagem, em artigos, livros e manuais, por exemplo, na especificação do sistema gráfico
OpenGl. (Segal, 2004)
Utilizando a divisão feita por Maia (2005), que é uma proposta de divisão de um
motor gráfico genérico visando facilitar a compreensão e a comparação entre diferentes
motores gráficos. Um motor gráfico é dividido em três módulos principais:
• Núcleo, ou módulo principal, que é responsável pela gerência do motor em alto
nível e contém módulos fundamentais utilizados tanto pelos subsistemas quanto
pela camada de aplicação;
• Subsistemas, que abrange cada subsistema provendo as principais
funcionalidades do motor gráfico;
• Carregamento de Elementos do Mundo Virtual, módulo responsável pela
mediação necessária ao carregamento da mídias utilizadas pelo motor gráfico para
especificar o conteúdo do mundo virtual, como, por exemplo, arquivos de som e
modelos tridimensionais pré-moldados.
19

Segundo Argente (2004), "Motores gráficos são bibliotecas de desenvolvimento


responsáveis pelo gerenciamento dá parte gráfica de um jogo." Seguindo essa afirmação, a
seguir serão detalhadas as funcionalidades de cada módulo existente em um motor gráfico.

2.1.1 Núcleo

Segundo Maia (2005):

O núcleo é a porção de um motor gráfico responsável por intermediar interações


entre a camada de aplicação e os subsistemas disponíveis no motor gráfico, bem
como as interações entre esses subsistemas. O núcleo é responsável em registrar,
identificar, iniciar e coordenar o funcionamento de todos os módulos e subsistemas
que compõem o motor gráfico. Dessa maneira, o núcleo também é encarregado de
definir uma interface para o acesso e a comunicação entre os subsistemas.

Além disso, o núcleo também encapsula funcionalidades fundamentais para o


funcionamento do motor, como cálculos de operações vetoriais e acesso ao sistema de
arquivos. O núcleo também gerencia as mensagens que são transmitidas entre os subsistemas.
Outras responsabilidades do núcleo são: estabelecer as políticas aplicadas ao carregamento de
mídias; gerenciamento de memória; escalonamento das tarefas executadas pelo motor gráfico;
trata da interação do usuário com os dispositivos de entrada disponíveis; registro de atividades
e erros, que possibilitam a extração de informações e estatísticas acerca da aplicação em
execução.

2.1.2 Subsistemas

Um subsistema representa um módulo específico do motor gráfico que é utilizado


pela camada de aplicação para a implementação de um conjunto de funcionalidades. Assim,
um determinado subsistema é caracterizado pelo domínio de problemas para o qual é
destinado e pelas tarefas que desempenha como modulo do motor gráfico, além das
tecnologias que utiliza para desempenhar essas tarefas. O subsistema de renderização em
tempo real, por exemplo, caracteriza-se por sintetizar imagens a uma taxa de exibição
interativa com base numa cena tridimensional e, dentre as tarefas que desempenha, estão: a
determinação da visibilidade dos objetos na cena, a geração texturas e a especificação
20

sistemas de coordenadas através de matrizes. Para tanto, é necessário que esse subsistema se
atenha a tecnologias especificas, como técnicas para a eliminação de faces ocultas e
renderização em baixo nível através de uma API 3D. (Maia, 2005)
Cada subsistema fica responsável por um aspecto específico da aplicação e
também pela gerência desse aspecto em tempo de execução. Para cada subsistema de um
motor gráfico existe uma variedade de técnicas, algoritmos e bibliotecas adequados à sua
construção.

Figura 04 - Camada de abstração de API 3D num subsistema de renderização

Fonte: CRAbGE – UMA ARQUITETURA PARA MOTORES


GRÁFICOS FLEXÍVEIS, EXPANSÍVEIS E PORTÁVEIS (2005)

2.1.3 Carregamento de Elementos do Mundo Virtual

Segundo Lemes (2009), "O motor gráfico sozinho, não é suficiente para o
desenvolvimento de um jogo, são necessárias diversas ferramentas adicionais para o
desenvolvimento e profissionais que entendam cada uma dessas ferramentas."
Em jogos tridimensionais, diversas mídias são manipuladas em tempo de
execução, por exemplo, modelos tridimensionais, animações, sons e imagens. Alguns
softwares adicionais são necessários para a criação dessas mídias, como por exemplo o
Autodesk Maya, Blender, Adobe Photoshop, entre outros.
Antes de integrarem a aplicação, as mídias utilizadas no mundo virtual devem ser
carregadas a partir algum formato de arquivo, seja proprietário do motor gráfico ou nativo das
ferramentas de edição utilizadas durante a confecção dessas mídias. Uma vez que uma
determinada mídia esteja armazenada nas estruturas de dados adequadas, o núcleo ou um
21

subsistema do motor gráfico é capaz de manipular essa mídia de acordo com as necessidades
da aplicação. Uma imagem, por exemplo, pode ser carregada na memoria principal,
possibilitando sua manipulação através de um subsistema de processamento digital de
imagens para a criação de uma textura bidimensional. (Maia, 2005)

2.2 Exemplos de motores gráficos

Neste tópico serão apresentados alguns exemplos de motores gráficos, uma


introdução sobre eles e exemplos de jogos que foram desenvolvidos com a utilização destes
motores gráficos.

2.2.1 3DSTATE

Voltado para o desenvolvimento de jogos e aplicações tridimensionais interativas.


Possui uma versão gratuita, que pode ser utilizada por universidades, escolas e
desenvolvedores para fins acadêmicos. Possui um editor 3D próprio para a modelagem de
ambientes 3D. (3DSTATE, 2013)
Segue abaixo, Figura 05, um exemplo de um jogo desenvolvido utilizando o
3DSTATE.
Figura 05 - Jogo desenvolvido utilizando o motor gráfico 3DSTATE

Fonte: 3DSTATE (2013)


22

2.2.2 Irrlicht

Motor gráfico orientado a objetos, escrito em C++, que usado no desenvolvimento


de jogos e de aplicações cientificas. É multi-plataforma, utiliza OpenGL e tem seu próprio
renderizador, chegando a ser comparado a alguns motores de jogos. (Irrlicht, 2013)
Segue abaixo, Figura 06, um jogo desenvolvido utilizando o motor gráfico
Irrlicht.

Figura 06 - Jogo desenvolvido utilizando o motor gráfico Irrlicht

Fonte: Irrlicht (2013)

2.2.3 CrystalSpace

Um configurável e extensível motor gráfico baseado em OpenGl, possui alguns


recursos avançados, como shaders e sistemas de iluminação, física, sons em 3D, interpolação
de animações, vegetação interna, terreno, sistemas de arquivos virtual e periféricos físicos.
(Crystal Space, 2013)
Segue abaixo, Figura 07, um jogo desenvolvido utilizando o motor gráfico Crystal
Space.
23

Figura 07 - Jogo desenvolvido utilizando o motor gráfico Cystal Space

Fonte: Crystal Space (2013)

2.3 Vantagens e Desvantagens

Abaixo serão listadas algumas vantagens e desvantagens a respeito da utilização


de motores gráficos no desenvolvimento de jogos, baseando-se na análise feita nos tópicos
anteriores.

2.3.1 Vantagens

Um motor gráfico pode simplificar o desenvolvimento dos jogos. A utilização de


chamadas à bibliotecas que executam funções que facilitam ao desenvolvedor, como por
exemplo, chamar uma função de desenhar imagens que pode abstrair diversas operações que
de outra forma seriam necessárias.
Utilizando um motor gráfico um jogo pode ser portado facilmente para outra
biblioteca gráfica ou até outra plataforma. Para isso, apenas são modificadas as chamadas as
bibliotecas gráficas que estão sendo utilizadas no próprio motor, sem qualquer modificação ou
com o mínimo possível de modificações no jogo propriamente dito. Portar apenas o motor
gráfico para outra biblioteca ou plataforma deixa o trabalho mais simples.
Um motor gráfico provê uma organização e gerenciamento do código. Novas
funcionalidades podem ser agregadas ao motor gráfico facilmente.
24

Um motor gráfico auxilia na abstração, para que o desenvolvedor não tenha que se
preocupar com detalhes de baixo nível. Ao desenvolver um jogo utilizando um motor gráfico,
torna-se apenas necessário saber trabalhar com o motor, que requer um conhecimento bastante
extenso, porém dá todo o controle que o desenvolvedor.

2.3.2 Desvantagens

Para o desenvolvimento completo de um jogo, um motor gráfico pode não contar


com todas as funcionalidades necessárias, como gerenciamento de áudio, modelagem de
cenários ou animação de personagens, fazendo com que sejam necessários softwares
adicionais para suprir as necessidades que um motor gráfico não pode.
Utilizando um motor gráfico e softwares adicionais para criar um jogo, é
necessário uma equipe grande que domine todas as ferramentas envolvidas no processo, além
de que o tempo de desenvolvimento tende a ser grande, pois podem haver conflitos entre as
ferramentas externas e o motor gráfico, que devem ser resolvidos antes de prosseguir com o
desenvolvimento.
Para a perfeita utilização de um motor gráfico é necessário que o programador
possua um extenso conhecimento da ferramenta e da linguagem de programação necessária
para utilizá-la, que geralmente é de muito baixo nível.
25

3 MOTORES DE JOGOS

Um motor de jogos é um sistema voltado a criação de jogos, ele fornece ao


desenvolvedor mecanismos que facilitam no desenvolvimento de games para consoles,
dispositivos móveis ou computadores. Os primeiros motores de jogos, surgiram por volta dos
anos 90. John D. Carmack co-fundador da ID Software, tornou o termo "motor de jogos"
popular, com o sucesso dos jogos no estilo FPS4 da época, "Doom" e "Quake". (IDSoftware,
2013)
Segundo Santee (2013):

Se os primeiros jogos eletrônicos eram simples e podiam ser facilmente escritos em


linguagem C, sem necessidade de muitas ferramentas visuais para aumento de
produtividade, os jogos eletrônicos atuais não podem dispensar o uso de linguagens
de alto nível e ferramentas visuais que auxiliem seu desenvolvimento, por
alcançarem um grau de complexidade centenas de vezes maior que nos primeiros
video games.

Os motores de jogos trazem um conjunto de ferramentas visuais e componentes


de software reutilizáveis, que geralmente são integrados em um ambiente de desenvolvimento
unificado que simplifica e agiliza a criação de games, abstraindo todas as tarefas especificas
de hardware.
Algumas das funcionalidades em comum aos motores de jogos são: um motor
gráfico, responsável pela renderização de imagens 2D e 3D sendo a renderização o processo
pelo qual se obtêm algum produto vindo de qualquer processamento digital, um motor de
física para simular a física do jogo ou apenas controlar a detecção de colisão, suporte à
animação utilizando sprites ou rigs, sonorização, inteligência artificial, rede, gerência de
memória, gerência de arquivos, gerência de linha de execução, suporte a grafos de cena e
entidades, e suporte a scripts de programação. Além dos motores gratuitos, podem ser
encontradas licenças para motores comerciais nos mais variados preços. (Boyer, 2007)

4
Tiro em primeira pessoa é um gênero de jogo de computador e videogame, no qual se enxerga apenas o ponto
de vista do protagonista.
26

3.1 Estrutura dos motores de jogos

A estrutura interna de um motor de jogos em geral é complexa, já que este é


composto a partir de uma série de subsistemas, que se comunicam com o hardware, gerando
uma camada de interface mais simplificada para o desenvolvedor. Alguns exemplos destes
subsistemas são: inteligência artificial, física, animação, colisão, partículas, renderização e
sons. (Boyer, 2007)
Os motores de jogos são capazes de captar e tratar as entradas (inputs) de eventos,
que podem ser através de um mouse, teclado, joystick, sensores de movimento, entre outras,
onde a ação executada pelo motor é definida pelos desenvolvedores em resposta aos eventos
de entrada apropriados. (Valente, 2012)
Semelhante aos motores gráficos, como visto em no trabalho de Maia (2005), nos
motores de jogos os subsistemas são componentes que garantem as principais funcionalidades
do motor, cada um deles tem uma responsabilidade bem definida e especifica de comum
presença na maioria dos jogos atuais. Os subsistemas também são responsáveis pelo
gerenciamento e controle destas funções em tempo de execução.

Figura 08 - Comportamento interno de um motor de jogos

Fonte: XADREZ SEM LIMITES: UM ESTUDO DE CASO COM O UNITY 3D (2012)


27

3.1.1 Motor de Física

A física dos jogos da atualidade está cada vez mais realista, principalmente em
jogos de ação, com explosões, objetos em alta velocidade e colisões de todos os tipos. Estes
efeitos são produzidos com a ajuda dos motores de física, que são aplicações dedicadas a
realizar a simulação física dos jogos. (Wilson, 2006)
O motor de física faz o possível para simular as leis de Newton, que utilizam
variáveis como a gravidade, massa, atrito, elasticidade, fricção, entre outros. (Silva, 2002)

Figura 09 - Colisão de um objeto em alta velocidade com outros objetos

Fonte: Open Dynamics Engine (2013)

3.1.2 Sistema de Partículas

Reeves (1983), introduziu o conceito de sistema de partículas, que representam


objetos com uma nuvem de primitivas. Em um período de tempo, partículas podem ser
geradas, movimentadas e alteradas. Para economia de processamento gráfico, normalmente
usa-se um ponto para a representação das partículas. Também a fim de economizar
processamento as partículas não colidem entre si e nem são influenciadas por efeitos de
renderização como sombra ou refração.
28

Figura 10 - Sistema de Partículas

Fonte: Escarbando Código (2013)

3.1.3 Inteligência Artificial

Segundo Bourg (2004), um dos princípios básicos da inteligência artificial para


jogos eletrônicos, é a aplicação de algoritmos determinísticos e padrão de movimento onde
estes comportamentos são pré-programados ou pré-processados. Podem ser destacados neste
âmbito quatro tipos principais de inteligência artificial normalmente implementados, sendo
eles máquina de estado, sistema baseado em regras, algoritmos de busca e algoritmos
genéticos. Na figura 11, pode ser observados alguns NPC5s se movimentando utilizando uma
técnica de inteligência artificial chamada pathfinding.

Figura 11 - Inteligência Artificial utilizando pathfinding

Fonte: Unity 3D (2013)

5
Personagem não jogavel é um personagem de qualquer jogo eletrônico que não pode ser controlado por um
jogador mas se envolve de alguma forma no enredo do jogo.
29

3.1.4 Renderização

A renderização de objetos ou cenários 3D consiste na criação de imagens a partir


da geometria vista pela câmera do motor de jogos. Segundo Brito (2011), na geração de
imagens tridimensionais o processo envolve duas etapas. O processador é encarregado de
gerar uma imagem chamada malha ou wireframe. Na malha são definidos os polígonos que
formam o objeto bem como coordenadas e orientação de seus vértices. A placa de vídeo é
responsável por aplicar as texturas sobre todo o modelo considerando todos os efeitos visuais
envolvidos como iluminação, distância, perspectiva, transparência, entre outros.
Na figura 12, pode ser observado o poder de renderização de um motor de jogos.

Figura 12 - Imagem renderizada em um motor de jogos

Fonte: Unity 3D (2013)

3.2 Exemplos de motores de jogos

Neste tópico serão apresentados alguns exemplos de motores de jogos, uma


introdução sobre eles e exemplos de jogos que foram desenvolvidos utilizando-os.

3.2.1 Unreal Engine 4

É um dos motores de jogos mais poderosos da atualidade, sucessor do motor


gráfico Unreal Engine 3, ele foi reconstruído do zero para se adaptar as novas tecnologias de
computador, consoles, dispositivos móveis e web. Possui um fluxo de trabalho para equipes
de todos os tamanhos e possui uma versão gratuita para estudos, mas para utilizar todo os
recursos que o motor disponibiliza é necessário comprar a licença. (Unreal Engine 4, 2013)
30

Figura 13 - Fable: Legends, desenvolvido no motor de jogos Unreal Engine 4

Fonte: Unreal Engine (2013)

3.2.2 CryEngine3

Uma solução de desenvolvimento altamente avançada, o motor de jogos


CryEngine 3 é utilizado para a criação de jogos, filmes, simulações de alta qualidade e
aplicações interativas. Possui todas as ferramentas necessárias para a criação de jogos de
console de ultima geração e jogos para desktop. O software pode ser utilizado gratuitamente,
porém se o desenvolvedor quiser lucrar com o jogo, 20% dos lucros obtidos deverão ir para a
Crytek. (Crytek, 2013)

Figura 14 - Crysis 3, desenvolvido no motor de jogos CryEngine 3

Fonte: Crytek (2013)


31

3.2.3 Frostbite 3

Um grande motor de jogos que suporta os mais avançados recursos da atualidade.


Possui uma infraestrutura flexível que pode se adaptar as necessidades do desenvolvedor.
(Frostbite, 2013)
Possui uma tecnologia chamada "Levolution" (Layne, 2013), que permite uma
dinâmica de ambiente jamais vista, como por exemplo, a destruição de prédios e torres.

Figura 15 - Battlefield 4, desenvolvido no motor de jogos Frostbite 3

Fonte: Frostbite (2013)

3.2.4 Unity 4

O motor de jogos Unity 4 é um ecossistema de desenvolvimento de jogos. Possui


um motor de renderização poderoso totalmente integrado com um conjunto completo de
ferramentas intuitivas, um fluxo rápido de trabalho para a criação de conteúdo interativo 2D e
3D, fácil publicação multiplataforma (Unity 3D, 2013). O Unity 4 tem uma versão gratuita, na
qual é possível desenvolver para desktop e mobile, para ter acesso a todas as ferramentas do
motor e para desenvolver para consoles é necessário obter a licença da versão completa.
32

Figura 16 - Curta-metragem desenvolvido no motor de jogos Unity 3D

Fonte: Unity 3D (2013)

3.3 Vantagens e Desvantagens

Abaixo serão listadas algumas vantagens e desvantagens a respeito da utilização


de motores de jogos para o desenvolvimento de jogos, baseando-se na análise feita nos
tópicos anteriores.

3.3.1 Vantagens

O motor de jogos pode facilitar a criação de um jogo, pois conta com diversas
ferramentas visuais que facilitam e agilizam o desenvolvimento. Além de ser facilmente
portado para diversas plataformas, com pouca ou nenhuma modificação de código ou dos
outros componentes do jogo.
Existem muitas assets já desenvolvidos para os motores de jogos, com muitas
funcionalidades já implementadas, fazendo com que o desenvolvimento por pequenas equipes
seja otimizado. Além de bastante material de aprendizado para a utilização dos motoress de
jogos, ainda existe uma comunidade extremamente ativa que é capaz de solucionar diversas
dúvidas que desenvolvedores mais inexperientes tenham.
O desenvolvedor não precisa se preocupar tanto com os diferentes tipo de
hardwares em que os jogos irão funcionar, pois os motores já foram testados exaustivamente
para que funcione corretamente em diversas plataformas. Além de desenvolver jogos
utilizando o motor, o desenvolvedor pode criar seus próprios assets, para utilizar em seus
projetos ou até mesmo comercializa-los em diferentes lojas especializadas para os motores.
33

3.3.2 Desvantagens

Como a maioria dos motores de jogos não é open source, se houver algum bug no
motor, o desenvolvedor terá que esperar por uma atualização de correção. Para obter todas as
funcionalidades dos melhores motores de jogos do mercado, é necessário pagar as licenças
que geralmente possuem valores bem altos.Além disso, os motores não são projetados para
um jogo específico, então o jogo desenvolvido com a utilização de um motor de jogos, pode
não ser tão eficiente quanto um jogo que teve um motor escrito especificamente para o seu
funcionamento.
34

4 PROCESSO DE DESENVOLVIMENTO DE JOGOS

O processo de desenvolvimento de jogos, tem algumas características em comum


ao de desenvolvimento de softwares em geral, portanto pode usufruir de algumas fases
utilizadas na engenharia de software tradicional, como: análise, projeto, implementação, teste
e manutenção. Porém, dada a natureza subjetiva de um jogo, em especial dos requisitos a
serem satisfeitos, processos rígidos e bem definidos dificilmente são utilizados (Macedo,
2010). A seguir, serão mostradas as fases utilizadas em um processo de desenvolvimento de
jogos em geral.

4.1 Conceito Inicial

O conceito inicial está relacionado com a ideia do jogo. Ideias para um jogo,
podem vir de diversos lugares, podem ser originais ou podem ser ideias derivadas de jogos já
existentes, geralmente são feitos alguns concept arts para que o restante da equipe tenha uma
visão geral de como será o jogo. Na figura 17 é possível ver um exemplo de concept art,
utilizado em um comic book, que poderia ser perfeitamente utilizado em um jogo.

Figura 17 - Exemplo de concept art

Fonte: The Safeguard, A Creative Commons Comic Book Script (2008)


35

Desenvolvedores que estão iniciando na área de jogos, se preocupam em não


copiar ideias já existentes, tentando criar jogos originais. De acordo com Bates (2004), não é
preciso se preocupar com isso, pois normalmente um jogo inovador, parte de alguma
modificação ou adaptação de alguma ideia existente.

4.2 Análise

A principal diferença entre a fase de análise de um jogo e a fase de análise de um


software tradicional, está no estágio inicial do desenvolvimento, devido as constantes
mudanças e adaptações causadas pelo avanço tecnológico ou pelo lançamento de outros jogos
concorrentes (Macedo, 2010). Com isso os processos rígidos de engenharia de software dão
lugar a técnicas mais flexíveis como, por exemplo, modelos de desenvolvimento ágeis.
Algumas informações devem ser estudadas na fase de análise:
• Quais são as tecnologias utilizadas atualmente?
• Quais são as ferramentas mais acessíveis?
• Qual o gênero do jogo?
• Qual o público alvo?
• Qual é a narrativa do jogo?
Depois de coletadas essa informações, somadas ao conceito inicial do jogo a
equipe de game design, cria uma série de documentos, que informa a proposta do jogo, suas
funcionalidades, o que o jogo deve conter, como alcançar estes objetivos, entre outros. Esta
documentação irá guiar toda a equipe de desenvolvimento durante toda a fase de projeto.
Segundo Schell (2008), "O design de jogos é o ato de decidir o que um jogo deve ser."

4.3 Projeto

É nessa fase que é elaborada a documentação técnica, descrevendo como serão


implementadas as funcionalidades do jogo. Também é nessa fase que são feitas as escolhas de
quais tecnologias que serão utilizadas no desenvolvimento do jogo. Algumas vezes o jogo
possui mecânicas tão originais e inovadoras, que é necessário que uma equipe específica
desenvolva a tecnologia que será utilizada no desenvolvimento do jogo.
Algumas vezes, a partir destas implementações, são desenvolvidas ferramentas
tão úteis para o desenvolvimento de jogos, que as empresas as comercializam para que outros
36

possam utilizá-las e desenvolverem seus próprios jogos. Um exemplo disso é o motor Unreal
Engine, desenvolvido pela Epic Games durante o desenvolvimento do jogo Unreal, que hoje,
é mundialmente uma das mais utilizadas no desenvolvimento de jogos. (Epic Games, 2013)

4.4 Cronograma

No cronograma são divididas as atividades necessárias para o desenvolvimento. É


necessário ter o conhecimento de quais componentes o jogo irá utilizar, como será o seu
funcionamento, saber quais serão as tecnologias utilizadas, em quantas fases será dividido,
efeitos sonoros, menus e diversos outros detalhes que estarão presentes no jogo.
A quantidade de profissionais envolvidos no desenvolvimento, afeta diretamente
no cronograma, além de quais os recursos que estarão disponíveis para a equipe. Deverão ser
definidos prazos para que as atividades sejam concluídas, pois o atraso de alguma etapa pode
comprometer todas as etapas seguintes.

4.5 Orçamento

O orçamento está diretamente ligado ao cronograma, pois quanto mais tempo


demorar o projeto, provavelmente mais caro será o seu custo. Porém, se o projeto tiver que ser
de alguma maneira acelerado, os custos tendem a aumentar também. Segundo Rucker (2002),
é necessário analisar o triângulo das restrições (Figura 18) durante o planejamento de um
jogo.

Figura 18 - Triângulo de restrições

Fonte: InfoQ (2012)


37

• O custo está relacionado ao valor que será gasto para adquirir os recursos
necessários;
• O tempo está relacionado ao tempo necessário para o projeto ser realizado por
completo;
• A qualidade está relacionada ao número de funcionalidades do jogo, aos testes
realizados e aceitação do público.

4.6 Implementação

Depois de toda a documentação, cronograma de atividades e orçamentos


devidamente documentados, chega a hora de implementar o jogo. É o momento em que os
componentes do jogo são desenvolvidos pela equipe de profissionais envolvidos.
Os artistas desenvolvem a arte conceitual do jogo de cenários e personagens,
narrativa, sprites (para jogos 2D), modelos 3D (para jogos 3D), texturas, rigs, animação dos
personagens, sons, interfaces, animações dentro do jogo (conhecidas como cutscenes), entre
outros conteúdos.
Enquanto os programadores desenvolvem o código que irá ditar como é o
funcionamento interno do jogo, suas regras, inteligência artificial e mecânica. Para o
desenvolvimento do jogo, dependendo do nível de complexidade, podem ser necessários
algoritmos extremamente complexos, visando qualidade na jogabilidade e também poder de
processamento.
Depois que todos os elementos artísticos estão devidamente inseridos ao jogo
junto a programação, é iniciada a etapa de testes.

4.7 Testes

Como nos softwares tradicionais, os jogos não podem entrar em circulação com
erro ou falhas, por isso a etapa de testes é extremamente importante. Durante a fase de testes
se algum erro for encontrado, o jogo deverá voltar a etapa de implementação para que o erro
seja corrigido e então passar para a fase de testes novamente.
Nos primeiros jogos eletrônicos desenvolvidos, era inaceitável que o jogo viesse
com algum erro ou falha (também conhecidos como bugs), pois os jogos, geralmente
38

distribuídos mundialmente, não poderiam ter estes erros concertados e a empresa


desenvolvedora do jogo com defeito, ficaria seriamente comprometida.
Atualmente, os consoles possuem acesso direto à internet, fazendo com que erros
que venham junto ao lançamento do jogo possam ser concertados mais tarde através de
atualizações online. Porém mesmo com essas atualizações, o público costuma não aceitar
jogos que venham com falhas, fazendo com que os desenvolvedores percam credibilidade.
39

5 ESTUDO DE CASO - JOGO POLÍCIA E LADRÃO

Neste Capítulo será mostrado como se deu o desenvolvimento do jogo nomeado


de Polícia e Ladrão. Este relato inclui desde a descrição do jogo até o jogo funcionando no
ambiente real. O jogo Polícia e Ladrão tem como alvo as seguintes plataformas de execução:
Windows e Mac OSX.
Foram apresentadas, nos capítulos anteriores, algumas características sobre
motores gráficos e motores de jogos, como funcionam, alguns exemplos, além de algumas
vantagens e desvantagens observadas. Também foi mostrado como é o processo de
desenvolvimento de jogos de forma geral. Descrevendo brevemente suas fases: Conceito
inicial, Análise, Projeto, Cronograma, Orçamento, Implementação e Testes.
A equipe de desenvolvimento foi composta por duas pessoas, um artista e um
programador. Baseado nos estudos feitos a respeito de motores gráficos e motores de jogos,
além da pesquisa feita sobre o processo de desenvolvimento de um jogo, uma equipe deste
tamanho necessitava de uma ferramenta que otimizasse ao máximo o tempo de
desenvolvimento, então o motor de jogos Unity 3D foi o escolhido para o desenvolvimento do
jogo Polícia e Ladrão.

5.1 Descrição do Jogo

O jogo Policia e Ladrão mostra o duelo entre dois personagens. Um deles é Hank,
um policial destemido que preza pela justiça e tenta manter a cidade segura a todo custo,
porém existe um ladrão chamado Jesse que tem uma destreza fora do comum de escalar e
fugir por entre os prédios que não dá sossego a Hank.
O jogo é do tipo runner lateral com personagens e parte do cenário em 3D e uma
outra parte do cenário em 2D. O jogo deve ser jogado por duas pessoas, cada uma controlando
um personagem. Cada jogador deve desviar dos obstáculos e utilizará habilidades especiais
para se defender ou atrapalhar o percurso do adversário, fazendo com que ele atinja algum
obstáculo e perca uma de suas vidas, o personagem que perder todas as vidas primeiro
perderá.
Alguns jogos foram utilizados como referência para a criação deste jogo, como
por exemplo: Stylish Sprint, Subway Surfers e Agent Dash. Porém o fator de 2 jogadores faz
com que o jogo Policia e Ladrão tenha uma jogabilidade única e imprevisível, fazendo com
40

que o jogador elabore estratégias diferentes a cada partida e jogue com reflexos rápidos para
ser o vencedor.
Este jogo foi idealizado como produto a ser entregue juntamente com este
relatório técnico como resultado do trabalho de conclusão de curso. Para mais detalhes sobre
o jogo, consulte o Anexo A – Documento de Game Design.

5.2 Ideia principal

Jogos casuais são caracterizados por possuírem comandos fáceis, além de não
precisar de muita dedicação para jogar. A ideia principal do jogo é que ele seja simples,
divertido, com partidas rápidas e que seja possível jogar com outro jogador.
Como o jogo Polícia e Ladrão é do estilo endless runner, alguns jogos desse estilo
foram analisados, como por exemplo os jogos da figura 19, Temple Run, Jetpack Joyride e
Stylish Sprint.

Figura 19 - Temple Run, Jetpack Joyride e Stylish Sprint

Fontes: Temple Run Game (2013); HalfBrick (2013); Stylish Sprint (2013)

Este estilo de jogo é muito divertido e já é bem consolidado o mercado. A


proposta do jogo Polícia e Ladrão é utilizar deste estilo conhecido, adicionando elementos na
sua jogabilidade, como o fator de 2 jogadores por exemplo, para criar uma experiência única e
bastante interessante aos jogadores.

5.3 Elementos visuais

Juntamente com uma mecânica interessante e divertida, para que o jogo faça
algum sucesso, é necessário um visual atraente. Portanto, os elementos visuais do jogo, como
41

por exemplo, personagens, cenário, itens coletáveis, interface, entre outros, devem estar
funcionando em harmonia.

5.3.1 Personagens

O jogo Polícia e Ladrão tem dois personagens: Jesse, o ladrão (Figura 20) e Hank,
o policial (Figura 21). Não existem NPC's (personagens não jogáveis) no jogo.

Figura 20 - Jesse, personagem do jogo Polícia e Ladrão

Fonte: RELATÓRIO TÉCNICO DE PRODUÇÃO DAS


ANIMAÇÕES DO JOGO DIGITAL POLÍCIA E LADRÃO (2013)

Figura 21 - Hank, personagem do jogo Polícia e Ladrão

Fonte: RELATÓRIO TÉCNICO DE PRODUÇÃO DAS


ANIMAÇÕES DO JOGO DIGITAL POLÍCIA E LADRÃO (2013)
42

A personalidade dos personagens foi passada para a textura dos mesmos. Jesse é
um ladrão que pratica pequenos roubos na cidade, ele é jovem e habilidoso, então sempre
consegue fugir pelos telhados das casas. Hank é um policial politicamente correto, está
sempre alerta para proteger sua cidade, quando vê alguem cometendo crimes, faz o possível
para impedir, porém ele não consegue perseguir os criminosos por cima das casas, mas faz o
possível para capturá-los.

5.3.2 Cenário

O cenário do jogo é de uma cidade simples, com prédios, casas e montanhas. O


fundo é dividido em camadas para que possa passar em diferentes velocidades, simulando a
profundidade, esse efeito é chamado de parallax. As casas e calçadas são modelados em 3D,
enquanto o céu, as montanhas e prédios ao fundo são imagens 2D.

Figura 22 - Cenário do jogo Polícia e Ladrão

Fonte: RELATÓRIO TÉCNICO DE PRODUÇÃO DAS


ANIMAÇÕES DO JOGO DIGITAL POLÍCIA E LADRÃO (2013)

5.4 Programando com o Unity 3D

Antes de começar a programação do jogo é necessário, configurar no motor se o


jogo será 2D ou 3D e então importar todos componentes que o jogo irá precisar, objetos,
imagens, sons. Importar os assets para o Unity 3D é bem simples, basta arrastar os arquivos
para o painel "Project" (Figura 23).
43

Figura 23 - Painel "Project" do motor de jogos Unity 3D

Fonte: Imagem elaborada pelo autor

Com os objetos importados corretamente, é montado o cenário onde os


personagens irão correr. O que ocorre na realidade é que os personagens ficam parados,
enquanto o cenário se move para trás via scripts, dando a ilusão que os personagens estão
correndo pelo cenário. O cenário é dividido em duas partes, de tal forma que um seja uma
continuidade do outro. Quando um dos planos sair da área de visão da câmera, o outro será
reposicionado para o início do plano visível na visão de cobertura da câmera, como pode ser
visto na figura 24.

Figura 24 - Comportamento do cenário com a câmera no jogo Polícia e Ladrão

Fonte: Imagem elaborada pelo autor


44

Com a animação do cenário de fundo finalizada, são adicionados os personagens e


a interface do jogo, em pontos fixos da tela. A interface conta com a quantidade de vidas que
ambos os personagens possuem, também as quatro habilidades que poderão ser coletadas ao
longo da fase.
Os personagens, as casas e o chão são modelos tridimensionais e são montados
como na figura 25. Porém, a câmera utilizada está configurada para ter uma visão ortográfica
da cena, fazendo com que não seja visto a profundidade dos objetos, simulando uma visão
2D, como na figura 26.

Figura 25 - Elementos do jogo montados no motor de jogos Unity 3D

Fonte: Imagem elaborada pelo autor

Figura 26 - Visão da câmera do jogo Polícia e Ladrão

Fonte: Imagem elaborada pelo autor


45

Foi utilizado o recurso "Mecanim", que é encontrado a partir da versão 4 do motor


de jogos Unity 3D, para a transição de animações dos personagens como em uma máquina de
estados, como pode ser visto na figura 27, facilitando o gerenciamento dos estados dos
personagens durante o jogo. O Mecanim auxilia na organização e execução das animações,
onde a animação base "correr" é a principal dos personagens e todas as transições são
controladas via código.

Figura 27 - Animações dos personagens utilizando o recurso "Mecanim" do Unity 3D

Fonte: Imagem elaborada pelo autor

Depois de tudo montado, os scripts são desenvolvidos para controlar o


comportamento do jogo. O motor de jogos Unity 3D permite que os scripts sejam codificados
utilizando as linguagens de programação Javascript, C# e Boo. Foi utilizada a linguagem C#.
Os scripts controlam todas as funcionalidades do jogo, como por exemplo, a transição de
telas, movimentação dos personagens, movimentação do cenário, comportamento das
habilidades, quem foi o vencedor da partida. Na figura 28 é possível ver todos os script que
foram utilizados no jogo Polícia e Ladrão.
46

Figura 28 - Scripts utilizados no jogo Polícia e Ladrão no painel "Project"

Fonte: Imagem elaborada pelo autor

Depois que todos os scripts foram finalizados e testados, foram adicionadas as


telas extras, como tela de inicio, tela de instruções e todas as funcionalidades do jogo foram
testadas, finalizando o jogo (figura 29), que agora está pronto para ser jogado.

Figura 29 - Tela inicial do jogo Polícia e Ladrão

Fonte: Imagem elaborada pelo autor


47

5.5 Dificuldades

A grande dificuldade na criação do jogo Polícia e Ladrão foi, sem dúvidas, quanto
ao tamanho da equipe. Como foi dito nos capítulos anteriores, é necessário uma equipe de
profissionais qualificados para desenvolver um jogo, cada um responsável pela sua área. Pela
limitação do tamanho da equipe, cada integrante teve que desempenhar mais de um papel,
então o trabalho foi dividido em: arte e programação.
O artista teve que trabalhar nas animações dos personagens, na modelagem do
cenário, desenvolvimento de interfaces, texturas, imagens e sons. O programador foi o
responsável pela modificação do rig dos personagens e por toda a parte de programação do
jogo, que normalmente é dividida entre diversos programadores.
O motor de jogos Unity 3D, por ser uma ferramenta gratuita para fins estudantis e
possuir um fluxo de trabalho rápido e simples, possibilitou que o trabalho fosse realizado por
apenas duas pessoas.
48

6 CONCLUSÃO E TRABALHOS FUTUROS

Este trabalho abordou como são as etapas de projeto e implementação de um jogo,


usando como estudo de caso o desenvolvimento do jogo Polícia e Ladrão. Também foram
analisadas algumas ferramentas de desenvolvimento de jogos a fim de escolher qual se
encaixaria melhor para a situação da equipe e o tipo de jogo.
O motor de jogos Unity 3D foi a ferramenta escolhida, por proporcionar maior
liberdade ao desenvolvedores, com muitas funcionalidades visuais, acelerou o processo de
desenvolvimento, fazendo com que os criadores do jogo não precisassem se preocupar com
questões que o motor faz automaticamente, dando mais tempo para que focassem em outras
partes como mecânica e jogabilidade.
Como possíveis trabalhos futuros pode-se:
• Aprofundar a análise dos motores gráficos e motores de jogos, detalhando
ainda mais suas funcionalidades.
• Melhorar alguns aspectos gráficos do jogo Polícia e Ladrão.
• Desenvolver uma versão online do jogo.
• Desenvolver uma versão mobile do jogo.
• Desenvolver uma inteligência artificial para o jogo, para que possa ser jogado
de forma singleplayer.
Como contribuição, este trabalho poderá ser utilizado para que outros possam
conhecer um pouco sobre as funcionalidades de motores gráficos e motores de jogos.
Também, estudar como um jogo do tipo runner é desenvolvido e utilizar os padrões
encontrados para o desenvolvimento de seus próprios jogos.
49

REFERÊNCIAS

3DSTATE. Disponível em: <http://www.3dstate.com/>. Acesso em: novembro 2013.

AMAZONAS, Daniel Souza. Desenvolvimento de Jogos 3D em Java com a Utilização do


Motor Gráfico Irrlicht. 2007. Disponível em:
<http://www.flf.edu.br/revista-flf/monografias-computacao/monografia_jogo3d.pdf>
Acesso em: outubro 2013.

ARGENTE, Rubén Talón. Motores Gráficos - Informática Gráfica. 2004. Disponível em:
http://informatica.uv.es/iiguia/IG/motores_graf.pps>. Acesso em: outubro 2013.

BATES, Bob. Game Design. 2nd. ed. Massachussetts: Thomson Course Technology, 2004.

BOURG, D. M. AI for Game Developers. O'Reilly: SEEMANN, 2004.

BOYER, Brandon. Serious Game Engine Shootout. 2007. Disponível em:


<http://www.gamasutra.com/view/news/103724/SGS_Feature_Serious_Game_Engine_Shoot
out.php>. Acesso em: novembro 2013.

BRITO, Allan. Blender 3D Jogos e Animações interativas. São Paulo: Novatec 2011.

Cal3D. Cal3D Character Animation Library. 2004. Disponível em:


<http://cal3d.sourceforge.net>. Acesso em: outubro 2013.

CryEngine3. Disponível em: <http://www.crytek.com/cryengine/cryengine3/overview>.


Acesso em: outubro 2013.

Crystal Space. Disponível em: <http://www.crystalspace3d.org/main/Main_Page>. Acesso


em: novembro 2013.
50

DALMINA, Leonardo. UTILIZAÇÃO DA ENGINE DE JOGOS CRYENGINE PARA O


DESENVOLVIMENTO DE APLICATIVOS DE ENTRETENIMENTO (JOGOS).
2012. Disponível em: <http://www.slideshare.net/LeonardoDalmina/artigo-tcc-2012>. Acesso
em: outubro 2013.

Epic Games. Disponível em: <http://www.epicgames.com>. Acesso em: novembro 2013.

FrostBite 3. Disponível em: <http://www.frostbite.com/about/frostbite-3/>. Acesso em:


outubro 2013.

Genesis3D. Disponível em: <http://www.genesis3d.com/>. Acesso em: novembro 2013.

IDSoftware. Disponível em: <http://www.idsoftware.com/>. Acesso em: novembro 2013.

Irrlicht. Disponível em: <http://irrlicht.sourceforge.net/>. Acesso em: novembro 2013.

LAYNE, Arnold. Battlefield 4 Levolution como elemento tático. 2013. Disponível em:
<http://portal.bf4brasil.com.br/battlefield-4-levolution-como-elemento-tatico.html>. Acesso
em: novembro 2013.

LEMES, David de Oliveira. GAMES INDEPENDENTES: Fundamentos metodológicos


para criação, planejamento e desenvolvimento de jogos digitais. 2009. Disponível em:
<http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&co_obra
=166632>. Acesso em: setembro 2013.

MACEDO, Daniel Valente. DESENVOLVIMENTO DE JOGOS: Detalhando as Etapas


de Construção de um Jogo 3D. 2010.

MACEDO, Thiago Bragante . INTRODUÇÃO AO DESENVOLVIMENTODE MOTOR


GRÁFICO 3D UTILIZANDO A API OPENGL. 2007. Disponível em:
<http://www.enetec.deinfo.uepg.br/trabalhos/Thiago%20Bragante%20Macedo.pdf> Acesso
em: novembro 2013.
51

MAIA, José Gilvan Rodrigues. CRAbGE - UMA ARQUITETURA PARA MOTORES


GRÁFICOS FLEXÍVEIS, EXPANSÍVEIS E PORTÁTEIS. 2005. Disponível em:
<mdcc.ufc.br/teses/doc_download/73->. Acesso em outubro 2013.

NOSOWITZ, Dan. Retromodo: Tennis for Two, the World's First Graphical Videogame.
2008. Disponível em: <http://gizmodo.com/5080541/retromodo-tennis-for-two-the-worlds-
first-graphical-videogame>. Acesso em: outubro 2013.

PILLEGGI, Marcus Vinicius. O mercado de jogos eletrônicos. 2010. Disponível em:


<http://www.papodeempreendedor.com.br/oportunidades/o-mercado-dos-jogos-eletronicos>.
Acesso em: outubro 2013.

REEVES, William T. Particle Systems: A Technique for Modeling A Class of Fuzzy


Objects. Detroit, Michigan,: SIGGRAPH, 1983.

RETROSPACE. A história dos Videogames em 40 capítulos. 2007. Disponível em:


<http://outerspace.terra.com.br/retrospace/materias/consoles/historiadosconsoles1.htm>.
Acesso em: outubro 2013.

RUCKER, Rudy. Software Engineering and Computer Games. USA: Addison-Wesley,


2002.

SANTEE, André. O que são Game Engines. 2013. Disponível em:


<http://pontov.com.br/site/index.php/ethanon/357-o-que-sao-game-engines>. Acesso em:
novembro 2013.

SCHELL, Jesse. The Art of Game Design. A book of lenses. USA: Elsevier, 2008.

SEGAL, Mark; AKELEY, Kurt. The OpenGL Graphics System: A Specification (Version
2.0 - October 22, 2004). 2004. Disponível em:
<http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf>. Acesso em:
novembro 2013.
52

SILVA, Romero Tavares da. Leis de Newton. 2002. Disponível em:


<http://www.fisica.ufpb.br/~romero/pdf/05_leis_de_newton.pdf>.

Unity 3D. Disponível em: <http://unity3d.com/unity>. Acesso em: outubro 2013.

Unreal Engine 4. Disponível em: <http://www.unrealengine.com/>. Acesso em: outubro


2013.

VALENTE, Leandro Marques. XADREZ SEM LIMITES: UM ESTUDO DE CASO


COM O UNITY 3D. 2012.
VALIENT, Michal. 3D Engines in games. 2001. Disponível em:
<http://www.dimension3.sk/downloads/3d_engines_in_games.pdf>. Acesso em: outubro
2013.

WILSON, Derek. Anandtech. 2006. Disponível em:


<http://www.anandtech.com/show/2001>. Acesso em novembro 2013.
53

ANEXO A – DOCUMENTO DE GAME DESIGN

Game Design do Jogo Polícia e Ladrão

4.1. Apresentação

4.1.1 Breve introdução ao jogo:

Jesse era um ladrão muito atrapalhado. Ele vivia pelas ruas de uma cidade, sempre
roubando bolsas e sacolas das pessoas. Ele só precisava de uma oportunidade. Mas, como
dito, ele era muito atrapalhado e nem sempre conseguia usufruir de seu "trabalho". Nessa
cidade, também vive Hank, um policial que gosta muito de seu emprego e que tenta todos os
dias capturar Jesse. O problema é que Jesse tem certa habilidade com subir em paredes e pular
telhados. Por isso, não basta que Hank corra atrás de Jesse. Ele precisa de algumas
habilidades especiais pra conseguir capturá-lo.

4.1.2 Gênero, semelhanças e diferenças de outros títulos:


O jogo "Polícia e Ladrão" foi idealizado como um jogo casual, de plataforma, que
mistura elementos 2D e 3D. O jogo irá rodar em PC's, possuirá modalidade multiplayer (2
jogadores) e será funcional com joysticks. Sua ideia foi baseada nas brincadeiras de criança de
"Pega Ladrão" e também em jogos chamados "Runners", como por exemplo os jogos para
IOS Subway Surfers, Stylish Sprint e Agent Dash.

4.2. Processo

4.2.1 Ideia
Jogos como Pepsi Man, Stylish Sprint, Subway Surfers já provocaram experiências
agradáveis em diversos tipos de público alvo. Partindo de referências como estas citadas,
procuramos criar um jogo simples de plataforma, voltado principalmente para um público
jovem devido sua casualidade e diversão. O jogo foi inspirado nas possibilidades de um jogo
de plataforma, por exemplo: completar uma fase no menor tempo possível, coletar objetos
colecionáveis e utilizá-los contra o seu adversário, possilibidades de combos, etc. Vale
lembrar que por ser um jogo multiplayer, ele estimula a competição entre os jogadores.

4.2.2 Iteração
54

Após escolhida a ideia, era necessário verificar se a mesma era viável. Para isso,
algumas considerações foram levantadas a respeito do jogo:

Esse jogo parece certo?


O jogo tem muito a oferecer, visto seu caráter casual e lúdico.

Até que ponto o público-alvo gostará desse jogo?


Nosso público alvo já é consumidor desse estilo de jogos e ele poderá ver em "Polícia
e Ladrão" uma evolução dos jogos Runners por apresentar a categoria multiplayer.

É um jogo bem projetado?


O jogo possui uma narrativa simples, uma mecânica não complexa, um visual atraente,
além do apelo à memória de seu público sobre jogos similares.

Esse jogo é original o bastante?


Mesmo com tantas semelhanças que fazem os jogadores remeterem a jogos plataforma
de sua infância, a originalidade do jogo se dá através da modalidade multiplayer, atém então
bem incomum na categoria runner.

Esse jogo irá vender?


Sim. Além de possuir uma proposta divertida, o jogo será criado para uma das
plataformas mais utilizadas nos últimos tempos, o PC. Isto permite muitas possibilidades de
distribuição.

É tecnicamente possível construir esse jogo?


Sim. Atualmente, motores de jogos facilitam bastante o trabalho dos desenvolvedores.

Esse jogo satisfaz nossos objetivos sociais e comunitários?


O jogo é capaz de promover boas experiências sociais na medida em que grupos de
usuários podem se reunir para jogarem e inclusive criar pequenas competições tendo como
base os melhores resultados de cada jogador.
55

4.3. Jogo

4.3.1 Elementos:

Mecânica:

Cada jogador deve controlar um personagem, o policial e o ladrão, os dois deverão


desviar dos obstáculos que surgirão na tela. Os personagens correrão sozinhos e a medida que
o tempo passar, a velocidade irá aumentar tornando o jogo mais complicado. Na tela surgirão
poderes especiais param serem coletados pelos jogadores e serão armazenados no seu
inventário. Essas habilidades poderão ser utilizadas para penalizar o jogador inimigo, fazendo
com que ele erre e perca vidas. O jogador que perder todas as vidas irá perder o jogo.

Narrativa:

Em uma pequena cidade, morava Hank, um policial muito eficiente. Ele ja tinha
conseguido prender todos os ladrões da cidade, exceto um: Jesse. Jesse era muito sabido, ele
sempre conseguia fugir de Hank porque conseguia subir muito rápido nos telhados das casas e
fugia por cima deles. O que Hank conseguia fazer, as vezes, era recuperar as bolsas e sacolas
que Jesse deixava para trás.

Hank precisa capturar Jesse e para isso ele utilizará algumas habilidades pra conseguir
que Jesse se atrapalhe e caia dos telhados. Jesse também pode usar as mesmas habilidades
para derrubar Hank e assim, escapar mais uma vez.

Estética:

Será um jogo com visão lateral, uma mistura entre 2D e 3D. Em geral, o cenário do
jogo será uma rua - casas, prédios, telhados, calçadas. Serão dois personagens, o Policial e o
Ladrão. A rua será criada em 2d, utilizando a técnica de paraláx e os personagens serão em
3d, mas a câmera será lateral. O jogo terá o estilo cartoon em sua natureza, os personagens
terão uma proporção reduzida de aproximadamente duas cabeças e meia. As texturas do
cenário e dos personagens serão bem coloridas.

Tecnologia:

O jogo, inicialmente foi projetado para PC, pelo fato de que os dois jogadores
dividirão a tela. Os personagens utilizarão o teclado para movimentação e habilidades dos
56

personagens, além de pausar o jogo. Porém o ideal é que os jogadores utilizem joysticks, pois
irá facilitar o controle dos personagens.

4.3.2 Tema

O tema “Policia e Ladrão” vem de uma brincadeira de criança que consiste em o


policial capturar o ladrão. Esse tema foi utilizado no jogo por ser interessante e atrativo, junto
com uma mecânica diferente dos jogos atuais, será um jogo muito divertido e fará com que os
jogadores joguem diversas vezes para descobrir quem sairá vitorioso, o policial ou o ladrão.

O jogo procura imergir o jogador numa fuga emocionante, fazendo com que o jogador
se concentre ao máximo para nao errar e ao mesmo tempo utilizar todos os recursos
necessários para vencer seu adversário.

4.3.3 – Interface

Na interface interna, a tela será dividida ao meio, o Ladrão só correrá na parte superior
e o Policial apenas na parte inferior. Será uma única tela, a divisão será apenas para que o
usuário entenda seu espaço e possa visualizar seus "poderes". Como é um jogo projetado para
ser jogado com joysticks, não haverão botões na tela, todos os comandos serão via controle. O
usuário irá visualizar a quantidade de vidas que possui e também seus poderes especiais.

4.4. Experiência do jogador

O jogador terá uma experiência única com a jogabilidade desse jogo, pelo fato de ter
elementos que farão com que seus reflexos sejam testados e sua capacidade de utilizar
estratégias no tempo certo serão fatores cruciais para a vitória.

Pelo fato do jogo ser multiplayer e com os jogadores compartilhando a mesma tela,
haverá uma aproximação entre as pessoas. O jogo também contará com um placar fazendo
com que a rivalidade faça com que mais de dois jogadores joguem, competindo para ver quem
tem as melhores habilidades. A diversão será garantida a todos.

Você também pode gostar