How to make a good old 2D platform game engine, incrementally.