We can do something similar for input processor (probably a good idea?) or go with the plan for game and use a template, engine can know about the renderers as long as it treats them as generic pointers, but shouldn't know about the game
Game can either be a templated make_unique or we can just enforce a game class naming
Or pass game in at start loop