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”.
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
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
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

Game Development workshop with Unity3D.
Game Development workshop with Unity3D.Game Development workshop with Unity3D.
Game Development workshop with Unity3D.
Ebtihaj khan
 
1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)
Hafiz Ammar Siddiqui
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game DevelopmentSumit Jain
 
Game Design Fundamentals
Game Design FundamentalsGame Design Fundamentals
Game Design Fundamentals
Intelligent_ly
 
Game Architecture and Programming
Game Architecture and ProgrammingGame Architecture and Programming
Game Architecture and ProgrammingSumit Jain
 
Game development life cycle
Game development life cycleGame development life cycle
Game development life cycle
Sarah Alazab
 
Game development
Game developmentGame development
Game development
RareCoders
 
Final year project presentation
Final year project presentationFinal year project presentation
Final year project presentation
SulemanAliMalik
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
Reggie Niccolo Santos
 
Unity 3d Basics
Unity 3d BasicsUnity 3d Basics
Unity 3d Basics
Chaudhry Talha Waseem
 
Introduction to Unity3D Game Engine
Introduction to Unity3D Game EngineIntroduction to Unity3D Game Engine
Introduction to Unity3D Game Engine
Mohsen Mirhoseini
 
Introduction to game development
Introduction to game developmentIntroduction to game development
Introduction to game development
Gaetano Bonofiglio
 
Unity Introduction
Unity IntroductionUnity Introduction
Unity Introduction
Juwal Bose
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d Game
Isfand yar Khan
 
Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Design phase of game development of unity 2d game
Design phase of game development of unity 2d game
Muhammad Maaz Irfan
 
Game Design Principle
Game Design PrincipleGame Design Principle
Game Design Principle
Naquiah Daud
 
Project presentation FPS
Project presentation FPSProject presentation FPS
Project presentation FPS
Shubham Rajput
 
Final Year Game Project Presentation
Final Year Game Project Presentation Final Year Game Project Presentation
Final Year Game Project Presentation
Nusrat Jahan Shanta
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
Sperasoft
 
Introduction to Game Development and the Game Industry
Introduction to Game Development and the Game IndustryIntroduction to Game Development and the Game Industry
Introduction to Game Development and the Game Industry
Nataly Eliyahu
 

What's hot (20)

Game Development workshop with Unity3D.
Game Development workshop with Unity3D.Game Development workshop with Unity3D.
Game Development workshop with Unity3D.
 
1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Game Design Fundamentals
Game Design FundamentalsGame Design Fundamentals
Game Design Fundamentals
 
Game Architecture and Programming
Game Architecture and ProgrammingGame Architecture and Programming
Game Architecture and Programming
 
Game development life cycle
Game development life cycleGame development life cycle
Game development life cycle
 
Game development
Game developmentGame development
Game development
 
Final year project presentation
Final year project presentationFinal year project presentation
Final year project presentation
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Unity 3d Basics
Unity 3d BasicsUnity 3d Basics
Unity 3d Basics
 
Introduction to Unity3D Game Engine
Introduction to Unity3D Game EngineIntroduction to Unity3D Game Engine
Introduction to Unity3D Game Engine
 
Introduction to game development
Introduction to game developmentIntroduction to game development
Introduction to game development
 
Unity Introduction
Unity IntroductionUnity Introduction
Unity Introduction
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d Game
 
Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Design phase of game development of unity 2d game
Design phase of game development of unity 2d game
 
Game Design Principle
Game Design PrincipleGame Design Principle
Game Design Principle
 
Project presentation FPS
Project presentation FPSProject presentation FPS
Project presentation FPS
 
Final Year Game Project Presentation
Final Year Game Project Presentation Final Year Game Project Presentation
Final Year Game Project Presentation
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
 
Introduction to Game Development and the Game Industry
Introduction to Game Development and the Game IndustryIntroduction to Game Development and the Game Industry
Introduction to Game Development and the Game Industry
 

Similar to Introduction to Game Engine: Concepts & Components

Game software development trends
Game software development trendsGame software development trends
Game software development trends
_veronika_
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
Js3516731693
Js3516731693Js3516731693
Js3516731693
IJERA Editor
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
Luca Galli
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
Abhishek Singhal [L.I.O.N]
 
Funky game engines
Funky game enginesFunky game engines
Funky game engineseduriez
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.ppt
Fake474384
 
Game Engine In Scientific Research
Game Engine In Scientific ResearchGame Engine In Scientific Research
Game Engine In Scientific ResearchHuda Rasmey
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
Ahmed
 
Ideaworks Game Studio Profile
Ideaworks Game Studio ProfileIdeaworks Game Studio Profile
Ideaworks Game Studio Profilerobhendry
 
Absolutist: Porting to major platforms within a minute
Absolutist: Porting to major platforms within a minuteAbsolutist: Porting to major platforms within a minute
Absolutist: Porting to major platforms within a minute
DevGAMM Conference
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
Jordanianmc
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
LO1 - Lesson 6 - Software
LO1 - Lesson 6 - SoftwareLO1 - Lesson 6 - Software
A new way to inspire and stimulate learning
A new way to inspire and stimulate learningA new way to inspire and stimulate learning
A new way to inspire and stimulate learning
Lee Stott
 
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
Gerke Max Preussner
 
Ancient world online
Ancient world online Ancient world online
Ancient world online
SeifElDeen3
 

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

Game software development trends
Game software development trendsGame software development trends
Game software development trends
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
GP Intro.pptx
GP Intro.pptxGP Intro.pptx
GP Intro.pptx
 
Js3516731693
Js3516731693Js3516731693
Js3516731693
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
 
Power point
Power pointPower point
Power point
 
Funky game engines
Funky game enginesFunky game engines
Funky game engines
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.ppt
 
Game Engine In Scientific Research
Game Engine In Scientific ResearchGame Engine In Scientific Research
Game Engine In Scientific Research
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
 
Ideaworks Game Studio Profile
Ideaworks Game Studio ProfileIdeaworks Game Studio Profile
Ideaworks Game Studio Profile
 
Absolutist: Porting to major platforms within a minute
Absolutist: Porting to major platforms within a minuteAbsolutist: Porting to major platforms within a minute
Absolutist: Porting to major platforms within a minute
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game Development
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
LO1 - Lesson 6 - Software
LO1 - Lesson 6 - SoftwareLO1 - Lesson 6 - Software
LO1 - Lesson 6 - Software
 
A new way to inspire and stimulate learning
A new way to inspire and stimulate learningA new way to inspire and stimulate learning
A new way to inspire and stimulate learning
 
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
 
Ancient world online
Ancient world online Ancient world online
Ancient world online
 

Recently uploaded

road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 

Recently uploaded (20)

road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 

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”.
  • 4.
  • 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
  • 18.
  • 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
  • 20.
  • 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

  1. 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