| From my viewpoint, as both a researcher and someone who has built frameworks around environments/games: - Each step within the game has to be extremely fast. I.e the game should be able to be run as fast as the machine allows while keeping physics etc. consistent. - Runnable via library import such that there is no drawing to the screen. - Should be easy to reset the environment to an initial state. - RNG state should be seedable. - I highly recommend supporting an identical interface found in OpenAI's gym. Check their docs out. Even better would be to have your game importable as an environment in gym. - Configurable screen resolution would be great (eg. output 120x100) - The environment is "hackable" eg. the maps or levels can be modified or loaded say via some ascii map. - Should support multiple copies of the game running at once. - A nice to have would be if the current environment state could be exported and loaded later. - Expose some information/signals such that a reward signal can be created. Or better yet you define one as the game creator. |
> - Should be easy to reset the environment to an initial state.
Adding on to that, the ability to rewind the game state is a pretty big deal.
The biggest deal for AI researchers though is that you implement a replay function and format, and publish lots of tooling around them (to read and parse them, etc; at least in Python).
Also, if it's an online game, save the replays serverside and publish them somewhere. Kaggle will be happy to take it I'm sure.