Live data from Hacker News

How we built an auto-scalable Minecraft server for 1000+ players

worldql.com

111–120 of 145 posts

Re: How we built an auto-scalable Minecraft server for 1000+ players

#111
post #100
post #99

Earlier quoted context omitted.

Indeed, it sadly looks like it comes with some custom non-commercial license though [1], rather than something more standard like the SIL Open Font License [2]. Feels like an odd choice for a non-profit entity, but non-commercial clauses tend to creep in with good, idealistic intentions as it can be difficult for those new to open/free culture to realise how hairy and counterproductive they can be in the end. [1]: ht…

I don’t know if this is correct. I’m getting Atkinson Hyperlegible from Google Fonts and it seems to allow commercial use: https://github.com/googlefonts/atkinson-hyperlegible/blob/ma...

I think you are correct. What probably happened is that I read the license wrongly when it started talking about “sales” (FSF apparently has a note related to this “oddity” [1]). Having a second look at it, I now think it looks a lot like the SIL Open Font License. Thank you, I stand corrected.

[1]: https://www.gnu.org/licenses/license-list.html#Fonts

Re: How we built an auto-scalable Minecraft server for 1000+ players

#112
post #67

Being able to serve 1000+ players in a spatial "MMO" game is like the holy grail of netcode programming... > Here's a demonstration showcasing 1000 cross-server players, this simulation is functionally identical to real player load. The server TPS never dips below 20 (perfect) and I'm running the whole thing on my laptop. If it can run on one laptop, why does it need horizontal server scaling? :P You don't really kno…

> Being able to serve 1000+ players in a spatial "MMO" game is like the holy grail of netcode programming... What do you mean by holy grail? Is it not something that's already accomplished by several games/MMOs? Unless "spatial MMO" means something specific here.

With spatial I mean that the players have a position in the game world, like x,y,z coordinates. Most games solve it by dividing the world into shard/instances/zones. The article mentions this and the issues you get. There are no game that I am aware of that is able to handle 1000+ connected players (1) nearby like in the "wall of copycats" in the article. Most games have a limit of around 100 players on a beefy server.

It's also about he level of trust you are willing to give the clients, you can for example offload all logic to the clients and just have the server broadcast all messages. But then you will have a problem with cheaters that use modified clients.

The same "holy grail" exist in database too, where you want low latency, high throughput/concurrency, and high availability. Where the solution is, just like in "MMO" games, to use "sharding".

1) Battle of B-R5RB in Eve online had 2,670 players on the same shard according to WikiPedia. Their solution to the problem was/is to lower the game physics tick-rate.

https://en.wikipedia.org/wiki/Battle_of_B-R5RB

Re: How we built an auto-scalable Minecraft server for 1000+ players

#113

Earlier quoted context omitted.

The original question was: > Is there a specific reason why Minecraft hasn’t been “adapted” from the original game to a robust design that could scale to larger worlds and player populations before your project ? The answer is because it's a lot of hard work. I am happy that a bunch of smart and talented people are working really hard to optimize Veloren. Good for you. I hope you help push the state of the art.

We have plenty of contributors who have never even programmed before, and certainly have no experience with parallel programming, and the bulk of our physics parallelization ( easily the trickiest part to make concurrent) has been done by people who aren't professional programmers. And I don't think I can recall a single change (proposed or implemented) by any of these contributors that resulted in a significant redu…

You're way too humble. Why are you downplaying your achievements with Veloren? It's a miracle made by geniuses and should be advertised as such.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#114
post #37

Earlier quoted context omitted.

Pretty much no video game engine scales with cores. There are too many dependent systems. There's no game engine that I'm aware of that effectively uses more than a couple of cores for gameplay simulation. Distributed physics is a well understood problem with no "solution". Just different trade-offs. This solution is cool, but it's not novel or anything. Minecraft is particularly challenging because the entire world…

Couldn't Minecraft chunks run fairly independently, with some message passing when something needs to move between chunks?

Imagine two players fighting on a seam between chunks.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#116
post #113

Earlier quoted context omitted.

We have plenty of contributors who have never even programmed before, and certainly have no experience with parallel programming, and the bulk of our physics parallelization ( easily the trickiest part to make concurrent) has been done by people who aren't professional programmers. And I don't think I can recall a single change (proposed or implemented) by any of these contributors that resulted in a significant redu…

You're way too humble. Why are you downplaying your achievements with Veloren? It's a miracle made by geniuses and should be advertised as such.

Not sure if you're being sarcastic, but either way, I'm not saying there aren't some very impressive developers contributing to Veloren, or some really tricky and highly optimized code. But for the parallelization part, we're really not doing anything special. Pretty much all the cleverness there is in the libraries we use, and newer programmers can parallelize stuff about as easily as the more experienced devs.

Of course, if you wanted to say that libraries like crossbeam or rayon are "miracles made by geniuses" then I'd be more inclined to agree :) But there are similar facilities in other languages too, e.g. folly and OpenMP for C++.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#117
post #106
post #104

A couple of weeks ago I made https://playmcnow.com with the opposite idea - have many super lightweight servers for small groups of players. Instead of saying to friends “register to digital ocean, pay $5 and get a Minecraft box”, I can host thousands of worlds for them. I made a custom minecraft proxy (similar to bungeecord but A LOT less resource intensive) that starts the real server when someone attempts to conne…

This looks very nice, would have loved this back when I played more MC with friends. I havent tried it since I am not on my gaming computer, but how would this work in practice? Will I have access to the server to e.g. download the world I'm playing on as a backup?

I haven’t gotten around to implementing such functionality. Although I wish I could monetise it, right now it’s just a hobby project and don’t put much work into it.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#118
post #105
post #102

Earlier quoted context omitted.

Ehh you can get cheaper compute in Fremont if you're willing to rent >=1 rack. I'm guessing you only think €23.53/mo is cheap because you've been getting reamed by AWS pricing :P

Can I have a link please? I'm a sucker for cheap dedicated servers :).

I use he.net/colocation

To be clear, I'm taking about racking your own servers, not cloud "dedicated servers"

Re: How we built an auto-scalable Minecraft server for 1000+ players

#119
post #31
post #12

Earlier quoted context omitted.

I rent a small Linode to run a minecraft server for my extended family. Sometimes it struggles to keep up with just a half dozen of us, and when I tried swapping from a spigot based system to a forge one so the kids could have mods it was basically unplayable. I can't imagine scaling out to thousands of users, this was some amazing work. While developing this did you come up with any best practice recommendations for…

It might be too pricy, but if you go to about 25usd/month, you can get a dedicated server with an i7 from hetzner server auction. These cheap boxes don't have ecc ram etc - but should work well for things like this. https://www.hetzner.com/sb?country=us

If you go with Oracle Cloud, you can get an 4-core, 24gb RAM aarch64 server for free. I've been using it for minecraft and it performs excellent, especially combined with PaperMC

Re: How we built an auto-scalable Minecraft server for 1000+ players

#120
post #98
post #31

Earlier quoted context omitted.

It might be too pricy, but if you go to about 25usd/month, you can get a dedicated server with an i7 from hetzner server auction. These cheap boxes don't have ecc ram etc - but should work well for things like this. https://www.hetzner.com/sb?country=us

On the page, one option advertised is for €23.53/month with an Intel Core i7-4770, 2 TB HDD, and 32 GB RAM. What’s the catch? How is it possible to rent such hardware for so cheap?

They are second hand servers - if you want brand new servers you pay a setup fee, and more pr month. Once you upgrade, or cancel, that (once new) server goes into the auction at a lower price.
Post reply on HN