Infinite world size

Kilarin
Member
 
Posts: 778
Joined: Mon Mar 10, 2014 00:36

Re: Infinite world size

by Kilarin » Wed Apr 30, 2014 21:27

TheToon wrote:Mind you, if the engine was particularly friendly to flying devices, that could make sense. But here we have either too much space above us or too few beside.

All we have to do to better utilize the vertical space in minetest is implement some of these ideas:
3D noise floatlands
Skylands

I can't even begin to imagine how awesome MineTest would be if the sky were full of floating islands. As has been suggested, you could even have a game where there was nothing but floating islands filling the entire cube.

And, actually, I think a "space game" version of MineTest, where you were hopping from asteroid to asteroid in a solar system, would be about the only possible implementation where the 64k cube MIGHT end up being a little bit small. But even then, it would take a LOT of empty space and massive numbers of users to explore the whole 64k cube.
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Infinite world size

by thetoon » Wed Apr 30, 2014 23:15

Kilarin wrote:But even then, it would take a LOT of empty space and massive numbers of users to explore the whole 64k cube.


The point is not to explore everything, the point is to BE ABLE TO. Take a direction, walk straight, and feel like you'll never meet the world's end before long.

Once again, "infinity" is only what we should aim for. We're only going to reach "much bigger than now", which would be good enough.

I really don't like comparing MT to MC, but the latter claims worlds of 4.7 quadrillion km2. We should be able to do a little better than 4.096e-12 quadrillion km2.
 

Kilarin
Member
 
Posts: 778
Joined: Mon Mar 10, 2014 00:36

Re: Infinite world size

by Kilarin » Thu May 01, 2014 03:23

thetoon wrote:The point is not to explore everything, the point is to BE ABLE TO. Take a direction, walk straight, and feel like you'll never meet the world's end before long.

I pulled up a test world, started at zero and walked along the z axis as straight and fast as I could for five minutes. Which wasn't easy, there were a lot of cool things I passed that I would have like to stop and look at, and I did fall into a pit once and had to dig myself out quickly, and there was some water that had to be crossed. So, all together it seemed like a pretty typical example of trying to walk a straight line on the surface for 5 minutes in a MineTest world. And in 5 minutes I managed to get 820 nodes forward.

At that rate it would take me 3.33 hours to hit the edge of the world from the middle. About 6.66 hours to go from edge to edge. And that's without stopping to look at anything along the way.

Lets say you want to travel the entire surface of a minetest world, not digging any mines, exploring any caverns, or checking out anything in the sky, but just walking across the whole surface. Suppose you walk across it in lines 100 nodes apart so you could see pretty much everything. That would 6555 journeys from edge to edge, plus one trip along the top edge and one trip along the bottom edge makes 6557 trips in total. That trip would take you 5 years, non stop walking. And thats assuming that you never take any time to stop and explore anything, but are simply traveling as fast as you can. If, instead of playing 24 hours a day you played MineTest only 8 hours a day, the journey would take 15 years. And after that 15 years of exploring, you would still have never been inside a cavern or explored an underground lake or walked around the edge of a lava cave or dug deep enough to mine diamond and mese. If you only play MineTest 2 hours a day, the trip would take 60 years.

I have no objections to making the world bigger if people want to, but I don't play 8 hours a day, and I stop and explore. I could explore the same MineTest map for the rest of my life and never get anywhere NEAR the edge.

I'm not denying that it could be made bigger. I can imagine some games where a bigger world MIGHT be useful. But for all of the games I'm currently aware of, a 65,536 Minetest cube is more than I need.
 

User avatar
HeroOfTheWinds
Member
 
Posts: 470
Joined: Wed Apr 23, 2014 23:16
Location: Hawaii
GitHub: HeroOfTheWinds
IRC: WindHero

Re: Infinite world size

by HeroOfTheWinds » Thu May 01, 2014 03:48

Kilarin wrote:All we have to do to better utilize the vertical space in minetest is implement some of these ideas:
3D noise floatlands
Skylands

I can't even begin to imagine how awesome MineTest would be if the sky were full of floating islands. As has been suggested, you could even have a game where there was nothing but floating islands filling the entire cube.

And, actually, I think a "space game" version of MineTest, where you were hopping from asteroid to asteroid in a solar system, would be about the only possible implementation where the 64k cube MIGHT end up being a little bit small. But even then, it would take a LOT of empty space and massive numbers of users to explore the whole 64k cube.


I certainly agree, which explains my interest in floatlands mods. Even if a "space game" version of Minetest was made as well, the size still wouldn't be a problem unless a method of extremely fast travel was made, like rocket ships. And then you'd have to worry about chunk load times, which would slow you down anyway.

Not to mention your excellent example of how long it would take to explore the whole of the world on a single plane. Plus, it's better when things are ever-so-slightly crowded, since then you can get places quicker to do what you want rather than taking tons of time travelling between two distant points.
Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P
 

User avatar
onpon4
Member
 
Posts: 517
Joined: Thu Mar 21, 2013 01:54

Re: Infinite world size

by onpon4 » Thu May 01, 2014 10:25

Infinite world size isn't really needed, but it would be nice to make it appear infinite by making it like a torus: causing the edges to wrap. People don't really need an infinite world, but just being stopped from moving in one direction because you've reached the edge (maybe because you decided to spend several hours to see what happens if you keep walking in one direction) makes the limitation more obvious, and that makes the world seem smaller/less impressive. It's just the concept of it, really.
 

User avatar
Krock
Developer
 
Posts: 4393
Joined: Thu Oct 03, 2013 07:48
Location: Switzerland
GitHub: SmallJoker

Re: Infinite world size

by Krock » Fri May 02, 2014 09:04

onpon4 wrote:causing the edges to wrap

mapgens could have troubles with wrapping but it would be a very nice feature.
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>
 

User avatar
spootonium
Member
 
Posts: 94
Joined: Fri May 02, 2014 01:38
Location: Down the mine.

Re: Infinite world size

by spootonium » Sat May 03, 2014 13:32

Pushing back the horizon by a few blocks or a few thousand can only serve to delay the inevitable.

I would suggest that the under-utilisation of vertical space that we already have is the greater limitation. It's easy to forget that there's so much potential in the ~30km of y-axis either side of sea-level. What I mean is, that it is certainly easier to wander the surface until you blunder into an invisible wall than it is to mine even 1 kilometre down, or construct a cloud-piercing Obsidian Spire of Awesome.
Paramat (among others, of course) has taken many great strides to remedy that, by demonstrating that Minetest can as easily generate a Rama, Rapture, Ark or archiepelago. But, while we're waiting for him to release whatever mind-bending Möbius-world he's cooking up at the moment, I think it's important to remember that there's already plenty of exploration (and construction) to be done in the cave systems beneath our invisible feet.
I write code. Sometimes, it even works.
 

User avatar
SegFault22
Member
 
Posts: 870
Joined: Mon May 21, 2012 03:17
Location: NaN

Re: Infinite world size

by SegFault22 » Sat May 03, 2014 18:17

paramat wrote:most people find 64km^3 just large enough. I have big ideas and work with megastructures and the world's just big enough for me

Of course, currently people find the world just big enough. But, also consider that there are only a few dozen players (maximum) online on any multiplayer server in Minetest. We frequently discuss how we want a bigger, better community, and ways to make that so. But, if this issue is not addressed, people will start leaving when they find that there is not enough room to build a house, because mega-faction-guy built a huge wall just outside of the spawn protection area, or something.
Consider Minecraft's Gontroller server. Regularly, they have over 300 players online, with enough slots for 500 players. The Minecraft world is around 18 million blocks wide/long, so there is no issue there. But when we consider Minetest's relatively tiny 62000 block wide/long/tall cube, there comes issues if we ever intend to have a huge server like Gontroller (pvp or not). Eventually, cities/claimed territories will pile up everywhere, until there is no room left. The lifetime of the world is inversely proportional to the number of active players online.
Also, we must consider that not all pieces of land are good for cities and whatnot. A huge amount of surface area is ocean, and not many people build over water. Some players are picky enough to keep running around until they find the "perfect spot", but there are not many perfect spots in any Minetest world. Eventually, after many players come and go, after a lot of the land is either claimed or stripped of resources, one will not be able to find a place free from the influence of players. This prevents us from being able to go out and find a place free from the influence of players, and where the chances of someone visiting and ruining the place are negligible. Making the world size much bigger, or simply infinite, will fix that.
 

User avatar
paramat
Developer
 
Posts: 3455
Joined: Sun Oct 28, 2012 00:05
Location: UK
GitHub: paramat
IRC: paramat

Re: Infinite world size

by paramat » Sat May 03, 2014 20:05

Minetest's core mapgen dev hmmmm is planning core skylands and underworld realms, and might also work on the lighting system to avoid higher realms shadowing lower realms, so even without mods there will hopefully be at least 3 stacked realms to inhabit, or even more if i can convince him to make multiple skyland realms possible. If anyone starts to run out of space in a world just think vertical, sky and underground cities seem more interesting to me than the huge but very flat MC worlds.
 

Sokomine
Member
 
Posts: 3890
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine

Re: Infinite world size

by Sokomine » Sun May 04, 2014 00:37

SegFault22 wrote:But, if this issue is not addressed, people will start leaving when they find that there is not enough room to build a house, because mega-faction-guy built a huge wall just outside of the spawn protection area, or something.

That rarely happens. What happens is that the tiny spawn area soon gets crowded and chaotic due to everyone building/claiming land there. When new players join, they stay close to spawn and hit only land that has already been built on or protected by someone. Many complain that they find no place to build on. But that's not true. All it would take is walking a few meters. Even Redcrabs server, that has been up for a long time already and is probably the largest, has more than enough free land for decades to come. Furthermore, good buildings do take some time to construct. Admittedly, sometimes you want a house with nice, untouched landscape around. But there are so few builders out there who can actually take advantage of that that it doesn't matter in the long run.

The problem with "the world is too small" is entirely a psychological one. Perhaps turning the player around by 90 degrees when he hits the edges might help already :-) Of course borders draw attention. If players know that there's the end at ca. 30 km, they'll set off for there.

paramat wrote:Minetest's core mapgen dev hmmmm is planning core skylands and underworld realms, and might also work on the lighting system to avoid higher realms shadowing lower realms, so even without mods there will hopefully be at least 3 stacked realms to inhabit, or even more if i can convince him to make multiple skyland realms possible. If anyone starts to run out of space in a world just think vertical, sky and underground cities seem more interesting to me than the huge but very flat MC worlds.

Hope that gets implemented. We might have a "normal" world at ground level, a sky world with a flat mapgen (that's more convenient for most players who want to build), and perhaps a third one which is more survival-orientated.
Apart from that, perhaps it might be a good idea to provide an expandable sky platform as a mod. Whenever someone wants a place to build on, the platform could be automaticly extended in one direction and the land protected for the new player. Or a new player just gets a platform 500m above the last one - we could stack 30-60 such tiny worlds on top of each other.
 

User avatar
spootonium
Member
 
Posts: 94
Joined: Fri May 02, 2014 01:38
Location: Down the mine.

Re: Infinite world size

by spootonium » Mon May 05, 2014 12:26

paramat wrote:Minetest's core mapgen dev hmmmm is planning core skylands and underworld realms ...

Well, this is good news! Especially about the "shadowing" problem.

On another train of thought: perhaps, if all that folk really want is more useable surface area, then generating the world as a cube-shaped planetoid might be an interesting way to provide that. Per-face physics and the co-ordinate system would be a problem, though. :-\

Another possibility might be to implement something like a "Stargate" between multiple maps of the same gamemode on the same (or indeed different) servers. That would provide theoretically infinite world size, limited only by the capabilities of the server(s).

Still another blue-sky thought to throw out there: if it is indeed true, that the functional lifetime of a map is inversely proprtional to the number of players, then perhaps rather than a server-client architecture, with the entire map located on one machine, perhaps something approaching a peer-to-peer model. In such a model, the active (populated) chunks of the map could be divided and swapped out on the players' machines, as well as distributing the load of generating & maintaining those chunks. The world size (and rate of generation) would then be scaled to the number of players.

paramat wrote:If anyone starts to run out of space in a world just think vertical, sky and underground cities seem more interesting to me than the huge but very flat MC worlds.


Still the most elegant solution.
I write code. Sometimes, it even works.
 

glenalec
New member
 
Posts: 6
Joined: Sun Jun 23, 2013 01:59

Re: Infinite world size

by glenalec » Sat May 24, 2014 03:22

While I also am not convinced that 64km3 is too small*, you could (at likely expense of a lot of recoding and module breakage) bump the x and y to 24 bits each, giving a world 16,000km square and 64km high. My only motivation for sececting those particular values is 24+24+16 bits fits neatly into a 64bit integer, which may or may not be useful.

*at 1m resolution, at least. I have always wondered what a voxel-world might be like at higher resolutions, such as foot or decimetre blocks.
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Infinite world size

by thetoon » Sat May 24, 2014 12:22

glenalec wrote:While I also am not convinced that 64km3 is too small*,


You all make it sound like I'm the only fool in need of more horizontal space. Fair enough, but there's plenty of cases where it might be useful, and if possible it should be done (that's what I was initially asking : pointers to where I could work improving it). Something like http://www.voxelmars.com/ (based on FOSS VoxelJS) or what Denmark did with Minecraft is currently impossible with Minetest, which is a shame.

I've seen here and there people talking about OSM->MT converters : this is a no-go if we're stuck to something the size of the Paris area.
 

User avatar
aldobr
Member
 
Posts: 316
Joined: Sun Nov 25, 2012 05:46

Re: Infinite world size

by aldobr » Sat May 24, 2014 13:49

Replace current map model with a delta based one.

Now you are not limited by storage.

Maybe use 80bit float values to store coordinates, that would make for a pretty big world.
 

User avatar
sfan5
Moderator
 
Posts: 3816
Joined: Wed Aug 24, 2011 09:44
Location: Germany
GitHub: sfan5
IRC: sfan5

Re: Infinite world size

by sfan5 » Sat May 24, 2014 15:36

aldobr wrote:Replace current map model with a delta based one.

Now you are not limited by storage.

Maybe use 80bit float values to store coordinates, that would make for a pretty big world.

I know of no processors that natively calculate with 80bit floats.
Mods: Mesecons | WorldEdit | Nuke & Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
aldobr
Member
 
Posts: 316
Joined: Sun Nov 25, 2012 05:46

Re: Infinite world size

by aldobr » Sat May 24, 2014 18:34

Basically, all processors since 8087 are able to do 80bits :

http://en.wikipedia.org/wiki/Extended_precision

If you need integers, you can use quads instead of integers...

its not outside the realm of possibility, but needs a rework on the map storage method, or else maps can grow huge even for todays hardware.

a delta engine only stores what was changed from the chunk generator, so most visited chunks will not be stored in the disk.
 

User avatar
spootonium
Member
 
Posts: 94
Joined: Fri May 02, 2014 01:38
Location: Down the mine.

Re: Infinite world size

by spootonium » Sat May 24, 2014 21:09

aldobr wrote: delta engine only stores what was changed from the chunk generator, so most visited chunks will not be stored in the disk.


Do I understand correctly, that this will mean that each chunk will need to be re-generated on-the-fly (and changes applied) every time that chunk is visited?
I write code. Sometimes, it even works.
 

User avatar
aldobr
Member
 
Posts: 316
Joined: Sun Nov 25, 2012 05:46

Re: Infinite world size

by aldobr » Sat May 24, 2014 21:30

Yes, but usualy this means that the chunk will be generated client side...
 

spillz
Member
 
Posts: 138
Joined: Thu Feb 13, 2014 05:11

Re: Infinite world size

by spillz » Sun May 25, 2014 19:31

And you can do client side caching and other tricks to improve performance.
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Infinite world size

by thetoon » Mon May 26, 2014 08:40

aldobr wrote:Replace current map model with a delta based one.


Not even mandatory. Having a big adress space doesn't mean more space would be visited, let alone modified. A simple garbage-collector-like mechanism could simply delete unmodified blocks older than a given threshold.

I'm not sure there's already generation time included in blocks, but it would be much simpler than delta-based solution. And in most cases, probably not less efficient.

Maybe use 80bit float values to store coordinates, that would make for a pretty big world.


Sure enough, but that would make a lot of changes, wouldn't it? Map storage, protocol, server, client...
 

User avatar
BrandonReese
Member
 
Posts: 839
Joined: Wed Sep 12, 2012 00:44
Location: USA
GitHub: bremaweb
IRC: BrandonReese
In-game: BrandonReese

Re: Infinite world size

by BrandonReese » Mon May 26, 2014 13:46

spootonium wrote:
aldobr wrote: delta engine only stores what was changed from the chunk generator, so most visited chunks will not be stored in the disk.


Do I understand correctly, that this will mean that each chunk will need to be re-generated on-the-fly (and changes applied) every time that chunk is visited?


This sounds like a really bad idea. So every unloaded chunk would go through mapgen again as they are visited. Some mapgen's do more than just generate terrain. They create villages, they place special objects, they spawn entities, (things that can't reliably be done client side), with no client side lua, lua mapgens wouldn't work. Complex mapgens can take several seconds per chunk to generate. That would bring servers to a grinding halt. Even if it's cached on the client, it still has to generate the chunks for every new client. At one point I had over 20,000 player files on my server. That means at least the chunks around spawn would have been regenerated over 20,000 times.
 

User avatar
Krock
Developer
 
Posts: 4393
Joined: Thu Oct 03, 2013 07:48
Location: Switzerland
GitHub: SmallJoker

Re: Infinite world size

by Krock » Mon May 26, 2014 14:45

BrandonReese wrote: At one point I had over 20,000 player files on my server. That means at least the chunks around spawn would have been regenerated over 20,000 times.

If one of them changes the chunk, it will be saved and the mapgen will take no longer CPU time.
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>
 

spillz
Member
 
Posts: 138
Joined: Thu Feb 13, 2014 05:11

Re: Infinite world size

by spillz » Mon May 26, 2014 14:48

BrandonReese wrote:This sounds like a really bad idea.


The point of a delta engine is that you offload the terrain generation to the client (i.e. someone would need to add client side support for lua terrain gen). For special cases like villages etc. that could still be generated by the server and sent to clients. But this approach would still mean a lot less CPU and data used by server (at the cost of quite a lot more complexity).

BUT most importantly, it should be possible to do it both ways. Some game types would really benefit from client side terrain generation.
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Infinite world size

by thetoon » Mon May 26, 2014 14:48

Krock wrote:If one of them changes the chunk, it will be saved and the mapgen will take no longer CPU time.


Only if one of them changes the chunk. As world size increases, more and more blocks will be "just generated" and never modified, statistically.
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Infinite world size

by thetoon » Mon May 26, 2014 15:10

spillz wrote:The point of a delta engine is that you offload the terrain generation to the client (i.e. someone would need to add client side support for lua terrain gen).


"someone" might have better things to do. I'm all for more and more features, especially interesting ones (client-side Lua sure would be nice to have). But I don't think we'd need to wait for client-side Lua to have bigger world sizes. As someone put it before, it's basically bigger coordinates, plus some mechanisms to prevent server worlds to grow up insane, be it :

* as simple as limiting coordinate-size from config file - so that bigger coordinates would have no effect on unwilling servers,
* or as complicated as variable compression formats, with different levels of detail
* and of course everything inbetween.

What I'd propose - and might gradually try to implement, unless someone else wants to - is the following plan :

Step1 : Increase coordinates' size. This is by far the harder part, as there might be references to them everywhere. Someone more used to MT's internals might think it easy, but it needs to understand the big pictures before being done.

Step2: Test it. Just to be sure we haven't left some references to the old coordinates format somewhere. Just to be safe, the old format should still be available, at least from a compile option (and preferably from a config file option).

At that point, we should be able to have much bigger worlds. Efforts should be on preventing disk size from getting out of control. Hence, Step3.

Step3: As seen from the previous posts, there's a lot of different options here, but here's mine. Let's add (optional) timestamp to blocks when writing them to disk (no matter what database backend is used) with a special value (0? MAX_VALUE?) for blocks which have been modified. Don't touch the block loading code.

Step4: On a regular basis (cron on a server, could be plugged to game start/stop on singleplayer), an external script (probably trivial, though it might fit some backends more than others) should be able to delete blocks older than a given or calculated timestamp, leaving the "special value" ones alone, as well as the "no timestamp" ones if any. An admin could decide to make the script adjust the timestamp based on disk usage, for instance.
 

PreviousNext

Return to Feature Discussion



Who is online

Users browsing this forum: No registered users and 8 guests