Game Engine Selection Andrew Haydn Grant Technical Director MIT - - PowerPoint PPT Presentation

game engine selection
SMART_READER_LITE
LIVE PREVIEW

Game Engine Selection Andrew Haydn Grant Technical Director MIT - - PowerPoint PPT Presentation

Game Engine Selection Andrew Haydn Grant Technical Director MIT Game Lab September 3, 2014 Fall 2014 CMS.611J/6.073 1 Games Are Software UI Back end Design/Spec/Customer Features Bugs Task lists etc. Fall 2014


slide-1
SLIDE 1

Game Engine Selection

Andrew Haydn Grant Technical Director MIT Game Lab September 3, 2014

1

Fall 2014 CMS.611J/6.073

slide-2
SLIDE 2

Games Are Software

  • UI
  • Back end
  • Design/Spec/Customer
  • Features
  • Bugs
  • Task lists
  • etc.

2

Fall 2014 CMS.611J/6.073

slide-3
SLIDE 3

Games Are Software++

  • UI must be intuitive
  • User testing
  • “Fun”
  • User testing
  • Gameplay Difficulty
  • User testing
  • Emotional Impact
  • User Testing

3

Fall 2014 CMS.611J/6.073

slide-4
SLIDE 4

Preview

  • Why Use A Game Engine?
  • Criteria For Game Engine Selection
  • Dealbreakers
  • Nice to have
  • Engines
  • The Good
  • The Nooses
  • Final Word
  • How To Learn An Engine
  • All Software Sucks
  • Engine Assignment Mechanic

4

Fall 2014 CMS.611J/6.073

slide-5
SLIDE 5

Tinker Toys vs Vision

This is what I WANT. How do I make it with these? This is what I HAVE. What can I make?

5

Fall 2014 CMS.611J/6.073

slide-6
SLIDE 6

Definition of “Hard”

“Actually, I don’t care how hard it is. How long will it take?”

6

Fall 2014 CMS.611J/6.073

slide-7
SLIDE 7

NOT Writing Code

  • Coding Is Slow
  • think
  • implement
  • debug
  • integrate
  • debug
  • debug
  • debug

7

Fall 2014 CMS.611J/6.073

slide-8
SLIDE 8

NOT Writing Code

  • Coding Is Slow
  • think
  • implement
  • debug
  • integrate
  • debug
  • So Write Less Code
  • Paper Prototyping
  • Iterative Design & Testing Early
  • Game Engines

8

Fall 2014 CMS.611J/6.073

slide-9
SLIDE 9

Why A Game Engine?

  • Time
  • Avoid reinventing the wheel
  • Avoid certain kinds of bugs
  • Define general direction of your

architecture

  • Inspiration
  • Use the feature list as a set of possibilities
  • Use the feature list as a set of limitations

9

Fall 2014 CMS.611J/6.073

slide-10
SLIDE 10

Preview

  • Why Use A Game Engine?
  • Criteria For Game Engine Selection
  • Dealbreakers
  • Nice to have
  • Engines
  • The Good
  • The Nooses
  • Final Word
  • How To Learn An Engine
  • All Software Sucks
  • Engine Assignment Mechanic

10

Fall 2014 CMS.611J/6.073

slide-11
SLIDE 11

Game Engine Selection

  • It’s an important decision
  • But don’t stress about it too much.
  • No engine is perfect.

11

Fall 2014 CMS.611J/6.073

slide-12
SLIDE 12

Preview

  • Why Use A Game Engine?
  • Criteria For Game Engine Selection
  • Dealbreakers
  • Nice to have
  • Engines
  • The Good
  • The Okay
  • The Nooses
  • Final Word
  • How To Learn An Engine
  • All Software Sucks
  • Engine Assignment Mechanic

12

Fall 2014 CMS.611J/6.073

slide-13
SLIDE 13

Primary Selection Criteria

(dealbreakers)

Cost

Free

vs

Painful

vs

Impossible

13

Fall 2014 CMS.611J/6.073

slide-14
SLIDE 14

Primary Selection Criteria

(dealbreakers)

Power: Can We Build It?

  • Fundamentals only
  • Ignore bells & whistles
  • 3d/2d
  • Publishing platform
  • Input methods
  • Other known requirements

14

Fall 2014 CMS.611J/6.073

slide-15
SLIDE 15

Primary Selection Criteria

(dealbreakers)

Ease of learning

  • Search engine friendly
  • Support community!
  • Tutorials & Documentation
  • Support community!
  • In-house experts?
  • A person knowing the engine is only useful if that person WELCOMES being a teacher.
  • Learning Curve

15

Fall 2014 CMS.611J/6.073

slide-16
SLIDE 16

Primary Selection Criteria

(dealbreakers)

Ease of Use

  • Strongly Typed Programming Language
  • Compile-time error detection
  • Free Communication Channels
  • Auto-complete code editor
  • Easier Integration

16

Fall 2014 CMS.611J/6.073

slide-17
SLIDE 17

Close Enough

If you know one, you know the others:

  • Java
  • C#
  • AS3
  • Haxe

Extra bonus:

  • C++

If you know this, you know all of the above.

17

Fall 2014 CMS.611J/6.073

slide-18
SLIDE 18

Not Close Enough

Java != Javascript

18

Fall 2014 CMS.611J/6.073

slide-19
SLIDE 19

Primary Selection Criteria

(dealbreakers)

Ease of Use

  • Source control friendly?
  • Debugging?

19

Fall 2014 CMS.611J/6.073

slide-20
SLIDE 20

Primary Selection Criteria

(dealbreakers)

Robust Product

  • Few bugs
  • Hard to analyze quickly
  • Cues:
  • Strong Community
  • Large Community

20

Fall 2014 CMS.611J/6.073

slide-21
SLIDE 21

Preview

  • Why Use A Game Engine?
  • Criteria For Game Engine Selection
  • Dealbreakers
  • Nice to have
  • Engines
  • The Good
  • The Nooses
  • Final Word
  • How To Learn An Engine
  • All Software Sucks
  • Engine Assignment Mechanic

21

Fall 2014 CMS.611J/6.073

slide-22
SLIDE 22

Secondary Selection Criteria

(nice to have)

Ease of Use

  • Asset pipeline
  • Source Code Available?
  • Code IDE?
  • World Editor?
  • Profiling?

22

Fall 2014 CMS.611J/6.073

slide-23
SLIDE 23

Secondary Selection Criteria

(meh)

Power: Bells And Whistles

  • Rendering Speed
  • Pathfinding
  • Physics
  • Shaders
  • Shadows
  • Particle Systems

23

Fall 2014 CMS.611J/6.073

slide-24
SLIDE 24

Criteria I Don't Use

  • Scripting Languages
  • Beautiful Games

24

Fall 2014 CMS.611J/6.073

slide-25
SLIDE 25

Preview

  • Why Use A Game Engine?
  • Criteria For Game Engine Selection Dealbreakers
  • Nice to have
  • Engines
  • The Good
  • The Nooses
  • Final Word
  • How To Learn An Engine
  • All Software Sucks
  • Engine Assignment Mechanic

25

Fall 2014 CMS.611J/6.073

slide-26
SLIDE 26

Why Flixel?

  • Free
  • Publishes to web in Flash
  • Robust
  • IDE
  • All source visible
  • Strongly typed language
  • Simple object oriented architecture
  • Excellent for 2d sprite-based

Action

26

Fall 2014 CMS.611J/6.073

slide-27
SLIDE 27

Learning Curve: Flixel

27

Fall 2014 CMS.611J/6.073

slide-28
SLIDE 28

Why Not Flixel?

  • Not so good at heavy GUI work
  • Falling usage
  • Adobe is insane

28

Fall 2014 CMS.611J/6.073

slide-29
SLIDE 29

Why Unity?

  • Free
  • Publishes to web
  • Excellent Community
  • Robust
  • IDE
  • Excellent Asset Pipeline
  • Strongly typed language
  • and two weakly typed ones
  • Harder to learn than Flixel, but easier than almost

everything else

  • Simple, but unusual component-based architecture

29

Fall 2014 CMS.611J/6.073

slide-30
SLIDE 30

Why Not Unity?

  • 3D
  • Source Control/Merge
  • Not so good at heavy GUI work

30

Fall 2014 CMS.611J/6.073

slide-31
SLIDE 31

Preview

  • Why Use A Game Engine?
  • Criteria For Game Engine Selection
  • Dealbreakers
  • Nice to have
  • Engines
  • The Good
  • The Nooses
  • Final Word
  • How To Learn An Engine
  • All Software Sucks
  • Engine Assignment Mechanic

31

Fall 2014 CMS.611J/6.073

slide-32
SLIDE 32

Nooses

  • Haxe Flixel
  • AS3, Flash pedigree
  • Flixel Pedigree
  • Untried
  • Phaser
  • Education Arcade
  • Javascript
  • bleah- use Typescript!
  • Untried

32

Fall 2014 CMS.611J/6.073

slide-33
SLIDE 33

Learning A Game Engine

  • Start with a tutorial
  • Try something very small
  • Skim the docs
  • Try something harder

33

Fall 2014 CMS.611J/6.073

slide-34
SLIDE 34

All Software Sucks

But we still use it.

34

Fall 2014 CMS.611J/6.073

slide-35
SLIDE 35

Analysis Assignment

  • You can trade game engines.
  • Spend no more than 4 hours learning your game engine.
  • If you finish the tutorials, start making an Asteroids or

Space Invaders clone.

  • Bring your experiences to class Wednesday (Sept 10)
  • … and a development machine!

35

Fall 2014 CMS.611J/6.073

slide-36
SLIDE 36

Game Engine Selection

Andrew Haydn Grant Technical Director MIT Game Lab September 3, 2014

36

Fall 2014 CMS.611J/6.073

36

slide-37
SLIDE 37

MIT OpenCourseWare http://ocw.mit.edu

CMS.611J / 6.073 Creating Video Games

Fall 2014 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.