Add a prototype game engine
Refactor