A 2D game framework built from scratch