190 likes | 348 Views
Bruno C. de Paula. Tópicos Especiais I: Engines Engines 3D. 1º Semestre 2010 > PUCPR > Pós Jogos. Resumo. Vamos conhecer os componentes de uma engine 3D e algumas opções de engine. O que É uma game engine ?.
E N D
Bruno C. de Paula Tópicos Especiais I: EnginesEngines 3D 1º Semestre 2010 > PUCPR > Pós Jogos
Resumo Vamos conhecer os componentes de uma engine 3D e algumas opções de engine
O que É uma game engine? Conjunto de programas e / ou bibliotecas cujo objetivo é facilitar o desenvolvimento de mais de um jogo
Principais componentes de uma engine Linguagem de Scripts Importadores/ Exportadores SDK Engine Core Editor De Níveis Builders
Engine Core • Núcleo da engine; • Complexidade alta; • Interface com o Sistema Operacional, OpenGL, DirectX; • Renderização dos itens gráficos; • Implementação dos algoritmos e técnicas de: • Visibilidade (culling); • Detecção de colisão; • Movimentação de Camera; • Sistemas de Partículas; • Iluminação; • Física...
SDKSoftware Developer’s Kit • Biblioteca associada ao engine core; • Complexidade média; • Altera o comportamento da engine; • O SDK é o portão de acesso à engine; • Cada engine possui um SDK diferente;
Linguagens de Script • Complexidade deve ser média ou baixa; • A lógica do jogo e suas regras devem ser representadas de maneira independente do core; • Linguagens comuns: • Lua; • JavaScript; • Python; • UnrealScript.
Editor de Níveis • Permite o posicionamento dos modelos 3D em uma cena; • Criação de gatilhos (triggers); • Associação entre scripts e triggers; • Idealmente deve permitir alterações em runtime; • Cada vez mais importante em uma engine;
Builders • Operações de pré-processamento de cena: • Lightmap; • Heightmap; • Pathfinding; • ... • Geralmente integrado ao level editor.
Importadores / Exportadores • Integração com ferramentas de: • Som; • Video; • Texturas: • Photoshop; • GIMP; • Modelos 3D e animação: • Maya; • 3DS; • Blender;
Engine Core/SDK > Level Editor Tendência das engines atuais! Engine Core / SDK < Level Editor
Exemplos de Engines • Lista com 300 opções! • Open Source: • OGRE; • Irrlicht; • Panda3D; • Comerciais: • Torque Game Engine; • UDK; • Unity 3D.
OGRE: Object-oriented Graphics Rendering Engine • C++; • Open Source; • É, principalmente, um motor de renderização!; • Grande Comunidade. Torchlight – Runic Games Mulver
Irrlicht • C++; • Open Source; • Scripting em Lua; • Engine de Renderização; • irrKLang: Excelente Motor sonoro; • irrEdit: Editor de níveis; Lexventure - Interama Shards (iPhone) - Couchworld
Panda3D • Disney / CMU; • Scripting em Python; • Open Source; • C++ / Python; • Bons conversores; • Ótima documentação; • Execução também no navegador; ToonTown – Disney / Terra Pirates of Caribbean Online - Disney
Torque • US$ 1000; • Jogos para console; • Editor de mundos bastante poderoso; • Infraestrutura de rede; • TorqueScript. Penny Arcade Adventures And Yet Moves (Steam) Broken Rules
UDKUnreal Development Kit • Solução completa e integrada; • Engine mais usada no mundo; • Gratuito para usos não comerciais; • Paga (25% das vendas) para demais usos; • Leia a licença!
Por que é importante conhecermos algumas engines? • Algumas engines são mais adaptadas para gêneros específicos: • PopCap framework: puzzle; • Se você for implementar uma engine é essencial conhecer os recursos de outras engines: • Não reinvente a roda (som no World of Goo)! • A troca de uma engine no meio de um projeto pode ser traumática.
Conclusões * • A escolha de sua engine é um fator decisivo para o sucesso de seu jogo; • Se você escolher “fazer em casa” não há nada de errado em conhecer seus “concorrentes”; • Apenas uma engine gráfica não é suficiente para criar seu jogo; • Leia a licença antes de escolher sua engine;