Page 1 of 6

Infinite world size

PostPosted: Sun Apr 27, 2014 01:33
by SegFault22
I remember from a while back, some guy had the idea to change an integer from signed to unsigned, and that would greatly improve world size and many other things. What's holding us back from doing that?

Re: Infinite world size

PostPosted: Sun Apr 27, 2014 07:28
by sfan5
previously: -30 000 <-> 30 000
now: 0 <-> 60 000
Yeah, I see the great improvement.

Re: Infinite world size

PostPosted: Sun Apr 27, 2014 08:07
by Krock
SegFault22 wrote:I remember from a while back, some guy had the idea to change an integer from signed to unsigned, and that would greatly improve world size and many other things. What's holding us back from doing that?

int16, signed: 0000 0000 0000 0001 (number 1)
int16, unsigned: 0000 0000 0000 0011 (number 3)

No matter of signed or unsigned, they still have the same amount of bits!

Re: Infinite world size

PostPosted: Sun Apr 27, 2014 10:44
by webdesigner97
And what is the advantage? Did ANYONE ever experience a too small world? No.

Re: Infinite world size

PostPosted: Sun Apr 27, 2014 10:55
by twoelk
but the word "infinite" is sooooo cool. even if it hardly has any use in real life

Re: Infinite world size

PostPosted: Sun Apr 27, 2014 17:02
by SegFault22
Okay, I don't remember what dude said about the integer. If you want to know, go ask him, because I'm too lazy to do that right now.
There actually is an issue with the world being too small, when you have a large server with several hundred players - the issue is even worse if the server is a PVP server.

Re: Infinite world size

PostPosted: Sun Apr 27, 2014 17:45
by RHR
There actually is an issue with the world being too small [...]

really? I've tested many servers and I always found enough empty space. Most people just walk not far enough from spawn, so it's often overpopulated there. Larger worlds wouldn't help people who are too lazy to search ...

Re: Infinite world size

PostPosted: Mon Apr 28, 2014 00:06
by paramat
As far as i understand, apparently it would be a major engine rewrite, and not worth it since 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 ;) I can stack 16 4km height realms, which seems just enough. So really you potentially have 16 x 64km^2 = 65536km^2 of space.

Re: Infinite world size

PostPosted: Mon Apr 28, 2014 11:38
by spillz
The bigger constraint is storage limitations because the game stores everything, including the procedurally generated terrain, to disk once it has been traversed by a player instead of only saving the blocks that have been player (or entity) modified.

Re: Infinite world size

PostPosted: Mon Apr 28, 2014 15:28
by Jordach
Concurrently, Minetest's world saving size is stupidly large for what it is: a 4gb world in SQLITE3 compresses down to about 1.5gb in LevelDB, others might vary, but there is a HUGE difference between the two, OldCoder has been known to use LevelDB as worlds can become rapidly large.

Re: Infinite world size

PostPosted: Mon Apr 28, 2014 15:52
by sfan5
Has anyone used the redis DB backend for a big server yet?

Re: Infinite world size

PostPosted: Mon Apr 28, 2014 22:30
by philipbenr
sfan5 wrote:Has anyone used the redis DB backend for a big server yet?

Funny, While I was trying to compile Minetest on my brothers old laptop a while ago, I got an error having to do with redis... Oh well, I got over it.

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 00:03
by Casimir
By the way. Is there a setting to choose the default backend?

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 08:45
by Nore
I do have code that should make the world infinite, however, there are still a lot of limitations:
-> probably overwritten mapblocks by other ones (didn't check this one though)
-> you still can't go further than 214748 because of the way floats are sent (a 32 bit integer)
-> horrible code
-> probably other things
-> and it is outdated

Anyway, if you want to give it a try: https://github.com/Ekdohibs/minetest/tree/unlimited-map

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 14:26
by sfan5
philipbenr wrote:
sfan5 wrote:Has anyone used the redis DB backend for a big server yet?

Funny, While I was trying to compile Minetest on my brothers old laptop a while ago, I got an error having to do with redis... Oh well, I got over it.

redis not found! is not an error, it is just a warning.

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 20:12
by Morn76
sfan5 wrote:redis not found! is not an error, it is just a warning.


Then why does that warning have an exclamation mark at the end? That should be reserved for serious probems, not a failed optional dependency like hiredis.

It's very confusing:

-- redis not found!
-- Configuring incomplete, errors occurred!


Makes it look like a redis-related error, when it's not.

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 20:37
by sfan5
Morn76 wrote:
sfan5 wrote:redis not found! is not an error, it is just a warning.


Then why does that warning have an exclamation mark at the end? That should be reserved for serious probems, not a failed optional dependency like hiredis.

It's very confusing:

-- redis not found!
-- Configuring incomplete, errors occurred!


Makes it look like a redis-related error, when it's not.

It's the same for leveldb too...

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 20:49
by Morn76
sfan5 wrote:It's the same for leveldb too...


Then please fix that one too while you're at it. :-)

Re: Infinite world size

PostPosted: Tue Apr 29, 2014 22:33
by philipbenr
redis not found! is not an error, it is just a warning.

Okay, but then why did it stop compiling on me? I tried three times and every time it died.

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 07:45
by sfan5
philipbenr wrote:
redis not found! is not an error, it is just a warning.

Okay, but then why did it stop compiling on me? I tried three times and every time it died.

Did it stop compiling on database-redis.cpp?
If not, the problem is not redis.

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 10:57
by Morn76
Morn76 wrote:
sfan5 wrote:It's the same for leveldb too...


Then please fix that one too while you're at it. :-)


And besides, if I read "git blame" output correctly, that LeveDB error message was in fact also added by you. Übertreib' es doch nicht so mit den Ausrufungszeichen! Don't overdo it with exclamation marks! ;-)

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 13:02
by thetoon
webdesigner97 wrote:And what is the advantage? Did ANYONE ever experience a too small world? No.


Well, we got that one a lot. And to be honest, I never experienced a too small world in MT. But I don't play much these days, and for rather short sessions. I remember, back when I played MC, having been frustrated by _vertical_ limits. Granted, MT doesn't have those (actually it does, only much much bigger). But most player's exploration goes horizontal, and it's a bit odd to have the same size upwards (where almost no-one usually goes, beside "alternative" worlds and some paramat's experimentations) and forward.

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.

I do understand this is a huge change to drive all through the code, mods, etc. And I do perfectly understand it would be low priority, and take a lot of before-thinking. But I disagree on the whole "64km is enough for everybody" stance. We call for more mods and games, more different experiences built around MT's engine. And that's inspiring. But right now, what we're saying is "we'd love new interesting ideas, but you'll have to make them fit in a 64km-sided cube, no discussion". While we should be all "right, there's a limit right now, let's see what would be needed to lift it up".

Infinite world size might be too much to handle, now or ever. But 64km is too restrictive a limit to stay forever, don't you think?

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 19:19
by HeroOfTheWinds
The only way I can think of larger world size being achieved is by thinking outside the box, and outside the server case. ;) This is no less ridiculous, however: Use a network of servers, and when one person goes beyond the bounds of the world on one server, start transferring data from the next. Very naive, I know. :P I know very little about server management, but perhaps my ideas will be possible one day.

And I really don't think infinite size will ever be able to be achieved. Only extremely large values that are close enough for man's purposes.

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 19:32
by BrandonReese
Event an "infinite" world would be limited by storage space so it really wouldn't be infinite. I think that has been mentioned in this thread. My world with plenty of undiscovered and unused land is over 7gig. I should probably switch to leveldb but I'm scared to.

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 20:51
by sfan5
BrandonReese wrote:Event an "infinite" world would be limited by storage space so it really wouldn't be infinite. I think that has been mentioned in this thread. My world with plenty of undiscovered and unused land is over 7gig. I should probably switch to leveldb but I'm scared to.

The longer you wait with switching the more you need to do.

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 21:27
by Kilarin
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.

Re: Infinite world size

PostPosted: Wed Apr 30, 2014 23:15
by thetoon
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.

Re: Infinite world size

PostPosted: Thu May 01, 2014 03:23
by Kilarin
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.

Re: Infinite world size

PostPosted: Thu May 01, 2014 03:48
by HeroOfTheWinds
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.

Re: Infinite world size

PostPosted: Thu May 01, 2014 10:25
by onpon4
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.