Game Engines

Non-game specific technology
 Game:
– Engine
– Assets (models, animations, sounds, AI, and
physics)
– Code (AI, Scripting, etc.)
Game Engines:
Rendering Pipeline
1.
Application/Scene



2.
Geometry


3.
Transforms: Model/World/View
Viewport & Backface Culling
Triangles

4.
Scene database update/traversal
Object/Camera Movement/Animation
Visibility/LOD/Culling
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
–


Texture/Image Formats
Models/Animations:
–

Maya, 3D Studio MAX
Levels
–

X, 3DS, MDL, MD2, MAP, WAD
WorldcraftT or MilkshapeT
Plugins
Rendering
Features

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/Pr
ogramming/Games/3D/
 http://cg.cs.tu-berlin.de/~ki/engines.html
 http://fraktali.849pm.com/graphengines.html
 http://www.flipcode.com/links/

Descargar

Document