Category archives: Minecraft

Things Minecraft related! Most likely bukkit stuff, but hey!

Mojang meets Monte Carlo

Recently, Minecraft (PC) hit 10,000,000 sales. That's a big number. 10,000,000 people who bought the game.

Immediately afterwards, Minecraft Pocket Edition (iOS/Android) hit 10,000,000 sales. That's still a big number.

If you add these numbers together, you get 20,000,000. That's an even bigger number. We had to celebrate these big numbers somehow, so Mojang threw a surprise trip without telling any of us any details at all. I'm so happy that they did this. Here's a summary that I wrote up of what happened each day; I don't want to ever forget what happened!

Monday

We woke up, went to the mojang offices. Saw some limos and a huge van outside, nobody knew what was happening. People took our luggage and checked us off their lists. We got told to get into the limos which we were most definitely not going to refuse! We had no idea where we were going, but it stopped outside of a small airport, where some people told us to get onto this small 8-person private jet.

The flight didn't take long, we had to stop for fuel along the way, but we still had no idea where we were going. Eventually when we started the final descent we started to guess italy or france from the looks above, turns out we were in Cannes! We found out that we were going to Monte Carlo, Monaco, and were going to go there in style. We went outside and 15+ sports cars come darting towards us and park alongside the path. All the drivers get out and we're told to pick one!

Neither me or Ola could drive so we hopped into the limos instead, but then we found ...

Continue reading

Let's invade Sweden!

If you read my "I'm a Mojangster" blog post, then you'll probably know that me and my fiancee are moving to Sweden. Well we have a progress report, and as people keep yelling at me to blog more, it's time to share that with you!

We've been looking at apartments and Human Entrance has found us a really awesome one that fits our needs perfectly. It's available June 15th, and we're drawing up contracts now. It comes with all utilities in the rent; including internet! And apparently swedish internet is cool, so this is very awesome. It's also 100% furnished, so huzzah :D

The apartment itself is right next to the current office, but about 30 minutes walk away from the new office (by the time I'm moving, they'll already be in the new one. Probably.) Located on the cool island-thing of Södermalm, I can tell it's going to be a cool area to live in!

Living Room 1 Living Room 2

Assuming everything goes well, I'd likely be moving there on the 4th week of June. My fiancee Ola will join me probably during the first week of July. We're very excited, and I definitely can't wait to start this new life! Very scary too. Moving to a whole new country!

I'm going to miss my family back here in Shrewsbury, but I'll just have to come fly here every now and again to say hi. I also recently just found out that there's a surprising number of Shropshire based redditors who have been hiding until now, and one of them suggested an arbitrary "going away" party... but I'm not so sure I'd be brave enough to attend :D People are scary, man!

That's it for ...

Continue reading

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's both scary and awesome. Mostly scary. But pretty awesome. And scary. Oh god.

We're looking for a place to live now, and it's not easy. From what we've been told, finding an apartment in a populated area in Sweden is like finding a "you've won a free ipad" advert that won't steal your credit card info. Anyone have any advice or know any way of helping out? I'd appreciate it!

The rest of the Bukkit guys got hired (Grum, EvilSeph, Tahg) but won't be moving just yet. I'll be foreverabone in Sweden! We're set on going to visit the Mojang offices again towards the end of this month, so that'll be fun!

In other ...

Continue reading

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 should be very simple :)

What The System Is

The new system is a tool. It's something to use in the background and just forget about it. It's something for mods to implement silently, and it will immediately grant them 100% protection from now until the future against any conflicts on a network level. You're guaranteed that they will never interfere with the client/server if it's running something else, and that other mods will never interfere with your mod in return. You're safe in knowing that it's efficient, and you'll never waste a single byte sending data to someone who doesn't know what to do with it.

What The System Is Not

It's not a replacement ...

Continue reading

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 together, and try to make things a nicer experience for everyone - the users, the client modders, and the server modders. Most importantly, those who fit in all of the above!

One of the biggest issues with client and server modding is that having both can be hell for your users. If you have a server mod that needs a client mod, if a user without the client mod tries to join then they'll crash with seemingly no cause. Ditto for users with client mods joining a server and crashing themselves, because the server mod isn't compatible with that client mod.

Honestly, this whole thing is a mess. I'm sure most people will agree with me here. There are attempted workarounds, sure, but ...

Continue reading

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 am not an absolute authority over the meaning of any of these values. In addition, the protocol is very likely to change in the future. In the case that it does change, I'll update this post (and make a new one saying the changes).

It's also designed to carry a custom 4 bytes (a single int or 4 chars, whatever floats your castle) between requests so you can easily pair-up any data you receive with a request that you initially sent.

Every packet you send must be prefixed with two magic bytes (0xFE, 0xFD), followed by a packet-type (again, a byte). There are two current packet types: 0x00 and 0x09. 0x00 is responsible for actually giving you the status of the server but ...

Continue reading

Blizzcon, Minecon and 1.9!

Yay, it's almost that time of year again! Where I spend over a full day travelling to meet some friends at blizzcon and waste all my money :D

I'm getting my flights, hotel and blizzcon tickets paid for by Curse, so this year that's a huge load off my mind. I got my flight info through yesterday... doesn't look so good. 3 stops both ways, and each one is in US :( I don't like being manhandled by US customs!

Unfortunately only a couple of my friends from MMO-Champion will be there this year, but I should see a bunch of other people whom I know and it should be a lot of fun. Any of you guys going too? :D

I won't be working on Bukkit while I'm out... unless mojang release while we're out and then I'll have to. But let's hope it doesn't come to that. I go on holidays to avoid work, not to find new scenery to work in :(

Speaking of, I have a nasty feeling that Notch wants to release Minecraft live at Minecon in november. The entire Bukkit team will be there, so it may look like we're all going to have to work together in person to get that some. Should be... interesting!

1.9 should hit us fairly soon, and we've been doing everything we can to prep for it. It shouldn't be as large of an update as 1.8 was, but it's still fairly big in terms of code changed. I managed to get a build of Bukkit working on 1.9 pre-1 but I decided instead to work on optimizing our deobfuscation stuff, which means I have to redo 1.9 pre-1 but it ...

Continue reading

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 there's always one of us awake for the major hours, but times like this it's just not possible for anyone else.

What's a bone supposed to do, but update the server by himself? First things first, though, is to tell everyone DON'T PANIC and that I'm working on it. Done! That wasn't so hard. Things might be easier than I expected!

So, to the actual updating. We have a top-secret-ultra-sensitive-really-hackish 3 step process of handling updates. Four, if you count the pizza time afterwards. The first two steps are essentially deobfuscation, and the third is almost rewriting the entirety of Craftbukkits net.minecraft.server section. That's a whole lotta code. We have some very fancy tools written by ...

Continue reading

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 the consumer amount of work to about 5 minutes, and seeing people complain about that when I'm about to spend an entire week crawling through obfuscated code line by line to actually make it possible... it does make me sad :(

But we'll still keep at it! And hopefully, we'll make this update as seamless as possible and as fast as you can imagine :)

Continue reading

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 but none remotely coming close to fully explaining the 100% CPU. We were all too tired and too worn out to find this, but we couldn't test without it. Tricky situation.

We decided to push what we had of the update live, and let the community try dev-test it for us. We usually don't do this so early, we like to at least know that the basics work before letting other people look at it, but we didn't have much of a choice.

And then minutes later, a wild patch appears! Patch uses CPU fix. It's not very effective! Enemy server feints.

Seems Mojang, too, couldn't find the problem so easily. They managed to release a 1.6.4 a ...

Continue reading