A possible suggestion for those who want more horizontal exploration space. An approach that MIGHT require a smaller engine rewrite.
Increasing the number of bytes in the coordinates for each node would be a major rewrite of the system. But what if we could have a LOT more horizontal exploration space WITHOUT changing the size of the coords at all?
Currently minetest is a 64k cube. And a lot of players only use a thin layer of this. Usually no more than a few thousand nodes below the surface and perhaps a few hundred nodes up. So what if we split the vertical space up into slices and connnected them via wraparound logic?
So, for example, if we divided our 64k cube into 9 vertical slices, they would each be about 7,000 nodes tall. Each of these 9 slices is a 64k x 7k x 64k cube. Put the surface at about 6000k, since users dig down more than they climb up and you would have room for caverns and mines going down 6000 nodes, and enough sky that most players would never get even close to the top. Now we take those 9 slices and arrange them in a horizontal matrix like this:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
And now you would have a map that is 192k x 7k x 192k
So if you were in slice 01 and walked along the X axis, instead of hitting the "end of the world", you would just walk into slice 02. Smoothly, with no visible transition. And you could keep walking for another 64k distance until you hit slice 03. You wouldn't hit an "end of the world" until you finally hit the far end of slice 03.
We don't need to change the size of the coordinates here, we just need to add in some wraparound logic that tells the engine that slice 01 wraps into slice 02 on the X axis and slice 04 on the Z axis. I don't know how complicated coding that would be, but I suspect it might be simpler than changing the size of the coordinates.
We could get bigger than that. Make your vertical slices only 2560 high and you get 25 64k x 2.5k x 64k slices, which you could map like this:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
Into a 320k x 2.5k x 320k map. Put the surface at 2400 and that leaves 160 up for sky, which is still a bit higher, and a LOT deeper than minecraft.
Of course, if you write the wraparound logic right, you could allow virtually any arangement of slices to be determined at map creation time. Maps that want a lot of deep caves and sky islands would stick with the original 64k cube. Games that want to still have quite a bit of mining space but not as much sky could go with the 192k x 7k by 192k cube. You could even go all the way up to 81 regions 790 nodes high and have a 576k x .5k x 576k map that was STILL deeper and higher than minecraft.
And would the map even have to be square? Perhaps some game developer wants to create a riverworld that is 1 slice wide but 9 slices long?
A 15 x 16 slice map would match minecrafts depth, for a total area of 960k x .266k x 1024k.
Of course, this all depends upon the idea that writing wraparound logic would be simpler than changing the size of the coordinates. I haven't messed with the minetest c code, so I may be way off base with that.
Just an idea for consideration that IF it worked, would let people have a much greater flexibility in determining the dimensions of the game world.