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
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