370 likes | 602 Views
Engines de Jogos. Felipe Ebert (fe) Mário Barbosa (mbaj). Motivação. Redução de custos de desenvolvimento Permite o aumento da complexidade dos jogos Reaproveitamento de código Abstração dos componentes de baixo nível. Um pouco da história. Início dos anos 90 – conceito de “game engine”
E N D
Engines de Jogos Felipe Ebert (fe) Mário Barbosa (mbaj)
Motivação • Redução de custos de desenvolvimento • Permite o aumento da complexidade dos jogos • Reaproveitamento de código • Abstração dos componentes de baixo nível
Um pouco da história... • Início dos anos 90 – conceito de “game engine” • Freescape e Doom engines • Final dos anos 90 – grande crescimento, era 3D • Quake, Jedi e Unreal engines • Início anos 2000 – 3D realçado e Photorealism • Unreal 2.0/2.5, Cube, Doom3, Cry, “Call of Duty” engines • 2005 até hoje – futuro • Unreal 4.0, Cry 2, NGL engines • Time Line
Engines de jogos • Verifica Interações • Gerencia Lógica • Manipula Mídias • Gerência Redes
Componentes • Engine Core • Engine SDK • Level Editors • Builders • Scripts
Engine Core • Núcleo da engine (sistema operacional) • Manipulação dos estados • Chamadas de sub-etapas do motor • Renderização de cenas • Administração de recursos
Engine SDK • Biblioteca da Engine Core • Edita o funcionamento da Engine
Level Editors • Manipulação de modelos 3D • Associação dos modelos 3D com a programação • Manipulação com Scripts
Builders • Operação de Pre-processamento • Gerar BSP • LightMap • Etc • Embutidas no Level Editors
Linguagens Script • Implementação da lógica do jogo • Independência em relação a Engine Core • Linguagens Padrão • Lua • Python • JavaScript
Tipos de engine • Engine de renderização • Engine de simulação física • Engine de inteligência artificial • Engine de redes • Engine de som
Engines de Renderização • Transformações 3D • Projeção do 3D num plano 2D • Culling • Clipping • Rasterização
Engines de Renderização • Transformações 3D
Engines de Renderização • Projeção do 3D em um plano 2D
Engines de Renderização • Culling
Engines de Renderização • Clipping
Engines de Renderização • Rasterização
Engines de Renderização • Rasterização
Engine de Simulação Física • Aplicação de leis da física • Movimentação • Colisão • Cálculo de forças Vídeo bos_sbs_01.divx
Engine de Inteligência Artificial • Definição de estados • Transições entre estados • Não interativo • Pouco explorado
Engine de Som • Divisão entre os canais de saída • Gerenciamento do volume
Engine de Rede • Controle de fluxo de informações • Monitoramento dos jogadores
Mas, que engine escolher? • Fatores a serem analisados: • Orçamento • Tipo de Jogo • Milestone • Plataforma • Documentação • Ferramentas disponíveis
Soluções Gratuitas * Agar * Allegro library * Antiryad GX * APOCALYX * Axiom Engine * Baja Engine * Blender * Blender Publisher * Boom * Build engine * BYOND * Catmother * CheapHack * CEL * CELstart * Crystal Space * Cube * DarkPlaces * Daybreak motor * Dead Souls * Delta3d * DGD * Dim3 * Doom engine * Dungeon Craft * DXFramework * DX Studio * Epee Engine * Eternity Engine * Euphoria * Exult * FIFE * Ketsji * Game Maker * GQ * GTGE * GZDoom * Genesis3D * GemRB * Horde3D * id Tech 2 * id Tech 3 * Irrlicht * Jgame * jMonkeyEngine * Jogre * KallistiOS * Knight Free 3D Suite * KonsolScript * M.U.G.E.N *Multiverse Network * Nebula Device * OctLight * Open Game Engine * OGRE * Panda3D * PLIB * ProQuake * Pygame * PySoy * RealmForge * Retribution Engine * RPG Toolkit * Sauerbraten * Sploder * Stratagus * Telejano * Tenebrae * Tile Studio * vbGORE * Wintermute Engine * World Builder * XtremeWorlds
Soluções Comerciais * 3D GameStudio * 3DSTATE 3D Engine * Adventure Game Studio * Aurora Engine * Brender * C4 Engine * Coldstone game engine * CPAL3D * CryENGINE CryENGINE2 * Dagor Engine 3 * Deep Creator * Doom 3 engine * DX Studio * Earth-4 Engine * Electron engine * Elflight Engine * EMotion FX * euphoria * Explorations * Frostbite Engine * Gamebryo Element * Game Maker * Havok * IMUSE * INSANE * Infinity Engine * JADE engine * JAMAGIC * Jedi * Kaneva Game Platform * KjAPI * Lithtech * Medusa * Microsoft XNA * Monumental Technology Suite * Multiverse Network * NeoAxis Engine * NvidiaPerfkit * Offset Engine * Odyssey Engine * Power Render * Realm Crafter * Refractor Engine * RelentENGINE * RenderWare * Revolution3D * Rockstar Advanced Game Engine * RPG Maker XP * SAGE engine * SCUMM * Serious Engine * Shark 3D * ShiVa * Silent Storm engine * Sith * Source engine * Torque Game Engine * Torque Game Engine Advanced * TOSHI * Truevision3D * Unigine * Unity * Unreal Engine * Vengeance engine * Vicious Engine * Visual3D.NET * Virtools * White Engine * XnGine * Zillions of Games
Engines Brasileiras (1) • Cadabra • PUC-SP • Fase Beta • SDK disponível
Engines Brasileiras (2) • Enjine • Open source • Didática • Java 3D • Incubada na Fapesp
Engines Brasileiras (3) • Taikodom • Motor próprio • Usa C++, SDL e Phyton • Video
Tendências Futuras • Os motores de jogos são e continuarão sendo componentes fundamentais na elaboração de entretenimento digital. • Cada vez mais os computadores passarão a usar um hardware especifico para cálculos físicos.
Referências • http://www.firingsquad.com/matrix/blog.asp/62074/300 • http://www.cadabra3d.org/index.php • http://200.18.98.97/intranet/documentos/papers/csbc2005/pdf/arq0286.pdf • http://www.enjine.org/ • http://www.taikodom.com.br/ • http://www.unrealtechnology.com/ • www.ogre3d.org/