Because I have about 120 student papers to grade over the next few days, I have been thinking about your problem! For some strange reason, Objective C is a way for me to relax. Anyway, some thoughts:
From the NSDocumentController documentation:
https://developer.apple.com/documentation/appkit/nsdocumentcontroller?language=objc
"In some situations, it is worthwhile to subclass
NSDocumentController
in non-
NSDocument
-based apps to get some of its features. For example, the
NSDocumentController
management of the Open Recent menu is useful in apps that don’t use subclasses of
NSDocument
."
If I were designing a game, which I have very little experience doing so, I would probably imagine the game "engine" portion distinctly separate from the data in the games that are played. Meaning this--each game would generate data associated with it (player locations, nerf balls dropped, goals achieved, parts of map explored, etc.). This data would be stored in a separate file and is loaded by the app to either start a new game (default set of data) or resume a game. This is not much different than a text editing app in concept--it's just the data that is different and the way it is displayed is different.
So, I would look at saving games and using the Open Recents feature that is already available when using NSDocumentController. Using this approach would allow you to have many previous games or prior levels achieved in a game saved and available for immediate launch from the dock icon. NSDocumentController gives you control over what, how many, etc. is in the open recents menu.
Just a thought.