# -= Everything You Need To Know About Creative (Part 1) =-

@Wumpus can i make the recursion chapter?

2 Likes

:0 its the legend himself…WUMPUS!!!

2 Likes

Great guide! Hopefully, it can help some newbies one day! I can’t wait to see Pt 2!

Bad news...

GimSolver’s retiring! Yet another Veteran that’s leaving!

4 Likes

that is off topic
please dont do that

1 Like

sure just havent seen wumpus on here in the longest time and he´s made some of the greatest guides in my opinion on the forums

2 Likes

veteran?
really?

5 Likes

he is a regular…

1 Like

guys lets not start an argument over something like this again -_- adios and karl stay calm ignore these peeps and move on with life its best not to hold grudges

5 Likes

Yeah, @CringeKarlScott, why not?

He was regularly active and made some great guides.

1 Like

Sure

1 Like

ah yes, great guides

and remember his “no-flagzone chat” that literally encouraged people to be off-topic?

3 Likes

Good point. Very valid. Other than that though, he was pretty good.

Back on-topic.

1 Like

Wait—he joined almost the exact same day I joined?
Wow. But we shouldn’t treat someone like that—those were reasonable and weren’t made to be off-topic on purpose…
He was a new user then…ok, now I’m getting back on topic and not saying anything else.

1 Like

# Recursion

Recursion is the main reason that repeaters are completely useless. It’s an essential in every programming language, and for good reason.

By dictionary definition, recursion is simply:
the repeated application of a recursive [1] procedure or definition.

In coding (and Gimkit Creative), recursion is a function calling itself. It’s a script that triggers itself somewhere in it, creating an infinite loop containing everything that occurs before it calls itself.

If you still don’t understand, here’s an example of recursion in block code:

However, in the image shown above, the actions will recurse infinitely. Most of the time, you don’t want this to happen, so you need finite recursion.

Finite Recursion
Finite recursion is recursion that doesn’t recurse infinitely. This is achieved by having something in the recursed section of the code that checks how many times it has already recursed, and if it has already recursed enough, it stops recursing. Here’s what that looks like in block code:

And that’s recursion!

1. recursive is defined as “relating to or involving the repeated application of a rule, definition, or procedure to successive results.” ↩︎

3 Likes

Great guide, @Wumpus!

1 Like

Wait–why does that sound like a term for Algebra?
From geometric sequences or arithmetic sequences?
I forgot—but that statement is very triggering.

1 Like

Here’s a suggestion for the Master Creator section:

Chapter 4 - Resolution (AUO)

Let’s say you have two wires that trigger a counter at the same time. One increments the counter, and one resets it.

How do you know which one runs first? Well, we use something called AUO, or Advanced Update Order. Basically, this is a rule that says the first device placed is the first to run.
This is because devices in Gimkit, when updated, are appended to a list. That means they’re added to the end of it. Then, when the game goes through figuring out what to do, it starts from the beginning of the list.

This is an incredibly important debugging tool, and also sometimes useful when building a mechanism. However, sometimes it can be hard to remember what goes first, or you can accidentally touch something and mess it up.

An easy way to get around this is just using wires vs channels. Channels always resolve before wires, so if you have one mechanism triggered via channel and one via wire, the channel always runs first. This can be super useful and help you get around a problem you might not understand.

Resolution, more broadly, is about more than just the order that devices resolve. It has to do with anything that resolves. Here’s an example.
Let’s say you have a counter. It increments on channel X and decrements on channel X and resets on channel X. The counter starts at 2, and then you broadcast on channel X. What will the counter’s value be? Well, it’ll be 0, because the reset is the last setting to broadcast. While it’s not completely tested, the current hypothesis is that the last setting listed is the last one to run.

If you find something that hasn’t been tested already, you can always run a quick test to figure it out. Testing is one of the most important things in the game-making process, especially in GKC. If in doubt, try it yourself.

@Wumpus can you change the “Auto Update Order” to “Resolution”

4 Likes

Oh wait—that’s because recursion is basically repeating the same value over and over again—in this case, it means the block code is being repeated again and again.

That’s why it’s useless–because it does nothing but repeat the same block code even if you want it to be only triggered once—

That’s why wire repeaters are so useless!
I don’t know why I didn’t understand this sooner!

1 Like

Are you sure block code recursion works? (did you test this?)

I’ve tried in the past and it didn’t really work for me, I don’t believe block code is able to trigger itself.

Might be wrong, of course.

1 Like

This is a useful guide for beginners!

3 Likes