start to add federation station
authorChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 2 Feb 2017 11:11:03 +0000 (05:11 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 2 Feb 2017 11:11:03 +0000 (05:11 -0600)
worlds/bricabrac.scm

index 3224b4868cdf6415b2de5289229da7ea0b9dad5b..0d49355875a53a43f5dd50ca7a3a4f5e8db3fa06 100644 (file)
@@ -1356,7 +1356,10 @@ is a map detailing the layout of the underground structure."))
                            "into the room, then stands in front of the door."))))
           (make <exit>
             #:name "north"
-            #:to 'hive-entrance)))
+            #:to 'hive-entrance)
+          (make <exit>
+            #:name "east"
+            #:to 'federation-station)))
 
    ;; map
    ('underground-lab:map
@@ -1657,6 +1660,9 @@ that thing soon."))))
                      "prints itself out:"))
                (p (pre ,meta-message-text)))))
 
+\f
+;;; Inside the Hive
+
 (define hive-inside
   (lol
    ('hive-inside
@@ -1739,6 +1745,64 @@ bit hard to tell when the desk ends and the Hive Actor begins."
     #:invisible? #t
     #:goes-by '("Hive Actor's desk" "hive desk" "desk"))))
 
+\f
+;;; Federation Station
+(define federation-station
+  (lol
+   ('federation-station
+    <room> #f
+    #:name "Federation Station"
+    #:desc
+    '((p "This room has an unusual structure.  It's almost as if a starscape
+covered the walls and ceiling, but upon closer inspection you realize that
+these are all brightly glowing nodes with lines drawn between them.  They
+seem decentralized, and yet seem to be sharing information as if all one
+network.")
+      ;; @@: Maybe add the cork message board here?
+      (p "To the west is a door leading back to the underground laboratory."))
+    #:exits
+    (list (make <exit>
+            #:name "west"
+            #:to 'underground-lab)))
+   ;; nodes
+   ;; network
+   ;; activitypub poster
+   ;; conspiracy chart
+   ('federation-station:conspiracy-chart
+    <gameobj> 'federation-station
+    #:name "a conspiracy chart"
+    #:goes-by '("conspiracy chart" "chart")
+    #:desc
+    '((p (i "\"IT'S ALL RELATED!\"") " shouts the over-exuberant conspiracy "
+         "chart. "
+         (i "\"ActivityPub?  Federation?  The actor model?  Scheme?  Text adventures? "
+            "MUDS????  What do these have in common?  Merely... EVERYTHING!\""))
+      (p "There are circles and lines drawn between all the items in red marker, "
+         "with scrawled notes annotating the theoretical relationships.  Is the "
+         "author of this poster mad, or onto something?  Perhaps a bit of both. "
+         "There's a lot written here, but here are some of the highlights:")
+      (p
+       (ul
+        (li (b "Scheme") " was originally started to explore the " (b "actor model")
+            ". (It became more focused around studying the " (b "lambda calculus")
+            " very quickly, while also uncovering relationships between the two systems.)")
+        ;; Subject Predicate Object
+        (li "The " (b "ActivityPub") " protocol for " (b "federation")
+            " uses the " (b "ActivityStreams") " format for serialization.  "
+            (b "Text adventures") " and " (b "MUDS")
+            " follow a similar structure to break down the commands of players.")
+        (li (b "Federation") " and the " (b "actor model") " both are related to "
+            "highly concurrent systems and both use message passing to communicate "
+            "between nodes.")
+        (li "In the 1990s, before the Web became big, " (b "MUDs")
+            " were an active topic of research, and there was strong interest "
+            "in building decentralized systems similar to what is being "
+            "worked on for " (b "federation") ". "
+            "(See the network spaces desiderata document.)")))))
+
+   ;; goblin
+
+   ))
 
 \f
 ;;; Game
@@ -1748,7 +1812,7 @@ bit hard to tell when the desk ends and the Hive Actor begins."
   (append lobby grand-hallway smoking-parlor
           playroom break-room computer-room underground-lab
           async-museum gift-shop hive-entrance
-          hive-inside))
+          hive-inside federation-station))
 
 ;; TODO: Provide command line args
 (define (run-game . args)