Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

131
Arquitetura de Motores de Jogos Fábio Moura [email protected]

description

Aula sobre motores de jogos do curso de Ciência da Computação da Universidade Estadual do Sudoeste da Bahia (UESB)

Transcript of Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Page 1: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Arquitetura de Motores de

Jogos

Fábio Moura [email protected]

Page 2: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Arquitetura de Motores de Jogos

• Introdução

• Motores de Jogos

• Características de Gêneros de Jogos

• Mercado de Motores de Jogos

• Arquitetura de Motores de Jogos

• Ferramentas e Linha de Produção de

Recursos

Page 3: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motivação

• Um jogo leva de 2 a 5 anos para ser desenvolvido

• Uma grande parte do ciclo de desenvolvimento de jogos envolve a “reinvenção da roda”: – Gerenciador de sprites

– Manipulador de som

– Controle de interface de entrada

– Renderização

– etc.

• Termina-se levando mais tempo nos detalhes técnicos do que no próprio jogo

Page 4: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motivação

• Se um jogo for bem estruturado, certas partes podem ser genéricas o suficiente para serem (re)aplicadas em vários outros jogos

• E ao mesmo tempo podem até nem serem implementadas, uma vez que já existem muitos componentes de altíssima qualidade disponíveis no mercado – Enorme ganho de tempo !!!! ($$$$$$$)

Page 5: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Como Melhorar Essa Situação?

• Organizar o projeto baseado em certos critérios:

– Funcionalidade

– Dependência

– Relação com o mundo real

• Como é feita a divisão?

– Quais são as diferentes partes?

• Como fazer a comunicação entre estas diversas partes?

Page 6: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

MOTORES DE JOGOS

DESENVOLVIMENTO DE JOGOS

Page 7: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos

• O termo “game engine” surgiu em meados da

década de 90 em referência ao jogo de tiro em

primeira pessoa (first person shooter – FPS) Doom

da id Software

• A arquitetura de Doom possuía uma separação

razoavelmente bem definida entre seus

componentes de software centrais (como o sistema

de renderização de gráficos tridimensionais, o

sistema de detecção de colisão, ou o sistema de

áudio) e aspectos de arte, mundos e regras do jogo

Page 8: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos

• O valor dessa separação se tornou evidente assim

que desenvolvedores começaram a licenciar jogos

e recriá-los dentro de novos produtos através do

desenvolvimento de nova arte, layouts de mapas,

armas, personagens, veículos e regras, com

mudanças mínimas no programa “motor”

• Isto marcou o surgimento da “comunidade mod” –

um grupo de jogadores individuais e pequenos

estúdios independentes que construíam novos

jogos a partir da modificação de jogos existentes,

usando ferramentas livres fornecidas pelos

desenvolvedores originais

Page 9: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos

• No final da década de 90, alguns jogos como

Quake III Arena e Unreal foram projetados com

reuso e “modding” em mente

• Motores se tornaram altamente customizáveis via

linguagens de script como Quake C da id, e

passaram a se tornar uma segunda receita viável

para desenvolvedores

• Hoje desenvolvedores de jogos podem licenciar um

motor de jogos e reusar partes significantes de

seus componentes chaves de software para a

criação de jogos

Page 10: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos

• Uma arquitetura dirigida a dados é o que

diferencia um motor de jogos de uma parte

de software de um jogo mas que não é um

motor

• Quando um jogo possui a lógica ou regras

altamente codificadas, ou emprega técnicas

de codificação especiais para renderizar

tipos específicos de objetos do jogo, se torna

difícil ou impossível reusar o software para

criação de um jogo diferente

Page 11: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos

• O termo “motor de jogo” deve ser reservado

a software extensível e que pode ser usado

como base para muitos jogos diferentes sem

grandes modificações

Page 12: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Escala de Reusabilidade em Motores

de Jogos

Pacman Hydro Thunder

Engine

Quake III

Engine

Unreal

Engine

3 Provavelmente

Impossível

Não pode ser utilizado para

construir mais que um jogo

Pode ser customizado para

fazer muitos jogos similares

Pode ser “adaptado” para

construir qualquer jogo

de um gênero específico

Pode ser usado para construir

qualquer jogo imaginável

Page 13: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos

• A maioria dos motores de jogos são

cuidadosamente desenvolvidos e ajustados para

rodar um jogo em particular em uma plataforma de

hardware específica

• E mesmo os motores multiplataformas de propósito

geral, realmente só podem ser utilizados para

desenvolver jogos de um determinado tipo, como

FPS ou jogos de corrida

• Pode-se seguramente afirmar que quanto mais de

propósito geral é um motor de jogo ou componente

de middleware, menos adaptado ele é para rodar

um jogo específico em uma plataforma específica

Page 14: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

CARACTERÍSTICAS DE

GÊNEROS DE JOGOS

DESENVOLVIMENTO DE JOGOS

Page 15: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos X Gêneros

• Motores de jogos são de certa forma

tipicamente específicos por gêneros

– Um motor projetado para um jogo de luta entre

duas pessoas em um ringue será muito diferente

de um motor para um “jogo eletrônico online

multijogador em massa” (massively multiplayer

online game – MMOG) ou de um motor para um

jogo FPS ou para um jogo de estratégia em

tempo real (real-time strategy – RTS)

Page 16: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores de Jogos X Gêneros

• No entanto, diferentes gêneros apresentam

muita coisa em comum (renderização 3D,

música, efeitos sonoros, entrada através de

teclado, joystick, mouse, etc.

– O motor Unreal, por exemplo, apesar de ser

projetado para jogos FPS, tem sido utilizado

para construir vários jogos de outros gêneros

Page 17: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unreal Engine

Unreal – FPS

Page 18: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unreal Engine

Gears of War – Third Person Shooter

by Epic Games

Page 19: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unreal Engine

Grimm – Jogo de Aventura

By Spicy Horse

Page 20: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unreal Engine

Speed Star – Jogo de Corridas Futurista

by Acro Games

Page 21: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

First-Person Shooters (FPS)

• Tipificado por jogos como Doom, Quake, Unreal

Tournament, Half-Life, Counter-Strike e Call of Duty

• Fornece ao jogador a ilusão de estar imerso em um

mundo detalhado hiperrealista

Call of Duty

by Activision

Page 22: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias para Jogos FPS

• Renderização 3D de mundos virtuais eficiente

• Controle de câmera/mecânica de mira eficientes

• Animações de alta fidelidade de jogadores virtuais, braços e

armas

• Uma grande quantidade de armamento manual

• Um modelo flexível de locomoção e colisão de

personagens, que dá a sensação de “flutuação”

• Animações de alta fidelidade e inteligência artificial para

non-player characters (NPCs) – personagens inimigos e

aliados

• Capacidade multi-jogadores de baixa escala (tipicamente

até 64 jogadores simultâneos), e

• O modo onipresente de gameplay “death match”

Page 23: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Plataforma e Outros em

Terceira Pessoa

• Jogos de ação onde pular de plataforma para

plataforma é a mecânica principal do

gameplay

• Jogos típicos da era 2D incluem Space

Panic, Donkey Kong, Pitfall! e Super Mario

Brothers

• A era 3D inclui Super Mario 64, Crash

Badicoot, Rayman 2, Sonic the Hedgehog, a

série Jak and Daxter, a série Ratchet &

Clank e Super Mario Galaxy

Page 24: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Plataforma e Outros em

Terceira Pessoa

• Em termos de requisitos tecnológicos, jogos

de plataforma podem usualmente ser

agrupados com jogos de tiro em terceira

pessoa e jogos de ação/aventura em terceira

pessoa, como Ghost Recon, Gears of War e

Uncharted: Drake´s Fortune

Page 25: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Plataforma e Outros em

Terceira Pessoa

Donkey Kong

Page 26: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Plataforma e Outros em

Terceira Pessoa

Donkey Kong

Crach Bandicoot

Page 27: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Plataforma e Outros em

Terceira Pessoa

Donkey Kong

Crach Bandicoot

Ghost Recon

Page 28: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias

• Plataformas móveis, escadas, cordas, treliças e

outros modos de locomoção interessantes

• Elementos do ambiente tipo “puzzle”

• Uma câmera que segue o personagem e cuja

rotação é controlada pelo jogador humano

• Um sistema de controle de colisão de câmera

complexo para garantir que o ponto de visão nunca

“corte” apesar da geometria do fundo ou de objetos

dinâmicos em primeiro plano

Page 29: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Luta

• São tipicamente jogos de dois jogadores

envolvendo personagens humanoides se

esmurrando em um ringue de algum tipo

• O gênero é tipificado por jogos como Street Fighter,

Soul Calibur e Tekken

Page 30: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias para Jogos de Luta

• Um conjunto rico de animações de lutas

• Detecção de colisão apurado

• Um sistema de entrada capaz de detectar

combinações complexas de botões e joystick

• Uma coleção vasta de planos de fundo

diversos, mas relativamente estáticos

Page 31: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias para Jogos de Luta

• O “estado-da-arte” em jogos de luta como o

Fight Night Round 3 da EA, elevaram o nível

da tecnologia com características como:

– Personagens gráficos de alta resolução,

incluindo efeitos de pele realísticos

– Animações de personagens de alta fidelidade

– Física para tecidos e simulação dos cabelos dos

personagens

Page 32: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Fight Night Round 3

Page 33: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Corrida

• Engloba os jogos onde o principal objetivo é dirigir

um carro ou outro veículo em algum tipo de pista

• O gênero possui muitas subcategorias:

– Jogos de corrida com foco em simulação objetivam

fornecer uma experiência de pilotagem o mais realística

possível (ex. Gran Turismo)

– Corridas do tipo arcade colocam a diversão sobre o

realismo (ex. San Francisco Rush, Cruisin´ USA, Hydro

Thunder)

– Jogos que exploram a subcultura de corridas de rua, com

veículo de consumo (ex. Need for Speed, Juiced)

– Corridas de kart com personagens de cartoons (ex.

Mario Kart, Jak X, Freaky Flyers)

Page 34: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias para Jogos de Corrida

• Vários “truques” são usados quando renderizando

elementos distantes de planos de fundo, como

empregar cartões bidimensionais para árvores,

penhascos e montanhas

• A pista é sempre dividida em regiões

bidimensionais relativamente simples chamadas

“setores”, usadas para otimizar a renderização de

determinação da visibilidade, para auxiliar na

inteligência artificial e “path finding” para ou

veículos não controlados por humanos, e para

resolver muitos outros problemas técnicos

Page 35: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias para Jogos de Corrida

• A câmera tipicamente segue o veículo por traz para

uma perspectiva em terceira pessoa, ou algumas

vezes situada dentro do cockpit para o estilo em

primeira pessoa

• Quando a pista envolve túneis e outros espaços

“apertados”, uma grande quantidade de esforço é

colocado para garantir que a câmera não colida

com a geometria do plano de fundo

Page 36: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Corrida

Gran Turismo

Page 37: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Corrida

Gran Turismo

Cruisin’ USA

Page 38: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Corrida

Gran Turismo

Cruisin’ USA

Need for Speed

Page 39: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Jogos de Corrida

Gran Turismo

Cruisin’ USA

Need for Speed

Mario Kart

Page 40: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Estratégia em Tempo Real

• Gênero definido por Dune II: The Building of a

Dinarty (1992)

• Inclui jogos como Warcraft, Command & Conquer,

Age of Empires e Starcraft

• O jogador distribui unidade de batalha de seu

arsenal estrategicamente através de um largo

campo de jogo na tentativa de sobrepor seu

oponente

• O mundo do jogo é tipicamente mostrado em um

ângulo de visão oblíquo topo-base (2D ½)

Page 41: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Tecnologias

• Cada unidade é relativamente de baixa resolução, de

maneira que o jogo possa dar suporte a um grande número

de elementos ao mesmo tempo

• A altitude do terreno é normalmente a tela (canvas) sobre a

qual o jogo é projetado e jogado

• É sempre permitido ao jogador construir novas estruturas

no terreno em adição a distribuição de suas forças

• A interação do usuário é tipicamente via toque-único e

seleção de unidades baseada em área, mais menus ou

barras de ferramentas contendo comandos, equipamento,

tipos de unidade, tipos de construções, etc.

Page 42: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Estratégia em Tempo Real

Dune II

Page 43: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Estratégia em Tempo Real

Dune II

Warcraft

Page 44: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Estratégia em Tempo Real

Dune II

Warcraft

Age of Empires

Page 45: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Estratégia em Tempo Real

Dune II

Warcraft

Age of Empires

Command & Conquer 3

Page 46: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Massively Multiplayer Online Games

(MMOG)

• Este gênero é tipificado por jogos como Nevermind

Nights, EverQuest, Word of Warcraft e Star Wars

Galaxies, para mostrar alguns

• É definido por qualquer jogo que dê suporte a um

grande número de jogadores simultâneos (de

milhares a centenas de milhares), normalmente

todos jogando em um mundo virtual persistente

muito grande

– Persistente porque estados internos duram períodos de

tempo muito longos, além de uma sessão de um único

jogador

Page 47: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Massively Multiplayer Online Games

(MMOG)

• Subcategorias desses jogos incluem: – MMO role-playing games (MMORPG)

– MMO real-time strategy games (MMORTS)

– MMO first-person shooters (MMOFPS)

• No coração de todo MMOG está uma bateria

poderosa de servidores

• Estes servidores mantém o estado do mundo do

jogo, gerenciam usuários logando e saindo do jogo,

fornecem serviços de chat entre usuários e voz

sobre ip (VoIP)

Page 48: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Massively Multiplayer Online Games

(MMOG)

• A maioria deles requer que os usuário paguem por

uma assinatura regular

• A fidelidade de seus gráficos é geralmente mais

baixa que versões não MMOG devido à grande

área do mundo e ao número de jogadores

simultâneos

Page 49: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Massively Multiplayer Online Games

(MMOG)

World of Warcraft

Page 50: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Massively Multiplayer Online Games

(MMOG)

World of Warcraft

Star Wars Galaxies

Page 51: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Outros Gêneros

• Existem claro, muitos outros gêneros que não

serão cobertos em profundidade aqui:

– Esportes (futebol, basebol, futebol americano, golf,

basquete, etc.)

– Role-playing games (RPG)

– “God games”, como Populus e Black & White

– Jogos de simulação social/ambientes, como Simcity e

The Sims

– Jogos puzzle, como Tetris

– Conversão de jogos de tabuleiro, como xadrez, jogos de

carta, go, etc.

– Jogos baseados na Web, como os oferecidos pelo site

da EA Pogo

Page 52: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

MERCADO DE MOTORES DE

JOGOS

DESENVOLVIMENTO DE JOGOS

Page 53: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

A Família de Motores Quake

• O primeiro jogo de tiro 3D em primeira pessoa

geralmente aceito é o Castle of Wofenstein 3D

(1992)

• Escrito pela Id Software Texas para a plataforma

PC, levou a indústria para uma nova e excitante

direção

• Id Software também criou Doom, Quake, Quake II

e Quake III, todos com uma arquitetura muito

similar (família de motores Quake)

• A tecnologia Quake foi usada para criar muitos

outros jogos e mesmo outros motores

Page 54: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

A Família de Motores Quake

• Por exemplo, a estirpe de Medal of Honor para a

plataforma PC, segue algo parecido com:

– Quake III (Id)

– Sin (Ritual)

– F.A.K.K. 2 (Ritual)

– Medal of Honor: Allied Assault (2015 & Dreamworks

Interactive)

– Medal of Honor: Pacific Assault (Electronic Arts)

• O código fonte de Quake e Quake II está

disponível livremente – http://www.idsoftware.com/business/techdownloads

Page 55: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Medal of Honor: Pacific Assault

Page 56: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Medal of Honor: Pacific Assault

Page 57: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

A Família de Motores Unreal

• A Epic Games surgiu na cena FPS em 1998 com o

legendário jogo Unreal

• Desde então, o motor Unreal se tornou o maior

competidor da tecnologia Quake no espaço FPS

• O motor Unreal 2 é a base para Unreal Tournament

2004, e possui incontáveis “mods”, projetos

universitários e jogos comerciais

• O motor Unreal 3 é o próximo passo na evolução,

fornecendo algumas das melhores ferramentas e o

mais rico conjunto de características de motores de

jogos da indústria

Page 58: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

A Família de Motores Unreal

• Muitos jogos têm sido desenvolvidos com o

motor Unreal 3 ultimamente, incluindo o

popular Gears of War

Page 59: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

A Família de Motores Unreal

• Muitos jogos têm sido desenvolvidos com o

motor Unreal 3 ultimamente, incluindo o

popular Gears of War

Page 60: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

O Motor Source do Half Life

• Source é o motor de jogos do jogo Half-Life 2 e

suas sequências: HL2: Episode One, HL2: Episode

Two, Team Fortress 2, e Portal (vendido em

conjunto com o título The Orange Box)

• Source é um motor de alta qualidade, rivalizando

com o motor Unreal 3 em termos de capacidade

gráfica e conjunto de ferramentas

Page 61: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

O Motor Source do Half Life

• Source é o motor de jogos do jogo Half-Life 2 e

suas sequências: HL2: Episode One, HL2: Episode

Two, Team Fortress 2, e Portal (vendido em

conjunto com o título The Orange Box)

• Source é um motor de alta qualidade, rivalizando

com o motor Unreal 3 em termos de capacidade

gráfica e conjunto de ferramentas

Page 62: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

XNA Game Studio da Microsoft

• Plataforma de desenvolvimento de jogos fácil de

usar e altamente acessível

• Tem por objetivo encorajar jogadores a criarem

seus próprios jogos e compartilhá-los com uma

comunidade de jogadores online, da mesma forma

que o YouTube encoraja a criação e

compartilhamento de vídeos caseiros

• XNA é baseado na linguagem C#

• O principal ambiente de desenvolvimento é o

Visual Studio

Page 63: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

XNA Game Studio da Microsoft

• Permite a criação de jogos para PC, para o console

Xbox 360 e para Windows Phone

• Após o pagamento de uma taxa modesta, jogos

XNA podem ser publicados na rede Xbox Live e

compartilhado com amigos

• Por fornecer excelentes ferramentas a custo zero,

a Microsoft abriu as portas para o desenvolvedor

médio criar novos jogos

• XNA tem um futuro brilhante e fascinante pela

frente

Page 64: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

XNA Game Studio da Microsoft

Page 65: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

XNA Game Studio da Microsoft

Page 66: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Outros Motores Comerciais

• Existem vários motores comerciais no mercado

• Embora desenvolvedores independentes podem

não ter dinheiro para adquirir um motor, muitos

desses produtos possuem vasta documentação

online e/ou wikis que podem servir como uma

grande fonte de informação sobre motores e

programação de jogos em geral

• Ex. C4 Engine by Terathon Software

(http://www.terathon.com/)

Page 67: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores Proprietários in-House

• Muitas empresas constroem e mantêm seu

próprio motor de jogos

• A EA construiu muitos de seus jogos RTS

(estratégia em tempo real) com um motor

proprietário chamado SAGE, desenvolvido

pela Westwood Studios

Page 68: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores Proprietários in-House

• Os jogos da Naughty Dog Crash Bandicoot e

Jak and Daxter, além do recente Uncharted:

Drake´s Fortune foram todos desenvolvidos

com um motor customizado para as

plataformas PlayStation, PlayStation 2 e

PlayStation 3

• A maioria dos motores comerciais, como

Quake, Source e Unreal, começaram como

motores proprietários

Page 69: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motores Open Source

• Motores profissionais e amadores disponibilizados

online, de graça

• Existe um grande número de motores open source

disponíveis online, alguns são bons, outros

medíocres, e outros...

• Alguns motores bem conhecidos:

– Unity, OGRE 3D, Panda 3D, Yake, Crystal Space,

Torque, Irrlicht, Cocos2d-x

Page 70: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unity

• Unity surgiu como um dos mais populares motores

de jogos

• Principais características:

– “um potente mecanismo de renderização totalmente

integrado com um conjunto completo de ferramentas

intuitivas e fluxos de trabalho rápidos”

– Permite a criação de jogos 3D e 2D

– Voltado para estúdios e desenvolvedores independentes

(indies)

– Multi-plataforma: Web, Desktop, Console, Mobile

– Versões Pro ($75,00/mês ou $1.500,00) e Free

Page 71: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unity

• Programado com UnityScript

– Um dialeto de JavaScript baseado em .NET

• Asset Store

– Uma loja cheia de recursos para tudo que é necessário

para o desenvolvimento de um jogo, incluindo animação,

áudio e scripts

– Mas também possui recursos gratuitos

• Comunidade

– Compartilhada por milhares de desenvolvedores

– Fóruns, perguntas e respostas, gestão de problemas e

feedback sobre novas ideias e versões

Page 72: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unity

Page 73: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unity

Page 74: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unity

Page 75: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Unity

Page 76: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Cocos2d-x

• Motor de jogos open source mais popular do

mercado

• Incorpora duas principais linguagens: C++ e

Lua

• Também possui uma versão JavaScript

chamada Cocos2d-JS

• Possui uma natureza de múltiplas

plataformas, permitindo o desenvolvimento

para a maioria das plataformas móveis e

desktop

Page 77: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Cocos2d-x

Page 78: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Cocos2d-x

Page 79: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Cocos2d-x

Page 80: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

ARQUITETURA DE MOTORES

DE JOGOS

DESENVOLVIMENTO DE JOGOS

Page 81: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Arquitetura de Motores de Jogos

• Um motor de jogos geralmente consiste de um

conjunto de ferramentas e componentes para

execução dos jogos

• Como todo software, um motor de jogos é

construído em camadas

– Normalmente camadas superiores dependem de

camadas inferiores, mas não o contrário

– Quando uma camada inferior depende de uma camada

superior, chamamos de dependência circular, que deve

ser evitada em qualquer sistema, por levar a um

indesejável acoplamento de sistemas

Page 82: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Arquitetura de Execução

Page 83: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Hardware, Drivers, SO

• Hardware

– Representa o sistema de computador ou console onde o

jogo será executado

• Drivers de Dispositivos

– Componentes de software de baixo nível fornecidos pelo

sistema operacional ou fabricante de hardware

– Gerenciam recurso de hardware e blindam o SO e

camadas superiores de detalhes de comunicação com a

variedade de dispositivos de hardware disponíveis

Page 84: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Hardware, Drivers, SO

• Sistema Operacional

– No PC, está em execução todo o tempo, gerenciando a

execução de múltiplos programas em um único

computador, um deles é o seu jogo, isto significa que um

jogo para PC nunca pode assumir que possui todo o

controle sobre a máquina

Page 85: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Hardware, Drivers, SO

• Sistema Operacional

– Em um console, o SO é apenas uma fina camada de

bibliotecas que é compilada diretamente no executável, o

jogo tipicamente é o “dono” de toda a máquina

– Entretanto, isso não ocorre no Xbox 360 e PlayStation 3,

onde o SO pode interromper a execução do jogo ou

tomar conta de certos recursos do sistema

– O vão entre desenvolvimento para PC e para consoles

está tipicamente se fechando (para o bem ou para o mal)

Page 86: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

SDKs de Terceiros e Middleware

• A maioria dos motores alavancam uma série de

SDKs e middleware de terceiros

• As interfaces funcionais ou baseadas em classes

fornecidas por um SDK são geralmente chamadas

de APIs (Application Programming Interface)

• Veremos alguns exemplos...

Page 87: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Algoritmos e Estruturas de Dados

• Como qualquer software, jogos dependem

massivamente de uma coleção de algoritmos e

estruturas de dados

• Exemplos de bibliotecas de terceiros com estes

tipos de serviços:

– STL: biblioteca de modelos padrões C++ que fornece

código e algoritmos para gerenciamento de estruturas de

dados, strings e I/O streams

– STLport: implementação portável e otimizada de STL

– Boost: poderosa biblioteca de algoritmos e estruturas de

dados no estilo STL (http://www.boost.org/)

– Loki: biblioteca de modelos de programação genérica

que irá fazer o seu “cérebro doer”!

Page 88: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Gráficos

• A maioria dos motores de renderização de

jogos são construídos no topo de bibliotecas

de interfaces de hardware, como por

exemplo:

– Glide: SDK de gráficos 3D para a placa gráfica

Voodoo, popular antes da era DirectX 8

– OpenGL: largamente utilizada e portável SDK de

gráficos 3D

– DirectX: SDK gráfico da Microsoft e principal rival

do OpenGL

Page 89: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Gráficos

• Mais exemplos:

– libgmc: interface direta de baixo nível para o

PlayStation 3 fornecida pela Sony como uma

alternativa mais eficiente do OpenGL

– Edge: poderoso e muito eficiente motor de

animação e renderização 3D produzido pela

Noughty Dog e Sony para PlayStation 3 e usado

por um grande número de estúdios de jogos

Page 90: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Colisão e Física

• Detecção de colisão e dinâmica rígida de corpos

(ou simplismente “física” na comunidade de jogos)

são fornecidos pelas seguintes SDKs bem

conhecidas:

– Havok: motor bastante popular

– PhysX: outro motor popular disponibilizado gratuitamente

pela NVIDIA

– Open Dynamics Engine (ODE): pacote open source de

física/colisão

Page 91: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Animação de Personagens

• Granny: popular conjunto de ferramentas da Rad

Game Tools que inclui modelos robustos 3D e

exportadores de animação para os principais

pacotes de modelo e animação 3D como Maya, 3d

Studio MAX, etc.

• Havok Animation: SDK complementar de animação

do popular SDK de física Havok

• Edge: biblioteca produzida pelo time da ICE, a

Naughty Dog e Sony para PS3

Page 92: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Inteligência Artificial

• Até recentemente, IA era manipulada de maneira

customizada para cada jogo

• Entretanto uma empresa chamada Kynogon

produziu um middleware chamado Kynapse

• Kynapse: este SDK fornece blocos de construção

de IA de baixo nível como path finding, desvio de

objetos estáticos e dinâmicos, identificação de

vulnerabilidades dentro de um espaço (ex. uma

janela aberta pela qual uma emboscada pode vir),

e uma razoavelmente boa interface entre IA e

animação

Page 93: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Modelos Biomecânicos de Personagens

• Endorphin e Euphoria: estes pacotes de

animação produzem movimentos de

personagens usando modelos biomecânicos

avançados de movimento humano realístico

Page 94: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Camada Independente de Plataforma

• A maioria dos motores precisam rodar em mais de uma

plataforma de hardware

• Portanto, elas são arquitetadas com uma camada

independente de plataforma, acima do hardware, drivers,

SO e outros programas de terceiros e blinda o motor da

maioria do conhecimento sobre a plataforma subjacente

• Através do empacotamento ou substituição da biblioteca C

mais comumente usada, chamadas ao SO e outras APIs

fundamentais, esta camada garante comportamento

consistente através de todas as plataformas de hardware

Page 95: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Sistemas Centrais

• Toda aplicação complexa requer um pacote de

utilitários, categorizados como “sistemas centrais”,

como:

– Assertions: linhas de código para verificação de erros

– Memory management: virtualmente cada motor de jogo

implementa seu próprio sistema de alocação de memória

a fim de aumentar o desempenho e evitar fragmentação

– Math library: bibliotecas para facilitar os cálculos

matemáticos intensivos que os jogos requerem, etc.

Page 96: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Gerenciador de Recursos

• Presente em todos os motores de jogos de alguma

forma, fornece uma interface unificada (ou conjunto

de interfaces) para acesso a todos os tipos de

recursos de um jogo e outros dados de entrada

Page 97: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Um dos maiores e mais complexos

componentes de qualquer motor de jogos

• Pode ser arquitetado de muitas maneiras

diferentes

• Uma maneira comum e de abordagem

efetiva de projetar um motor de renderização

é empregar uma arquitetura em camadas

como a apresentada a seguir

Page 98: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

Page 99: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Renderizador de baixo nível

– Engloba toda a parte “bruta” de renderização do motor

– Neste nível o projeto é focado na renderização de uma

coleção de primitivas geométricas tão rápido e rico

quanto possível, sem preocupação com partes visíveis

da cena

• Otimizações de Gráficos de Cena

– Limita o número de primitivas submetidas para

renderização, baseada em alguma forma de

determinação de visibilidade

Page 100: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Efeitos Visuais

– Motores de jogos modernos dão suporte a uma vasta

variedade de efeitos visuais, como:

• Sistemas de partículas (fumaça, fogo, jatos de água, etc.)

• Sistemas de decalque (para buracos de balas, pegadas, etc.)

• Mapeamento de luz e do ambiente

• Sombras dinâmicas

• Correção de cores, efeitos de saturação, etc.

• Fachada (front end)

– Muitos jogos empregam alguns tipos de gráficos 2D em

uma cena 3D, com várias finalidades:

• Mostrar alertas do jogo, menus internos do jogo, GUIs internas

para manipulação de inventário, configuração de unidades para

batalha ou realização de tarefas complexas do jogo

Page 101: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Ferramentas de registro e debugging

– Jogos são sistemas de tempo real, e, como tal,

engenheiros sempre precisam registrar a performance de

seus jogos de maneira a otimizá-la

– Recursos de memória, por outro lado, são geralmente

escassos, fazendo com que desenvolvedores façam uso

de ferramentas de análise de memória

– Essa camada engloba estas ferramentas e também inclui

meios para correção de erros

– Existe uma série de boas ferramentas com esses fins:

• Vtune da Intel

• Quantify e Purify da IBM

• Bounds Checker da Compuware

Page 102: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Ferramentas de registro e debugging

– Jogos são sistemas de tempo real, e, como tal,

engenheiros sempre precisam registrar a performance de

seus jogos de maneira a otimizá-la

– Recursos de memória, por outro lado, são geralmente

escassos, fazendo com que desenvolvedores façam uso

de ferramentas de análise de memória

– Essa camada engloba estas ferramentas e também inclui

meios para correção de erros

– Existe uma série de boas ferramentas com esses fins:

• Vtune da Intel

• Quantify e Purify da IBM

• Bounds Checker da Compuware

Page 103: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Colisão e Física

– Detecção de colisão é importante em todos os jogos

• Sem ela, objetos poderiam interpenetrar e seria impossível

interagir com o mundo virtual de uma maneira razoável

– Alguns jogos também incluem uma dinâmica de

simulação realística ou semi-realística

– Colisão e física estão fortemente acoplados

• Isto ocorre porque quando colisões são detectadas, elas quase

sempre resultam como parte da integração da física com a lógica

de satisfação de restrições

– SDKs:

• Havok: padrão da indústria atual

• PhysX da NVIDIA, integrado ao motor Unreal 3, livre

para PC

Page 104: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Colisão e Física (cont.)

– SDKs:

• Open Dynamics Engine (ODE)

• I-Collide, V-Collide e RAPID, desenvolvidos pela

Universidade da Carolina do Norte

Page 105: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Animação

– Todo jogo que possui personagem orgânicos ou semi-

orgânicos (humanos, animais, desenhos, ou mesmo

robôs) precisam de um sistema de animação

– Existem cinco tipos básicos de animação utilizadas em

jogos:

• Animação de sprites/texturas

• Animação hierárquica de corpos rígidos

• Animação de esqueletos (mais utilizada atualmente)

• Animação de vértices

• Alvos de transformação

Page 106: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Animação

– Todo jogo que possui personagem orgânicos ou semi-

orgânicos (humanos, animais, desenhos, ou mesmo

robôs) precisam de um sistema de animação

– Existem cinco tipos básicos de animação utilizadas em

jogos:

• Animação de sprites/texturas

• Animação hierárquica de corpos rígidos

• Animação de esqueletos (mais utilizada atualmente)

• Animação de vértices

• Alvos de transformação

Page 107: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Dispositivos de Interface Humana

– Todos os jogos precisam processar entradas dos

jogadores, obtidas de vários dispositivos de interface,

incluindo:

• Teclado e mouse

• Joypad/joystick

• Outros controles especializados, como volantes, varas de

pescar, tapetes de dança, WiiMote, etc.

– Algumas vezes estes componentes podem ser do tipo

I/O, por fornecer saídas ao jogador como force feedback

ou áudio

Page 108: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Motor de Renderização

• Dispositivos de Interface Humana

– Todos os jogos precisam processar entradas dos

jogadores, obtidas de vários dispositivos de interface,

incluindo:

• Teclado e mouse

• Joypad/joystick

• Outros controles especializados, como volantes, varas de

pescar, tapetes de dança, WiiMote, etc.

– Algumas vezes estes componentes podem ser do tipo

I/O, por fornecer saídas ao jogador como force feedback

ou áudio

Page 109: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Dispositivos de Interface Humana

Page 110: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Áudio

• Tão importante quanto gráficos em qualquer motor

de jogos

• Infelizmente, geralmente possui menos atenção

que renderização, física, animação, IA e gameplay

• Entretanto, nenhum grande jogo está completo

sem um ótimo motor de áudio

• Motores de áudio variam muito em

sofisticação

Page 111: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Multijogadores Online/Rede

• Muitos jogos permitem múltiplos jogadores

humanos em um único mundo virtual

• Existem basicamente quatro tipos:

– Multijogadores em uma única tela: dois ou mais

dispositivos de controle são conectados a uma única

máquina. Múltiplos personagens de jogadores coabitam

em um único mundo virtual e uma única câmera mantém

todos os personagens simultaneamente na janela. Ex.:

Smash Brothers, Lego Star Wars e Gauntlet

– Multijogadores em tela dividida: equivalente ao modo

anterior, mas cada personagem possui sua própria

câmera e a tela é dividida em seções

Page 112: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Multijogadores Online/Rede

• Existem basicamente quatro tipos (cont.):

– Multijogadores em rede: múltiplos computadores ou

consoles conectados em rede, onde cada máquina

hospeda um dos jogadores

– Jogos online multijogadores massivos (MMOG):

centenas a milhares de usuários jogando

simultaneamente, dentro de um mundo virtual enorme e

persistente, hospedado por uma poderosa bateria de

servidores centrais

Page 113: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Multijogadores Online/Rede

• Existem basicamente quatro tipos (cont.):

– Multijogadores em rede: múltiplos computadores ou

consoles conectados em rede, onde cada máquina

hospeda um dos jogadores

– Jogos online multijogadores massivos (MMOG):

centenas a milhares de usuários jogando

simultaneamente, dentro de um mundo virtual enorme e

persistente, hospedado por uma poderosa bateria de

servidores centrais

Page 114: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Sistemas Fundamentais do Gameplay

• O termo gameplay se refere às ações que ocorrem

durante o jogo, as regras que governam o mundo

virtual, as habilidades do personagem do jogador

(conhecida como mecânica do jogador) e dos

outros personagens e objetos do mundo, e as

metas e objetivos dos jogadores

• É tipicamente implementado na linguagem nativa

do motor de jogos ou em linguagem de script de

alto nível, ou em ambos

Page 115: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Sistemas Fundamentais do Gameplay

• O termo gameplay se refere às ações que ocorrem

durante o jogo, as regras que governam o mundo

virtual, as habilidades do personagem do jogador

(conhecida como mecânica do jogador) e dos

outros personagens e objetos do mundo, e as

metas e objetivos dos jogadores

• É tipicamente implementado na linguagem nativa

do motor de jogos ou em linguagem de script de

alto nível, ou em ambos

Page 116: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Modelos de Objetos

• O modelo de objetos do jogo fornece simulação em

tempo real de uma coleção heterogênea de objetos

do mundo virtual do jogo, que incluem:

– Geometria de fundo estática, como construções,

estradas, terrenos, etc.

– Corpos rígidos dinâmicos, como rochas, latas, cadeiras,

etc.

– Personagens do jogador (PC)

– Personagens que não são o jogador (NPC)

– Armas, projéteis, veículos

– Luzes, câmeras, etc.

Page 117: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Modelos do Mundo

• O modelo do mundo do jogo está fortemente ligado

ao modelo de objetos do software e responde a

perguntas do tipo:

– Seu motor é projetado de uma maneira orientada a

objetos?

– Qual a linguagen? C? C++? Java? OCaml?

– Como a hierarquia está organizada?

– Como os objetos são referenciados?

– Como os objetos são unicamente identificados?

– Como o tempo de vida dos objetos são gerenciados?

– Como o estado dos objetos do jogo são simulados

através do tempo?

Page 118: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Sistema de Eventos

• Objetos do jogo precisam invariavelmente se

comunicar

• Isto pode ser feito de várias maneiras, por

exemplo, um objeto envia a mensagem

simplesmente chamando uma função do objeto

recebedor

• Uma arquitetura dirigida a eventos, também é uma

abordagem comum para comunicação entre

objetos: o evento contendo a mensagem é passado

ao objeto recebedor através de uma chamada a

uma função manipuladora de eventos

Page 119: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Sistema de Script

• Muitos motores de jogos utilizam uma

linguagem de script para desenvolvimento de

regras específicas do gameplay, permitindo

desenvolvimento mais rápido e mais fácil

Page 120: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Fundamentos de IA

• Tradicionalmente, IA não era considerada parte do

motor de jogos

• Mais recentemente, entretanto, empresas de jogos

têm reconhecido padrões que são utilizados em

quase todo sistema de IA

• Uma empresa chamada Kynogon desenvolveu um

motor de IA comercial chamado Kynapse, que

inclui características como:

– Uma rede de nós definindo áreas ou caminhos de

navegação onde personagens são livres para se

movimentar sem a possibilidade de colidir com a

geometria estática do mundo

Page 121: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Fundamentos de IA

• Características do Kynapse (cont.):

– Informação de colisão simplificada em torno dos limites

de cada área de navegação livre

– Conhecimento das entradas e saídas de cada região e

de onde em cada região um inimigo pode ver e/ou

emboscar o jogador

– Um motor de path-finding, conhecido como algoritmo A*

– Um modelo customizado do mundo que diz ao sistema

de IA onde todas as entidades de interesse (amigos,

inimigos, obstáculos) estão, permitindo evitar

dinamicamente a movimentação de objetos

– Etc.

Page 122: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Subsistemas Específicos do Jogo

• Acima da camada de sistemas fundamentais do

gameplay e de outros componentes de baixo nível

do motor, programadores e projetistas cooperam

para implementar as características do jogo em si

• Estes são geralmente numerosos, muito variáveis e

específicos do jogo em desenvolvimento

• Inclui, mas não está limitado a: mecânica do

personagem do jogador, sistemas de câmera do

jogo, IA para controle de NPCs, sistemas de

armas, veículos, etc.

Page 123: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Subsistemas Específicos do Jogo

• Acima da camada de sistemas fundamentais do

gameplay e de outros componentes de baixo nível

do motor, programadores e projetistas cooperam

para implementar as características do jogo em si

• Estes são geralmente numerosos, muito variáveis e

específicos do jogo em desenvolvimento

• Inclui, mas não está limitado a: mecânica do

personagem do jogador, sistemas de câmera do

jogo, IA para controle de NPCs, sistemas de

armas, veículos, etc.

Page 124: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

FERRAMENTAS E LINHA DE

PRODUÇÃO DE RECURSOS

DESENVOLVIMENTO DE JOGOS

Page 125: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Ferramentas e Linha de Produção de

Recursos

• Qualquer motor de jogos deve ser capaz de

lidar com uma grande quantidade de dados e

recursos do jogo, arquivos de configuração,

scripts, etc.

Page 126: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Ferramentas para Criação de

Conteúdo Digital

Page 127: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Ferramentas para Criação de

Conteúdo Digital

Page 128: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Ferramentas para Criação de

Conteúdo Digital

Page 129: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Ferramentas para Criação de

Conteúdo Digital

Page 130: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Mundo do Jogo

Objetos

Objetos

Objetos

Modelos

de Objetos

Animações

Materiais

Texturas

Sistema

de

Partículas

Banco de

Sons

Page 131: Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)

Arquitetura de Motores de

Jogos

Fábio Moura [email protected]