What is recursion? Well, in general computer science, recursion is a function calling itself. If we have function f(), inside of that function it will call f(). In Python, it would look like this:
def recurse():
(indent) recurse()
But that’s Python, not Gimkit. In Gimkit, our version of recursion is much more loosely defined. Any device that triggers itself, or – more specifically – any system that triggers itself, is considered recursive. If I have trigger A send out on channel ‘b’, but it also triggers when receiving on channel ‘b,’ then that is a recursive trigger. Or having a checker that checks on signal ‘a’, but then if it fails or passes the check will check on channel ‘a’, leads to a recursive checker. You can also do this with multiple devices. Lets say trigger E sends on ‘b’ and receives on ‘c’, then if trigger O sends on ‘c’ and receives on ‘b’, then they are recursive.
This is where things start to get tricky. If a system has a timed delay, it is continuous recursion. If it has no written delay (e.g. the ‘how long does this trigger take to trigger’ field is empty), then it is instantaneous recursion!
Now, generally, continuous doesn’t cause anything weird. I say generally because I recently discovered a new quantum mechanic! However, the main qmechs are focused on instantaneous recursion and its offshoots.
One of the interesting things that fall under the recursion bucket, so to speak, is concurrent recursion. Let’s say you have trigger A from our previous example. We’ll give it a delay of .1 seconds. We also hook up an item granter to this, one that triggers on a signal from channel ‘b’.
If we step on the trigger once, we receive ten items a second. But interestingly enough, if we step on this trigger again, we will start to receive twenty. Then thirty, then forty. It keeps going. There IS a cap, but I don’t remember where it is. I think 5 total concurrent loops can run at once or something.
Anyways, there are a bunch of different things within the concept of Gimkit recursion. It’s pretty cool, and if you’re interested in learning about technical Gimkit and the bug hunting process, this is where to start. Thanks for reading, and have a good one!
shdwy out.