GAME ENGINES - Universidad Católica San Pablo · • Often found as part of physics engines •...
-
Upload
truongtram -
Category
Documents
-
view
221 -
download
0
Transcript of GAME ENGINES - Universidad Católica San Pablo · • Often found as part of physics engines •...
1
GETTING STARTED WITH VIDEOGAME DEVELOPMENT
J U N I O R R O J A S G R U P O AVA T A R P U C P
TABLE OF CONTENTS
• Game Engines • Rendering • Collision Detection • Physics • Artificial Intelligence • Scripting • Game Editors • Building a game in Unity
GAME ENGINES
• Reusability • Data-driven architecture • Genre-specific? General-purpose?
Game Engine Architecture, Jason Gregory (2009)
GAME ENGINES
Game assets (graphics, sounds, scripts, etc.)
Game engine
Game
RENDERING
• Low-level APIs: OpenGL, Direct3D • High-level APIs: Ogre3D, Flash display list,
Panda3D scene graph, Unity scenes, etc.
Panda 3D Manual: Cheat Sheets www.panda3d.org/manual/index.php/Cheat_Sheets
RENDERING
• Movie-quality rendering in real-time.
The Butterfly Effect www. unity3d.com/promo/butterfly
2
COLLISION DETECTION
• Often found as part of physics engines • Real-time processing • Discrete vs Continuous
Game Engine Architecture, Jason Gregory (2009)
Tunneling
COLLISION DETECTION
• Bounding Volumes: • AABB • OBB • Spheres
• Spatial partitioning: • Uniform grids • BSPs • Quadtrees • Octrees • kd-trees
Quadtree
Game Engine Architecture, Jason Gregory (2009)
PHYSICS
• Classical mechanics • Rigid bodies, joints, ragdolls • Box2D, Nape • ODE, Bullet, Havok, PhysX • Character Controllers
Ragdoll simulation with Box2D
Unity’s Character Controller
ARTIFICIAL INTELLIGENCE
• NPCs, playable characters • Finite-state machines • Pathfinding
Warcraft III, Blizzard
ARTIFICIAL INTELLIGENCE
• A* algorithm • Data structures for pathfinding • Navigation meshes • Waypoints / point graphs • Grid Graphs
• Path smoothing
Navigation Mesh with A* Pathfinding Project for
Unity
A* Pathfinding Project http://arongranberg.com/astar/
SCRIPTING
• Game-specific rules • Avoid recompiling the whole engine • Unity: • Mono: C#, UnityScript, Boo