SlideShare a Scribd company logo
INTRODUCTION TO GAME ENGINE:
CONCEPTS & COMPONENTS
Pouya Pournasir
Mojtaba Rouhibakhsh
Outline
 What is a Game Engine?
 What’s it’s Purpose?
 Game Engine History
 Benefits & Drawbacks
 Types of Game Engines
 How to Reach Equilibrium in Flexibility?
 Game Engine Components
Game & Car Analogy:
The game engine, much like a car's engine, is what makes the game run.
Think of how the body, CD player, in-dash navigation system, and leather seats make the actual car.
That's the Asset of the game. Audio files, textures, graphic models, animations, AI algorithms are
assets of the game.
Game engine says “focus on the content of the game, I do the core things”.
Introduction to Game Engine: Concepts & Components
Hierachy
Electric Circuits
Hardware
BIOS
Operating Systems
Application
Game Engine
Video Game
Its here too!
Purpose
 Engines exists to abstract the details of doing common game-related tasks so that developers
can focus on the details that make their games unique.
 Engines offer reusable components that can be manipulated to bring a game to life
 platform abstraction: allowing the same game to be run on various platforms
History
In mid-90, every single game had to be developed from bottom up for optimal use; meant that most of
the code have to be thrown out afterwards
 Id Software developed Doom, a FPS game, in such a way that it’s architecture defined separation
between core software components and game world. It was an innovative way of coding video games.
 people started to notice that big portions of the game code were really re-usable. John Carmack is
usually credited with the term "game engine", which was his term for splitting the reusable aspects the
game programming from the parts which were best left to other specialists: artists, designers, and
sound people could add their own contributions to the game without writing actual program code
Benefits: Software Reuse
 provides simplified access to underlying technologies
 organizes and speeds up development process
 reusing the same game engine (software) to create multiple different games
 less testing and debugging
 better focus on the game design aspects
 enables the game to run on multiple platforms(consoles, operating systems)
Drawbacks: Potential costs and complexity
 you are limited from all aspects
 Problems with license, third-party libraries
APIs & SDKs: Whats the difference?
 API:
 APIs are the software interfaces that
operating systems, libraries, and services
provide so that you can take advantage of
their particular features.
 EX: OpenGL, Havok, FMOD
 SDK:
 An SDK is a collection of libraries, APIs, and
tools that are made available for
programming those same operating systems
and services. Most game engines provide
APIs in their SDKs.
 EX: Unreal Developeent Kit.
Roll-your-own Game Engines (lowest level)
 use publicly available application interfaces, such as APIs like XNA, DirectX, OpenGL, the
Windows and Linux APIs and SDL, to create their own engines
 give programmers the greatest amount of flexibility, letting them pick and choose the
components they want and integrating them exactly how they want.
 take the longest amount of time to build, make it less attractive to even proffesionals.
Mostly-ready game engines (mid level)
 These engines are ready for prime time right out of the box, with rendering, input, GUI, physics --
you name it.
 Engines in this category include OGRE and Genesis3D, which are both open source, low priced
engines like Torque, and even really high priced ones such as Unreal, id Tech, and Gamebryo.
 require programming.
 They might call for some scripting or sometimes even low-level coding to get a real game
working.
Point-and-click engines (highest level)
 include a full tool chain that allows you to point and click your way to creating a game.
 These engines, which include GameMaker, Torque Game Builder, and Unity3D, are built to be as
friendly as possible, and are made to require as little coding as possible.
 That's not to say knowing a little coding doesn't help, but it isn't really a necessity the way it is for
the mostly-ready and roll-your-own engines.
 The problem with many point-and-click engines is that they can be extremely limiting. Many do
one or two types or genres of game well, or one or two types of graphics modes
Extensibility: How to reach Equilibrium?
 A "game engine" should be designed to be extensible and to be used as the foundation for many
different games without major modification
 a game containing hard-coded logic becomes difficult or impossible to reuse to make a different
game
 The more general-purpose a game component is, the less optimal it purpose a game
component is, the less optimal it may be for a particular game on a particular platform
Sources
 Game Engine Architecure, Spring 2017 Course in University of Helsinki, Slide Introduction and
Overview.
 GameCareer.com, What is a Game Engine by Jeff Ward.
 Raph Koster, Creator of Game Programming gems book Series, answer to game engine related
questions in quora.com.
 GiantBomb.com, Game Engine: How do they work? By michaelenger.
 Wikipedia: Game Engine & Middleware.
Game Engine Components
• Rendering Engine
• Scene Graph
• Physics Engine
• Collision Detection
• Audio Engine
• Artificial intelligence
• Scripting
• Animation
• Networking
Rendering Engine
• The rendering engine generates animated graphics
• most often rendering engines are built upon one or multiple
rendering APIs, such as Direct3D, OpenGL
• Interacts directly with the GPU
• e.g. Ogre
Introduction to Game Engine: Concepts & Components
Scene Graph
• A Scene graph contains all of the geometry of a particular scene
• Each node in a scene graph contains data representing its position
and orientation in relation to its parent node.
• Frustum culling - remove things outside of the visible screen
Introduction to Game Engine: Concepts & Components
Physics Engine
• The physics engine is responsible for emulating the laws of physics
realistically within the application
• Handles behavior of objects based on collisions
• e.g. PhysX , Havoc
Collision Detection
• Collision detection is the computational problem of detecting the
intersection of two or more objects
Audio Engine
• The audio engine is the component which consists of algorithms
related to the output of sound through the client's speaker system
• Usually played on an event
• Built upon an external library (OpenAL, etc)
Artificial intelligence
• AI refers to techniques used in computer and video games to
produce the illusion of intelligence in the behavior of non-player
characters
• A* is commonly used for the common pathfinding problem in
applications such as games
Scripting
• Usually uses an interpreted language (Python, lua, etc)
• Typically using an interpreted scripting language avoids the need
to rebuild the code base given a gameplay change.
Animation
• Handles animation of objects on the scene graph
• Tells the renderer how to display the assets
• Skeletal animations is the most popular
Networking
• Game Networking exists where multiple people can play the same
game and interact with each other on their own system
• Peer to Peer
• Client/Server
• e.g. RakNet
Sources
• Wikipedia: Scene Graph, Physics Engine, Browser Engine
• Game Engine Rendering Pipeline by Sharad Mitra

More Related Content

What's hot (20)

PPTX
Game engines and Their Influence in Game Design
Prashant Warrier
 
PPTX
PRESENTATION ON Game Engine
Diksha Bhargava
 
PPTX
Game Design
April Bundridge
 
PPSX
An Introduction To Game development
Ahmed
 
PPT
What Is A Game Engine
Seth Sivak
 
PPTX
Unity 3D, A game engine
Md. Irteza rahman Masud
 
PPTX
Unity3D Programming
Michael Ivanov
 
PDF
Unity
Khaled Ismail
 
PPTX
Introduction to game development
Gaetano Bonofiglio
 
PDF
Game Design Fundamentals
Intelligent_ly
 
PPTX
Introduction to Game Development
Sumit Jain
 
PPTX
game development
umair khan
 
PDF
Unreal Engine 4 Introduction
Sperasoft
 
PDF
Game Development workshop with Unity3D.
Ebtihaj khan
 
PDF
Unreal Engine Basics 01 - Game Framework
Nick Pruehs
 
PPTX
Introduction to Game Development
Shaan Alam
 
PPTX
Game development life cycle
Sarah Alazab
 
PDF
Mobile Game Development in Unity
Hakan Saglam
 
PPTX
Course Presentation: Games design
Brunel University
 
PDF
Custom SRP and graphics workflows - Unite Copenhagen 2019
Unity Technologies
 
Game engines and Their Influence in Game Design
Prashant Warrier
 
PRESENTATION ON Game Engine
Diksha Bhargava
 
Game Design
April Bundridge
 
An Introduction To Game development
Ahmed
 
What Is A Game Engine
Seth Sivak
 
Unity 3D, A game engine
Md. Irteza rahman Masud
 
Unity3D Programming
Michael Ivanov
 
Introduction to game development
Gaetano Bonofiglio
 
Game Design Fundamentals
Intelligent_ly
 
Introduction to Game Development
Sumit Jain
 
game development
umair khan
 
Unreal Engine 4 Introduction
Sperasoft
 
Game Development workshop with Unity3D.
Ebtihaj khan
 
Unreal Engine Basics 01 - Game Framework
Nick Pruehs
 
Introduction to Game Development
Shaan Alam
 
Game development life cycle
Sarah Alazab
 
Mobile Game Development in Unity
Hakan Saglam
 
Course Presentation: Games design
Brunel University
 
Custom SRP and graphics workflows - Unite Copenhagen 2019
Unity Technologies
 

Similar to Introduction to Game Engine: Concepts & Components (20)

DOCX
Game software development trends
_veronika_
 
PDF
Augmented Reality Application Development_Unit II_Material.pdf
vijaykrishanmoorthy
 
PDF
1-Introduction (Game Design and Development)
Hafiz Ammar Siddiqui
 
PDF
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
PPTX
GP Intro.pptx
Punithavel Ramani
 
PDF
Js3516731693
IJERA Editor
 
PDF
Introduction to html5 game programming with impact js
Luca Galli
 
ODP
HTML5 Game Development frameworks overview
Abhishek Singhal [L.I.O.N]
 
PPTX
Power point
Christian Tucker
 
DOCX
Funky game engines
eduriez
 
PPT
My Presentation.ppt
Fake474384
 
PDF
Game Engine In Scientific Research
Huda Rasmey
 
PDF
Ideaworks Game Studio Profile
robhendry
 
PDF
Unreal Ahmedabad Meetup Hosted by 300Minds.pdf
Samir Patel
 
PPTX
ppt on game development for presentation.pptx
maniiron02
 
PDF
Absolutist: Porting to major platforms within a minute
DevGAMM Conference
 
PPT
Wakka Monkey - Game Development
Wakka Monkey
 
DOCX
Y1 gd engine_terminology
Jordanianmc
 
PDF
De Re PlayStation Vita
Slide_N
 
Game software development trends
_veronika_
 
Augmented Reality Application Development_Unit II_Material.pdf
vijaykrishanmoorthy
 
1-Introduction (Game Design and Development)
Hafiz Ammar Siddiqui
 
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
GP Intro.pptx
Punithavel Ramani
 
Js3516731693
IJERA Editor
 
Introduction to html5 game programming with impact js
Luca Galli
 
HTML5 Game Development frameworks overview
Abhishek Singhal [L.I.O.N]
 
Power point
Christian Tucker
 
Funky game engines
eduriez
 
My Presentation.ppt
Fake474384
 
Game Engine In Scientific Research
Huda Rasmey
 
Ideaworks Game Studio Profile
robhendry
 
Unreal Ahmedabad Meetup Hosted by 300Minds.pdf
Samir Patel
 
ppt on game development for presentation.pptx
maniiron02
 
Absolutist: Porting to major platforms within a minute
DevGAMM Conference
 
Wakka Monkey - Game Development
Wakka Monkey
 
Y1 gd engine_terminology
Jordanianmc
 
De Re PlayStation Vita
Slide_N
 
Ad

Recently uploaded (20)

PDF
Electrical Engineer operation Supervisor
ssaruntatapower143
 
PDF
Data structures notes for unit 2 in computer science.pdf
sshubhamsingh265
 
PPT
Footbinding.pptmnmkjkjkknmnnjkkkkkkkkkkkkkk
mamadoundiaye42742
 
PPTX
Mechanical Design of shell and tube heat exchangers as per ASME Sec VIII Divi...
shahveer210504
 
PDF
Submit Your Papers-International Journal on Cybernetics & Informatics ( IJCI)
IJCI JOURNAL
 
PPTX
MODULE 05 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
PPTX
Water Resources Engineering (CVE 728)--Slide 4.pptx
mohammedado3
 
PDF
WD2(I)-RFQ-GW-1415_ Shifting and Filling of Sand in the Pond at the WD5 Area_...
ShahadathHossain23
 
PPTX
GitOps_Without_K8s_Training_detailed git repository
DanialHabibi2
 
PPTX
澳洲电子毕业证澳大利亚圣母大学水印成绩单UNDA学生证网上可查学历
Taqyea
 
PPTX
fatigue in aircraft structures-221113192308-0ad6dc8c.pptx
aviatecofficial
 
PDF
Reasons for the succes of MENARD PRESSUREMETER.pdf
majdiamz
 
PDF
Electrical Machines and Their Protection.pdf
Nabajyoti Banik
 
PPTX
How Industrial Project Management Differs From Construction.pptx
jamespit799
 
PDF
methodology-driven-mbse-murphy-july-hsv-huntsville6680038572db67488e78ff00003...
henriqueltorres1
 
PPT
New_school_Engineering_presentation_011707.ppt
VinayKumar304579
 
PDF
AN EMPIRICAL STUDY ON THE USAGE OF SOCIAL MEDIA IN GERMAN B2C-ONLINE STORES
ijait
 
PPT
Testing and final inspection of a solar PV system
MuhammadSanni2
 
PPTX
Lecture 1 Shell and Tube Heat exchanger-1.pptx
mailforillegalwork
 
PPTX
Water Resources Engineering (CVE 728)--Slide 3.pptx
mohammedado3
 
Electrical Engineer operation Supervisor
ssaruntatapower143
 
Data structures notes for unit 2 in computer science.pdf
sshubhamsingh265
 
Footbinding.pptmnmkjkjkknmnnjkkkkkkkkkkkkkk
mamadoundiaye42742
 
Mechanical Design of shell and tube heat exchangers as per ASME Sec VIII Divi...
shahveer210504
 
Submit Your Papers-International Journal on Cybernetics & Informatics ( IJCI)
IJCI JOURNAL
 
MODULE 05 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
Water Resources Engineering (CVE 728)--Slide 4.pptx
mohammedado3
 
WD2(I)-RFQ-GW-1415_ Shifting and Filling of Sand in the Pond at the WD5 Area_...
ShahadathHossain23
 
GitOps_Without_K8s_Training_detailed git repository
DanialHabibi2
 
澳洲电子毕业证澳大利亚圣母大学水印成绩单UNDA学生证网上可查学历
Taqyea
 
fatigue in aircraft structures-221113192308-0ad6dc8c.pptx
aviatecofficial
 
Reasons for the succes of MENARD PRESSUREMETER.pdf
majdiamz
 
Electrical Machines and Their Protection.pdf
Nabajyoti Banik
 
How Industrial Project Management Differs From Construction.pptx
jamespit799
 
methodology-driven-mbse-murphy-july-hsv-huntsville6680038572db67488e78ff00003...
henriqueltorres1
 
New_school_Engineering_presentation_011707.ppt
VinayKumar304579
 
AN EMPIRICAL STUDY ON THE USAGE OF SOCIAL MEDIA IN GERMAN B2C-ONLINE STORES
ijait
 
Testing and final inspection of a solar PV system
MuhammadSanni2
 
Lecture 1 Shell and Tube Heat exchanger-1.pptx
mailforillegalwork
 
Water Resources Engineering (CVE 728)--Slide 3.pptx
mohammedado3
 
Ad

Introduction to Game Engine: Concepts & Components

  • 1. INTRODUCTION TO GAME ENGINE: CONCEPTS & COMPONENTS Pouya Pournasir Mojtaba Rouhibakhsh
  • 2. Outline  What is a Game Engine?  What’s it’s Purpose?  Game Engine History  Benefits & Drawbacks  Types of Game Engines  How to Reach Equilibrium in Flexibility?  Game Engine Components
  • 3. Game & Car Analogy: The game engine, much like a car's engine, is what makes the game run. Think of how the body, CD player, in-dash navigation system, and leather seats make the actual car. That's the Asset of the game. Audio files, textures, graphic models, animations, AI algorithms are assets of the game. Game engine says “focus on the content of the game, I do the core things”.
  • 6. Purpose  Engines exists to abstract the details of doing common game-related tasks so that developers can focus on the details that make their games unique.  Engines offer reusable components that can be manipulated to bring a game to life  platform abstraction: allowing the same game to be run on various platforms
  • 7. History In mid-90, every single game had to be developed from bottom up for optimal use; meant that most of the code have to be thrown out afterwards  Id Software developed Doom, a FPS game, in such a way that it’s architecture defined separation between core software components and game world. It was an innovative way of coding video games.  people started to notice that big portions of the game code were really re-usable. John Carmack is usually credited with the term "game engine", which was his term for splitting the reusable aspects the game programming from the parts which were best left to other specialists: artists, designers, and sound people could add their own contributions to the game without writing actual program code
  • 8. Benefits: Software Reuse  provides simplified access to underlying technologies  organizes and speeds up development process  reusing the same game engine (software) to create multiple different games  less testing and debugging  better focus on the game design aspects  enables the game to run on multiple platforms(consoles, operating systems)
  • 9. Drawbacks: Potential costs and complexity  you are limited from all aspects  Problems with license, third-party libraries
  • 10. APIs & SDKs: Whats the difference?  API:  APIs are the software interfaces that operating systems, libraries, and services provide so that you can take advantage of their particular features.  EX: OpenGL, Havok, FMOD  SDK:  An SDK is a collection of libraries, APIs, and tools that are made available for programming those same operating systems and services. Most game engines provide APIs in their SDKs.  EX: Unreal Developeent Kit.
  • 11. Roll-your-own Game Engines (lowest level)  use publicly available application interfaces, such as APIs like XNA, DirectX, OpenGL, the Windows and Linux APIs and SDL, to create their own engines  give programmers the greatest amount of flexibility, letting them pick and choose the components they want and integrating them exactly how they want.  take the longest amount of time to build, make it less attractive to even proffesionals.
  • 12. Mostly-ready game engines (mid level)  These engines are ready for prime time right out of the box, with rendering, input, GUI, physics -- you name it.  Engines in this category include OGRE and Genesis3D, which are both open source, low priced engines like Torque, and even really high priced ones such as Unreal, id Tech, and Gamebryo.  require programming.  They might call for some scripting or sometimes even low-level coding to get a real game working.
  • 13. Point-and-click engines (highest level)  include a full tool chain that allows you to point and click your way to creating a game.  These engines, which include GameMaker, Torque Game Builder, and Unity3D, are built to be as friendly as possible, and are made to require as little coding as possible.  That's not to say knowing a little coding doesn't help, but it isn't really a necessity the way it is for the mostly-ready and roll-your-own engines.  The problem with many point-and-click engines is that they can be extremely limiting. Many do one or two types or genres of game well, or one or two types of graphics modes
  • 14. Extensibility: How to reach Equilibrium?  A "game engine" should be designed to be extensible and to be used as the foundation for many different games without major modification  a game containing hard-coded logic becomes difficult or impossible to reuse to make a different game  The more general-purpose a game component is, the less optimal it purpose a game component is, the less optimal it may be for a particular game on a particular platform
  • 15. Sources  Game Engine Architecure, Spring 2017 Course in University of Helsinki, Slide Introduction and Overview.  GameCareer.com, What is a Game Engine by Jeff Ward.  Raph Koster, Creator of Game Programming gems book Series, answer to game engine related questions in quora.com.  GiantBomb.com, Game Engine: How do they work? By michaelenger.  Wikipedia: Game Engine & Middleware.
  • 16. Game Engine Components • Rendering Engine • Scene Graph • Physics Engine • Collision Detection • Audio Engine • Artificial intelligence • Scripting • Animation • Networking
  • 17. Rendering Engine • The rendering engine generates animated graphics • most often rendering engines are built upon one or multiple rendering APIs, such as Direct3D, OpenGL • Interacts directly with the GPU • e.g. Ogre
  • 19. Scene Graph • A Scene graph contains all of the geometry of a particular scene • Each node in a scene graph contains data representing its position and orientation in relation to its parent node. • Frustum culling - remove things outside of the visible screen
  • 21. Physics Engine • The physics engine is responsible for emulating the laws of physics realistically within the application • Handles behavior of objects based on collisions • e.g. PhysX , Havoc
  • 22. Collision Detection • Collision detection is the computational problem of detecting the intersection of two or more objects
  • 23. Audio Engine • The audio engine is the component which consists of algorithms related to the output of sound through the client's speaker system • Usually played on an event • Built upon an external library (OpenAL, etc)
  • 24. Artificial intelligence • AI refers to techniques used in computer and video games to produce the illusion of intelligence in the behavior of non-player characters • A* is commonly used for the common pathfinding problem in applications such as games
  • 25. Scripting • Usually uses an interpreted language (Python, lua, etc) • Typically using an interpreted scripting language avoids the need to rebuild the code base given a gameplay change.
  • 26. Animation • Handles animation of objects on the scene graph • Tells the renderer how to display the assets • Skeletal animations is the most popular
  • 27. Networking • Game Networking exists where multiple people can play the same game and interact with each other on their own system • Peer to Peer • Client/Server • e.g. RakNet
  • 28. Sources • Wikipedia: Scene Graph, Physics Engine, Browser Engine • Game Engine Rendering Pipeline by Sharad Mitra

Editor's Notes

  • #8: Before game engines, games were typically written as singular entities: a game for the Atari 2600, for example, had to be designed from the bottom up to make optimal use of the display hardware—this core display routine is today called the kernel by retro developers. The rapid advance of arcade hardware—which was the leading edge of the market at the time—meant that most of the code would have to be thrown out afterwards anyway Doom by id Software was a FPS architected with a well was a FPS architected with a well-defined defined separation between its (1) core software components (the rendering system, the collision detection, the audio, etc.) and (2) the art assets, game worlds, and rules of play people started to notice that big portions of the game code were really re-usable. John Carmack is usually credited with the term "game engine", which was his term for splitting the reusable aspects the game programming from the parts which were best left to other specialists: artists, designers, and sound people could add their own contributions to the game without writing actual program code