Tag archives: minecraft

The story of the bone and the bukkit

January 1st of this year marked a very special day for me. It's hard for me to believe it, but my dear little Bukkit turned two years old. As cheesy as it sounds, I still remember writing that very first commit as if it were yesterday.

I figured now was a fantastic time to give you a history of the project, its impact on my life, and how everything came about to turn into the huge megaproject that it is today. Some of this may be new information to some people, and some of it may be a little out of order, but I'll try to do my best to make this a worthy read. Whilst the Bukkit project was the best thing that has ever happened to me, it didn't come without some big mistakes and sore spots. I may tell you about those, but they're not easy to write about and may involve a handful of politics.

Before we jump straight into Bukkit, let me take you back to ...

I'm a Mojangster!

First off: Sorry for this being late, I really don't have as much time to update my blog as I'd like :( Now that that's out of the way...

I work for Mojang now! Hurrah! I guess this technically means I'm now a real living Game Developer and that's pretty cool and stuff. Living the dream and so forth.

I'll be mostly responsible for designing/implementing both the client and server modding API for Minecraft, and that's a pretty big job, but I'm allowed to go tinkering off and working on other Minecrafty stuff in general; I've only been hired for a week, and I've already made a nice little list of bugs that I've fixed!

So this is pretty cool and all, but unfortunately it's not all fun and games (Get it? Haha. Hah. Sorry...) as it's actually a pretty big life changer for both me and Ola; we'll be moving to Sweden within the next 2/3 months, and that ...

FAQ About Plugin Channels

So far I've seen an amazingly good response to my previous announcement, but I've also seen a lot of people with (reasonable!) questions and some thought of their own. I hope to address those here :)

"I'm A Beginner, What Does All This Actually Do?"

Basically, right now the mod community is fairly fractured - there's a huge divide between client mods and server mods, and getting these mods themselves to talk with eachother isn't so simple. We at Bukkit partnered with Mojang to introduce a new official system that should help alleviate the pressure on this, and make things easier for everyone involved. You can now efficiently talk to a client mod from the server, or vice verca, without having to worry about compatibility issues or conflicts or bandwidth or anything like that. It's all so very easy.

If you want this even simpler and a real world example of it all, think of Bukkit server plugins communicating effectively with MCP client mods. Before, this was a pain. Now, it ...

Minecraft Plugin Channels + Messaging

Some keen eyed developers may have noticed that there's a new packet in Minecraft 1.1, with no purpose or usage anywhere in the codebase. You may be wondering why this was added, and what use it could possibly have. You may also be wondering who cares, and why you have this page open. I'm here to answer all of these questions in a nice little (disclaimer: may not be little) blog post!

Update: See the FAQ on this over here! Now with simple questions like "but what does this actually mean?"

Backstory

We did some thinking a while back, about how the state of client mods and server mods for minecraft isn't really what it could be. There's so many problems with conflicts and one mod causing a bug in another and so forth, that it's really harming the potential of Minecraft modding in general. While we by no means think that we can solve this, we did start hypothesizing ways that could at least improve how mods play ...

Minecraft 1.9 has rcon and query!

However, there's absolutely no documentation on how it works. Considering it came out just earlier this day I'm not really surprised, but I thought I'd go fix that. Here's a tech document for you guys on how the status query works. To clarify: This means lots of tech data that probably means little to anyone else. Helpful for those of you who run websites for this kinda stuff, not helpful to Mrs. Sue who's looking for a new recipe for crafting her own bread.

The status system is incredibly simple, with only 2 possible packet types that you can send to it. It runs on UDP and thus supports multicast requests (initially), but individually replies to each one. In addition, it uses a challenge token which is explicitly designed to prevent multicast status updates, so you can request a challenge with no issues but when it comes to actually asking for the server status, you're outta luck. Keep in mind, all my diggings into this is from datamining, I ...

Bukkit 1.8 dev diary

So I woke up Thursday morning to a strange surprise. I had a few tweets saying "good luck with 1.8" and suddenly many more "when is 1.8 gonna be updated lol" than I usually had. What a curious thing!

Unfortunately, sleepy me didn't realise what this meant at this point in time, and was unaware that he was better off just staying in bed all day, so he decided to go investigate. Some time later, it hit me. Like a wall full of irc highlights. Mojang released 1.8 much earlier than we thought they would. Uhoh!

IRC update checker bot

It appeared that I was a couple of hours late, so I thought, maybe it's ok and we've already started to work on it. But checking our repos and irc channels... it seems I was the only one who was available to handle it. It was just a bad time for all of us. The best part about our team is also the worst part; we're each in a separate timezone so ...

Minecraft 1.8 soon!

Yay, minecraft is updating! To 1.8! And then again soon after with more features! :D

I both love and hate these periods where updates are coming. I love them because I actually have stuff to do, it's always interesting reading all the new changes in the code, and it's actually quite fun (in a sadistic manner, I guess) racing to be the first mod to release.

I hate it, because I always see complaints like "omg bukkit will take forever to update, I'll have to make a backup then switch to vanilla and wait for bukkit then restore the backup and then update bukkit and then update bukkit plugins it's so much work!"

Our update times lately are within the hour, sometimes minutes for experimental releases. Updating to bukkit will take you all of 1 minute, and updating your plugins is not needed (except for the VERY few that stupidly use native api which guarantee them to break very often. But that's true of other mods too). This puts ...

A Bukkit full of fixes

So Minecraft beta 1.6 came out today. Four times, in fact. What a fun day this has been!

After staying up all night to prepare for the patch (which was scheduled to come early morning) and make sure this update goes as smooth as possible, it hits about 10am my time and instantly the whole team are ready to go and working together over Skype to get this done as quickly as humanly possible. It took us 2 (!) hours later, in which time Mojang released 2 more (minor) updates, but we finally had a 1.6 compatible build ready to go. Everything went better than we could have imagined!

And then we went to test it. Oh joy. None of our test servers were strong enough to let us all join the same server. And trust me, these aren't cheap VPS' with 500mb of ram. What the hell could be making it go so slow?! We spent about an hour trying to figure out where the bottleneck is, with a few small theories ...