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 05/11/2015 3 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 05/11/2015 4 05/11/2015 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... 5 SDK Software 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; 05/11/2015 6 05/11/2015 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. 7 05/11/2015 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; 8 05/11/2015 Builders Operações de préprocessamento de cena: Lightmap; Heightmap; Pathfinding; ... Geralmente integrado ao level editor. 9 05/11/2015 Importadores / Exportadores Integração com ferramentas de: Som; Video; Texturas: • Photoshop; • GIMP; Modelos 3D e animação: • Maya; • 3DS; • Blender; 10 Tendência das engines atuais! Engine Core/SDK Engine Core / SDK < 05/11/2015 > Level Editor Level Editor 11 05/11/2015 Exemplos de Engines Lista com 300 opções! Open Source: OGRE; Irrlicht; Panda3D; Comerciais: Torque Game Engine; UDK; Unity 3D. 12 OGRE: Object-oriented Graphics Rendering Engine C++; Open Source; É, principalmente, um motor de renderização!; Grande Comunidade. Torchlight – Runic Games Mulver 05/11/2015 13 05/11/2015 Irrlicht C++; Open Source; Lexventure - Interama Scripting em Lua; Engine de Renderização; irrKLang: Excelente Motor sonoro; irrEdit: Editor de níveis; Shards (iPhone) - Couchworld 14 05/11/2015 Panda3D Disney / CMU; Scripting em ToonTown – Disney / Terra Python; Open Source; C++ / Python; Bons conversores; Ótima documentação; Execução também Pirates of Caribbean Online - Disney no navegador; 15 05/11/2015 Torque US$ 1000; Jogos para console; Editor de mundos bastante poderoso; Infraestrutura de rede; TorqueScript. And Yet Moves (Steam) Broken Rules Penny Arcade Adventures 16 UDK Unreal 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! 05/11/2015 17 Por que é importante conhecermos algumas engines? 05/11/2015 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. 18 05/11/2015 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; 19