2D game framework