Developing a game engine