SlideShare una empresa de Scribd logo
1 de 49
1
Kiyoung Moon
Cross-Platform Game Engines
Kiyoung Moon
2
Kiyoung Moon
Agenda
• About Computer
• Definition of Game Engine.
• Definition of Platform.
• What is Cross-Platform Game Engines?
• Case Study : DeadEngine
• Case Study : Unity (If I have time)
3
Kiyoung Moon
History
• When I/you don’t know something about, it is good to have a
look at the history. 
4
Kiyoung Moon
Computer game is a computer software
• It’s important!
– Computer Games = Computer Software
• To make a computer software we should understand about
the computer.
5
Kiyoung Moon
Computer
• Computer is a machine to calculate expressions that it is
logically described.
• The origin of word ‘Computer’ has come from ‘Computare’ of
Latin language.
6
Kiyoung Moon
Where did the computer start?
• Nature.
– Nature is just existed.
– We can measure it.
• Physics law.
– We can measure about it then could get the law.
– For example, V = RI(Voltage is multiply of resistance and current)
7
Kiyoung Moon
Abstraction!
• Abstraction is a best tool that human has.
– I think 
• We can use diagram to express complicate things.
8
Kiyoung Moon
Analog, Digital
• I’m going to talk about the Digital world only.
• We can use gate!
Not And OrAmplifier
9
Kiyoung Moon
Combinational, Sequential Logic.
• With the gate, we can make more complicate things.
• For example, 4 bits adder.
– 0101 + 0011 = 1000
10
Kiyoung Moon
Full adder
• Take 3 inputs and 2 outputs.
11
Kiyoung Moon
Full adder is complicated!
• Let’s make full adder like this.
12
Kiyoung Moon
Let’s compare these.
• Easy to use, remember.
13
Kiyoung Moon
4 bits adder
0 01 10 0 11
1 0 0 011
11
1
1
0
0
14
Kiyoung Moon
4 bits adder is still complicated.
• Let’s use abstraction!
15
Kiyoung Moon
Instruction Set
• x86, i4004
• We can use Computer language to make a computer software.
16
Kiyoung Moon
Computer Language
• Assembler is machine specific.
• What does it mean?
– Have to write machine dependent assembler for machines.
– Programmer is lazy! Don’t like this.
• So computer language has been invented.
– C, C++, C#
– Java
– Basic and so on...
17
Kiyoung Moon
Software
• OS, Games, Applications are all software.
18
Kiyoung Moon
Big picture
Nature
Physics
Law
Circuit
Abstraction.
Digital
World
Analog
World
Combinational
Logic
Instruction
Set
Computer
Languages.
Software
... ...
19
Kiyoung Moon
Where we are
Nature
Physics
Law
Circuit
Abstraction.
Digital
World
Analog
World
Combinational
Logic
Instruction
Set
Computer
Languages.
Software
... ...
20
Kiyoung Moon
Again. What is game?
• Games are computer software
– Computer Games = Computer Software
21
Kiyoung Moon
Computer game is a computer software.
Nature
Physics
Law
Circuit
Abstraction.
Digital
World
Analog
World
Combinational
Logic
Instruction
Set
Computer
Languages.
Software
... ...
Game
22
Kiyoung Moon
What is Game Engine?
• http://en.wikipedia.org/wiki/Game_engine
• A game engine is a software framework designed for the
creation and development of video games.
23
Kiyoung Moon
Game Engine
• Games are very complicated software.
• For example, Rendering, Physics, AI, Sounds, Input and so on.
24
Kiyoung Moon
25
Kiyoung Moon
Do I need to implement all of those?!?!
• YES
– 10 years ago
26
Kiyoung Moon
Again, abstraction.
• Thankfully not anymore.
27
Kiyoung Moon
Game Engine
Nature
Physics
Law
Circuit
Abstraction.
Instruction
Set
Computer
Languages.
Software
...
Game
Game
Engine
Oh! Yes!!!
28
Kiyoung Moon
Game Engine does every dirty/hard works for you.
• To construct every game systems from the start is hard.
• Game Engine abstract all of those hard works for gameplay
programmer so programmer have more time to concentrate
on gameplay instead of dirty/hard works.
– Someone like me still like those dirty/hard works but it’s obvious.
– If I can concentrate on gameplay more, then game is getting more fun.
• Believe or not 
29
Kiyoung Moon
List of Game Engines.
• Quake
• Id software made it.
• Open Source
30
Kiyoung Moon
List of Game Engines
• Unreal Engine
• Epic Games made it.
• Integrated Game Development Tool
• Big Companies
31
Kiyoung Moon
List of Game Engines.
• Unity
• Integrated Game Development Tool
• Support C#, Boo, JavaScript
• Small companies
32
Kiyoung Moon
Other game engines.
• Renderware
• C4 Engine
• GameBryo
• Cocos2D
• GameMaker
• DeadEngine
– This is my cross-platform engine!
33
Kiyoung Moon
What is Platform?
• http://en.wikipedia.org/wiki/Computing_platform
• A computing platform is, in the most general sense, whatever
pre-existing environment a piece of software is designed to
run within, obeying its constraints, and making use of its
facilities. Typical platforms include a hardware architecture,
an operating system (OS), and runtime libraries.[1]
34
Kiyoung Moon
Meaning of Platform is very wide.
• For Game Engine, Platform is a machine environment.
• For Example
– xbox360
– PC
– PS3
– Web
– Android
– iOS
35
Kiyoung Moon
What is Cross-Platform?
• Cross-Platform
– http://en.wikipedia.org/wiki/Cross-platform
• In computing, cross-platform, or multi-platform, is an attribute conferred to computer
software or computing methods and concepts that are implemented and inter-operate on
multiple computer platforms.[1] The software and methods are also said to be platform
independent. Cross-platform software may be divided into two types; one requires
individual building or compilation for each platform that it supports, and the other one can
be directly run on any platform without special preparation, e.g., software written in
aninterpreted language or pre-compiled portable bytecode for which the interpreters or run-
time packages are common or standard components of all platforms.[2]
Simply cross-platform software runs on different machines.
For example, Java application generate ‘byte code’ and it
compiled on the fly based on the machines.
36
Kiyoung Moon
Cross-Platform Computer Software
• Normally program runs on specific machines such as PC, Mac
and so on.
• If we want program runs on every machines(PC, Mac for
example) programmer needs to make two programs.
• Some machine’s environment are exactly same but most of
cases it is not.
• What’s mean?
– Programmer need to make a program per machines.
37
Kiyoung Moon
You know programmer is lazy!
• We are lazy.
– We like to make things
– But we don’t like to do same thing again and again.
38
Kiyoung Moon
Concept of Cross-Platform Software
• Concept is simple
Program
PC
Mac
Environment
Environment
Program
39
Kiyoung Moon
Program
PC
Mac
Common
Environment
40
Kiyoung Moon
Example : Endian mode difference.
• PC uses little-endian mode.
• PS3(PowerPC) uses big-endian mode.
• What is a problem?
– Tool and Game
• I choose big-endian mode
– I don’t want to waste of time for game.
– PC(For developer) version is ok to be slow.
• Support MemoryStream Class
– Programmer don’t need to care about the file format.
– Just use MemoryStream’s interface (read, write) and MemoryStream
class does all dirty/hard works.
41
Kiyoung Moon
Case Study : Dead Engine
• DeadEngine is a cross-platform game engine.
• Support PC, iOS, Android Platforms.
• Games with DeadEngine.
– DressUpBaby, Attack of the pig
• Animation Tools
– DeadAnimation
42
Kiyoung Moon
Case Study : Dead Engine
• Full C++ Game Engine.
• Provides Rendering, Physics(Box2D), Sounds, Math, Script
systems so on.
43
Kiyoung Moon
How to support PC/Android/iOS?
• I had experiences PC/Android/iOS games.
• I could use C/C++ for PC platform. (Yes!)
• Android uses Java but there is a way to use C/C++! (Yes!)
– NDK(Native Development Kit)
• iOS uses Objective C/C++ but still can use C/C++ (Yes!)
• For Rendering, I could use OpenGL ES (PC/Android/iOS)
• It was really simple!
– I could use same language for 3 platforms which is really good sign.
• Of course, some functions I had to implement more than 2
implementation.
44
Kiyoung Moon
Rendering
• Fortunately OpenGL runs on Android/iOS/PC
• Unfortunately some interface were different.
– So I made a common interface class for client programmer and
internally has 3 classes.
Client
Gameplay
Programmer
PC
Android
iOS
KRendering
PC specific
rendering
code
Android
specific
rendering
code
iOS
specific
rendering
code
EngineGameplay
45
Kiyoung Moon
Audio(Sound)
• There are Open source audio library but the performance
wasn’t good enough so I had to implement 3 audio classes.
– Same as rendering... now you know cross-platform is not free. Some
one have to do this dirty/hard works.
46
Kiyoung Moon
Case Study : Unity
• Unity is a cross-platform game engine.
• Unity is not source based game engine.
• Gameplay programmer can use C#, Boo, Java Script for
gameplay logic.
• Support all kind of platforms such as pc, android, iOS, web,
console and so on.
47
Kiyoung Moon
Case Study : Unity
• Good Things
– It support many platforms and easy to change platforms.
• Fact
• Many Korean game companies (include small studio) uses Unity Engine
for their games.
• Bad Things
– Performance issue can be raised.
– With my experience native app is 6 times smaller than the app with
Unity Engine.
– More than 2 times slower than native app.
– Source is not available (we can buy it if we have money)
• Can’t do anything if there is a problem happen. Have to wait for next
update.
48
Kiyoung Moon
Summary
• Computer game is equal to computer software.
• Abstraction is the best tool.
• Cross-platform is must have features of recent game engines.
• Game Engine has trade offs.
– Compare to native program.
– Normally native program is faster/smaller than the program use game
engines.
• Cross-platform is not free.
– If you are making an engine yourself you have to implement all of
those features!
49
Kiyoung Moon
Q/A
Thank you

Más contenido relacionado

Destacado

Storyboard of opening sequence
Storyboard of opening sequenceStoryboard of opening sequence
Storyboard of opening sequence
tomanton
 
Kowshikaa consultancy overseas
Kowshikaa consultancy overseas Kowshikaa consultancy overseas
Kowshikaa consultancy overseas
Rajaram Ravindharan
 
Cow shower ups production entrepreneur
Cow shower ups production   entrepreneurCow shower ups production   entrepreneur
Cow shower ups production entrepreneur
Dr.Rami Hamad
 
Bai32(tiet 2)
Bai32(tiet 2)Bai32(tiet 2)
Bai32(tiet 2)
Mai Thanh
 

Destacado (14)

Storyboard of opening sequence
Storyboard of opening sequenceStoryboard of opening sequence
Storyboard of opening sequence
 
Batikiotis_diagrafh dhmosiou_xreous
Batikiotis_diagrafh dhmosiou_xreousBatikiotis_diagrafh dhmosiou_xreous
Batikiotis_diagrafh dhmosiou_xreous
 
Boost your revenue with music!
Boost your revenue with music! Boost your revenue with music!
Boost your revenue with music!
 
ppt
 ppt ppt
ppt
 
KOWSHIKAA CONSULTANCY OVERSEAS
KOWSHIKAA CONSULTANCY OVERSEAS KOWSHIKAA CONSULTANCY OVERSEAS
KOWSHIKAA CONSULTANCY OVERSEAS
 
Kowshikaa consultancy overseas
Kowshikaa consultancy overseas Kowshikaa consultancy overseas
Kowshikaa consultancy overseas
 
Cow shower ups production entrepreneur
Cow shower ups production   entrepreneurCow shower ups production   entrepreneur
Cow shower ups production entrepreneur
 
Genre Research
Genre ResearchGenre Research
Genre Research
 
Resume FULL
Resume FULLResume FULL
Resume FULL
 
Bai32(tiet 2)
Bai32(tiet 2)Bai32(tiet 2)
Bai32(tiet 2)
 
Cambodia Major Attractions
Cambodia Major AttractionsCambodia Major Attractions
Cambodia Major Attractions
 
Trendy v e-learningu - využití ve firemní praxi
Trendy v e-learningu - využití ve firemní praxiTrendy v e-learningu - využití ve firemní praxi
Trendy v e-learningu - využití ve firemní praxi
 
Cows in the city
Cows in the cityCows in the city
Cows in the city
 
Lvov
LvovLvov
Lvov
 

Similar a Cross-Platform Game Engine

Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
Prashant Warrier
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
Diksha Bhargava
 
An overview of computers and programming languages
An overview of computers and programming languages An overview of computers and programming languages
An overview of computers and programming languages
Ahmad Idrees
 

Similar a Cross-Platform Game Engine (20)

Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
 
Unity 3D VS your team
Unity 3D VS your teamUnity 3D VS your team
Unity 3D VS your team
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
 
Lecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR ProgrammingLecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR Programming
 
GRADE 7 LESSON 3-4 HARDWARE N SOFTWARE.ppt
GRADE 7 LESSON 3-4 HARDWARE N SOFTWARE.pptGRADE 7 LESSON 3-4 HARDWARE N SOFTWARE.ppt
GRADE 7 LESSON 3-4 HARDWARE N SOFTWARE.ppt
 
GP Intro.pptx
GP Intro.pptxGP Intro.pptx
GP Intro.pptx
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
God Of War : post mortem
God Of War : post mortemGod Of War : post mortem
God Of War : post mortem
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SCons
 
Creating great Unity games for Windows 10 - Part 1
Creating great Unity games for Windows 10 - Part 1Creating great Unity games for Windows 10 - Part 1
Creating great Unity games for Windows 10 - Part 1
 
Python Programming
Python ProgrammingPython Programming
Python Programming
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.ppt
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011
 
2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem
 
Lecture 8 - What is Game AI? Final Thoughts
Lecture 8 - What is Game AI? Final ThoughtsLecture 8 - What is Game AI? Final Thoughts
Lecture 8 - What is Game AI? Final Thoughts
 
+Vg programmer
+Vg programmer+Vg programmer
+Vg programmer
 
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
Шлигін Олександр “Розробка ігор в Unity загальні помилки” GameDev Conference ...
 
An overview of computers and programming languages
An overview of computers and programming languages An overview of computers and programming languages
An overview of computers and programming languages
 

Más de Kiyoung Moon

Más de Kiyoung Moon (10)

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithm
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
 
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
 
유니티 고급 과정 -4-
유니티 고급 과정 -4-유니티 고급 과정 -4-
유니티 고급 과정 -4-
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-
 
유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-
 
유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 

Último

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Último (20)

General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 

Cross-Platform Game Engine

  • 1. 1 Kiyoung Moon Cross-Platform Game Engines Kiyoung Moon
  • 2. 2 Kiyoung Moon Agenda • About Computer • Definition of Game Engine. • Definition of Platform. • What is Cross-Platform Game Engines? • Case Study : DeadEngine • Case Study : Unity (If I have time)
  • 3. 3 Kiyoung Moon History • When I/you don’t know something about, it is good to have a look at the history. 
  • 4. 4 Kiyoung Moon Computer game is a computer software • It’s important! – Computer Games = Computer Software • To make a computer software we should understand about the computer.
  • 5. 5 Kiyoung Moon Computer • Computer is a machine to calculate expressions that it is logically described. • The origin of word ‘Computer’ has come from ‘Computare’ of Latin language.
  • 6. 6 Kiyoung Moon Where did the computer start? • Nature. – Nature is just existed. – We can measure it. • Physics law. – We can measure about it then could get the law. – For example, V = RI(Voltage is multiply of resistance and current)
  • 7. 7 Kiyoung Moon Abstraction! • Abstraction is a best tool that human has. – I think  • We can use diagram to express complicate things.
  • 8. 8 Kiyoung Moon Analog, Digital • I’m going to talk about the Digital world only. • We can use gate! Not And OrAmplifier
  • 9. 9 Kiyoung Moon Combinational, Sequential Logic. • With the gate, we can make more complicate things. • For example, 4 bits adder. – 0101 + 0011 = 1000
  • 10. 10 Kiyoung Moon Full adder • Take 3 inputs and 2 outputs.
  • 11. 11 Kiyoung Moon Full adder is complicated! • Let’s make full adder like this.
  • 12. 12 Kiyoung Moon Let’s compare these. • Easy to use, remember.
  • 13. 13 Kiyoung Moon 4 bits adder 0 01 10 0 11 1 0 0 011 11 1 1 0 0
  • 14. 14 Kiyoung Moon 4 bits adder is still complicated. • Let’s use abstraction!
  • 15. 15 Kiyoung Moon Instruction Set • x86, i4004 • We can use Computer language to make a computer software.
  • 16. 16 Kiyoung Moon Computer Language • Assembler is machine specific. • What does it mean? – Have to write machine dependent assembler for machines. – Programmer is lazy! Don’t like this. • So computer language has been invented. – C, C++, C# – Java – Basic and so on...
  • 17. 17 Kiyoung Moon Software • OS, Games, Applications are all software.
  • 19. 19 Kiyoung Moon Where we are Nature Physics Law Circuit Abstraction. Digital World Analog World Combinational Logic Instruction Set Computer Languages. Software ... ...
  • 20. 20 Kiyoung Moon Again. What is game? • Games are computer software – Computer Games = Computer Software
  • 21. 21 Kiyoung Moon Computer game is a computer software. Nature Physics Law Circuit Abstraction. Digital World Analog World Combinational Logic Instruction Set Computer Languages. Software ... ... Game
  • 22. 22 Kiyoung Moon What is Game Engine? • http://en.wikipedia.org/wiki/Game_engine • A game engine is a software framework designed for the creation and development of video games.
  • 23. 23 Kiyoung Moon Game Engine • Games are very complicated software. • For example, Rendering, Physics, AI, Sounds, Input and so on.
  • 25. 25 Kiyoung Moon Do I need to implement all of those?!?! • YES – 10 years ago
  • 26. 26 Kiyoung Moon Again, abstraction. • Thankfully not anymore.
  • 28. 28 Kiyoung Moon Game Engine does every dirty/hard works for you. • To construct every game systems from the start is hard. • Game Engine abstract all of those hard works for gameplay programmer so programmer have more time to concentrate on gameplay instead of dirty/hard works. – Someone like me still like those dirty/hard works but it’s obvious. – If I can concentrate on gameplay more, then game is getting more fun. • Believe or not 
  • 29. 29 Kiyoung Moon List of Game Engines. • Quake • Id software made it. • Open Source
  • 30. 30 Kiyoung Moon List of Game Engines • Unreal Engine • Epic Games made it. • Integrated Game Development Tool • Big Companies
  • 31. 31 Kiyoung Moon List of Game Engines. • Unity • Integrated Game Development Tool • Support C#, Boo, JavaScript • Small companies
  • 32. 32 Kiyoung Moon Other game engines. • Renderware • C4 Engine • GameBryo • Cocos2D • GameMaker • DeadEngine – This is my cross-platform engine!
  • 33. 33 Kiyoung Moon What is Platform? • http://en.wikipedia.org/wiki/Computing_platform • A computing platform is, in the most general sense, whatever pre-existing environment a piece of software is designed to run within, obeying its constraints, and making use of its facilities. Typical platforms include a hardware architecture, an operating system (OS), and runtime libraries.[1]
  • 34. 34 Kiyoung Moon Meaning of Platform is very wide. • For Game Engine, Platform is a machine environment. • For Example – xbox360 – PC – PS3 – Web – Android – iOS
  • 35. 35 Kiyoung Moon What is Cross-Platform? • Cross-Platform – http://en.wikipedia.org/wiki/Cross-platform • In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms.[1] The software and methods are also said to be platform independent. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in aninterpreted language or pre-compiled portable bytecode for which the interpreters or run- time packages are common or standard components of all platforms.[2] Simply cross-platform software runs on different machines. For example, Java application generate ‘byte code’ and it compiled on the fly based on the machines.
  • 36. 36 Kiyoung Moon Cross-Platform Computer Software • Normally program runs on specific machines such as PC, Mac and so on. • If we want program runs on every machines(PC, Mac for example) programmer needs to make two programs. • Some machine’s environment are exactly same but most of cases it is not. • What’s mean? – Programmer need to make a program per machines.
  • 37. 37 Kiyoung Moon You know programmer is lazy! • We are lazy. – We like to make things – But we don’t like to do same thing again and again.
  • 38. 38 Kiyoung Moon Concept of Cross-Platform Software • Concept is simple Program PC Mac Environment Environment Program
  • 40. 40 Kiyoung Moon Example : Endian mode difference. • PC uses little-endian mode. • PS3(PowerPC) uses big-endian mode. • What is a problem? – Tool and Game • I choose big-endian mode – I don’t want to waste of time for game. – PC(For developer) version is ok to be slow. • Support MemoryStream Class – Programmer don’t need to care about the file format. – Just use MemoryStream’s interface (read, write) and MemoryStream class does all dirty/hard works.
  • 41. 41 Kiyoung Moon Case Study : Dead Engine • DeadEngine is a cross-platform game engine. • Support PC, iOS, Android Platforms. • Games with DeadEngine. – DressUpBaby, Attack of the pig • Animation Tools – DeadAnimation
  • 42. 42 Kiyoung Moon Case Study : Dead Engine • Full C++ Game Engine. • Provides Rendering, Physics(Box2D), Sounds, Math, Script systems so on.
  • 43. 43 Kiyoung Moon How to support PC/Android/iOS? • I had experiences PC/Android/iOS games. • I could use C/C++ for PC platform. (Yes!) • Android uses Java but there is a way to use C/C++! (Yes!) – NDK(Native Development Kit) • iOS uses Objective C/C++ but still can use C/C++ (Yes!) • For Rendering, I could use OpenGL ES (PC/Android/iOS) • It was really simple! – I could use same language for 3 platforms which is really good sign. • Of course, some functions I had to implement more than 2 implementation.
  • 44. 44 Kiyoung Moon Rendering • Fortunately OpenGL runs on Android/iOS/PC • Unfortunately some interface were different. – So I made a common interface class for client programmer and internally has 3 classes. Client Gameplay Programmer PC Android iOS KRendering PC specific rendering code Android specific rendering code iOS specific rendering code EngineGameplay
  • 45. 45 Kiyoung Moon Audio(Sound) • There are Open source audio library but the performance wasn’t good enough so I had to implement 3 audio classes. – Same as rendering... now you know cross-platform is not free. Some one have to do this dirty/hard works.
  • 46. 46 Kiyoung Moon Case Study : Unity • Unity is a cross-platform game engine. • Unity is not source based game engine. • Gameplay programmer can use C#, Boo, Java Script for gameplay logic. • Support all kind of platforms such as pc, android, iOS, web, console and so on.
  • 47. 47 Kiyoung Moon Case Study : Unity • Good Things – It support many platforms and easy to change platforms. • Fact • Many Korean game companies (include small studio) uses Unity Engine for their games. • Bad Things – Performance issue can be raised. – With my experience native app is 6 times smaller than the app with Unity Engine. – More than 2 times slower than native app. – Source is not available (we can buy it if we have money) • Can’t do anything if there is a problem happen. Have to wait for next update.
  • 48. 48 Kiyoung Moon Summary • Computer game is equal to computer software. • Abstraction is the best tool. • Cross-platform is must have features of recent game engines. • Game Engine has trade offs. – Compare to native program. – Normally native program is faster/smaller than the program use game engines. • Cross-platform is not free. – If you are making an engine yourself you have to implement all of those features!

Notas del editor

  1. I assume the auditions are not a software engineer and want to know about the cross-platform game engines. let’s start
  2. many people think computer games are different compare to computer software but internally it is same. it’s a computer software. Recognize it is important.
  3. We can make a diagram and saying “It’s a 4 bits adder” We can use 4 bits adder (we don’t care about the detail inside)
  4. many people think computer games are different compare to computer software but internally it is same. it’s a computer software. Recognize it is important.
  5. hmm... software framework.
  6. from game engine architecture.
  7. For instance we have a map tool runs on PC and generate map file. map file should be editable on PC and used on PS3. Because game will runs on PS3. In this case, programmer need to fix endian mode of map file. It’s a simple cross-platform problem when we support cross-platform computer software.