Open davidschlangen opened 2 weeks ago
In my current AdventureGame version, that separation is made via instances. Each instance contains a list of definitions it uses, essentially covering all but the last element of world above. Each also contains a prompt for the task (differ between my two variants), goal conditions and initial world state (containing room layout, for example).
What would games uniquely contain that requires them to be as separated as that structure above suggests?
I find it easy to imagine games that are sufficiently different so as to it being inconvenient to express their difference through instances, yet using the same world. E.g., the "I spy" game using AI2THOR, vs. a game of "let's make a sandwich together", also using AI2THOR. Both could use the same abstraction layer around the world (imported from ../worlds/AI2THOR
), but can have very different game logics (in ../games/
).
Ideally, we will reach a state where, at least for some games, there is a clearer separation between world (the provider of objects, actions for operating on them, methods for making observations, and tests of (goal) conditions) and games also in the code.
E.g., there could be a structure like this:
where both games import the same world. (And later, there could also be situations where the same game can optionally be played in different worlds, or worlds with different renderings (like the text-only and the image-only version of MapWorld games.)