37
Game Engine Selection Andrew Haydn Grant Technical Director MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073

Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Game Engine Selection

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

1Fall 2014 CMS.611J/6.073

Page 2: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Games Are Software

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

2Fall 2014 CMS.611J/6.073

Page 3: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Games Are Software++

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

3Fall 2014 CMS.611J/6.073

Page 4: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Preview

● Why Use A Game Engine? ● Criteria For Game Engine Selection o Dealbreakers o Nice to have

● Engines o The Good o The Nooses ● Final Word o How To Learn An Engine o All Software Sucks o Engine Assignment Mechanic

4Fall 2014 CMS.611J/6.073

Page 5: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

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?

5Fall 2014 CMS.611J/6.073

Page 6: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Definition of “Hard”

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

6Fall 2014 CMS.611J/6.073

Page 7: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

NOT Writing Code

● Coding Is Slow o think o implement o debug o integrate o debug o debug o debug

7Fall 2014 CMS.611J/6.073

Page 8: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

NOT Writing Code

● Coding Is Slow o think o implement o debug o integrate o debug

● So Write Less Code o Paper Prototyping o Iterative Design & Testing Early o Game Engines

8Fall 2014 CMS.611J/6.073

Page 9: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Why A Game Engine?

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

architecture ● Inspiration o Use the feature list as a set of possibilities o Use the feature list as a set of limitations

9Fall 2014 CMS.611J/6.073

Page 10: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Preview

● Why Use A Game Engine? ● Criteria For Game Engine Selection o Dealbreakers o Nice to have

● Engines o The Good o The Nooses ● Final Word o How To Learn An Engine o All Software Sucks o Engine Assignment Mechanic

10Fall 2014 CMS.611J/6.073

Page 11: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Game Engine Selection

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

11Fall 2014 CMS.611J/6.073

Page 12: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Preview

● Why Use A Game Engine? ● Criteria For Game Engine Selection o Dealbreakers o Nice to have

● Engines o The Good o The Okay o The Nooses

● Final Word o How To Learn An Engine o All Software Sucks o Engine Assignment Mechanic

12Fall 2014 CMS.611J/6.073

Page 13: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Primary Selection Criteria (dealbreakers)

Cost

Free vs

Painful vs

Impossible

13Fall 2014 CMS.611J/6.073

Page 14: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Primary Selection Criteria (dealbreakers)

Power: Can We Build It? ● Fundamentals only o Ignore bells & whistles

● 3d/2d ● Publishing platform ● Input methods ● Other known requirements

14Fall 2014 CMS.611J/6.073

Page 15: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Primary Selection Criteria (dealbreakers)

Ease of learning

● Search engine friendly o Support community!

● Tutorials & Documentation o Support community!

o In-house experts? A person knowing the engine is only useful if that person WELCOMES being a teacher.

● Learning Curve

15Fall 2014 CMS.611J/6.073

Page 16: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Primary Selection Criteria (dealbreakers)

Ease of Use

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

16Fall 2014 CMS.611J/6.073

Page 17: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

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.

17Fall 2014 CMS.611J/6.073

Page 18: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Not Close Enough

Java != Javascript

18Fall 2014 CMS.611J/6.073

Page 19: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Primary Selection Criteria (dealbreakers)

Ease of Use

● Source control friendly? ● Debugging?

19Fall 2014 CMS.611J/6.073

Page 20: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Primary Selection Criteria (dealbreakers)

Robust Product

● Few bugs o Hard to analyze quickly o Cues: Strong Community Large Community

20Fall 2014 CMS.611J/6.073

Page 21: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Preview

● Why Use A Game Engine? ● Criteria For Game Engine Selection o Dealbreakers o Nice to have

● Engines o The Good o The Nooses ● Final Word o How To Learn An Engine o All Software Sucks o Engine Assignment Mechanic

21Fall 2014 CMS.611J/6.073

Page 22: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Secondary Selection Criteria (nice to have)

Ease of Use

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

22Fall 2014 CMS.611J/6.073

Page 23: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Secondary Selection Criteria (meh)

Power: Bells And Whistles ● Rendering Speed ● Pathfinding ● Physics ● Shaders ● Shadows ● Particle Systems

23Fall 2014 CMS.611J/6.073

Page 24: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Criteria I Don't Use

● Scripting Languages ● Beautiful Games

24Fall 2014 CMS.611J/6.073

Page 25: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Preview

● Why Use A Game Engine? ● Criteria For Game Engine Selection Dealbreakers o Nice to have

● Engines o The Good o The Nooses

● Final Word o How To Learn An Engine o All Software Sucks o Engine Assignment Mechanic

25Fall 2014 CMS.611J/6.073

Page 26: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

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

26Fall 2014 CMS.611J/6.073

Page 27: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Learning Curve: Flixel

27Fall 2014 CMS.611J/6.073

Page 28: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Why Not Flixel?

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

28Fall 2014 CMS.611J/6.073

Page 29: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Why Unity?

● Free ● Publishes to web ● Excellent Community ● Robust ● IDE ● Excellent Asset Pipeline ● Strongly typed language o and two weakly typed ones

● Harder to learn than Flixel, but easier than almost everything else

● Simple, but unusual component-based architecture

29Fall 2014 CMS.611J/6.073

Page 30: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Why Not Unity?

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

30Fall 2014 CMS.611J/6.073

Page 31: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Preview

● Why Use A Game Engine? ● Criteria For Game Engine Selection o Dealbreakers o Nice to have

● Engines o The Good o The Nooses ● Final Word o How To Learn An Engine o All Software Sucks o Engine Assignment Mechanic

31Fall 2014 CMS.611J/6.073

Page 32: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Nooses

● Haxe Flixel o AS3, Flash pedigree o Flixel Pedigree o Untried

● Phaser o Education Arcade o Javascript bleah- use Typescript!

o Untried

32Fall 2014 CMS.611J/6.073

Page 33: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Learning A Game Engine

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

33Fall 2014 CMS.611J/6.073

Page 34: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

All Software Sucks

But we still use it.

34Fall 2014 CMS.611J/6.073

Page 35: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Analysis Assignment

● You can trade game engines.

● Spend no more than 4 hours learning your game engine. o If you finish the tutorials, start making an Asteroids or

Space Invaders clone.

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

35Fall 2014 CMS.611J/6.073

Page 36: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

Game Engine Selection

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

36

Fall 2014 CMS.611J/6.073 36

Page 37: Game Engine Selectio n - MIT OpenCourseWare...Game Engine Selectio n Andrew Haydn Grant Technical Directo r MIT Game Lab September 3, 2014 1 Fall 2014 CMS.611J/6.073 Games Are Software

MIT OpenCourseWarehttp://ocw.mit.edu

CMS.611J / 6.073 Creating Video GamesFall 2014

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