O documento descreve as principais funções de uma engine de jogos, incluindo renderização, detecção de colisões, scripts, áudio, animação, física e inteligência artificial. Ele também explica componentes-chave como grafos de cena, pipeline gráfico e culling, além de discutir fatores a serem considerados na escolha de uma engine.
2. O que é?
• Conjunto de ferramentas que
dão suporte à criação de jogos.
• É um software com diversos
módulos que permitem o
desenvolvimento de jogos de
diversos gêneros e para muitas
plataformas.
3. Funções Principais das Games Engines
• Renderização 2D e 3D;
• Detecção de Colisões ;
• Scripts ;
• Audio e Video;
• Animação;
• Shaders e Iluminação;
• Redes;
• Física ;
• Inteligência Artificial;
• Edição de Nível.
4. Grafo de Cena :
Define dentro da engine de
renderização onde serão
posicionados os objetos
tanto fisicamente quanto
logicamente.
Árvore: Hierárquico
Grafo: Não Hierárquico
5. Organização de Um Grafo de cena:
• Raiz;
• Nós;
• Relação de parentesco.
6. Organização de Um Grafo de Cena:
• Três tipos básicos de nós :
• Forma
• Propriedade
• Grupo
• Todos possuem atributos;
• Alguns controlam outros nós.
7. Grafo de Cena : Forma/Geometria
Define uma entidade geométrica 3D :
• Ponto
• Vetor
• Polígono
• Primitiva
• Esfera
• Cone
• Cilindro
• Caixa
• Curvas e superfícies (NURBS)
8. Grafo de Cena : Propriedades
• Cor (material e fonte de luz);
• Material (componentes de reflexão);
• Brilho ;
• Transparência;
• Texturas;
• Transformações;
• Escala;
• Rotação;
• Translação.
9. Pipeline Gráfico
O pipeline gráfico é um conjunto de etapas
realizadas pelo hardware para renderizar uma
imagem, a partir dos parâmetros do grafo da
cena.
Eliminação dos
Malha de Transformação objetos fora do Imagem
Rasterização
Polígonos dos Dados volume de Renderizada
visão
10. Culling
Culling é o processo de eliminação de dados
que não contribuem para a imagem final.
11. Backface Culling
• No nível do polígono;
• Implementado no hardware;
• Diminui a complexidade do grafo pela
metade.
13. Frustrum Culling
• Objetos totalmente incluídos no frustrum
entram no pipeline gráfico;
• Objetos parcialmente incluídos no frustrum
podem sair do pipeline, entrar completamente
ou entrar parcialmente;
• Objetos totalmente exluídos do frustrum são
eliminados do pipeline.
15. LOD - Level Of Detail
A técnica de LOD é utilizada como uma
otimização para a renderização. Em projeções
em perspectiva, quanto maior é a distância de
um objeto em relação ao observador, menor é
o seu Tamanho.
16. LOD – Level Of Detail
Cada filho do nó representa o mesmo objeto em
resoluções diferentes.
17. Componentes
Engine de Renderização:
A engine de renderização geralmente é
construída sobre openGL ou DirectX e gera
imagens em tempo real a partir dos assets
controladas pelo grafo da cena, interagindo
diretamente com a GPU.
18. Componentes
Colisões
• A Detecção de colisões é geralmente calculada
com base na interseção de dois sólidos;
• Planos;
• Esferas;
• Tubos ;
• Poligonos;
• São gerados eventos em resposta às colisões.
19. Componentes
Scripts
• As Engines de script geralmente usam linguagens
interpretadas (Python, Javascript...);
• As linguagens interpretadas permitem que o
código escrito pelo desenvolvedor do jogo não
dependa do código fonte da engine.
20. Componentes
Animações
• Engines de Animação gerenciam as
animações dos objetos no grafo da cena.
• Podem ser variações de rotação, posição e
escala ou animações mais complexas tais
quais as que utilizam esqueletos.
21. Componentes
Shading
•A Engine de Sombreamento e Iluminação calcula
as sombras e os shaders, que são aplicados pela
engine de renderização nos objetos do grafo da
cena.
22. Componentes
Rede
• A Engine de Redes gerencia a comunicação
entre computadores, seja ela Peer to Peer,
Cliente-Servidor ou Distribuída.
23. Componentes
Física
• A Engine de física é responsável por tratar o
comportamento de objetos com base em
colisões.
• Simula e prever a dinâmica de modelos físicos,
corpos rígidos, flexíves e flúidos.
24. Como escolher uma engine
Os níveis de uma game engine influenciam
diretamente no custo:
•Engines de MMO;
•Engines Top de Linha;
•Engines "Na média”;
•Engines Casuais;
•Engines OpenSource.
25. Como escolher uma engine
•Crie o Game Design Document;
•Esboçe um Documento Técnico;
•Crie o Projeto de Desenvolvimento do Jogo;
Aí sim, escolha a engine!!!!
26. Questões a se considerar
• Custo ;
• Relevância para a plataforma, gênero,
design;
• Suporte ;
• Funcionalidades;
• Ferramentas;
• Flexibilidade.
27. Como escolher uma engine
• Plataformas
- MMO, PC standalone, console,
dispositivos móveis, web
• Gênero
- Procure por jogos similares e pesquise em
qual engines foram desenvolvidos
• Design
- O que é mais importante? Gráficos,
interações, física ?
28. Como escolher uma engine
Suporte
•Documentação;
•Suporte ao trabalho em equipe;
•Exemplos e tutoriais.
29. Como escolher uma engine
Funcionalidades
• Systema Multithread;
• Pipeline de renderização;
• Sistema de Animação;
• Detecção de Colisões;
• Sistema de Streaming de áudio e vídeo;
• Suporte a Rede.
35. Como escolher uma engine
• Existem MUITAS engines
• Planeje o que fazer antes de decidir em que
engine fazer
• Cada engine tem características únicas:
• Analise o jogo;
• fale com outros usuários;
• baixe exemplos.