![]() |
You may remember that our Twenty Sided Minecraft server is down. Curses!
Minecraft servers need two things:
- A machine with lots of upstream bandwidth. The server pumps out an unbelievable volume of information. No really. It’s ridiculous. Get four people in there just wandering around and checking out new regions and find out how fast you run out of outgoing bandwidth. According to Clint, “The Minecraft server uses about 400GB of transfer per month, and needs roughly a 4 or 5 megabit upload speed to be lag-free.”
- Hardware. The hardware requirements of a Minecraft server are so strange. It’s very much a big iron situation, where you need a decent machine but not really a cutting-edge machine. You need memory and CPU, but you don’t need graphics hardware. This is a freight train, not a racecar.
Clint has secured us #1. He’s procured a line with lots of available bandwidth for the very reasonable price of $free. The connection is at MIT, which increases the risk of having the server become a sentient robot with the mind of a creeper, so there’s that. But it’s free… so. Now all we need is a machine.
Clint was talking about putting up the Twentymine PayPal button again. The nice thing here is that this would be a one-time drive. Once we have the machine up, there should be no further costs. However, someone might be able to provide a machine outright. So, I’m going to put the PayPal button here, and we’ll see where the discussion takes us. A reminder that this PayPal goes directly to Clint and is used exclusively for funding the server. I never see the money, and as far as anyone knows Clint isn’t using it to build himself an army of assassin droids.
Programming Language for Games

Game developer Jon Blow is making a programming language just for games. Why is he doing this, and what will it mean for game development?
Dear Hollywood: Do a Mash Reboot

Since we're rebooting everything, MASH will probably come up eventually. Here are some casting suggestions.
A Telltale Autopsy

What lessons can we learn from the abrupt demise of this once-impressive games studio?
The Best of 2017

My picks for what was important, awesome, or worth talking about in 2017.
The Biggest Game Ever

How did this niche racing game make a gameworld so massive, and why is that a big deal?
Well what’s the point of donating then, if there are no assassin droids?
/sarcasm
Here’s hoping enough money is made to do this; I’ll be donating when I get more money, go go starving students!
Shamus, you know he’s TOTALLY building that army. Or it might be one of the other guys in game.
I for one welcome our army of assassin robot overlords, as long as it means that we get the minecarts, boats, & survival world we’ve been wanting.
DONATE PEOPLE!!
The more money Clint gets, the better machine he can build, and the bigger the world can be and the more players we can have. All wins!
Overlords? Pshah. You’d need to program a completely different set of criteria for governing than for murdering with nary a sound in the light or dark.
I guess you could have overlord/governor bots that have some combat protocols, but if you just want specialized assassin bots handy might as well just keep the former on the management and organizational side of things.
I might be more willing if I thought Minecraft was a game :P.
I do wonder how it can eat that much bandwith, though. 400GB a month is ~40KiB/s per user if that’s for 4 users average. That’s somewhere between bottom quality webcam video and super high quality audio! It seems to me the entire twentysided world state could be sent in less than 400KiB, so I can only imagine either the datastream is using a terrible encoding (say, an XML encoded string !), or there is no caching going on at all. The most obvious way to do that is to tag terrain blocks with a world revision number, and have the client send it’s last known revision, so caching shouldn’t really complicate it at all. Maybe updates are pushed out too rapidly, so the packet headers swamp the actual data size? But this is a question for someone with Minecraft, a packet-sniffer and too much free time, and I have none of those things. :(
My bet’s on the coding. After all, it’s not like the game is adequate on other resources either (insane graphics toll for what you see).
I imagine it’s a case of the game having to dynamically and continually update the world state. Remember that we’re not just talking about the locations of a few players, we’re talking potentially hundreds of AI creatures, the state of every block at every moment, etc. I imagine it’s also just nowhere near as optimised as it should be (for example, no reason to simulate AI creatures if nobody’s around, no need to update the state of a block unless it’s been changed. Seems like it would be better, especially now that it has a real dev team, but I just can’t think of anything else that would lead to such high bandwidth use.
Not to underestimate the dev team, but if they want to optimize what’s been done by one guy to this point, they’ll have a lot of digging through one-man-band code to do to get there. I’d expect it to be a slow process.
It’s not just “a few” players either. I haven’t been on in a while, but back then the cap was at 20 players, and we hit this almost every day for a multitude of hours. I’d imagine the Survival server would garner a similar activity (but taking from Creative) once it launches.
AI et al aren’t ran across the entire world, btw. The game only loads a certain number of chunks around a player. Chunks that are not loaded have no AI activity, weather, running minecarts etc. Still, the game loads a fairly large amount of chunks, and players were scattered all across the map most of the time, so there wasn’t too much overlap in chunks-to-load either.
I don’t know how it manages to eat up as much bandwidth as it does, but it absolutely does.
My DSL at home is on a plan with 768kbps upstream (well, “up to 768kbps”…I generally get closer to 720kbps) and I was only able to support three remote players at a time. This is the same connection that I used to comfortably host a 12 player CS:S server. Adding more players led to unbearable lag, where players would wind up being 30-60 seconds behind with about six people connected.
My friends and I wound up just springing for a hosted plan. A small price to pay for an infinite amount of entertainment, I say.
Dude, you fail to grasp how vast our Minecraft world has become. Just the zipped world backups are taking up over 250MB each. There’s a lot of data there.
That’s not to say that it’s as optimized as it could be, but “the entire world could be transmitted in 400KB” is a gross misrepresentation.
Around how many user modified blocks? I’m assuming 100K – 10M here.
EDIT: That is with a large percentage of easily exploitable repetition as well. Also, getting it down to 400K would probably take more CPU to compute than it would be worth to do live, so it would be precalculated offline, then deltas from that state sent after. That and I *could* be totally wrong, it wouldn’t be the first time :)
I’m guessing that when it transfers data for a chunk, rather than transferring a nice, simple 32-bit integer “seed” which can be reassembled into the proper chunk (or even generating all the default terrain on the client’s machine), it simply generates the thing, then transfers the block manifest as an array of one-byte “char” datatypes, or similar.
Much faster would be to transfer a seed followed by a list of modified blocks – while coordinates would be needed for each block, you’d need half the chunk to be modified from baseline in order to eclipse the speed requirements of transmitting the whole thing – and even then a simple flag bit could allow you to switch transfer modes (to a simple manifest of blocks) when needed.
For reference, a 16x16x128 chunk is 32 kilobytes of raw data. 250 megabytes is 7812 chunks, roughly.
Except that there are, on our current map, multiple structures going from bedrock to near the top of the map that are WAAY bigger than 16×16. I’m thinking of many of the FenixHQ projects, the snowglobe, my citadel, my current project (a lot of glass & lapis lazuli blocks (not ore)), and many others. Which means that using the seed probably wouldn’t gain much on a heavily populated server. I’ve seen some servers where NOTHING near spawn is natural.
I suspect that certain mods don’t help: things like superpick, which instantly destroys blocks, has to cause problems, since it means that you are needing to send more data to the server.
I have a suspicion that changes are all verified via server before someone else sees them or before you actually get to interact with the new state. Hence mining too quickly can result in a lot of rubberbanding and reversion. Placing a lot of blocks too quickly can lead to dissappearing blocks (and that is made worse if you see them disappear and try to place one there to ‘fix’ it–it has to verify that with the server, and then you end up with even more problems. That checking in process is probably very requirements in terms of each block, but when you have someone mining through THOUSANDS of blocks in a few hours, it adds up pretty quick. Multiply that by all the players on the server, and you end up eating through a lot of transfered data in a hurry.
The issues described in the third paragraph weren’t around prior to Hazenet going whack, though, so that can also just be related to our server being sub-optimal.
There is cache-ing.
Already donated.
builder of Shamus’ ARCH enemy.
Statement: The PayPal goes directly to The Master, or as you call him, Clint. There is no evidence suggesting that the demise of meatbags is imminent.
Interrogative: Do you really think The Master would build an entire army of assassin droids when one is clearly sufficient? Do not be absurd. May I kill this one Master?
I spent a good 30 seconds trying to figure out which Fallout character you were imitating.
Did you eventually figure it out? Or is the word “meatbags” not enough to indicate the imitation of an HK-series assassin ‘droid?
Yes, I got it. :p I blame waking up about 5 minutes before reading.
Statement: I was wondering if anyone else would do this simply because Shamus mentioned “assassin droids.” Grievance: It is, however, far easier to speak as an HK-50 model, as they compensate for their inferior chassis and amateurish assassination protocols with the ability to use adjectives, which reduce the amount of time needed thinking of appropriate nouns before finally giving up and using “statement.”
So, I’m assuming Clint goes to MIT, then. Does he get hardware at the MIT flea market?
Possibly. But there’s LOTS of refurb hardware out there if you don’t need top-end, bleeding edge technology. If you want something that was cool four years ago, it’s cheap. EG, it’s perfectly possible to find a 2U chassis, with twin 3.2GHz Xeon processors, 4GB of RAM, with six 36GB 10k SCSI drives stuffed in it, for less than $250. Nobody wants them because they run at about 900 watts and 95db, when a couple of blade servers can do the same work almost as fast in 200 watts and 75db.
That actually sounds quite like the machine I was about to offer:
3.2 Ghz and 2.8 Ghz Xeon (no, I don’t know why. It was meant to be 2×3.2Ghz)
4GB RAM
Hard disks – I don’t remember, think it’s 2x internal SCSI
Gigabit ethernet
Sounds like an airplane taking off.
1U
The downside is it’s in Ireland, and DHL says it’ll cost €130 to ship to the USA.
Any use?
Edit: Heh, realised how that might sound. If you want it, I’ll ship it and you can pay me for shipping after it arrives.
No, I don’t go to MIT. One of our users has connections there.
I think you deserve a gold box for your efforts, regardless.
Well, I guess that’s why they say what they say about assuming… Still, the MIT flea market’s a good place to get older components… 300GB HDs for $20 a pop, stuff like that…
Donated. Here’s hoping the big box is done soon.
For what it’s worth, we currently (as of 7:26AM PST on the 9th) have $481.47 in our virtual tip jar. The more we get, the better machine we’ll get. If we get enough, we may consider buying two machines so we can have one dedicated to a survival server.
Clint
I want an update! How much do we have now?
Wow, people have really donated. We’re now up to $838.33. At this point, we’re planning on buying two servers with the money and using one of them for a survival server.
Clint
I’m so excited!
Why not just run multiple instances on the same machine? It’s got more than enough horsepower. Simply buy one better machine, you’ll get lower power consumption, and it’s still powerful enough for your needs.
When I first heard of server performance issues I wrote something about it. I then noticed it was replied by somebody.
Bad to see those issues have not been solved in so much time, I seriously hope that the CPU performance problem is at peak load because if it is with 4 players then that would be mind-boggling at best!
Can you share some load graphs? I think that would be interesting.
Let’s put it this way: I was just playing on the current connection & host (it’s not totally dead). One person is okay (not great, mind you), 2 people not much worse, as we were working in the same area. Then we hit 3 & 4 people, and the lag got VERY VERY noticeable–with three of us working nearish to each other (for the record, we were converting the twenty metro to powered rails, even though minecarts are unusable due to the lag they induce).
Before hazenet got bought out, we’d sometimes have 20 people on with only minimal lag. Then updates to Minecraft happened, and hazenet went supid slow, and now with 4 people it’s painful at best.
<C++ elitist ass mode>I blame Java.</C++ elitist ass mode>
….so you use HTML tags to signify this?
This actually stings quite a bit, cause I was there during the original convo between Coandog and Greg and ON THAT VERY DAY, I’d just given my friend an old box w/ dual core/mobo/2GB of ram that had literally been just sitting in the corner for half a year. I actually remember offering it a while back, but w/o a cheap place to host, it wouldn’t have mattered. ‘-_-
What if the assassin droids run the server also?
Well I for one am willing to donate and join the Minecraft legions, but I must first procure funds.
Until then, good luck!
If anyone deserves an army of assassin droids, it’s Clint. We should get the Minecraft server up first though, then make another paypal for that. Priorities, people!
I was on twentymine last night, showing a friend around, that first reaction is always priceless. And yeah, with only a few people on the lag was unbelievable.
I wish I could help, but I am poor… you know what, screw that. I have enough to buy games, I have enough to help with this. How does paypal work, again… ok, apparently it doesn’t. Damn it. I’ll try again tomorrow, I guess.
Best wishes anyway, hope this does culminate in a revival of twentymine. Can’t think of a better home for it than MIT.
This is completely unrelated to this topic, but i have to say it somewhere. Shamus, you made me want to try switching the taskbar around, and it feels like a different computer now. It’s deeply amazingly satisfying. Thats weird… but anyway, i love how pages now have their left edge of text/pictures/videos almost directly on the edge of the bar. It doesn’t waste any space. Although i did have to get used to scrolling horizontally.. But amazing pay-off
Agreement: I did the same thing. Addendum: My only complaint is that Vista’s taskbar isn’t nearly customizable enough; I’ve been spoiled by my Droid, and want to do things like turn the clock into an icon rather than text and move the Windows button back down to the bottom. (Query: Why does moving the taskbar to the left move the Start button to the top? Did someone honestly think that was a good idea?)
Clarification: This post was supposed to be in reply to MrWhales, above.
Love the middle-less trees there, Shamus. What, did you decide to chop them down, then get distracted by a flower, or something?
I do that sometimes. Well, not getting distracted. But I’m chopping, chopping, chopping, and *ding* hey, I have 64 woods; time to stop. Never mind that floating tree top. Mild OCD: a heavy burden but good for everybody else’s amusement.
I have an entirely different but related OCD, and that is to clean up each and every floating canopy. Way back when leaves did not deteriorate, this was… mildly annoying at times.
The most efficient method, before leaves decayed, when logs would still trigger the eternal fire bug, the most efficient way of logging large amounts would be to simply set everything on fire, then go clean up the burning logs.
It’s amazing how often setting everything on fire is the best solution to a problem.
Suggest rather than buying hardware you just look into renting a VM instance on Amazon EC2. For what it will cost you to buy hardware, you should be able to afford many months’ rent on EC2, and you won’t have to guy buy MORE hardware if you need to scale again.
We looked into that. The problem is that Minecraft is an absolute hog — it requires at least 2GB of dedicated memory, an amount for which Amazon charges a *lot* of money per month. This way, we just have a single one-time cost, and can host the server indefinitely.
Clint
I use my windows 7 taskbar with ‘combine when taskbar is full’ set, and vertical, made as thin as possible. If you have more than one window open for a given program, you just have to remember the order of them. it really helps, since the windows 7 taskbar is enormous when horizontal on my main display. I’ve been doing it for years.
Hey I was wondering how much money has already been raised and how much more your in need of. I am willing to donate to get the twenty mine server back up and running.
actually is there anyway to contact the person im donating to talk with him?