36
Engines I Graduação Tecnológica em Jogos Digitais Universidade FUMEC Jerry Medeiros

Introdução às Game Engines

Embed Size (px)

DESCRIPTION

Aula introdutória da disciplina Engines nos Jogos e na Computação Gráfica I, do curso de Tenologia em Jogos Digitais da Universidade FUMEC

Citation preview

Page 1: Introdução às Game Engines

Engines I

Graduação Tecnológica em Jogos DigitaisUniversidade FUMEC

Jerry Medeiros

Page 2: Introdução às Game Engines

• 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.

O que é?

Page 3: Introdução às Game 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.

Funções Principais das Games Engines

Page 4: Introdução às Game Engines

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

Grafo de Cena :

Page 5: Introdução às Game Engines

• Raiz; • Nós; • Relação de parentesco.

Organização de Um Grafo de cena:

Page 6: Introdução às Game Engines

• Três tipos básicos de nós :• Forma • Propriedade • Grupo

• Todos possuem atributos; • Alguns controlam outros nós.

Organização de Um Grafo de Cena:

Page 7: Introdução às Game Engines

Define uma entidade geométrica 3D :• Ponto • Vetor • Polígono • Primitiva • Esfera • Cone • Cilindro • Caixa • Curvas e superfícies (NURBS)

Grafo de Cena : Forma/Geometria

Page 8: Introdução às Game Engines

• Cor (material e fonte de luz); • Material (componentes de reflexão); • Brilho ;• Transparência; • Texturas; • Transformações; • Escala; • Rotação; • Translação.

Grafo de Cena : Propriedades

Page 9: Introdução às Game Engines

O pipeline gráfico é um conjunto de etapas realizadas pelo hardware para renderizar uma imagem, a partir dos parâmetros do grafo da cena.

Pipeline Gráfico

Malha de Polígonos

Transformação dos Dados

Eliminação dos objetos fora do

volume de visão

Rasterização Imagem Renderizada

Page 10: Introdução às Game Engines

Culling é o processo de eliminação de dados que não contribuem para a imagem final.

Culling

Page 11: Introdução às Game Engines

• No nível do polígono;• Implementado no hardware;• Diminui a complexidade do grafo pela

metade.

Backface Culling

Page 12: Introdução às Game Engines

• Elimina objetos inteiros; • Comparação entre dimensões do objeto e do

frustrum.

Frustrum Culling

Page 13: Introdução às Game Engines

• 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.

Frustrum Culling

Page 14: Introdução às Game Engines

Objetos encobertos por outros são eliminados do pipeline.

Occlusion Culling

Page 15: Introdução às Game Engines

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.

LOD - Level Of Detail

Page 16: Introdução às Game Engines

Cada filho do nó representa o mesmo objeto em resoluções diferentes.

LOD – Level Of Detail

Page 17: Introdução às Game Engines

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.

Componentes

Page 18: Introdução às Game Engines

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.

Componentes

Page 19: Introdução às Game Engines

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.

Componentes

Page 20: Introdução às Game Engines

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.

Componentes

Page 21: Introdução às Game Engines

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.

Componentes

Page 22: Introdução às Game Engines

Rede

• A Engine de Redes gerencia a comunicação entre computadores, seja ela Peer to Peer, Cliente-Servidor ou Distribuída.

Componentes

Page 23: Introdução às Game Engines

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.

Componentes

Page 24: Introdução às Game Engines

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.

Como escolher uma engine

Page 25: Introdução às Game Engines

•Crie o Game Design Document;•Esboçe um Documento Técnico;•Crie o Projeto de Desenvolvimento do Jogo;

Aí sim, escolha a engine!!!!

Como escolher uma engine

Page 26: Introdução às Game Engines

• Custo ;• Relevância para a plataforma, gênero,

design;• Suporte ;• Funcionalidades;• Ferramentas;• Flexibilidade.

Questões a se considerar

Page 27: Introdução às Game Engines

• 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 ?

Como escolher uma engine

Page 28: Introdução às Game Engines

Suporte

• Documentação; • Suporte ao trabalho em equipe;• Exemplos e tutoriais.

Como escolher uma engine

Page 29: Introdução às Game Engines

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.

Como escolher uma engine

Page 30: Introdução às Game Engines

• BigWorld Technology Suite;• Simutronics' HeroEngine;• Sun's Project Darkstar.

Engines MMO

Page 31: Introdução às Game Engines

• Epic's Unreal Engine 3;• Crytek's CryEngine 3;• Digital Extremes' Evolution Engine;• id's idTech 4/5/6;• Valve's Source.

Engines Top de Linha

Page 32: Introdução às Game Engines

• Unity Technologies Unity;• Garage Games's Torque;• PushButton Engine (Para Flash);• jMonkey Engine (Java).

Engines Casuais e Web

Page 33: Introdução às Game Engines

• Emergent's GameBryo• Terminal Reality's Infernal Engine• Blitz Games' BlitzTech• Trinigy's Vision Engine• Vicious Cycle's Vicious Engine

Engines “Na média”

Page 34: Introdução às Game Engines

• Irrlicht;• Ogre3D;• Panda3D.

Engines OpenSource

Page 35: Introdução às Game Engines

• 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.

Como escolher uma engine

Page 36: Introdução às Game Engines

As engines são um meio, e não o fim.