Some info regarding the upgrade to 1.7.2

The makers of Bukkit, the main ingredient of most minecraft servers, including this one, released a statement regarding the progress for the 1.7.2 upgrade. Until this is done, we cannot upgrade too. So if you are wondering when it will happen, read this.

11 thoughts on “Some info regarding the upgrade to 1.7.2

  1. While the question may be ignorant, Or not. Whats stopping them from making a final build for it? How much did minecraft drasticly change?

    • If you read the post, they stated that approximately 220 thousand lines of code changed in Minecraft. And that’s obfuscated code. Also in the post, EvilSeph outlines the various steps involved in the process, but it’s clear that coming from that much modified code, it’s going to take a while.

      Didja read the post? :)

      • I did read the post, yes. And I saw the statistics, but I warned you it would be ignorant and or a smart question.

        • Well, if you read the post, they explained it better than I can. Unless you had some other specific question in mind, they directly answered the question in your OP.

  2. I had this brainwave about explaining how difficult it is to deal with obfuscated code. If you are baking impaired, it may not help,but here goes. To generalize greatly, a computer program is not unlike a baking recipe. There are ingredients (data) and instructions (functions).

    Consider this recipe:

    1 stick butter
    2 cups flour
    1 tsp salt
    1 tbsp baking powder
    1/4 cup milk
    
    Preheat oven to 450F.
    
    Combine flour, salt, and baking powder in a large mixing bowl.  
    Cut in butter.  Add milk.  Should form a dough with a sticky consistency.
    Divide into 2-3 inch portions and place on a baking sheet.
    
    Bake for 13 minutes.  Makes 5-8 biscuits.
    

    Now, when programmers obfuscate their code, they remove all the human-readable labels. The computer knows what everything is, but a human reading the recipe would see all the nouns replaced with single letters:

    1 A
    2 B
    1 C
    1 D
    1/4 E
    
    Preheat F to 450F.
    
    Combine B, C, and D in a G.  
    Cut in A.  Add E.  Should form a G with a sticky consistency.
    Divide into 2-3 H and place on a I.
    
    Bake for 13 minutes.  Makes 5-8 J.
    

    You can see this is getting hard to follow. You might be able to figure out that since this is a biscuit recipe, what must be what, but it’s not straightforward. However, obfuscated code doesn’t just hide the names of the data, the functions (verbs) are obfuscated also!

    1 A
    2 B
    1 C
    1 D
    1/4 E
    
    N F to 450F.
    
    O B, C, and D in a G.  
    P A.  Q E.  Should R a G with a S.
    T into 2-3 H and U on a I.
    
    V for 13 minutes.  W 5-8 J.
    

    Pretty bizarre, huh? You can still tell what a couple of things are, constants like the temperature and the number of biscuits, but most of it is unintelligible. Still, by trial and error, if you knew this was a biscuit recipe, you could work it out. It would take a little time.

    Now, consider that instead of plain English instructions, you’ve got Java code. And instead of 10 lines of it, you have several hundred thousand. And even if you’ve before, every time the recipe changes, the letters may become jumbled and refer to completely different things than last time. It’s still a biscuit recipe, but you’re not sure which ingredients were added or removed, or how the process changed, except by trial and error.

    This gives you an idea of the difficulty of dealing with de-obfuscating a codebase.

  3. Thanks Azkedar, that helps me in trying to understanding the process.
    Makes my head hurt trying to imagine that, also now I want biscuits.

  4. I wonder why Mojang don’t ease things up a bit for bukkit developers, since it’s so widely used and Mojang don’t seem to be so self-centered and money-driven as most game developers these days. And thanks az for the explanation!

    • I always thought it was because they wanted to use less space.

      • Oh, sorry I was a bit unclear what I meant. I ofc understand that the obfuscated code takes less space, because it has less text. I meant that Mojang could provide the explanations on what is what for bukkit, cause Mojang peeps ofc already know it.

  5. So when I play 1.7, I get biscuits?

    Awesome!

Comments are closed.