How to increase mapgen_limit more than 31000?

Post Reply
User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

How to increase mapgen_limit more than 31000?

by PolySaken » Post

Why can't I change mapgen_limit to be higher than 31000? IMO limiting settings is pointless and I should be allowed to break my game if I want.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
TenPlus1
Member
Posts: 3715
Joined: Mon Jul 29, 2013 13:38
In-game: TenPlus1
Contact:

Re: How to increase mapgen_limit more than 31000?

by TenPlus1 » Post

31000 in all directions is a lot of map, do we really need more than that if we aren't already using the space available ?

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

TenPlus1 wrote:
Thu Dec 24, 2020 07:10
31000 in all directions is a lot of map, do we really need more than that if we aren't already using the space available ?
I already do use all the space. Vertical space is more worlds, horizontal space is pretty much completely used up in each one. Keep in min I build really massive esoteric bs so I might be an edge case. But the option is still nice.

Also I plan on making a server at some point and if each player uses the same amount of space the map will disappear real quick.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: How to increase mapgen_limit more than 31000?

by ShadMOrdre » Post

If I'm not mistaken, 31000 meters in all directions equates to 60km x 60km x 60km. Unless you are building with code, I can't see one person or even a small team actually filling the void. That's a good sized megalopolis in the real world.

Not to mention the hard disk space in actually emerging such a space. Multiple terrabytes, and iirc, someone calculated 13TB just for the xz. Adding y that is not air ups the ante. Rather than blow 32bit integer limits, wouldn't it make just as much sense to allow multiple worlds to link up, so that each server only handles it's space, yet allowing users to move seamlessly between the maps. IIRC, the 31000 limit is due to 32bit integer values. 64bit allows larger integer values, but also takes double the space to store the value. RAM and HD effectively become half the value simply by using the larger values.

Besides, I can't ever recall walking or teleporting to the edge, some 31km from the center of the map. That's a lot of space between users.

User avatar
Wuzzy
Member
Posts: 4786
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: How to increase mapgen_limit more than 31000?

by Wuzzy » Post

The world is limited to ca. 31000 in each direction and no, it there is no setting to change that.

User avatar
sorcerykid
Member
Posts: 1841
Joined: Fri Aug 26, 2016 15:36
GitHub: sorcerykid
In-game: Nemo
Location: Illinois, USA

Re: How to increase mapgen_limit more than 31000?

by sorcerykid » Post

I already do use all the space.
So you have a map file that is several terabytes?

User avatar
v-rob
Developer
Posts: 970
Joined: Thu Mar 24, 2016 03:19
GitHub: v-rob
IRC: v-rob
Location: Right behind you.

Re: How to increase mapgen_limit more than 31000?

by v-rob » Post

The reason why is that the map uses 16 bit integers which are limited to a little more than -31000 to 31000, hence the limit. Upgrading to 32 bit integers would entail map compatibility problems.
Core Developer | My Best Mods: Bridger - Slats - Stained Glass

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

sorcerykid wrote:
Thu Dec 24, 2020 22:45
I already do use all the space.
So you have a map file that is several terabytes?
yup
3.4 tb

BTW, when I say 'all the space' I don't mean every single node is filled. I mean Big wide or tall structures with smallish gaps in between.
E.x.
I have a 10x10km plane of xtraores ores for spawning skeletons.
I also have a tower taking up the entire corner of the map, from top to bottom. There's another equally sized tower in the centre.
Last edited by PolySaken on Thu Dec 24, 2020 23:32, edited 1 time in total.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

ShadMOrdre wrote:
Thu Dec 24, 2020 11:05
If I'm not mistaken, 31000 meters in all directions equates to 60km x 60km x 60km. Unless you are building with code, I can't see one person or even a small team actually filling the void. That's a good sized megalopolis in the real world.

Not to mention the hard disk space in actually emerging such a space. Multiple terrabytes, and iirc, someone calculated 13TB just for the xz. Adding y that is not air ups the ante. Rather than blow 32bit integer limits, wouldn't it make just as much sense to allow multiple worlds to link up, so that each server only handles it's space, yet allowing users to move seamlessly between the maps. IIRC, the 31000 limit is due to 32bit integer values. 64bit allows larger integer values, but also takes double the space to store the value. RAM and HD effectively become half the value simply by using the larger values.

Besides, I can't ever recall walking or teleporting to the edge, some 31km from the center of the map. That's a lot of space between users.
I use a mod I made that essentially builds massive batches. Think filler but with voxelmanip. (I still collect all the materials for the build tho, I use cobble generators and stuff)
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

v-rob wrote:
Thu Dec 24, 2020 22:53
The reason why is that the map uses 16 bit integers which are limited to a little more than -31000 to 31000, hence the limit. Upgrading to 32 bit integers would entail map compatibility problems.
Oh ok, thanks.
(If I use a build with a different DB format could I circumvent this?)
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
v-rob
Developer
Posts: 970
Joined: Thu Mar 24, 2016 03:19
GitHub: v-rob
IRC: v-rob
Location: Right behind you.

Re: How to increase mapgen_limit more than 31000?

by v-rob » Post

PolySaken wrote:
Thu Dec 24, 2020 23:35
(If I use a build with a different DB format could I circumvent this?)
To increase the map size, it would require a large code change; everywhere in the engine using s16 and v3s16 and v3f for map size and entity position would have to be changed to 32 bit and doubles, as well as updating map database commands and settings values, etc. So theoretically, it could be done, but it would take quite a bit of work and testing to make sure it works properly.
Core Developer | My Best Mods: Bridger - Slats - Stained Glass

User avatar
philipbenr
Member
Posts: 1897
Joined: Fri Jun 14, 2013 01:56
GitHub: philipbenr
IRC: philipbenr
In-game: robinspi
Location: United States

Re: How to increase mapgen_limit more than 31000?

by philipbenr » Post

At least converting the map file itself wouldn't be incredibly hard, considering it would take all of a couple minutes to write a script that does a bit of math and convert the positions of blocks in the sqlite file.

Now, if there is any important location data stored inside the block blob that relates to the position primary key, that might be problematic, as the data type and coordinates would have changed, and changing the blob would not be nearly as fun. Things would probably go south fast. You'd probably instead need to maintain backwards compatibility at that point, and add the new blocks "outside" the default values, as it appears the block position coordinate uses modular arithmetic to discern the 3 axis system. Now that is all speculation and might be a load of garbage, but regardless, I wouldn't be too keen on testing out all of the possible problems with translating, but at least it MIGHT be simple...

User avatar
sorcerykid
Member
Posts: 1841
Joined: Fri Aug 26, 2016 15:36
GitHub: sorcerykid
In-game: Nemo
Location: Illinois, USA

Re: How to increase mapgen_limit more than 31000?

by sorcerykid » Post

BTW, when I say 'all the space' I don't mean every single node is filled. I mean Big wide or tall structures with smallish gaps in between.
Can I ask what these structures are for? I mean to walk 31,000 meters takes almost 2 hours iirc. So I'm curious what the possible goal of the game is you're building these structures for when it's unlikely anybody would even be able to explore them at even a fast pace unless they have several days of free time.

Considering that 60,000 x 60,0000 is over 3,6 billion square meters of land area, I find it baffling to conceive of any player having that amount of patience and dedication to navigate builds of that scale.

Anyway, it sounds like you're going to have to look at a different game engine if you need larger map sizes, because I don't see coredevs changing the datatypes of node coordinates any time soon due to the workload involved.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

sorcerykid wrote:
Fri Dec 25, 2020 02:42
BTW, when I say 'all the space' I don't mean every single node is filled. I mean Big wide or tall structures with smallish gaps in between.
Can I ask what these structures are for? I mean to walk 31,000 meters takes almost 2 hours iirc. So I'm curious what the possible goal of the game is you're building these structures for when it's unlikely anybody would even be able to explore them at even a fast pace unless they have several days of free time.

Considering that 60,000 x 60,0000 is over 3,6 billion square meters of land area, I find it baffling to conceive of any player having that amount of patience and dedication to navigate builds of that scale.

Anyway, it sounds like you're going to have to look at a different game engine if you need larger map sizes, because I don't see coredevs changing the datatypes of node coordinates any time soon due to the workload involved.
Honestly I'm just messing around.
Some are solid monoliths of a single block,
some are detailed sculptures ,
I even have a double-scale city block that makes the player look really small.
some of them are pixel art to look at on the minimap
I also have a fully working mesecon computer with a CPU, ALU, graphics card and 2kb of ram.

My Idea of fun in a sandbox game is grinding or automating so I like the challenge of building massive things in survival.
The world isn't for anyone else to see, it's my private universe.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

Here's a scenario that might make more sense for you sane people since my nonsense world isn't easy to explain.
Imagine If someone wanted to build a 1:1 scale recreation of a town's local area. the town might only be 4-5 km across, but the local area of farms and wilderness would easily take up 100km^2 or more.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
celeron55
Administrator
Posts: 532
Joined: Tue Apr 19, 2011 10:10
GitHub: celeron55
IRC: celeron55

Re: How to increase mapgen_limit more than 31000?

by celeron55 » Post

What if I say increasing the coordinate space will decrease performance for everyone, not just the 3 people using the increased coordinate space?

This is due to obvious reasons: Coordinates take more space in memory, which decreases the amount of coordinates that will fit in the CPU cache among other places.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: How to increase mapgen_limit more than 31000?

by PolySaken » Post

Correct me if i'm wrong, but that sounds like a difference of a few bytes. Lots of other blocky games have 'infinite' world scale and most of them run better than minetest.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Andrey01
Member
Posts: 2574
Joined: Wed Oct 19, 2016 15:18
GitHub: Andrey2470T
In-game: Andrey01
Location: Russia, Moscow

Re: How to increase mapgen_limit more than 31000?

by Andrey01 » Post

Based on the previous posts, yes, it is impossible.

But I have an idea: why would not make map size settings in the world create menu? For example, make acceptable '32-bit' value and '16-bit' for supporting the compatibility.

ShadMOrdre
Member
Posts: 1118
Joined: Mon Dec 29, 2014 08:07
Location: USA

Re: How to increase mapgen_limit more than 31000?

by ShadMOrdre » Post

So I've created an Earthlike world, complete with continents and oceans and mountains. Generating this map alone at normal scale, (60km x 60km), is possible, and considering the RPG possibilities, it makes for an almost infinite game.

Instead, I scale the map by 0.1, for a 6km x 6km world. Everything terrain wise is smaller, but at least I feel as if I can actuall explore the world in a day or so.

A full 60km x 60km map seems appropriate for an RPG. And these maps provide for deep, rich storytelling.

A 6km x 6km map might be more suited to a game like Civ, where the map is large enough, but not too large.

A .6km x .6km map would be perfect for an RTS game, such as reubenwardys' Conquest subgame.

Even in Opensimulator, where region spaces are limited to 256m x 256m to 8192m x 8192m, these spaces can quickly feel empty if there is not engaging content. While Opensim is probably a better place for the "infinite" world idea, it too has hard coded limits. Only the hypergrid concept, allowing users to "seemlessly" move between grids, provides the "infinite". This is probably a better way to attempt to address the issue, because at some point, a point that is "infinitely" far from any other point would require an "infinite" data type to contain the distance number alone.

Just some thoughts.

celeron55 sums it up.


Shad

User avatar
voxelproof
Member
Posts: 1087
Joined: Sat Aug 05, 2017 08:13
Location: Europe

Re: How to increase mapgen_limit more than 31000?

by voxelproof » Post

ShadMOrdre wrote:
Thu Dec 24, 2020 11:05
Not to mention the hard disk space in actually emerging such a space. Multiple terrabytes, and iirc, someone calculated 13TB just for the xz.
I did some hardcore exploration flying over the terrain to cover all interesting areas and sites in "Eden" and this created a world file of a size of about 30 GB. In other words now there is a possibility to create a complete "atlas" of the whole 62k x 62k surface using Minetest Mapper.
Besides, I can't ever recall walking or teleporting to the edge, some 31km from the center of the map. That's a lot of space between users.
However there is some logic behind Minecraft's huge horizontal spaciousness. It really greatly enhances psychological characteristics of this sandbox influencing overall experience, immersion in the first place.
To miss the joy is to miss all. Robert Louis Stevenson

Post Reply

Who is online

Users browsing this forum: birdlover32767 and 14 guests