Minecraft

The save format is well described in the wiki, apart from that I made it from scratch. I haven’t done any of the special cases like half-blocks, steps or liquids, so it’s just a big load of cube faces.

It is indeed. Someone grabbed the save file and wrote his own renderer for it using ray tracing:
http://www.devmaster.net/forums/showthread.php?t=16540

I just saw MineCraft on french TV ;D. Well it was very short and the channel is called “NoLife” but still :wink:

Has Minecraft really grossed more than £4 million? (£60k/day??)

yup, it has over half a million sales now (at €10 each) and counting, its not even reached beta yet.
Its become the most successful indie game ever.

I heard minecraft’s core code is really bad. I haven’t looked at it myself, because I’m not into modding.
Especially the server should be bad, because of multiple threads per. connected client - can that really be? :persecutioncomplex:

Maybe this is a bit offtopic but… what’s wrong with that?

I’ve got two threads per connected client as well, one that constantly is listening and one that is looking for messages to write.

EDIT: corrections.

The old days of trying to avoid thread-per-client are long gone. Plus the servers don’t actually have that many clients on them.

Cas :slight_smile:

Max of 32 players-ish is like 64 threads, not really a big deal for a dedicated machine. Don’t get me wrong, the Minecraft server eats memory like nobody’s business, but the point is that it’s relatively stable and most machines can run it.

But isn’t having that many threads running bad software architecture? Couldn’t Marcus have done, with a loop that updates each player? <-- Where I come from, that is the only (legit, and “correct”) way to do it - please correct me if Im wrong. I’m not trying to offend anyone.

No. What happens if one player has a bad connection? His lag will delay all the other players’ updates.

You can do one-thread-updating-everyone by using the asynchronous IO stuff in java.nio, but it’s more of a pain in the bum to get working and you don’t end up being any faster.

Until not so long ago threads were perceived as being relatively heavyweight. However, modern OSes context switch between hundreds of threads every millisecond without any trouble now, and the amount of memory a single thread requires has become a vanishingly small amount of the total footprint of a typical application anyway. Couple this with a lot more CPU cores available than a few years ago, and we’re looking at architectures coping with hundreds of serverside threads being perfectly sensible.

What’s more, it tends to work properly instead of the curious behaviour of NIO-based approaches :wink:

Cas :slight_smile:

pretty nice interview of markus here.

[quote]I chose Java because it’s really fast to develop in, even if it’s a bit verbose at times, and because applets were starting to become much less annoying than they had used to. Without something like Lightweight Java Game Library, it wouldn’t have been possible to make a game like Minecraft at all in Java.
I probably could’ve made the game in C++, but then I wouldn’t have had the browser-friendly applet, which I think is a large part of the success.
[/quote]

Very true!
I’ve helped developing a stress-test tool for the company where I work, and that happily spawns more than 1000 threads that all connect to single server without perceivable problems (and trust me, we checked!).
It does have a memory overhead, but considering the scale of things even that’s not so bad.

I especially found this part of the interview very interesting:

“Why make so much of your game available to buy before it was finished?
I wanted to work on games for a living, and I realised that the biggest obstacle to that is that people would have to actually pay for the game. So I decided to just get that out of the way as early as possible. And why not? If it’s fun, people might be willing to pay for it. I think it’s a really interesting model for studios with small budgets, and it also lets you have a much more personal relationship with the players instead of just developing the game behind closed doors for two years, then hoping it’s good.”

Agile game development pur sang :slight_smile:

600.001 sells! Congratulations on making 6.000.000 euro (that’s a lot of 0’s!) on Minecraft! :slight_smile:

If I could make a game that’s one hundredth as profitable I’d be really happy :wink:

Mike

Hehe, I made about one 500th with games and I was quite pleased with myself until Minecraft came along :wink:
But what I’ve done is less than 500th the fun of Minecraft, so I guess I can’t complain…

“Correct” and “Right” are two different things. The most elegant solution may not be the most practical, or useful one.

Yesterday it passed 700.000 sales and there is no slowing down. 100.000 sales (a million euros) in 22 days. I wonder what will happen when the price soon goes up to 15 euro, will it drop or stay the same?

Mike

Reaching World of Warcraft numbers soon :o