Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What Is A Game Engine

11,592 views

Published on

This is a talk I give to college students.

Published in: Technology, Art & Photos

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?

×