WARNING: AUO IS A NEW CONECPT STILL BEING RESEARCHED. THIS TUTORIAL IS NOT A FULL LIST OF EVERYTHING RELATED TO AUO.
Yep, this is a purple tutorial. However, Advanced Update Order (AUO) is such a weird and complex thing that I think it deserves it.
What is Advanced Update Order?AUO is the order that gimkit does things. You can think of it like a list of things: Move the player, then check if player is tagged, then check if player is josh, etc. Normally, AUO doesn’t matter too much. However, in some situations, this difference can be super useful! Using AUO will allow you to make wires trigger (without wire repeaters) in an order, at incredible speeds!
How do you do AUO?Well this brings up the question: What order does gimkit trigger wires in, if there are multiple wires leaving something? The answer to this lays in something you don’t really think about, but is super important: The order you placed the wires. I can’t dig through gimkit’s code to check, but here’s what I think is happening to cause this: Each device has a list. This list stores all the wires that leave that device. When the device needs to send signals through these wires, it sends a signal down the first wire, then the second, then the third, and so on. In summary, because code stuff, the first wire placed is the first one triggered. Let’s look at an example:
The ExampleFor this, we will have two wires leaving a button. One will reset a counter, the other will add one to the counter. We will place two wire repeaters in the middle because you can’t connect something to something else twice. Here is our un-wired setup:
Now, wire a wire to the top wire repeater, and then wire that wire repeater to the counter. Select “Reset Counter”. Then wire the button to the bottom repeater and the bottom repeater to the counter, this time selecting “Increment Counter”. Here is our setup now:
When you test this, and press the button, you’ll notice that no matter how many times you press it the counter says 1. This is because the counter resets and THEN adds 1. Because we wired the reset wire first, the counter resets first. Now, let’s try it the other way around. Delete the wires, and this time wire the “Increment Counter” first. When you’re done, it will appear that nothing has changed, but testing shows us otherwise. Now, when we press the button, the counter stays at 0. This is because the counter is incremented first, and THEN is reset. It is incremented first because we wired it first!
How AUO behaves with multiple wiresHere are some wires. I placed them by column, starting at the left column working to the right. The number next to a wire represents the order it was placed in, in that column. When a pulse gets to one of the text objects that says "Placing here", it will display the order of when the signal reached, whether it was first, second, third, or fourth.
So which pulse will reach the end first? And how do we find that? Well, here is how gimkit triggers wires: (It’s an animation)
You can see that whenever there is a split in the wires, the path takes the smaller number (oldest wire). Then, when there are no more wires to go to, the path goes back until it finds a split it hasn’t gone down yet! As a result, after the button has been pressed, the output will be:
Who Cares?Overall in your games this isn’t very important. However, if you want to have a series of events occur in an order, very fast, without wire repeaters, this can be very useful.
ConclusionIn conclusion, we learned what AUO was, and how to perform it. Will this be useful? Probably not, I can’t think of a time I would ever use it. But it’s something that could prove to be useful in the future! I hope you learned something from this tutorial! Like this post if you enjoyed reading and learning about this! If you found any errors, tell me so I can fix them!
Thanks for reading!