Unintended features and bugs

Discussion in 'General Minecraft Discussion' started by Egeau, Jun 20, 2018.

  1. Whello there,

    When you read the title, you might've wondered: "Isn't that the same thing". For most games, it is. For minecraft, not so much. I'll try to explain myself, but, to be able to explain some of the places where an unintended feature isn't a bug, I first need to explain some redstone things most people don't know.

    (most) Minecraft processes are calculated per 1/20th of a second, or gametick. Minecraft repeaters can have a delay of 2, 4, 6 or 8 gameticks. (or 1, 2, 3, 4 redstone ticks) Pistons have a delay of 3 gameticks, etc.
    Most people come that far, but there is more.


    What would you expect to happen here? When the left redstone dusts are powered. The signal goes to both the comparator and the repeater, both have a 2 gametick delay. When a piston gets powered it imedeatly starts extending, turning the concrete in block 36, which doesn't concuct a redstone signal. Does the redstone dust (and so the pistion) get powered? The only way to know that, strangely enough, is to ask yourself which one poweres first: the comparator or the repeater. It might seem strange at first, as you probably think it happens in the same time, but answering that question solves the problem, as there just isn't a thing as "happening in the same time" (due to the amount of rational numbers being countebly infinete and the amount of irrational numbers being uncountebly infinete.)

    I happen to know that a comparator always updates after a repeater. Which means that in our little setup, the redstone dust gets powered, to get unpowered in the same gametick. You might think that components don't react to such a signal, like comparators don't react to 2-gametick signals. That's not what happens.
    The piston gets updated and powered and starts extending, jet, in the same gametick, it gets updated with the "message" it should start retracting again, so it starts retracting. A piston cannot retract when it isn't fully extended which means it needs to extend instantly, to start retracting. When a piston gets unpowered before it's fully extended, it looses it's block (feature added derectly when pistons where added: there is a explicit line in the code that makes it happen (I beleve)), so the block in front of the piston gets teleported in the the position the piston pushes it to.
    Many, many, many advanced fast redstone contraptions use it. It's called 0-ticks, as you're using a pulse that is 0 ticks long. It's part of the area of redstone that mainly focusus on update order, probably the best at it is Eta740 And the most well-known youtuber who uses it a lot is Ilmango (Also known as "The king of redstone")

    Okay. Now back to where we came from: Bugs and unintended features. is this a bug? If I would just have told you "Teleport blocks using this weird contraption" you would've probably said yes. But, now you (hopefully) understand the full mechanics, you probably neither see what isn't working as intented: Yes, if you don't do redstone a lot, It all sounds weird. No, Notch didn't know this was possible when he was coding pistons, it's unintended. The components are working as intended though: there is nothing going wrong.
    In fact: in early 1.13 snapshots, some parts of 0-ticks started behaving differently. This different behaviour was changed back so that the 0-ticks basis would work the way it used to again, meaning simple contraptions wouldn't break.

    There are many different unintended features like this in minecraft, not just 0-ticks, but, as I am only specialised in instant redstone, which for a huge part is 0-ticks, I thought I'd only explain the part I get.

    So, maybe, next time you say something is disallowed because it "obviously is a bug" Think about if it actually is a bug, or if it are components all working fine creating something you didn't think is possible. Most of thease things are used by people like me who use more extra ruppees by making the contraption that 1% faster as it would ever gain. I cannot think of an example where something like this actually is game-breaking, apart from spawning algorithm manipulation, where you could also argue that the fact that the algorithm isn't truely random is a bug. (You can reset the "Random" function by doing some complicated chunk loading every game tick, meaning every tick, the exact same mobs will spawn in the exact same spots, useful for making extreemly efficient mob farms)

    All with all, there is more posseble as you might think. Something that you didn't know was possible isn't nessecairly a bug, something you didn't expect to happen shouldn't derectly be disalowed.
    TomvanWijnen likes this.