What Is A Game Engine

10,258 views

Published on

This is a talk I give to college students.

Published in: Technology, Art & Photos
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,258
On SlideShare
0
From Embeds
0
Number of Embeds
121
Actions
Shares
0
Downloads
371
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

What Is A Game Engine

  1. 1. What is a game engine? Game engine basics every developer should know   Seth Sivak
  2. 2. What is a Game Engine? <ul><ul><li>Set of tools to assist in making a game </li></ul></ul><ul><ul><li>Game agnostic software components </li></ul></ul><ul><ul><ul><li>Reusable for many different games </li></ul></ul></ul><ul><ul><li>Multi-platform (typically) </li></ul></ul><ul><ul><li>Allows for data driven development </li></ul></ul><ul><ul><li>Makes development faster! </li></ul></ul>
  3. 3. Terminology/Acronyms <ul><ul><li>Integrated Development Environment (IDE) </li></ul></ul><ul><ul><li>Application Programming Interface (API) </li></ul></ul><ul><ul><li>Software Development Kit (SDK) </li></ul></ul><ul><ul><li>Graphics Processing Unit (GPU) </li></ul></ul><ul><ul><li>Central Processing Unit (CPU) </li></ul></ul><ul><ul><li>Artificial Intelligence (AI) </li></ul></ul><ul><ul><li>Middleware </li></ul></ul><ul><ul><li>Shader </li></ul></ul><ul><ul><li>Source Code </li></ul></ul><ul><ul><li>Dev Kit </li></ul></ul><ul><ul><li>Mod </li></ul></ul><ul><ul><li>Inverse Kinematics (IK) </li></ul></ul><ul><ul><li>Motion Capture (MoCap) </li></ul></ul><ul><ul><li>Pathfinding </li></ul></ul><ul><ul><li>Compiler </li></ul></ul><ul><ul><li>Interpreter </li></ul></ul><ul><ul><li>Level of Detail (LOD) </li></ul></ul><ul><ul><li>Rig </li></ul></ul>
  4. 4. Game Engine Functions <ul><ul><li>Renderer (2D or 3D) </li></ul></ul><ul><ul><li>Collision Detection </li></ul></ul><ul><ul><li>Scripting </li></ul></ul><ul><ul><li>Sound/Video </li></ul></ul><ul><ul><li>Animation </li></ul></ul><ul><ul><li>Shading/Lighting </li></ul></ul><ul><ul><li>Networking </li></ul></ul><ul><ul><li>Physics </li></ul></ul><ul><ul><li>Artificial Intelligence </li></ul></ul><ul><ul><li>Level Editor </li></ul></ul><ul><ul><li>Custom Tools </li></ul></ul>
  5. 5. Assets <ul><ul><li>Used by the Render Engine, Sound/Video Engine, Animation Engine </li></ul></ul><ul><ul><li>Anything that is in the game besides code </li></ul></ul><ul><ul><ul><li>Models </li></ul></ul></ul><ul><ul><ul><li>Textures </li></ul></ul></ul><ul><ul><ul><li>Sounds </li></ul></ul></ul><ul><ul><ul><li>Videos </li></ul></ul></ul><ul><ul><ul><li>Animations </li></ul></ul></ul>
  6. 6. Scene Graph <ul><ul><li>Tells the Render Engine where to place Assets </li></ul></ul><ul><ul><li>Arranges a scene </li></ul></ul><ul><ul><ul><li>Logically </li></ul></ul></ul><ul><ul><ul><li>Spatially </li></ul></ul></ul><ul><ul><li>Tree Structure </li></ul></ul><ul><ul><ul><li>Hierarchical </li></ul></ul></ul><ul><ul><li>Graph Structure </li></ul></ul><ul><ul><ul><li>Non-hierarchical </li></ul></ul></ul>
  7. 7. Render Engine <ul><ul><li>Usually built on OpenGL or DirectX </li></ul></ul><ul><ul><li>Generates images in real-time from assets </li></ul></ul><ul><ul><li>Controlled by the Scene Graph </li></ul></ul><ul><ul><li>Interacts directly with the GPU </li></ul></ul>
  8. 8. Collision Detection Engine <ul><ul><li>Intersection of two given solids </li></ul></ul><ul><ul><ul><li>Spheres </li></ul></ul></ul><ul><ul><ul><li>Planes </li></ul></ul></ul><ul><ul><ul><li>Tubes </li></ul></ul></ul><ul><ul><ul><li>Polygons </li></ul></ul></ul><ul><ul><li>Collision Response </li></ul></ul><ul><ul><ul><li>Event </li></ul></ul></ul>
  9. 9. Scripting Engine <ul><ul><li>Usually uses an interpreted language (Python, etc.) </li></ul></ul><ul><ul><li>Allows custom code </li></ul></ul><ul><ul><li>Does not require the source code </li></ul></ul><ul><ul><li>Does not change any engine code </li></ul></ul><ul><ul><li>Game Specific </li></ul></ul>
  10. 10. Sound/Video Engine <ul><ul><li>Usually played based on an event </li></ul></ul><ul><ul><li>Built off of an external library (OpenAL,etc.) </li></ul></ul><ul><ul><li>Video is often only for cut-scenes or as part of in-game objects </li></ul></ul><ul><ul><li>Sound is for music and sound effects </li></ul></ul><ul><ul><li>Handles sound objects that can control surround sound and 3D sound </li></ul></ul>
  11. 11. Animation Engine <ul><ul><li>Handles animation of objects on the Scene Graph </li></ul></ul><ul><ul><li>Tween animation </li></ul></ul><ul><ul><li>Rig/Skeleton Based animation </li></ul></ul><ul><ul><li>Tells the Renderer how to display the assets </li></ul></ul>
  12. 12. Shading/Lighting Engine <ul><ul><li>Calculates special effects </li></ul></ul><ul><ul><ul><li>Shadows </li></ul></ul></ul><ul><ul><ul><li>Normal Maps </li></ul></ul></ul><ul><ul><ul><li>Particle Effects </li></ul></ul></ul><ul><ul><ul><li>More... </li></ul></ul></ul><ul><ul><li>Applied by the Render Engine on objects in the Scene Graph </li></ul></ul>
  13. 13. Networking Engine <ul><ul><li>Handles multicomputer communication </li></ul></ul><ul><ul><ul><li>Peer to Peer </li></ul></ul></ul><ul><ul><ul><li>Client to Server </li></ul></ul></ul><ul><ul><ul><li>Distributed </li></ul></ul></ul>
  14. 14. Physics Engine <ul><ul><li>Handles behavior of objects based on collisions </li></ul></ul><ul><ul><li>Simulates or predicts phyics models </li></ul></ul><ul><ul><ul><li>Rigid Body Dynamics </li></ul></ul></ul><ul><ul><ul><li>Soft Body Physics </li></ul></ul></ul><ul><ul><ul><li>Fluid Dynamics </li></ul></ul></ul>
  15. 15. Artificial Intelligence Engine <ul><ul><li>Controls object interaction </li></ul></ul><ul><ul><ul><li>Stimuli </li></ul></ul></ul><ul><ul><ul><li>Needs </li></ul></ul></ul><ul><ul><ul><li>Desires </li></ul></ul></ul><ul><ul><ul><li>Flocking </li></ul></ul></ul><ul><ul><li>Often uses Finite State Machines </li></ul></ul>
  16. 16. Level Editor <ul><ul><li>Allows placement of multiple assets to create environments </li></ul></ul><ul><ul><li>Can allow custom scripting for AI </li></ul></ul><ul><ul><li>Primarily used for static asset placement </li></ul></ul>
  17. 17. Custom Tools <ul><ul><li>Quest Editor </li></ul></ul><ul><ul><li>Dialogue System </li></ul></ul><ul><ul><li>Multiplayer Support </li></ul></ul><ul><ul><li>Chat Systems </li></ul></ul><ul><ul><li>Ranking Systems </li></ul></ul>
  18. 18. Questions?

×