A pair of Teleporters are handy and simple to use. A small network with a few locations is also not a problem. But there are a few issues:
- When the number of locations reaches 20-30, it usually becomes difficult to build, modify, and use at all.
- When you have more than 8 destinations, you need multiple source teleporters. Necessitating maneuvering of the player to use the correct starting location.
Here is a possible solution and its explanation.
WARNING: this tutorial is highly complex.
This system has the following usage.
The player gets into a large room with one teleporter inside and a set of switches on the wall. Each switch represents a teleporter cabin on the map. The player turns on one of them and steps on the teleporter. 0.17 seconds later, they arrive in the chosen cabin. Because when you teleport you come out in the exact same relative position over the next teleporter, this is fast enough that you can run directly across the teleporter pad and make all 8 jumps before getting out of range, even with the best movement speed increase gear (some mounts can probably outpace it).
To return, a single switch on the uplink path of the teleporter can be flipped to move towards the root. If you align them all in the exact same position relative to the pad, you can just rapidly click through to get to the root. Building the root teleporter directly under the world spawn makes for an excellent transport hub.
So we have the following requirements:
- One root room (relatively complex) and a network of dumb remote cabins.
- Cabins are connected to each other, so there is no need to drag each wire to the root.
- Cabins are stateless, so we can fix any logical problems in the root.
- Adding a new cabin must not cause a complex renovation in the root room.
- Wiring a new cabin is as simple as dragging a bundle of wires with The Grand Design.
- Sudden server reboot must not mess up the logical state of the network.
- Player can use colored background walls to draw a map in the root, where switches are placed.
- Flipping multiple switches doesn't disturb the encoding.
- The system will reset itself after a jump, so there is no complex decoding required.
- If the activation trigger is triggered multiple times in quick succession, it won't affect the jump.
The network topology is a tree. The root can have up to 4 connections, all subsequent jumps can have 3 (any color except the uplink color). The maximum depth (by this design) is 8 jumps, though it can be expanded.
Each cabin has an address in the network. For example, bottom-right tier 5 node has the address "yellow-green-yellow-blue-yellow". To get the player there, The computer performs serial activations of all links of some color. The link is a bundle of 4 wires, connecting 2 teleporters in different cabins. While you can connect up to 8 different wires to a teleporter, it is highly impractical to encode 8 different signals, and run two bundles of wires from every cabin to every other cabin, and the cabins would need some sort of smart handling, making them no longer stateless, so this guide limits it to 4.
All links are bundles of 4 wires of different colors. All 4 wires are activation signal bypasses to subsequent cabins, and one wire is additionally for teleporting into the given cabin. Of course, end-points can be connected with only one wire, but that does prevent future expandability down that line.
- It is important to note that "AND" gates send a pulse both when becoming true, and when becoming false. This is important to note because it is really easy to accidentally wreck all of your encoding by wiring a gate in first, and then putting lamps on it, triggering random pulses downward that will change states unexpectedly.
Each cabin must have a teleporter and a set of diodes. Switches are optional, but provide manual transportation through the network as desired (useful for debugging, or returning to home).
A diode is needed to activate a set of links without wiring them together with a single wire. It is made of an "AND" gate, one unwired activated lamp (just to split incoming and outgoing wires), and a wired lamp on top. The signal comes to the top lamp, the outgoing wire is connected to the "AND" gate at the bottom. the diode order themselves don't matter, as long as diodes don't convert between colors.
This "air-gap" in the signal is important, because if the wires were directly connected, they would carry the player to the furthest destination of the same color. By having the signal air gapped at every step, it can only carry between two connected links in the tree.
"AND" gates will send a signal as they become true or false, so an incoming signal on any color will propagate through the entire network, activating every pair of teleporters of the color for the current step.
As for the teleport and switches, the root must have address encoders, multiplexors, and a timing system. Here is the picture of root, allowing up to 8 jumps over links, with 6 sets of address encoders, enough to program 24 possible destinations.
The step encoding consists of similar elements, 8 rows of them (maximum number of jumps), and 6 columns.
Each column serves up to 4 switches, there's 6 in the image (24 possible destinations), you can have anywhere from 1-2187 columns, for a total possible of 8,748 destinations from the root; though this would probably not fit within the width of a large map.
The array element can be wired with a switch in 5 ways: Red, Green, Blue, Yellow, and "stop". You can only use 3 wire colors for defining the next step, so you can set it up as either RGB (where Red and Green gives a Yellow jump) or RYB (where Yellow and Blue give you a green jump)
- To the Red lamp (jump red link)
- To the Green lamp (jump green link)
- To both Red and Green lamps (jump yellow link)
- To the Blue lamp (jump blue link)
- To none of them (no more jumps)
The timing system activates those codes from top to bottom (using the missing wire color, yellow if you use RGB, or green if you use RYB, see the Multiplexor for how this works).
Turning on the switch flips a corresponding set of lamps in the Multiplexor. If several switches are turned on, the destination address may be unexpected. The error handling section of the computer prevents this issue from occurring, but if you prefer a simpler to build, but more error prone approach, you can equip switches with torches on the same wire, to see which of them are activated, and manually deactivate them before activating the next.
It takes address information in on the left side, and a step sequence in from the right, making a sequence of pulses of right colors into a 4-wire bundle (The main transport wire from the multiplexors, to the root and all of the tier 1 destinations, this should be one contiguous circuit, and the tier 1 cabins should air-gap the signal before carrying it on to the tier 2 destinations).
Finally, AND gates are used to "AND" logic from 4 inputs. These inputs are the three diode inputs from the Step Encoder, and the last is the pulse from the timing mechanism.
The state of the lamps in the picture above is initial (e.g. Not ready to teleport, awaiting input). We also need an unwired isolating lamp under one of the gates, to separate the jump pulse wire from the output wire of same color.
The way AND gates work, only one gate in this module will change its state when it receives a jump pulse from the timing mechanism, determined by the states of the lamps that were changed by the step encoder wires. This gate will trigger a pulse into an output wire of corresponding color, at the correct time.
Output from the pulse generator must be wired to root's teleporter (since all 4 colors are downlink for them) and conducted away to sub-cabins.
The first jump is triggered immediately by the pressure plate (though it does go through a diode and wire color change first). This wire also activate 7 hammered dart traps that are pointing downward, towards a stair case of teal pressure plates. These pressure plates activate on impact, and as they are only one square further from the darts than their predecessor, each step happens 1/45 of a second after the last, for a total transit time for 8 jumps of 0.17 seconds.
Error Checking/Auto Resetting
Error checking and auto resetting makes up the bulk of the system, but it is also what makes the system very usable and helps avoid issues that require debugging later. These systems are highly intertwined, because there's a primary "Mode Switch" line that is shared between the two systems, so doing one without the other would require some major redesign.
When an input signal encodes a step in the multiplexor, the way to decode it so that a new step can be encoded is to send the exact same signal again. This repeater will take the input signal, and turn a lamp on at the same time as the "Mode switch" line flips the corresponding lamp off, so the "AND" gate doesn't pulse right away, but when the mode switch line flips back, the "AND" gate activates, and sends a pulse along the corresponding wire, which turns off the gate again instantly, resulting in only one pulse that resets the Multiplexor, and the repeater itself.
Destination Input Error Handling
On the path between the input switch and the step encoder (also before the repeater) this system will catch and reject any input until the system is prepared to take more input. The sample below is for the red input. There are two AND gates, one to accept input, and one to reject it. The Mode Switch line running between both will swap which one will be activated when the switch is flipped. Both AND gates reset the input lamps, but only the accepting gate (the top one) actually propagates the input signal down.
Important Note: The blue section will require always-on-lamps to separate the blue input from the mode-switch line, making it slightly taller than the others. Look at the larger image for guidance.
Activation Input Error Handling
This is the most complex part of the system.
Similar to the Destination Error Handling, there are four AND gates, one for accepting input (left), one for rejecting (right), and two for working the timer signals.
The green wire comes in from the pressure plates.
If the accepting AND gate is active it does 3 things:
- Sends a pulse to the dart timing mechanism to kick it off
- Teleports begin
- Flips the mode switch lamps to start rejecting input immediately
- Leaves all systems temporarily in a state where all input is rejected
- Starts a 1 second timer. The timer will:
- Trigger a mode switch across the main Blue line to set the Destination input to accept
- also triggers the repeaters to un-encode the multiplexor
- Trigger a mode switch along the smaller yellow line (cancels out the blue line from above in this local subsystem, because it was already disabled in the above step)
- Trigger a mode switch across the main Blue line to set the Destination input to accept
Regardless of which AND gate gets triggered, the red wire at the top will turn the lamps that the green line just activated back off again, so those lamps will always be in an off state. This is also the only thing that the reject gate does.