game engine selection
play

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


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

  2. Games Are Software ● UI ● Back end ● Design/Spec/Customer ● Features ● Bugs ● Task lists ● etc. Fall 2014 CMS.611J/6.073 2

  3. Games Are Software++ ● UI must be intuitive ● User testing ● “Fun” ● User testing ● Gameplay Difficulty ● User testing ● Emotional Impact ● User Testing Fall 2014 CMS.611J/6.073 3

  4. 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 Fall 2014 CMS.611J/6.073 4

  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? Fall 2014 CMS.611J/6.073 5

  6. Definition of “Hard” “Actually, I don’t care how hard it is. How long will it take?” Fall 2014 CMS.611J/6.073 6

  7. NOT Writing Code ● Coding Is Slow o think o implement o debug o integrate o debug o debug o debug Fall 2014 CMS.611J/6.073 7

  8. 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 Fall 2014 CMS.611J/6.073 8

  9. 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 Fall 2014 CMS.611J/6.073 9

  10. 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 Fall 2014 CMS.611J/6.073 10

  11. Game Engine Selection ● It’s an important decision ● But don’t stress about it too much. o No engine is perfect. Fall 2014 CMS.611J/6.073 11

  12. 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 Fall 2014 CMS.611J/6.073 12

  13. Primary Selection Criteria (dealbreakers) Cost Free vs Painful vs Impossible Fall 2014 CMS.611J/6.073 13

  14. Primary Selection Criteria (dealbreakers) Power: Can We Build It? ● Fundamentals only o Ignore bells & whistles ● 3d/2d ● Publishing platform ● Input methods ● Other known requirements Fall 2014 CMS.611J/6.073 14

  15. Primary Selection Criteria (dealbreakers) Ease of learning ● Search engine friendly Support community! o ● Tutorials & Documentation Support community! o o In-house experts? A person knowing the engine is only useful if that person WELCOMES being a teacher.  ● Learning Curve Fall 2014 CMS.611J/6.073 15

  16. Primary Selection Criteria (dealbreakers) Ease of Use ● Strongly Typed Programming Language Compile-time error detection o Free Communication Channels o Auto-complete code editor  Easier Integration  Fall 2014 CMS.611J/6.073 16

  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. Fall 2014 CMS.611J/6.073 17

  18. Not Close Enough Java != Javascript Fall 2014 CMS.611J/6.073 18

  19. Primary Selection Criteria (dealbreakers) Ease of Use ● Source control friendly? ● Debugging? Fall 2014 CMS.611J/6.073 19

  20. Primary Selection Criteria (dealbreakers) Robust Product ● Few bugs Hard to analyze quickly o Cues: o Strong Community  Large Community  Fall 2014 CMS.611J/6.073 20

  21. 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 Fall 2014 CMS.611J/6.073 21

  22. Secondary Selection Criteria (nice to have) Ease of Use ● Asset pipeline ● Source Code Available? ● Code IDE? ● World Editor? ● Profiling? Fall 2014 CMS.611J/6.073 22

  23. Secondary Selection Criteria (meh) Power: Bells And Whistles ● Rendering Speed ● Pathfinding ● Physics ● Shaders ● Shadows ● Particle Systems Fall 2014 CMS.611J/6.073 23

  24. Criteria I Don't Use ● Scripting Languages ● Beautiful Games Fall 2014 CMS.611J/6.073 24

  25. 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 Fall 2014 CMS.611J/6.073 25

  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 Fall 2014 CMS.611J/6.073 26

  27. Learning Curve: Flixel Fall 2014 CMS.611J/6.073 27

  28. Why Not Flixel? ● Not so good at heavy GUI work ● Falling usage o Adobe is insane Fall 2014 CMS.611J/6.073 28

  29. 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 Fall 2014 CMS.611J/6.073 29

  30. Why Not Unity? ● 3D ● Source Control/Merge ● Not so good at heavy GUI work Fall 2014 CMS.611J/6.073 30

  31. 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 Fall 2014 CMS.611J/6.073 31

  32. Nooses ● Haxe Flixel o AS3, Flash pedigree o Flixel Pedigree o Untried ● Phaser o Education Arcade o Javascript bleah- use Typescript!  o Untried Fall 2014 CMS.611J/6.073 32

  33. Learning A Game Engine ● Start with a tutorial ● Try something very small ● Skim the docs ● Try something harder Fall 2014 CMS.611J/6.073 33

  34. All Software Sucks But we still use it. Fall 2014 CMS.611J/6.073 34

  35. 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! Fall 2014 CMS.611J/6.073 35

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

  37. MIT OpenCourseWare http://ocw.mit.edu CMS.611 J / 6.073 Creating Video Games Fall 2014 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

Recommend


More recommend