Siloed

From Adam Colton
Revision as of 20:06, 5 November 2015 by Adamcolton (talk | contribs)
Jump to navigation Jump to search

Very much based off the Bomb game we played at Bells, just want to explore the concept in a different direction.

Terminology

  • Char: a recognizable character (ascii 32-126)
  • Glyph: an unrecognizable character, randomly generated
  • Symbol: either a char or glyph
  • Code: a string of random, chars
  • Cipher: One or more glyphs that must be looked up in the correct cipher table to be interpreted
  • ID: a meaningful string of chars ("Gimble-12", "+12v" or "Cancel")
  • Label: Either a code, cipher or ID displayed to the user
  • Sequence: User input to a keypad
  • LED: A small light. They can be red, green, blue or yellow. They can be on, off or blinking.
  • Indicator: A pair of leds, one red, one green. It will only be in one of three states - r, g, off. Indicators are not used for convolution, they always mean the same thing. A green light means the control is powered and active, a red light means the control is powered but locked and no indicator means the control is unpowered.
  • Power: Ground, and various AC and DC voltage and current sources.
  • Data: Any sort of data that gets moved around. Pulse, waveform or binary.
  • Signal: power or data

Panels

Every panel will have a label and possibly and indicator. Each user will have some fixed number of panel. In the main view, they can see an icon for each panel (though not the state or label of the panels). Clicking on a panels zooms in on that panel and places a set of 5 buttons to the left - zoom out and arrow keys to move between panels without zooming.

Input and Routing

These can act as inputs, but anything that can input can also route.

  • Keypads
    • Symbol: A grid of symbols
    • Labels: A column of labels, each with a button and indicator
    • Colors: Grid of LED buttons (unlike normal, small, round LEDS, these are large, interactive squares).
  • Control panels : semi-ordered collection of controls, any control may have a label or an indicator, every state may also have it's own label (but not indicator
    • Groups: a boarder around a set of controls
    • Buttons
    • Switches: toggles between two states
    • Knob: Has 3-7 states arrayed over a 120° arc.
  • Plug board: labeled sockets with a fixed number of wires.
    • Socket Types
      • Power Source
      • Signal Source
      • Other Panels
    • Wire Types
      • Black: two plugs, general purpose
      • Green: two plugs, needed for "high voltage"
      • Blue: two plugs, needed for "high frequency" signals
      • Yellow: Three plugs, one in, two out
      • Purple: Three plugs, two in, one out

Any of these can act as either an input or a router. Wiring something like "+12V" to "Close Doors" is like pushing a "Close Doors" button. But knobs and switches can also easily route, and entering the right sequence in a keypad could also route, generate or some combinations (entering "1234" in a certain keypad could produce a signal as output, produce a signal and route it to a specific place, or route a signal from one place to another place).

Output

  • Console: Computer screen. Each player has one, this is where "information" lives. The console has pages that users can flip through with back/forward buttons. A console starts with some information, but if binary data is sent to a console, it will add pages to the log. When there are unseen pages in the log, there will be a notification.
  • Light boards
    • Indicator: just a column of indicators.
    • Rows: rows of LEDs (so a grid, but each row may have a label)
    • Circle
  • Timer
  • Oscilloscope
  • Needle Gauge

Hidden

These aren't actually panels

  • Systems: silo components that react to inputs
  • Tables: needs more thought... take data in, perform an action. Mostly for key pads, take in a sequence and either produce a signal or route a signal. But the concept could be broadly applicable.

Information

Information appears on players consoles in a log. You'll never lose access to information and information is never incorrect (though it's not always useful).

  • Procedure: An ordered set of instructions that, when completed, will trigger the stated action.
  • Cipher Table: Maps glpyhs to either codes, chars or IDs. A glyph is always unique to one cipher table
  • Codes: Maps a code to a label
    • code → label (id | code | cipher)
    • code → IF conditional THEN label OTHERWISE label
  • Wiring Diagrams: Defines connections between some of the components

The combinations of labels and ciphers can be infinitely complex. Say we have the "Cancel" button. The base case is it's labeled "Cancel". It could also be labeled with a code or a glyph. The code could be a set of glyphs. Looking up a code or glyph can direct us to another code or glyph. But eventually, it will resolve to "Cancel". Also, a code can map to a procedure who's output will be the code value.

Instructions

These deserve their own section. An instruction always refers to completing a single action, but to complete that action, several other actions may be required. So there will never be an instruction like "Press the 'Cancel' button and then set the 'Mains-Power' to 12v", that's two instructions.

An atomic instruction will be

  • Press a button
  • Set a switch or knob to a state
  • others...

But an instruction can also be something like "Power 'Vent Gas' with 12vDC". Which may require any number of other steps. As simple as wiring "12vDC" to "Vent Gas" on a plug board" or it could be very complex, requiring looking up ciphers to find the code to produce 12vDC on some panel, but that panel isn't active, so we look up the activate code, then we need to route the 12vDC through several panels because it's the only route from that panel to "Vent Gas".

And, a single instruction can reference another procedure.