Sharing and Merging of Game States in Educational Games
Imagine a multi-player 3D serious game with two players A and B, who individually have started playing around in the world and have solved some math puzzles in the form of quests. Let GS_t(A) and GS_t(B) denote the game states, respectively, of A and B at some time t. For simplicity, let us assume game states are described by sets of quest IDs and that we have GS_t(A) = {1,3,5} and GS_t(B) = {2,4,6}.
Suppose players A and B want to cooperate by sharing solutions with each other. In the simplest case, this means to proceed to game states
GS_{t+1}(A) = GS_{t+1}(B) = {1,2,3,4,5,6}.
In the FrameIT project we realize a 3D serious game by combining a Unity frontend with an MMT backend, where MMT is a logic engine developed at this research group. In this setting, MMT takes care of providing, analyzing, and checking all math puzzle quests.
In MMT we represent GS_t(X) by MMT theories. To represent GS_{t+1}(A) = GS_{t+1}(B), we simply create a new theory that includes the theories representing GS_t(A) and GS_t(B). Thus, implementing the act of sharing solutions in FrameIT is academically rather easy and rather some minor design + boilerplate work in implementing it code-wise.
For a more advanced example, suppose we instead have GS_t(A) = {1,3,5} and GS_t(B) = {2,4,5'}. Note the overlapping 5 indicating that both players have solved quest 5, possibly differently (hinted at by the primed 5 for B)! Although we suppress it in the notation for simplicity here, note that those game states very much include the precise solution path that A and B have respectively used to solve all those quests. Suppose A and B want to cooperate by merging their solutions, settling on some rather naive merge strategy that in the merge adopts solutions 1,3 by A and solutions 2,4,5' by B. Thus, we want
GS_{t+1}(A) = GS_{t+1}(B) = {1,3,5',2,4}.
Representing this final game state in MMT gets vastly more difficult than in the case before where we only performed a union. We now have to perform a colimit of the theories representing GS_{t}(A) and GS_{t}(B).
Sharing and merging are not only relevant for multi-player scenarios, but also relevant when players are able to compile a tree-like temporal history of quest-solving and want to go back and forth in time.
See also #37.