Report article RSS Feed Lots of stuff going on behind the scenes

The last couple of weeks have been pretty crazy. Lots of different people have wanted to talk to me, and I'm spending a lot of time trying to decide where to take Minecraft and Mojang (the company making Minecraft).

Posted by Kizzycocoa on Aug 21st, 2010

The last couple of weeks have been pretty crazy. Lots of different people have wanted to talk to me, and I'm spending a lot of time trying to decide where to take Minecraft and Mojang (the company making Minecraft).

I'm going away on a personal trip to Finland next week, and the day after I get back, I'm flying to northwestern USA to speak to some of my idols.

I like being totally transparent, but since this involves third party people, I don't know how much I can say; but I can tell you what I want.

I would love to hire some people and set up a small development studio in Stockholm. This would include additional programmers, and someone in charge of the website and community features. And an artist that can make a nicer glass texture. I am not interested in changing the openness of how Minecraft is developed, nor do I have any intention of selling the product to anyone else; I want to be the one developing it.

My development speed has gone down lately because of all this crazy cool but scary stuff happening, but I promise you it will go up again soon, regardless of what happens.

As to my trip to the US; I will be in Bellevue, Washington from August 30 to September 2. I don't know exactly what my schedule is yet, but I'd be more than willing to meet players from that area as long as you promise not to be creepy. ;) We can try to work out the details over twitter.

I'm also working on server-side inventory

There are a few stability issues with the client that worry me, and I will try to sort that out before I go on the trip to Finland next week, but more important is getting SMP more playable before then.

I'm currently working on server-side inventory, and it's going relatively well. I'm currently pulling on hard coded strands of spaghetti code, seeing what moves, then refactoring that out into a better designed code. See, when I first wrote the inventory, it was just a test to see if it was fun, and I've stuck to that code ever since since I never really had to change it.
I probably would've saved myself some time if I had fixed the code immediately when it was still fresh in my mind.

The worst part about refactoring code is that you spend hours working on something only to have it do the exact same thing when you're done with it. The best part is that you feel much better about working with that code in the future. It's very cleansing, in a boring kind of way.

One interesting problem that came up was that of client-side prediction. Since the client is able to accurately predict inventory management 100% (with the exception of crafting, which I'm making controlled by the server, for modding reasons), there's no reason to sync any state other than to tell the server what happens.

Or so I thought!

For example, another player can throw an item at you while you're playing around in your inventory. If you split a stack client side, your inventory might end up being full, but the server thought you had room because of lag, and that item ends up getting lost. So instead of having the server assign new items a specific slot, it just goes “here, take this if you can”, and the client says either “ok, I put it in slot #7” or “no” as a reply.

But then what about chests?

I can either make chest only operatable by one player at a time, or I can make them fully synced by the server, meaning they would get noticeably laggy. I don't want to lock chests to one user, as that's prone to griefing, nor do I want to do the fully synchronous inventory management in them as it really ruins the smooth feeling. I could do some clever rollback scheme where the client will predict moves until the server says that a certain move was illegal (like if two players try to take the same item at the same time, only the first player should get it), but that might get annoying. You see yourself picking up an item, and you place it in your inventory, but then it vanishes.

Oh, also, both the game and the servers have been updated. Since servers don't auto-update yet, you need to download the latest version from the download page.


  • Fixed save-off
  • Ops can now build in the spawn area
  • Added /tell command for players to whisper something to another player
  • The server logs what admin does what, and broadcasts any admin events to all connected ops
  • /list will show a list of connected players to the op who issued it

Unfortunately, the secret this time is NOT the inventory, but I did include the first version of something pretty big for SMP. and a pretty big update for single-player too. You'll know them when you see it.

I also fixed a pile of bugs for SMP like doors acting weird and torches attaching to the wrong walls.

You do not need to explore new terrain this time around.

(development blog links #1 #2 #3 #4)

Post comment Comments
Kizzycocoa
Kizzycocoa Aug 21 2010, 3:03pm says:

I am SOOOOOOOOOOOO hyped for this week off, and I should be disappointed! no friday update, but notch visits VALVe!

and, if he sees gabe's knife collection, then he's "in". then, he can fish for HL2:E3/Portal 2 info. XD

+1 vote     reply to comment
Matt_Bak3r
Matt_Bak3r Aug 22 2010, 8:00am says:

awesome

+1 vote     reply to comment
Killed_By
Killed_By Aug 22 2010, 8:37am says:

Welcome to Finland pal.

+1 vote     reply to comment
SairenSA
SairenSA Aug 22 2010, 9:03am says:

I have a suggestion concerning the Minecraft engine, but don't know who to talk to.

+1 vote     reply to comment
Kizzycocoa
Kizzycocoa Aug 22 2010, 9:41am replied:

minecraft uses java. but, to get a hold of him? your best bet is to contact him via twitter

+1 vote     reply to comment
SairenSA
SairenSA Aug 22 2010, 12:08pm replied:

I'm sorry, I don't have a Twitter account yet.. I just want to suggest some ideas that I have.

+1 vote     reply to comment
Kizzycocoa
Kizzycocoa Aug 22 2010, 12:32pm replied:

oh, he set up some google moderator thing. that takes suggestions for MC.

+1 vote     reply to comment
SairenSA
SairenSA Aug 22 2010, 12:42pm replied:

How can I suggest my ideas to him?

+1 vote     reply to comment
xilefian
xilefian Aug 22 2010, 4:58pm says:

Why don't you just use a hand-shaking method for the item/inventory/client/server problem?
Client1: "Throws Item"
Server: "Item has been thrown"
Client2: "Received an item"
Server: "Item has been received"
Client2: "Inventory full, drop item"
Server: "Item has been dropped"

If client2 disconnects, the server misses out the "Received an item" hand-shake so it drops the item where client2 used to be as opposed to attempts giving it and loses it.

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

News
Browse
News
Report Abuse
Report article
Related Games
Minecraft
Minecraft Indie Single & Multiplayer Adventure
Related Engines
Custom Built
Custom Built Commercial Released Sep 1, 2007