2b2t wants to provide a certain anarchy server experience which would not align with that kind of functionality, spending quite a bit of effort in the opposite direction really, so this project is more about fighting to do cool things on the server than it is about dealing with Minecraft limitations.
There was an interesting base project wherein the true coordinates were only known to the top leaders. All other builders connected through a custom client that offset the coordinates to hide the true location. If anyone became untrusted, they were simply blocked from the client and could not expose the coordinates. There was care taken to ensure the area outside the proxy was never shown, block place directions were randomized to prevent reversing the proxy, etc.
The base apparently thrived for months or years before finally being discovered and destroyed.
It's all based on the seed and coordinates.
[0] Plus you can get live player positions, update markers in real time, etc.
> minecraft://server/loc?w=0&x=0&y=0&z=0
Probably no real reason why not... but I think it'd make more sense to take a snapshot, upload, and then have it viewable on the web.
> And if you want to set up a server where you and your friends can interact with each other and make edits, the server should be able to stream blocks from some backing server, but copy-on-write them to your own local storage.
How is this different from just loading your world in a server and having your friends join?
> If you want to be really awesome, set it up like bittorrent, where you can share the load, so the central server isn't hammered.
BitTorrent isn't going to work. You could shard it so different parts of the world are handled by different servers. But it gets complicated and Minecraft's server software doesn't support doing this out of the box
Because player location, inventory, actions, are all load on the server. That's why servers have player limits.
> BitTorrent isn't going to work.
You and I are talking about different things. I'm talking about serving up the raw blocks alone.
And yes, I know, Minecraft servers don't support static file serving, or streaming from another source, or copy-on-write. I'm saying these are all nearly trivial to implement.
So shareable cloud saves? Who covers the cost for them?
Many are self hosted.
> The difference is instead of only serving 50 people before lowering fps, instead now it can serve much more.
2b2t has 920 players online right now. That's quite a lot for a single instance, IMO.
So, I set up a server.
You put $10 in your Minecraft account.
You load up my world, say 96 chunks at first. 1.15 MB of data.
Let's say you fly around long enough to load 1 GB of my world. That's a crap-ton of flying around, by the way.
You pay me $0.10. $0.09 of that goes to my AWS/Azure egress, and the final $0.01 goes towards the AWS/Azrue storage and my own royalty. That's right - I actually get paid for making a world that you wanted to visit. Imagine that.
Maybe I can't even get that money back out of Minecraft's walled garden. Maybe I can only use that to fly around other people's world, or to buy Minecoins that I can use to purchase mod packs and stuff, to make even more interesting worlds, to attract more players.
Seems like a nice economy, to me.
Minecraft worlds aren't static. Will you be billed to download updated chunks too?
Also what happens if you don't put money into your Minecraft account? Can you still play with others?
> Seems like a nice economy, to me.
On paper, sure. In reality there are only going to be relatively few maps people might actually want to explore. The rest are going to be 99.9999% Minecraft procedural generation with a few player built houses around. And no, I don't think a tiny cut would change that. You're more likely to see people set up servers with that map which are pay to access, have item shops, donations, etc. which actually can rake in a decent amount of money.
There are two hard problems in computer science - caching, naming things, and off-by-one errors.
Yes, I can imagine multiple choices.
1) When you're downloading a chunk, always download the newest version of it.
2) When you're downloading a chunk, download it as it existed at the moment of a snapshot. Heavier burden on the server, to keep multiple snapshots. Perhaps some servers only keep one snapshot. Perhaps some keep one snapshot every 24 hours, but only for 4 days. You only have to keep multiple copies of chunks that actually got modified. And in fact, if a chunk never got modified, you only download a flag that says to let it get generated by the seed.
3) You periodically ask to download chunks, to keep relatively up-to-date. Maybe every hour. Maybe you only stream chunks from the backing server, if you haven't modified them locally. Maybe you choose that locally-modified chunks win. Maybe there's a way in-game to say you want this chunk (and its neighborhood) to update from the backing server. Commands, command-blocks, etc.
> Also what happens if you don't put money into your Minecraft account? Can you still play with others?
I'm not proposing to change anything about how Minecraft currently works. I'm proposing adding something new. Whatever ways you currently play with your friends, you can continue to do that.
But yes, if you stand up a server that streams from my server, and you run out of money, you could get notified you're out of money, and then as you continue to explore, I guess the thing that makes the most sense is that you just use the original seed to generate more terrain.
> On paper, sure. In reality there are only going to be relatively few maps people might actually want to explore.
Okay. Right now, you can visit the Marketplace to pay Minecoins to download maps others have made. If you look at the prices, they're absurdly inflated.
I'm proposing a way more organic and cheaper marketplace. I think a "reddit of cool places to visit" that you just click a link, and you're in someone else's map for as long as you want to be, could be really nice.
Add ways in-game to make a portal to someone else's server... and you're making something really neat.
None of these will work properly. If you do copy-on-write where both the upstream server and local client make changes then the chunks you (or your local client) made changes to cannot be updated from the upstream server. However, neighboring chunks can still be updated from the upstream, which means you get holes in buildings pulled in from the upstream world.
> Right now, you can visit the Marketplace to pay Minecoins to download maps others have made.
Cool, that's the way it should work. A snapshot stored in the cloud that you can run in a server or locally. Before this existed people posted saves online that you could download and play.
> Add ways in-game to make a portal to someone else's server... and you're making something really neat.
Pretty sure this has been a thing on modded (Java edition) servers for a long time now!
If I'm trying to tour one of the beautiful servers that people have made, yes, it absolutely would work for my use case.
I'm sorry my idea doesn't appeal to you.
Acting like it has no value for anyone means you don't understand my use case, or you don't care about me. It may entirely be my fault that you don't understand my use case, but I think you're being obstinate.
Cheers.
You'll be confused by Minecraft in general then. Mojang's core team seems like they never changed a bit in all these years despite becoming a billion dollar studio, for better or for worse. Last time I played it, mods can still make the game run twice as fast.
They used to talk about wanting to store block update relationships to prevent BUD (block update detector) behavior. I didn't like it at the time, but from a certain perspective it would have been an improvement. Instead they spent their complexity points on pointless memory waste.
Hiding bases is absolutely vital. There are groups with goals to destroy what you build and it is completely a core part of the server.
Having a live external map view compromises the gameplay allowing those griefers significant advantages. And they already do find exploits and such to sniff out targets but a live external map would be server ending.
I should be able to give you a URL to some location, and when you click it, it opens up Minecraft, streams the blocks, and you're viewing it.
minecraft://server/loc?w=0&x=0&y=0&z=0
w is the overworld, nether, end, etc.
And if you want to set up a server where you and your friends can interact with each other and make edits, the server should be able to stream blocks from some backing server, but copy-on-write them to your own local storage.
How is this not a thing?
If you want to be really awesome, set it up like bittorrent, where you can share the load, so the central server isn't hammered.
And if bittorrent doesn't really work as a model, then set it up so that "downloader pays" for bandwidth, plus a small royalty for the creator. As a downloader, I get to set up rate limits, etc, to not accidentally spend more than I want to, etc.
This whole 2b2t would cost $2,111.04 to download from AWS, if I'm doing the math right. But that's a trillion blocks. You don't need a trillion blocks to enjoy flying around some awesome maps.