Skip to content
Snippets Groups Projects
situation-space.md 2.52 KiB
Newer Older
  • Learn to ignore specific revisions
  • Navid Roux's avatar
    Navid Roux committed
    ## The Evolution of a Situation Space
    
    This is an overview of how a situation space and theory looks like over the course of playing.
    
    Read from top to bottom; the comments indicate the "current" action that led to the creation of the respective module or declaration.
    
    Note that the below presentation features a linearly developing situation space. This is just the easiest case. Situation spaces can develop arbitrarily complex in tree-like fashion (e.g., compare with quest and side quest systems of MMORPGs).
    
    ```mmt
    
    fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta ❚
    
    theory SituationSpace = 
    	// Player starts with SituationTheory1 below that includes this root situation theory,
    	   providing access to scrolls that are available by default ❙
    	theory Root =
    		include ?OppositeLen ❙
    		include ?AngleSum ❙
    		include ?Midpoint ❙
    
    	
    	// Player starts with this situation theory. ❙
    	theory SituationTheory1 =
    		include ?SituationSpace/Root ❙
    
    		// The player collects some facts about the world. ❙
    		fact1: ... ❙
    		fact2: ... ❙
    		fact3: ... ❙
    
    		// The player formulates a scroll view... (continued below) ❙
    		view ScrollView1 : ?OppositeLen/Problem -> ?SituationSpace/SituationTheory1  = 
    			factslot1 = fact1 ❙
    			factslot2 = fact2 ❙
    			factslot3 = fact3 ❙
    
    
    	
    	// (continued)... and applies the scroll and thus lands in a new derived situation theory. ❙
    	theory SituationTheory2 =
    		include ?SituationSpace/SituationTheory1 ❙
    
    		// The player gets access to facts obtained by the scroll (these are precisely the ones pushed out
    		   from ?OppositeLen/Solution over ?SituationSpace?SituationTheory1?ScrollView1). ❙
    		out_fact1: ... ❙
    		out_fact2: ... ❙
    		out_fact3: ... ❙
    
    		// Also, the player gets the view into the pushout ❙
    		view ScrollView1_pushout : ?OppositeLen/Solution -> ?SituationSpace/SituationTheory2 = 
    			out_fact1 = out_fact1 ❙
    			out_fact2 = out_fact2 ❙
    			out_fact3 = out_fact3 ❙
    
    
    		// The player goes on collecting more facts. ❙
    		fact4: ... ❙
    		fact5: ... ❙
    
    		// The player again formulates a scroll, now being able to combine facts they measured themselves
    		   and facts they previously obtained via scroll application. ❙
    		view ScrollView2 : ?OppositeLen/Problem  -> ?SituationSpace/SituationTheory2 =
    			factslot1 = out_fact1 ❙
    			factslot2 = fact4 ❙
    			factslot3 = out_fact3 ❙
    
    
    	
    	theory SituationSpace/SituationTheory3 =
    		include ?SituationSpace/SituationTheory2 ❙
    		out_fact4: ... ❙
    
    		// and so on and so forth ❙
    
    
    ```