More information on the Minecraft 1.7.2 update

Discussion in 'Bukkit News' started by EvilSeph, Nov 15, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    EvilSeph

    Things are progressing nicely towards our first development build of CraftBukkit for Minecraft 1.7.2. Although this update did not provide or add as much feature-wise as previous Minecraft updates have, this is probably one of the more complicated and larger updates we've had to work with from a mod development standpoint. With "almost all of [the code in Minecraft] having been changed - be it little or big" (according to Mojang), there has been significant shifting around of code and logic - to the estimated tune of ~220k lines changed - within Minecraft, resulting in our slowest and most involved update yet.

    Managing expectations - information about our initial CraftBukkit 1.7.2 builds
    Five days ago (on November 10th) I sent out a tweet trying to describe what our initial findings were regarding the impact this Minecraft update has on the project but it's frustratingly very difficult to communicate everything I want or need to in 140 characters. Nonetheless, sending out tweets is still our best form of communication that doesn't push other important topics out of view (like the potential structure loss PSA).

    The tweet was meant to explain that while we will definitely have development builds, our analysis and evaluation of the update (through reading the code and following Minecraft feedback/bug reports from the community) has revealed that there are issues in Minecraft that may prevent us from getting anything stable or reliable out. This was purely meant to assist us with managing expectations as to the quality, stability and reliability of any builds we're able to give out.

    As for the 'issues we cannot fix' aspect of the tweet, this is due to the nature and policies of the Bukkit project: it is not so much that we are unable to fix the issues ourselves (though this can sometimes be the case), but rather that the issues present are not the project's responsibility to fix and, instead, would be better addressed by Mojang. While we do sometimes make exceptions if we have a really good reason to do so (like to fix a security issue), we try and avoid altering the way Minecraft itself behaves and functions. This is both a conscious decision as a project and a necessity, as too many changes to Minecraft's inner workings can mean significant increases in the complexity and amount of work required for the update process.

    It's not so much that we choose not to fix these issues, but rather that we need to be fully conscious and aware of the impact doing so could have on the update process and our day-to-day maintaining of the project. If the fix for an issue touches too many internals within Minecraft, for example, it usually makes the update process significantly more complex, resulting in (what could be an avoidable) increase in the amount of time it takes us to update. As much as we'd like to fix every issue we come across, doing so would mean updating to new Minecraft versions will take even longer than they currently do.

    This is why we have the minimal diffs policy (a policy which eliminates unnecessary changes to the Minecraft code), it results in a speedier and less buggy update for everyone. Although it undoubtedly limits the developers in our project, I think you'll agree that it's a worthy sacrifice and limit to impose upon ourselves in order to ensure that the downtime of your server between updates is as minimal as we can possibly achieve.

    If we were not personally responsible for updating the core of our project, we'd have much more freedom to experiment. As it is, however, the Bukkit project handles updating, development and the maintaining of both a plugin API (Bukkit) and a Minecraft server mod (CraftBukkit) in order to produce the server you all know and love.

    To be clear:
    • There WILL be development builds; we're still working towards getting our first one out.
    • Due to significant changes in how Minecraft works, it will take us a while to get our Bukkit API updated. Hence, it is highly unlikely that all the plugins you are using will work on our initial development builds.
    • There will MOST LIKELY be promoted builds, but they'll be lower quality than you could usually expect from us due to issues we can't address.
    What does updating CraftBukkit involve?
    To give you an idea as to why this update is taking longer than usual, I need to briefly touch on what our update process involves. Every time a Minecraft update is released, we have to go through a repetitive, time consuming and dry multi-step process.

    A simple breakdown of the process is as follows: decompile the server -> learn the new names (they change with every update) -> figure out how they apply to Bukkit's naming system -> learn what changed/what's new in the update -> update the changes we make to the server to support Bukkit -> get the code to compile -> fix issues that come up.

    Since we're working with a code base that is unfamiliar to us, we can sometimes find ourselves having to jump back to a previous step. For example: we may come across a piece of code that we're not familiar with and once we're able to figure out what it does, we realise that we've named something incorrectly which we then have to go back and fix. It is this fluid and unpredictable aspect of the update process that makes it difficult to come up with a communicable ETA or any progress/status updates.

    Though this process may seem inefficient or ineffective, this is the same process that we've used and improved upon to get all of our updates out (even our fastest ones) over the 3 years the project has existed. Bear in mind, the overview provided here barely touches the surface of our update process and is intended to give you a remote idea as to what we have to deal with for every update. This brief and simplified breakdown of our 'steps' does little to explain the varying level of difficulty or complexity of each step, for example.

    How can I help?
    The best way to help us out is to get involved.

    If you're a server admin: once we have our first development build out, we'd appreciate any testing you could perform and any issues you can report. Please bear in mind that development builds are unsupported and should not be run on production servers.

    If you're a plugin developer: once we have our first development build out with proper API support, we'd appreciate if you could test the build out and report any missing or broken API to our bug tracker.

    If you're looking to help us out with the update, you'll have to work towards that goal by getting involved in other aspects of the project first. Due to the sensitive and extremely team oriented nature of the update process, we require that you build a relationship and demonstrate your commitment to the project before getting involved with updating will benefit the process. As the update process is incredibly repetitive and mundane, intense commitment is a key requirement for the team.

    We know this update is taking longer than usual but I assure you we are working our hardest to get it done. Thanks for your patience and continued support, it makes a huge difference and really helps us push onward!
     
  2. Offline

    ccrama

    Bobcat00 Haha, that was a horrible misspelling. Fixed. :3
     
  3. Offline

    andrewpo

    Your programming makes me cry :(
     
    robotnikthingy likes this.
  4. Offline

    Zackery

  5. Offline

    EnvyBlock

    Hopefully bukkit 1.7.2 will make a great christmas present!
     
  6. Offline

    LetCraft

    do you have any youtube link or something? :)
     
  7. Offline

    turt2live

    Random videos I found in 20 seconds:
    Video 1
    Video 2

    Should be plenty.

    Edited: I hate big boxes.
     
  8. Offline

    LetCraft

    Oh that was easy. Thanks.
     
  9. Offline

    JustinBaldeo


    Oh please, this is my masterpiece.

    PHP:
    print "Hello World"
     
    ccrama likes this.
  10. Offline

    zok

    I agree with you, this is getting very frustrating!
     
  11. Offline

    gerardvanschip

    Because they are doing their own thing with the API, thats why they hired the bukkit guys.
     
  12. Offline

    TnT

    Locked. We now have a dev build out.
     
Thread Status:
Not open for further replies.

Share This Page