(7/8/2013 - This Unit is still a work-in-progress - once the rest of the Units are finished we can paint a better picture of things you can approach going forward)

Overview

This course was meant to give you a grand tour of the important bits of game engine development.

There's a whole lot more to do, really it's endless. It's important that once you are at a point where you can start writing game code that you evaluate your requirements and priorities. What will get you to demonstrate your game's key features the soonest? What will speed up your iteration? What do you need to make your game more fun?

The most important question, which we often don't get to ask as professional developers, is what will you have the most fun doing?


Important Stuff


Profiling

Performance issues? Memory issues?

Really dig down, don't assume anything

Debug systems

Personal favorite: a run-time variable watch (should be easy in HTML5/JS)

Debug camera

Invincibility mode and other cheats

More robust Logging systems

Optimization

can you solve the problem a different way

can you do any preprocessing (building more sprite sheets, minifying your code)

are you using an API wrong

are you be more efficient (level of detail, trivial rejections)

HTML5 specific ways?


Extending the Engine's Features


Special Effects

Particles

Lighting & Shadows

Game Math

More interpolators

Curves

Physics

2D physics with Box2D

AI

Behaviors / State machines

Pathfinding

Camera

Pretty simple in 2D

Base camera features should be in the engine

Advanced camera behavior should be implemented as a Gameplay level system


Extending Gameplay Systems


Useful Components

  • Fader (changes the alpha over time)
  • Scaling (changes the scale over time - use an interpolator for best effect)
  • Slow (changes the object's velocity, restores it when removed)
  • Poisoned (decreases health a bit each frame, attaches a visual effect to the object)
  • Mover (has velocity and updates position)
  • Shooter (creates a projectile whenever fired)

Level Data

Menus, HUD, UI

Online systems

Server features:

  • Player profiles
  • Achievements
  • leaderboards
  • etc

Multiplayer:

  • Asychronous vs. real-time.
  • HTTP based vs. Socket based

Publishing

hosting your game on a server, such as Heroku

publishing to a market, such as Chrome Market

Going mobile