210 likes | 509 Views
Game Engines. Non-game specific technology Game: Engine Assets ( models, animations, sounds, AI, and physics) Code (AI, Scripting, etc.). Game Engines: Rendering Pipeline. A pplication/Scene Scene database update/traversal Object/Camera Movement/Animation Visibility/LOD/Culling Geometry
E N D
Game Engines • Non-game specific technology • Game: • Engine • Assets (models, animations, sounds, AI, and physics) • Code (AI, Scripting, etc.)
Game Engines:Rendering Pipeline • Application/Scene • Scene database update/traversal • Object/Camera Movement/Animation • Visibility/LOD/Culling • Geometry • Transforms: Model/World/View • Viewport & Backface Culling • Triangles • Scan-line conversion • Rasterization • Shading • Texturing/Fog/Alpha • Depth
Game Engines:Shading • Flat • Vertex (Gouraud) • Pixel (Phong) • Light Maps • Programmable (Vertex & Pixel Shaders)
Game Engines:Memory Management • Cache Thrashing • Group Primitives by Textures? • Hardware T&L • Compression • Card Memory • Why isn’t 32 bit color (16.7M) enough? • 1280x1024x12 (Front,Back,Z)= 15MB
Game Engines • 3D Engine • 3D Languages • Authoring System • Specialized Authoring (first or third person shooters)
Game Engines • 3D Engine • library of 3D graphics functions. • free, $50-$100 up to $250,000 for commercial use. • Require programming with an external delevopment system, normally Microsoft Visual C++. • maximum of flexibility • maximum of experience, work and time required.
Game Engines • 3D Languages • DirectX/OpenGL interface with a scripting language • especially designed for 3D games • Simpler than 'real' programming. • Many based on Basic • easy to learn • not very well suited for large or complex games • Alternatives: C- or Javascript-based languages.
Game Engines • Authoring System • 3D engine and a visual • very fast 'clicking together' a game prototype. • only simple games can be created without any programming. • scripting language for programming or customizing the game.
Game Engines • Specialized FPS (first or third person shooters) • offer no or limited scripting. • good alternative if you don't want to script and are not interested in publishing a game commercially.
Engine Considerations • Platforms • Performance • Data • Rendering/Features • Animation • Physics & Environment • Scripting • Authoring • I/O • Save/Load
Performance • Occlusion Culling • Cell Based: BSP tree, Portal, Octree • Other: Potentially Visible Set, HOM • LOD • Adaptive NURBS/Patches • Polygon Reduction • Terrain Primitives
Data Import/Export • 3D file formats • X, 3DS, MDL, MD2, MAP, WAD • Texture/Image Formats • Models/Animations: • Maya, 3D Studio MAX • Levels • WorldcraftT or MilkshapeT • Plugins
RenderingFeatures • OpenGL vs. DirectX • DX6-9 • OpenGL1.1-1.5,2.0 • Shadow Maps (Lightmaps) • Shaders • Dynamic Shadows • MIP Maps/Multi Maps/ Bump Mapping • Effects
Animation • Keyframe • Bones (Skinning) • Facial Animation • Vertex Animation • Inverse Kinematics (IK) • Dynamics • High-level Authoring
Physics & Physical Environment • Visibility • Collision Detection • Terrain Following • Gravity • Physics • Rigid & non-rigid bodies
Scripting • Scripting languages add logic for controlling actors or objects • Languages: • Javascript • Luo -http://www.lua.org/ • Python • Basic • Custom:UnrealScript, C-Script, etc. • Script Compilers for performance
Save/Load System • allows the end user to save a complete game state. • 'freezes' all running scripts and all objects and variables of the game and writes them into a file • Without such a system: • a script has to be written which stores the state of every variable and object and the position within every script function
Authoring/Editing • Level Editor • Model Editor • Script Editor • Terrain • Logic
Sample Engines • Specialized Authoring (FPS, 3PS) • 3DGM, RF • Authoring • Quest, Radish, Virtools, Gamestudio/A6, Alice, Adobe Atmosphere, Blender • 3D Languages • Jamagic, DarkBASIC, Blitz • 3D Engines • TV3D, Irrlicht, Torque, Nebula, Crystal, Cipher, PR, Jupiter, Quake3, Unreal2 • Standards-based Engines & Tools (VRML/X3D) • Internet Scene Assembler, Cortona, Blaxxun,OpenWorlds, VizX3D
Game Engine Resources • http://www.devmaster.net/engines • http://www.pcplus.co.uk/reviews/ (->Software->Development and ->Software->Graphics) • http://directory.google.com/Top/Computers/Programming/Games/3D/ • http://cg.cs.tu-berlin.de/~ki/engines.html • http://fraktali.849pm.com/graphengines.html • http://www.flipcode.com/links/