Escolar Documentos
Profissional Documentos
Cultura Documentos
educacional
gente criando o futuro
Presidente do Conselho de Administração Janguiê Diniz
DADOS DO FORNECEDOR
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio
A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do
Código Penal.
ASSISTA
Indicação de filmes, vídeos ou similares que trazem informações comple-
mentares ou aprofundadas sobre o conteúdo estudado.
CITANDO
Dados essenciais e pertinentes sobre a vida de uma determinada pessoa
relevante para o estudo do conteúdo abordado.
CONTEXTUALIZANDO
Dados que retratam onde e quando aconteceu determinado fato;
demonstra-se a situação histórica do assunto.
CURIOSIDADE
Informação que revela algo desconhecido e interessante sobre o assunto
tratado.
DICA
Um detalhe específico da informação, um breve conselho, um alerta, uma
informação privilegiada sobre o conteúdo trabalhado.
EXEMPLIFICANDO
Informação que retrata de forma objetiva determinado assunto.
EXPLICANDO
Explicação, elucidação sobre uma palavra ou expressão específica da
área de conhecimento trabalhada.
Tipos de jogos........................................................................................................................ 23
Gêneros............................................................................................................................ 23
Plataformas..................................................................................................................... 29
Empregabilidades........................................................................................................... 31
Sintetizando............................................................................................................................ 48
Referências bibliográficas.................................................................................................. 49
Sintetizando............................................................................................................................ 74
Referências bibliográficas.................................................................................................. 75
Motores de jogos................................................................................................................... 97
Como utilizar motores de jogos.................................................................................... 98
Principais motores de jogos......................................................................................... 98
Sintetizando.......................................................................................................................... 103
Referências bibliográficas................................................................................................ 104
Sintetizando.......................................................................................................................... 132
Referências bibliográficas................................................................................................ 133
O ser humano, desde seus primórdios, tem como uma de suas principais
atividade o jogar e, em paralelo, criar jogos. A princípio, jogar se assemelhava
muito ao simples ato de brincar; pouco podemos distinguir do que nomeamos
por brincadeiras e os primeiros jogos presentes na história.
Com o passar do tempo, os jogos se tornaram cada vez mais complexos, com
regras, objetivos e características que se distanciavam de uma brincadeira. Por
fim, com o advento do computador e a criação do meio digital, os jogos muda-
ram drasticamente, uma vez que, antes, todos os seus componentes eram físicos
e necessitavam apenas de alguém que criasse o jogo e produzisse suas peças. No
ambiente virtual, contudo, é necessário um time diverso para a criação do jogo,
dentre eles: game designers – responsáveis por projetar a experiência; progra-
madores – que irão codificar o jogo através de motores gráficos próprios ou de
terceiros; designers gráficos – capazes de criar a parte visual do jogo; músicos –
profissionais que criarão a trilha sonora do jogo; dentre muitos outros.
Currículo Lattes:
http://lattes.cnpq.br/8511841728944217
Dedico este projeto a todos os mestres que tive durante a vida, pois seus
ensinamentos, esforços e exemplos carregarei para sempre. Também
agradeço ao apoio de meus pais e meu irmão. E por fim, agradeço a toda a
equipe editorial pela oportunidade e esforço coletivo.
1 HISTÓRIA DA
INDÚSTRIA E
INTRODUÇÃO AO
PROCESSING.JPS
Compreender os conceitos e
elementos básicos necessários à criação
de um jogo.
Tópicos de estudo
Histórico dos jogos digitais Elementos básicos de um jogo
Os primeiros jogos digitais Os quatro pilares elementares
O início dos consoles Profissionais necessários
Computadores pessoais e jogos
Os jogos no século XXI Criação de jogos 2D
Fundamentos da programação
Tipos de jogos Utilizando o Processing.js
Gêneros
Plataformas
Empregabilidades
CURIOSIDADE
Segundo Kent (2011), as primeiras máquinas de arcade de Computer Spa-
ce, lançadas em 1971, não fizeram sucesso comercial. Aparentemente, o
que faltava para que elas estourassem era um jogo que fizesse o sucesso
acontecer. A Atari realizou esse feito com Pong – uma primeira máquina
foi colocada em um bar para testar a receptividade do jogo. Após dois
dias, o dono do estabelecimento informou que a máquina estava quebra-
da, quando na realidade ela estava completamente cheia de fichas, o que
impedia o sistema de inicialização de funcionar.
Os anos seguintes ficaram conhecidos como a Era de Ouro dos Jogos, de-
vido a popularização dos consoles caseiros, criação de alguns dos jogos mais
populares de toda a história e disseminação das máquinas de arcade. Alguns
dos jogos criados no fim da década de 1970 e começo da década 1980 que me-
recem ser citados são:
• Space Invaders (1978): primeiro jogo de arcade a salvar a pontuação conse-
guida pelo jogador;
CONTEXTUALIZANDO
Tetris foi criado na Rússia, em 1985, porém nunca patenteado. Na época,
não existia nada semelhante a direitos de propriedade intelectual na
União Soviética. O criador original, Alexey Pajitnov, e seus assistentes
não conseguiram ter direitos sobre o jogo até o ano de 1996, quando junto
a Henk Rogers fundou a empresa The Tetris Company, LLC e Blue Planet
Software. Durante este período, o jogo foi distribuído para computadores
da IBM e outras plataformas, através de uma empresa húngara chamada
Andromeda, a qual encontrou o programa e o revendeu para a empresa
Spectrum Holobyte.6.
Tipos de jogos
Além das plataformas para as quais os jogos são criados, há outras peculia-
ridades que os diferenciam. Essas diferenças geram suas classificações. Jogos
podem ser classificados pelo seu gameplay, estética, história ou finalidade.
Gêneros
Gêneros são as classificações referentes às mecânicas usadas no jogo ou a
experiência geral que ele intenta fazer com que o jogador vivencie. Por envol-
ver a experiência que o jogador tem no ambiente virtual, o gênero é o principal
divisor de público-alvo de um jogo para outro; um bom game designer sempre
deverá levar isso em consideração ao definir de qual gênero seu jogo será. É
importante notar que um jogo não é composto de apenas um gênero, sendo
comum mesclá-los.
• Ação: o gênero de ação se divide em diversos subgêneros que serão apre-
sentados a seguir. A maioria desses jogos têm a característica em comum de
que o jogador controla uma personagem que utiliza de armas para derrotar
seus inimigos a fim de alcançar um objetivo. Esse gênero concentra os jogos
com movimentos rápidos e apertar rápido de botões, os quais geralmente tes-
tam a velocidade de resposta do jogador.
Plataformas
Plataforma é o termo atribuído aos aparelhos que o jogador utilizará para
jogar. Devido às suas diferenças, cada plataforma promove uma experiência
distinta e, consequentemente, possibilita a produção de diferentes tipos de jo-
gos para cada uma delas.
Empregabilidade
Observando o início dos jogos digitais, podemos constatar que haviam fi-
nalidades implícitas na criação dos primeiros jogos. Apesar da predominância
de sua utilização na indústria do entretenimento, sempre foi possível observar
que eles tinham mais de uma aplicabilidade, sendo algumas delas:
• Entretenimento: assim como filmes e livros, os jogos podem ser vistos
como produtos para divertimento. A possibilidade de interpretar outro perso-
nagem, vivenciar aventuras fantásticas e ser capaz de criar universos presentes
em sua imaginação atraem o jogador pela interatividade. Diferente das outras
mídias de entretenimento, os jogos permitem que o consumidor interaja com
o ambiente virtual, pois ele deixa de ser um mero espectador para tornar-se
agente do que está consumindo.
• Socialização: jogos podem promover a interatividade entre jogadores que
se enfrentam desde a criação de Pong, entretanto, com o advento da internet
e a possibilidade de interação entre milhares de pessoas através de grupos,
comunidades e guildas (no caso de gêneros como MMORPG), um dos focos do
jogador pode ser o de estabelecer laços de amizade e companheirismo com os
seus colegas de jogatina.
• Educação: desde o uso de Tennis for Two para apresentar a aplicação da gra-
vidade, jogos têm demonstrado a sua capacidade educativa. Existem jogos espe-
cíficos para ensinar matemática, literatura, história e demais matérias, como os
jogos da série Reader Rabbit, conhecido no Brasil como Coelho Sabido, que eram
Criação de jogos 2D
O primeiro ponto importante a ser observado é que jogos digitais são pro-
gramas de computador. A partir dessa informação, pode-se entender que criar
um game é semelhante a criar um aplicativo para computador ou celular, com o
diferencial de alguns outros profissionais envolvidos, como os game designers,
e que esse aplicativo será usado para o entretenimento do usuário.
Um jogo 2D é caracterizado pela presença de apenas dois eixos cartesia-
nos: os eixos x e y, os quais representam a horizontalidade e a verticalidade.
Semelhantemente a um mapa, a tela do computador é formada por um plano
cartesiano e cada ponto da tela equivale a uma coordenada.
(2 3)
3
2
(-3 1)
1
x
-3 -2 -1 1 2 3
-1
-2
(-1,5 -2,5)
-3
Fundamentos da programação
Para programar um jogo é necessário primeiramente entender os principais
conceitos que envolvem a programação. Programar é o ato de criar sequências
de instruções, as quais é dado o nome de algoritmo. O ser humano desen-
volve algoritmos diariamente para todas as tarefas que realiza; um exemplo é
quando uma pessoa escova os dentes. A sequência de ações pode ser listada
da seguinte forma:
1. Abrir o armário;
2. Pegar a escova e a pasta de dente e colocá-las sobre a pia;
3. Fechar o armário;
4. Abrir a tampa da pasta de dente e colocar o creme dental sobre as cerdas
da escova;
5. Fechar a tampa da pasta de dente;
6. Pegar a escova e, com a boca aberta, começar a escovar os dentes, fazen-
do movimentos circulares com o braço;
7. Abrir a torneira, enxaguar a boca e lavar a escova;
8. Depois de feito, fechar a torneira;
9. Pegar a toalha e, com ela, enxugar a boca, as mãos e a escova;
10. Por fim, abrir o armário e guardar a escova e a pasta de dente.
Esta mesma tarefa poderia ser descrita de inúmeras maneiras diferentes;
por exemplo, há quem molhe as cerdas da escova após colocar a pasta de den-
te, ou então a sequência poderia ser mais descritiva e explicar qual das mãos
está sendo utilizada para escovar. O importante é entender que é necessária
EXPLICANDO
Há três terminologias utilizadas para denominar os profissionais que tra-
balham com desenvolvimento de software. Front-end é o termo atribuído
à parte frontal do software, a qual o usuário terá contato direto enquanto
utiliza o aplicativo. Back-end é a área de suporte, o código que fica do
lado do servidor, onde as informações ficam guardadas. E full stack é o
profissional que possui conhecimento e trabalha com ambas as extremi-
dades do desenvolvimento.
Utilizando o Processing.js
Para testar o código criado, assim como compreender outras propriedades
da programação para jogos, será utilizado o ambiente de desenvolvimento in-
tegrado Processing 3.
O Processing 3 é um programa usado por entusiastas e alunos de progra-
mação para aprender a programar mídias interativas, como jogos, e experi-
mentações artísticas utilizando a linguagem Java. O programa está disponível
para os sistemas operacionais Windows, Linus e Mac OS X e pode ser baixado
gratuitamente na sessão de download do site Processing.org.
2 RECURSOS
VISUAIS DE UM
JOGO ELETRÔNICO
Tópicos de estudo
Elementos gráficos de um jogo
Composição dos gráficos
Variáveis e operadores
Formas primárias
1º 2º 3º 4º 5º 6º 7º 8º
20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128
A soma de todos os valores equivale a 256 – valor que a menor variável existente,
char, consegue armazenar. Seguindo essa estrutura, os demais valores podem ser
obtidos pelo ligamento e desligamento dos bits. Para obter, por exemplo, o valor
19, apenas os bits da primeira, terceira e quinta posição precisariam estar ligados, en-
quanto todos os outros estariam desligados. A representação em bits seria a seguinte:
EXPLICANDO
Eck (2011, p. 539) disserta que os dados consistem primariamente de carac-
teres, mas as palavras de um editor de texto podem possuir mais de uma
tradução. Os caracteres são armazenados no computador utilizando uma
codificação como a de valores 16-bit Unicode. Nos computadores com alfa-
betos ocidentais, os dados de caracteres são guardados em arquivos com a
codificação ASCII, que usa apenas 8 bits por caractere. Assim, ASCII é uma
forma de codificar os caracteres para interpretação do computador.
As cores também podem ser representadas por outro tipo de valor, chama-
do hexadecimal.
Diferentemente dos binários, que funcionam em base 2, os hexadecimais
funcionam em base 16, assim os valores variam de 0 a F. Isto quer dizer que os
valores podem ser 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ou F, as letras representam
respectivamente os valores 10, 11, 12, 13, 14 e 15. Seguindo a lógica hexadeci-
mal de valores, o valor “EC” em base 10 equivaleria ao valor 236. A conversão
funciona da seguinte forma:
EC = 236
EC = (E = 14) * 16 (16 = o valor da posição) + (C = 12) * 1 (1 = o valor da posição)
EC = (14 * 16) + (12 * 1)
EC = 224 + 12
EC = 236
Valores hexadecimais costumam vir em três duplas para representar cores,
como na linguagem de marcação HTML ou na linguagem de estilo CSS, ambas
Variáveis e operadores
Para que seja possível armazenar as informações necessárias, são utiliza-
das variáveis. Elas diferem em tipo de dados e em uso de memória. Acerca da
nomeação de variáveis em Java, há algumas restrições relacionadas a palavras
que têm uso específico, dentre elas: class, public, static, if, else, while, void, en-
tre outras. Por exemplo, a palavra if serve para a inicialização de uma estrutura
condicional e é sempre utilizada nesses casos.
Além da proibição de palavras reservadas, variáveis não podem ter espaço
em seus nomes e são entendidas de forma literal, diferenciando letras maiús-
culas e minúsculas; esse recurso de interpretação é conhecido como case sen-
sitive. Assim, as variáveis name, Name e NAME seriam três alocações de me-
mória com endereços diferentes.
Também não é possível utilizar um número no início do nome de uma variá-
vel, porém, o uso é livre a partir do segundo caractere. O nome de uma variável
pode ser composto de várias palavras, como HeroHealth, e a prática de iniciali-
zar as letras de cada palavra com letras em maiúsculo é conhecida como Camel
Case, por lembrar das corcovas de um camelo, e é reconhecida como uma boa
prática de escrita para identificação rápida de nomes.
As variáveis também podem receber expressões, além dos valores que seus
tipos determinam. Por exemplo, uma variável do tipo boolean pode receber
uma expressão numérica para verificação de grandezas. Para testar, insira o
seguinte código no Processing:
int i = 51;
OPERADOR SIGNIFICADO
> Maior que
< Menor que
== Igual a
>= Maior ou igual a
<= Menor ou igual a
!= Diferente de
EXPLICANDO
É importante observar que, para verificar a igualdade entre dois valores
de variável, são utilizados dois sinais matemáticos de igualdade, enquan-
to para atribuir um valor a uma variável somente é utilizado um sinal de
igualdade. O nome dado a essas operações são respectivamente, com-
paração e atribuição. Além disso, o sinal de exclamação funciona como
negação, quando colocado antes de uma variável do tipo boolean, o sinal
transforma o valor da variável no oposto, assim false se torna true, e true
se torna false.
OPERADOR USABILIDADE
&& E
|| OU
OPERADOR OPERAÇÃO
+ Soma
- Subtração
* Multiplicação
/ Divisão
% Resto da divisão
Figura 1. Exemplo de utilização de sprites estáticos. Fonte: Game Art 2D, 2014.
Utilizando sprites
As imagens podem ser criadas utilizando softwares de criação de imagens,
como Adobe Photoshop, Adobe Illustrator, Aseprite, entre outros. O visual ar-
tístico pode se utilizar de pinturas, artes vetoriais ou pixel art de acordo com a
estética desejada no jogo. Já em relação ao formato de compressão da imagem,
o mais apropriado para jogos é o PNG, pois este formato possui propriedade
de transparência, enquanto os demais formatos ficam com pixels brancos nas
DICA
Para a prototipagem de um jogo e até mesmo a criação, é possível utilizar
recursos criados e disponibilizados gratuitamente por outras pessoas no
mundo. Alguns sites que disponibilizam esse tipo de conteúdo para desen-
volvedores de jogos são o Itch.io, o OpenGameArt.org e o Game Art 2D.
Utilizando tiles
Imagens podem ser recursos muito pesados para o processamento e arma-
zenamento em jogos digitais. Para que não seja necessário criar todas as ima-
gens de terrenos, paisagens e demais peças de cenários que podem se repetir
são utilizados os tiles.
Um tile é semelhante a uma peça de azulejo. Para substituir a utilização de
uma grande peça, são usadas pequenas peças lado a lado para compor as pla-
taformas, terrenos e demais cenários.
Tipos de animação
Os estilos de animação para jogos variam de acordo com as limitações
técnicas do projeto ou do estilo visual que se deseja alcançar. Os primei-
ros jogos possuíam a limitação de poderem utilizar apenas da troca de
quadros para criar animações, enquanto em jogos mais atuais é possível
animar personagens e cenários com muito mais detalhamento, graças à
evolução das placas gráficas, além de existirem ferramentas para mode-
lagem e animação 3D. Acerca das animações 2D, existem alguns estilos e
técnicas que se destacam:
• Frame a frame: neste estilo de animação, são desenhados todos
os quadros com a movimentação do personagem, que são trocados de
forma a simular o movimento do personagem. Esta técnica se asseme-
lha aos flipbooks, nos quais é desenhada uma cena em cada página e,
ao passar as páginas rapidamente, há a ilusão óptica de
movimento das imagens. Os primeiros jogos se utiliza-
vam desta técnica por causa de sua limitação
gráfica e tecnológica. Inicialmente, somente
alguns quadros de animação podiam ser uti-
lizados. Com o avanço tecnológico, cada vez
mais detalhes puderam ser adicionados ao
movimento de personagens e objetos através
de mais quadros de animação. As animações frame a
frame são as mais comumente utilizadas nos jogos, por
ser um dos primeiros estilos de animação a aparecerem
no meio.
Implementando animações
A implementação de animações no Processing é um
tanto quanto complexa e envolve um pouco de cada
um dos conceitos apresentados. Para que seja possí-
vel carregar todas as imagens de forma sequencial, é ne-
cessário carregar todas elas dentro de um array do tipo PIma-
ge. Além disto, o programa precisa receber em uma variável a
quantidade de frames para conseguir limitar o valor máximo que
o índice pode atingir, caso contrário, ele extrapolaria a quantidade de imagens
contidas no array. Também é preciso verificar qual a velocidade de repetição
dos quadros através do comando frameRate, para que a animação funcione
em uma velocidade adequada.
// O número de imagens que a animação terá
int numFrames = 15;
int currentFrame = 0;
PImage[] images = new PImage[numFrames];
void setup() {
size(640, 360);
frameRate(24);
//Carrega e atribuir cada uma das imagens ao Array
images[0] = loadImage(“Run (1).png”);
images[1] = loadImage(“Run (2).png”);
3 DISPOSITIVOS
DE ENTRADA,
INTELIGÊNCIA
ARTIFICIAL E
INTERAÇÃO HOMEM-
MÁQUINA
Tópicos de estudo
Leitura de dispositivos de
entrada
A história dos controles
Utilizando o mouse
Utilizando o teclado
Motores de jogos
Como utilizar motores de jogos
Principais motores de jogos
Figura 2. O clássico controlador do Atari 2600 com seu joystick. Possuía a capacidade de se mover em quatro direções. Um dos
exemplos que se utilizava dessa função era o jogo digital Frog, no qual um sapo recebia comandos para se mover enquanto
atravessava uma rua. Fonte: Wikimedia. Acesso em: 20/08/2019.
Figura 3. Controles com diversos botões numéricos, como no caso do videogame Atari 5200. Eram grandes comparados aos
seus predecessores, e dispunham de muitos botões. No entanto, a maioria dos jogos não utilizavam esses botões, mostrando
sua inutilidade. Fonte: Wikimedia. Acesso em: 20/08/2019.
Figura 5. Os novos controles da época demonstravam maior preocupação com a ergonomia de seus aparelhos e
tinham uma visão mais centrada no conforto do jogador, apresentando melhorias principalmente em seus formatos.
Fonte: Wikimedia. Acesso em: 20/08/2019.
Figura 6. Os D-pads alteraram a forma como o jogador usava sua mão para jogar. Enquanto botões rotativos e joysti-
cks necessitavam de dois dedos, ou até mesmo a mão inteira, para serem usados, os D-pads podiam ser utilizados com
apenas um dedo. Fonte: Wikimedia. Acesso em: 20/08/2019.
Figura 7. Duas funcionalidades apresentadas foram que os joysticks também podiam ser utilizados como botões ao
pressioná-los, e os controles também possuíam dois motores vibratórios. Fonte: Wikimedia. Acesso em: 20/08/2019.
Figura 8. O controle de Wii contava com um periférico auxiliar, conhecido como Nunchuk. Enquanto o Wii Remote
possuía apenas dois botões frontais, um D-pad e botões traseiros, o Nunchuk podia ser conectado a ele adicionando
um joystick e mais dois botões na parte superior. Fonte: Wikimedia. Acesso em: 20/08/2019.
Enquanto Sony e Microsoft optavam por seguir com escolhas mais seguras
e semelhantes às gerações anteriores em relação aos seus controladores prin-
cipais, a Nintendo tentava, a cada geração, inovar na maneira de jogar. Em
Figura 9. O controle de Wii U servia como uma tela auxiliar, mostrando mapas e menus, mas também podia ser
utilizado para exibir a tela e, apesar de não ser bem recebido pelo público, serviu como base para a concepção do seu
sucessor. Fonte: Wikimedia. Acesso em: 20/08/2019.
Uma adesão presente desde o PlayStation 3, Xbox 360 e Wii U foi a possibi-
lidade de conectar fones de ouvido e microfones, ou de ter um dispositivo de
entrada de áudio interno e alto-falantes.
O Nintendo Switch, lançado em 2017, apresentava dois pequenos contro-
les de movimento que podiam ser conectados a uma tela transformando em
um console portátil. Eles também podiam ser utilizados separadamente como
controles únicos e a tela podia ser conectada ao console ou, ainda, ser utilizada
separadamente para exibir o jogo.
CONTEXTUALIZANDO
Existem mais controles do que se é possível documentar, principalmen-
te pelo fato de as empresas lançarem diversos modelos durante a vida
útil de um console, além de periféricos utilizados para jogos eletrônicos
específicos, como as guitarras do jogo Guitar Hero. Segundo a pesquisa-
dora Taylor (2002), o motivo para tamanha variedade de interfaces é pela
quantidade de gameplay e a interdependência que têm entre si, isto é, as
interfaces dependem dos comandos disponíveis, assim como novas inter-
faces são desenvolvidas por necessidades específicas de gameplay.
Esconder-se
Se alcançar o esconderijo Se o fantasma for comido
EXPLICANDO
O exemplo apresentado no Diagrama 1 é apenas uma ilustração simplificada
dos comportamentos de um inimigo fantasma presente no jogo Pacman,
pois existe uma complexidade maior envolvida na programação de cada
Estados
padrão
Estados de
combate
Criando comportamentos
Antes de criar máquinas de estado,
é necessário entender que cada esta-
do pode ser visto como uma função.
Funções podem ser criadas para que
um determinado bloco de código seja
executado repetidas vezes. Os blocos
de códigos podem ser utilizados para
criar comportamentos simples de inte-
ligência artificial que, mais tarde, serão
utilizados como estados. Utilizando a
linguagem Java e o programa Processing, uma função para que um inimigo per-
siga a posição do mouse continuamente pode ser dada de acordo com a forma
a seguir:
//Variáveis para movimentação do inimigo
float enemyX, enemyY, enemySpeedX, enemySpeedY;
void setup(){
size(640,360);
background(0);
//Determina a posição inicial do inimigo
enemyX = width / 2;
enemyY = height / 2;
}
void draw(){
background(0);
enemyBehaviour();
}
void enemyBehaviour() {
//Verifica a posição horizontal do mouse para persegui-lo
Motores de jogos
Jogos eletrônicos podem ser criados utilizando apenas linguagens de programa-
ção e ambientes de desenvolvimento integrado, importando os recursos visuais e
sonoros. Porém, para manipulá-los via código, há a necessidade de que o progra-
mador entenda como se comunicar através dos códigos com as placas de vídeo e
demais componentes do computador, além de ter que implementar as funções al-
gébricas para referenciar as leis físicas que podem ser transferidas da vida real para
o universo virtual do jogo.
Quando um jogo é criado somente mediante o código, também não é possí-
vel visualizar de forma gráfica o que ocorre nas cenas criadas. Assim, sempre que
se deseja testar e visualizar se algo implementado está funcionando de maneira
adequada, é necessário compilar todo o programa. Para facilitar o processo de
desenvolvimento de jogos, foram criados os motores de jogos, também conhe-
cidos como Game Engines ou motores gráficos. Para Sherrod (2008), os motores
de jogos possuem ferramentas convenientes para a criação de jogos.
CONTEXTUALIZANDO
Para manter a qualidade gráfica e de gameplay, alguns dos mais famosos
jogos da história tiveram que utilizar seus próprios motores de jogos.
Segundo Sherrod (2008), o jogo Quake da empresa ID Software, contava
com seu próprio motor gráfico, o Quake Engine, que começou primeira-
mente como apenas um framework de desenvolvimento de jogos de tiro
em primeira pessoa para computadores e, mais tarde, foi ampliado para
um programa de desenvolvimento. Também assim ocorreu com o motor
gráfico Unreal Engine.
Construct
Desenvolvido pela empresa Scirra, é um programa de desenvolvimento de
jogos focado em jogos 2D, baseado na tecnologia HTML5. A versão Construct 3
pode ser usada diretamente de um navegador web.
Diferentemente do Unity e da Unreal, esse motor de jogos não possui uma
linguagem textual para programação, ao invés disso ele conta com uma lingua-
gem visual composta de eventos e um sistema de lógica baseado em compor-
tamentos. Ele possui uma versão gratuita com limite de eventos programáveis.
Para agilizar o processo de desenvolvimento, o programa conta com um
editor de imagens, sendo possível criar ou editar sprites e animações inter-
CURIOSIDADE
O que diferencia as game engines, além das ferramentas disponíveis para
o desenvolvimento, é a parcela de lucros com a qual a empresa do softwa-
re fica por contrato ao vender um jogo ou o limite que se pode lucrar com
o jogo. Por exemplo, a empresa Unity não cobra porcentagem dos lucros
em nenhuma de suas versões de software, porém, limita o ganho a cem
mil dólares por ano em sua versão gratuita, caso ultrapasse, por contrato
é necessário comprar uma licença paga, enquanto a empresa Unreal
cobra cinco por cento da porcentagem de ganhos do jogo criado.
4 IMPLEMENTANDO
COLISÕES, MÚSICAS
E SONS
VIDEOAULA
Clique aqui
Tópicos de estudo
Tratamento de colisões
Colisões em jogos como Pong
Colisões em jogos de plataforma
DICA
As colisões podem se resumir a atualizar as posições dos objetos e per-
sonagens, checar se esses elementos estão em posições próximas ou so-
brepondo-se uns aos outros e se uma colisão estiver ocorrendo, reverter a
posição de quem estiver se movendo a uma posição na qual a sobreposi-
ção deles não esteja ocorrendo, sendo que pela velocidade que o código
é executado, se a velocidade do objeto não for muito alta, será imperceptí-
vel para o jogador. Pense nisso como um algoritmo de três etapas.
CURIOSIDADE
Na versão original de Pong, a bola era, na verdade, um pequeno quadra-
do, pois os computadores da época não possuíam uma resolução boa o
suficiente para desenhar círculos.
No caso do Pong, as principais interações se concentram em torno da bola e
das palhetas. As regras básicas do jogo estabelecem que:
• A bola não pode sair dos limites da tela;
• Ao colidir com a parte superior ou inferior da tela, a bola é refletida, isto é,
vai em direção vertical oposta;
• Ao colidir com as palhetas, a bola vai na direção horizontal oposta;
• Ao colidir com as laterais, é atribuído um ponto para o jogador do lado oposto,
isto é, se a bola encostar do lado direito da tela, o jogador do lado esquerdo rece-
berá um ponto e se a bola encostar do lado esquerdo, o jogador da direita rece-
berá um ponto. Em qualquer uma das situações, a bola volta para o meio da tela.
(0, -Raio)
X (0,0)
(-Raio, 0) (+Raio, 0)
(0, +Raio)
Figura 3. Exemplo de circunferência e seus tamanhos.
As palhetas também possuem regras; uma das já citadas é que ela também
não pode sair pelas partes superior e inferior da tela. Para isso, basta limitar
que a sua posição em x não seja menor do que zero e que sua posição máxima
inferior não seja maior do que sua posição x mais a sua altura.
Em relação à colisão entre a bola e as palhetas, é necessário verificar cada
um desses pontos para estabelecer se ela está ocorrendo, isto é, se algum dos
EXPLICANDO
Apesar de não ser obrigatório adotar a mesma proporção de tamanho
para plataformas, personagens e objetos, tanto para sprites quanto para
suas caixas de colisão, isto é uma prática comum no desenvolvimento de
jogos eletrônicos bidimensionais. É comum que os personagens e suas
caixas também sejam de tamanho com base dois, isto é, números que são
resultados da elevação do número dois, por causa da estrutura de bits do
computador; softwares de desenho e desenvolvimento de jogos tendem a
trabalhar melhor com esta escala numérica.
ASSISTA
Assista ao vídeo 8 trilhas sonoras inesquecíveis dos jogos
para conhecer ou relembrar algumas das trilhas mais
marcantes da história dos games.
DICA
Para o uso de efeitos sonoros permanentes ou temporários, os quais são
usados apenas para marcar a necessidade de algum som no projeto, exis-
tem diversos sites e bibliotecas de áudio gratuitos, alguns deles podendo
ser usado livremente no projeto, outros apenas para testes. Alguns desses
sites necessitam da criação de uma conta de usuário, como o FreeSound,
o YouTube e o 99Sounds.
VIDEOAULA
Clique aqui