Infinite world size

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

Re: Infinite world size

by philipbenr » Post

@ArguablySane: +1 I do agree on this. And the fact is, there already is a tunnel boring machine that digs down in the factories mod by LemonLake. Also, as for the way to solve it reasonably, there are very few ways. But, there is one way: Making it so that whenever you walk past 32000, the map generator keeps on generating, like normal, but only calculates for the map chunks you are exploring. That way it is more of a limit for the lag time. It will get more laggy after 32000 blocks, but it will generate more. Now, I know much more about changing the map generator, not making it do different things (Writing my own magpens for v5, v6, or v7) so what I am saying here might be totally stupid and ignorant of how Minetest actually works...

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

If the map generates past the edge then server would have a hard time keeping up. As it stands now servers with lots of players have maps that are several gigs. That is without the full world being explored. If you can continue then maps would become so big that backups would take longer and servers would need more storage. That would mean that servers would be limited to expensive computers. I like how it is now .
If it was to change I think it would need to be an option. I would love to see the ability to set the size yourself. That way it would work for everyone.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

User avatar
indriApollo
Member
Posts: 146
Joined: Fri Sep 26, 2014 11:34
GitHub: indriApollo
IRC: indriApollo
In-game: SudoAptGetPlay
Location: Belgium
Contact:

Re: Infinite world size

by indriApollo » Post

Why can't we make a world without edges where the coords goes from max 32000 to -32000 side by side. You could travel 64000 in one step :D or make a house where your entrance door is 31995 and your backyard in -31998. Something like a 8bit-register overflow in assembly where you go from 255 back to 0.

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

indriApollo wrote:Why can't we make a world without edges where the coords goes from max 32000 to -32000 side by side. You could travel 64000 in one step :D or make a house where your entrance door is 31995 and your backyard in -31998. Something like a 8bit-register overflow in assembly where you go from 255 back to 0.
As I stated on a previous post " I wish that when a player reaches the edge the get teleported to the other side. That way if you walk in a straight line it would be like you walked around the world."
If you think of the real world we do not have infinite size. It simply wraps around. I think that removing edges in this manor would make a lot of people happy.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

User avatar
ArguablySane
Member
Posts: 116
Joined: Sun Oct 12, 2014 21:29

Re: Infinite world size

by ArguablySane » Post

philipbenr wrote:@ArguablySane: +1 I do agree on this. And the fact is, there already is a tunnel boring machine that digs down in the factories mod by LemonLake. Also, as for the way to solve it reasonably, there are very few ways. But, there is one way: Making it so that whenever you walk past 32000, the map generator keeps on generating, like normal, but only calculates for the map chunks you are exploring. That way it is more of a limit for the lag time. It will get more laggy after 32000 blocks, but it will generate more. Now, I know much more about changing the map generator, not making it do different things (Writing my own magpens for v5, v6, or v7) so what I am saying here might be totally stupid and ignorant of how Minetest actually works...
EDIT: Disregard that, I misunderstood your suggestion.
Only generating a single chunk where the player is could be made to work, although it would look very ugly near the edge of the current chunk. I just don't think it would be particularly useful since it would be just as hard, if not harder to implement than the current system. HDD space is not a good justification for the map size limits.
Don wrote:If the map generates past the edge then server would have a hard time keeping up. As it stands now servers with lots of players have maps that are several gigs. That is without the full world being explored. If you can continue then maps would become so big that backups would take longer and servers would need more storage. That would mean that servers would be limited to expensive computers. I like how it is now .
If it was to change I think it would need to be an option. I would love to see the ability to set the size yourself. That way it would work for everyone.
The maximum map file size already has a huge upper bound because 64000^3 is an extremely large number. That space is only used if people actually visit places on the map. I don't think people would load a significantly greater number of chunks if they had a larger map ; They'd just be able to load them in a straight line rather than having to take a meandering path around the limited map space. Also, storage space is by far the least troublesome of the system requirements for running a server. You'll need to upgrade CPU and memory long before you need to buy a new HDD, unless you plan to run a small server for decades. New computers today routinely come with 1TB hard drives.
Don wrote:
indriApollo wrote:Why can't we make a world without edges where the coords goes from max 32000 to -32000 side by side. You could travel 64000 in one step :D or make a house where your entrance door is 31995 and your backyard in -31998. Something like a 8bit-register overflow in assembly where you go from 255 back to 0.
As I stated on a previous post " I wish that when a player reaches the edge the get teleported to the other side. That way if you walk in a straight line it would be like you walked around the world."
If you think of the real world we do not have infinite size. It simply wraps around. I think that removing edges in this manor would make a lot of people happy.
That doesn't really solve the gameplay problem. It's just an aesthetic fix which makes the most obvious symptom go away. Even if you made the game world into a hyper-toroid by welding the boundaries together, my hypothetical tunnel bore would still run out of material to mine after 64000 blocks. It would just be conveniently back where it started rather than on the opposite side of the map.
The above post and any ideas expressed therein are released to the public domain under a Creative Commons CC0 license.

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

If the edge loops around then it would be like going around the world weather it is on the surface or underground. Going staight down can be fixed by having lava at the bottom to represent the core. Going straight up could make you die as you would run out of air.
Like someone else said, without infinite resources you can not have an infinite world. Instead of trying to get infinite why not try to get scale. People could scale their world according to their computer.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

User avatar
ArguablySane
Member
Posts: 116
Joined: Sun Oct 12, 2014 21:29

Re: Infinite world size

by ArguablySane » Post

Don wrote:People could scale their world according to their computer.
Now that sounds fine. I like the idea of a config option which lets you keep the current settings.

That said, the world size has almost zero effect on performance. The CPU and memory load is directly proportional to the number of players and almost independent of the number of unloaded chunks in the world.

I could play in a world with a theoretical size limit of 10^40 x 10^40 x 10^40 blocks on a raspberry pi without using external storage, as long as I didn't explore too many chunks.
The above post and any ideas expressed therein are released to the public domain under a Creative Commons CC0 license.

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

Re: Infinite world size

by paramat » Post

Although i'm only a pseudo-dev i will speak for the devs as i know their opinions. We have nothing against a larger world, as long as it remains cubic, the only issue is the huge amount of code rewriting needed for this, we don't have much time (many devs work full time) and there are many other far more important problems and features to be working on. Much of this discussion is pointless, learn C++ and rewrite the code yourself and submit a pull request, see you in a few months time 0/

I'm considering writing a very simple lua mapgen that adds more space by slicing the world into levels and teleporting the player. With slices just over 1km thick the world area would be 49 time larger, edge lengths 7 times larger. People will still complain though if used to MC.

User avatar
ArguablySane
Member
Posts: 116
Joined: Sun Oct 12, 2014 21:29

Re: Infinite world size

by ArguablySane » Post

Thanks for the info paramat. As long as the devs aren't opposed to the idea, I'm happy. I agree that there are much more important things for them to work on, and as you say I can code it myself if I ever get desperate for more space.
The above post and any ideas expressed therein are released to the public domain under a Creative Commons CC0 license.

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

I can't code but if I could making the world larger would be low priority. I appreciate everything the devs do. Keep up the great work.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

twoelk
Member
Posts: 1482
Joined: Fri Apr 19, 2013 16:19
GitHub: twoelk
IRC: twoelk
In-game: twoelk
Location: northern Germany

Re: Infinite world size

by twoelk » Post

paramat wrote:... learn C++ and rewrite the code yourself and submit a pull request, see you in a few months time 0/ ...
and as far as I understood the problem this does not mean you need this long to learn C++ but rather you might need this long to rewrite all the relevant parts in the code besides breaking most mods that calculate coordinates somewhere.

The size as it is now is simply the largest coordinates that can be expressed the way coordinates are stored at the momment. You would have to rewrite that and define a new way to describe coordinates within the game engine. Not that difficult in theory but really lot of work in reallity. The math isn't difficult but the amount of work is discouraging and in the end, a little further out, you would have borders again that people will bump into.

While it might be possible to regenerate unchanged parts of the map from some seed, so that a map of thousands of kilometres might be thinkable the idea to store some model of reallity the size of say the US in a 3D map with a resolution of one voxel to a meter is most probably beyond the capabilities of most computers on this planet as of 2014.

User avatar
ArguablySane
Member
Posts: 116
Joined: Sun Oct 12, 2014 21:29

Re: Infinite world size

by ArguablySane » Post

twoelk wrote:While it might be possible to regenerate unchanged parts of the map from some seed, so that a map of thousands of kilometres might be thinkable the idea to store some model of reallity the size of say the US in a 3D map with a resolution of one voxel to a meter is most probably beyond the capabilities of most computers on this planet as of 2014.
A 1:1 scale map of the US would only be on the order of 10^17 blocks including lots of air, which is 10^5 TB if 1 block takes up 1 byte. Just transmit it unencrypted over the internet and let the NSA store it for you. They definitely have enough capacity in their data-centres.
The above post and any ideas expressed therein are released to the public domain under a Creative Commons CC0 license.

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

Re: Infinite world size

by paramat » Post

twoelk wrote:you might need this long to rewrite all the relevant parts in the code besides breaking most mods that calculate coordinates somewhere.
Yes that's what i meant, i'm guessing the time but it would be a huge amount of work.

We're not intimidated by MC's horizontal space because we know MT worlds are superior because of the cubic chunks and the vertical space, despite being much smaller horizontally. Vertical space is more interesting and richer in possibilities than horizontal space, because horizontal expansion tends to be more of the same realm, instead of a vertical stack of hell realms, underworlds, floatlands, alien planets, space etc. So MT's vertical space more than makes up for the moderate amount of horizontal space.
I and some other devs consider MC's vertical space pathetic even at 256 nodes, all dimensions and realms have to be separate worlds, in MT the other realms are actually there and you have to travel vertically for a few kilonodes to reach them, that journey itself becomes inspiring and enjoyable.

Now i want to work on new mapgens which make use of the vertical space, and will be encouraging hmmmm to do the same. The idea of a flat realm stacked between underworlds and 'heavens' is an ancient worldwide cosmology.

I called my super-tower mod 'Meru' because that is an ancient eastern cosmology where Mount Meru is a tower to the heavens between stacked flat realms. Many cultures have similar mythologies such as the tower of Bab(b)le.

Image

From http://huntingtonarchive.osu.edu/resour ... raphy.html

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: Infinite world size

by 4aiman » Post

Man, why can't I "like" your post... :)

To impress everyone this world-structure should be default.

User avatar
Kilarin
Member
Posts: 894
Joined: Mon Mar 10, 2014 00:36
GitHub: Kilarin

Re: Infinite world size

by Kilarin » Post

4aiman wrote:Man, why can't I "like" your post... :)
Indeed! That would be a really awesome use of MT vertical space.

I was just discussing a totally different, and yet vaguely similar way to use vertical space in the Underground Realms topic:
viewtopic.php?f=11&t=9522&p=164298#p164298

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

Kilarin wrote:
4aiman wrote:Man, why can't I "like" your post... :)
Indeed! That would be a really awesome use of MT vertical space.

I was just discussing a totally different, and yet vaguely similar way to use vertical space in the Underground Realms topic:
viewtopic.php?f=11&t=9522&p=164298#p164298
I prefer horizontal. That is why the couch and I get along so well.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

User avatar
rubenwardy
Moderator
Posts: 6972
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: Infinite world size

by rubenwardy » Post

While vertical space is a limiting factor (255 is not enough space to dig down), horizontal space is more useful. Generally.
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

rubenwardy wrote:While vertical space is a limiting factor (255 is not enough space to dig down), horizontal space is more useful. Generally.
My comment was a joke. Should have added a lot. I am more than happy with the way minetest is
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

twoelk
Member
Posts: 1482
Joined: Fri Apr 19, 2013 16:19
GitHub: twoelk
IRC: twoelk
In-game: twoelk
Location: northern Germany

Re: Infinite world size

by twoelk » Post

ArguablySane wrote:...
A 1:1 scale map of the US would only be on the order of 10^17 blocks including lots of air, which is 10^5 TB if 1 block takes up 1 byte. Just transmit it unencrypted over the internet and let the NSA store it for you. They definitely have enough capacity in their data-centres.
mind calculating how long transmitting that data might take? :-D
I wonder - maybe they might be even interested. The NSA provides the infrastructure and as a return can log all the chat and all the building blueprints and even get to know what people hide in their secret chests - oh - wait - they are doing that allready aren't they? They just call it facebook or google or dropbox or any other service based in the US. As they seem to admit it anyway maybe we could plug into the NSA archives for public server rollbacks?

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

twoelk wrote:
ArguablySane wrote:...
A 1:1 scale map of the US would only be on the order of 10^17 blocks including lots of air, which is 10^5 TB if 1 block takes up 1 byte. Just transmit it unencrypted over the internet and let the NSA store it for you. They definitely have enough capacity in their data-centres.
mind calculating how long transmitting that data might take? :-D
I wonder - maybe they might be even interested. The NSA provides the infrastructure and as a return can log all the chat and all the building blueprints and even get to know what people hide in their secret chests - oh - wait - they are doing that allready aren't they? They just call it facebook or google or dropbox or any other service based in the US. As they seem to admit it anyway maybe we could plug into the NSA archives for public server rollbacks?
I think you miss understand the NSA. They collect the information so they can use it against you, not to help you.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

Amaz
Member
Posts: 354
Joined: Wed May 08, 2013 08:26
GitHub: Amaz1
IRC: Amaz
In-game: Amaz

Re: Infinite world size

by Amaz » Post

This is a very simple mod that in effect removes the edges from the map. The commented out code does the same, just vertically. So, if you reach 30850/-30850 on x/z, it will teleport you to the opposite end of the world, facing the same way, at the same z/x position you were at, so if you walk in a straight line, you'll end up where you started. Not entirely smooth, especially with the fact you can end up either buried in stone, or find yourself falling! Also, I'm not sure how efficient the code itself is... Hope this may help some people think that the world is bigger!

Code: Select all

local count = 0
minetest.register_globalstep(function(dtime)	
	count = count + dtime
	if count > 5 then
		count = 0
		local players = minetest.get_connected_players()
		for _,player in pairs(players) do
			local pos = player:getpos()
			if pos.x >= 30850 then
				player:moveto({x = -30800, y = pos.y, z = pos.z})
			end
			if pos.x <= -30850 then
				player:moveto({x = 30800, y = pos.y, z = pos.z})
			end
			
			--[[if pos.y >= 30850 then
				player:moveto({x = pos.x, y = -30800, z = pos.z})
			end
			if pos.y <= -30850 then
				player:moveto({x = pos.x, y = 30800, z = pos.z})
			end--]]
			
			if pos.z >= 30850 then
				player:moveto({x = pos.x, y = pos.y, z = -30800})
			end
			if pos.z <= -30850 then
				player:moveto({x = pos.x, y = pos.y, z = 30800})
			end
 		end
	end
end)

User avatar
Don
Member
Posts: 1643
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Infinite world size

by Don » Post

Amaz wrote:This is a very simple mod that in effect removes the edges from the map. The commented out code does the same, just vertically. So, if you reach 30850/-30850 on x/z, it will teleport you to the opposite end of the world, facing the same way, at the same z/x position you were at, so if you walk in a straight line, you'll end up where you started. Not entirely smooth, especially with the fact you can end up either buried in stone, or find yourself falling! Also, I'm not sure how efficient the code itself is... Hope this may help some people think that the world is bigger!

Code: Select all

local count = 0
minetest.register_globalstep(function(dtime)	
	count = count + dtime
	if count > 5 then
		count = 0
		local players = minetest.get_connected_players()
		for _,player in pairs(players) do
			local pos = player:getpos()
			if pos.x >= 30850 then
				player:moveto({x = -30800, y = pos.y, z = pos.z})
			end
			if pos.x <= -30850 then
				player:moveto({x = 30800, y = pos.y, z = pos.z})
			end
			
			--[[if pos.y >= 30850 then
				player:moveto({x = pos.x, y = -30800, z = pos.z})
			end
			if pos.y <= -30850 then
				player:moveto({x = pos.x, y = 30800, z = pos.z})
			end--]]
			
			if pos.z >= 30850 then
				player:moveto({x = pos.x, y = pos.y, z = -30800})
			end
			if pos.z <= -30850 then
				player:moveto({x = pos.x, y = pos.y, z = 30800})
			end
 		end
	end
end)
WOW!!!
Thanks for that. I will try it out and see how it goes.
This will also be good for people who want small maps such as pvp maps. They can just change the cords.

EDIT - Works good. I really like this. Thanks again.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here

User avatar
Minix
Member
Posts: 144
Joined: Thu Nov 12, 2020 13:51
In-game: Minix

Re: Infinite world size

by Minix » Post

Reviving this thread. It has been almost 7 years since the last post, I know Minetest has improved a lot.

I have two questions, which are entirely theoretical, I hope a core developer reads this and answers.

1)If one were to actually do all the work to rewrite the engine code so that worlds can be bigger, is it enough for only the server to run the modified Minetest engine or would the clients also need to run the modified version ? I am pretty sure something would break client-side but I want to know if that is true.

2)What about splicing the world into different servers ? In a similar way as Amaz' code teleports you to the opposite boundary, what about sending a player to another server running in the same computer that holds the next portion of the world ? Is there an engine limitation that prevents moving clients to a different port ? Minecraft servers can do this, and it would be useful for many other things, not just big worlds.

Or instead of sending the players to another server, what about having multiple databases ? where each database can hold a space up to 64000^3 nodes.

This is just purely theoretical, I just want to know if there are major roadblocks preventing this.

User avatar
Kilarin
Member
Posts: 894
Joined: Mon Mar 10, 2014 00:36
GitHub: Kilarin

Re: Infinite world size

by Kilarin » Post

Minix wrote:If one were to actually do all the work to rewrite the engine code so that worlds can be bigger, is it enough for only the server to run the modified Minetest engine or would the clients also need to run the modified version
NOT a core developer. But just from a programmers point of view: This would involve increasing the size of the position variable. I don't think there would be any way to do that on the server side without also making the same change on the client size. You can't send a 32bit number from the server to a client using a 16bit number without... problems.

User avatar
Hume2
Member
Posts: 709
Joined: Tue Jun 19, 2018 08:24
GitHub: Hume2
In-game: Hume2
Location: Czech Republic

Re: Infinite world size

by Hume2 » Post

Minix wrote:
Thu May 20, 2021 05:07
1)If one were to actually do all the work to rewrite the engine code so that worlds can be bigger, is it enough for only the server to run the modified Minetest engine or would the clients also need to run the modified version ? I am pretty sure something would break client-side but I want to know if that is true.
It is possible to make it purely server-side. The server can hold the true coordinates while the client will be told some other coordinates which will be in the bounds <-32768, 32767>³. The coordinates could be for example relative to the point the player logged in. And when the player goes too far without logging out, then his coordinate system could be adjusted, which would be handled as teleportation client-side.
If you lack the reality, go on a trip or find a job.

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests