Well, there's no reason to have both a dispose and close method, so I would put autoclosable on the GameEngine and remove dispose().