Page 1 of 1

Question about features of minetest

PostPosted: Sat Mar 09, 2019 15:56
by bgrunge
Hello all, new poster; I have a few questions about the features of Minetest that weren't immediately apparent without spending time digging into the code, so I figured I'd ask them here.

The first is: Do Blocks or Mapchunks update independently? I.E., is it possible to hand off mapchunk 1 to processor core 1, mapchunk 2 to core #2, etc. I'm interested in building a game that has a large amount of persistence and procedural emergence without using shortcuts, but the only way to do that in a reasonable fashion is to divide and distribute regional updates among a number of cores. A follow-up question would be: If so, can the number of cores and amount of memory be scaled indefinitely?

The second question is: Does Minetest allow for instanced versions of worlds that can exist concurrently with the main world? I am specifically trying to find a voxel engine that will let me make a limited world B that is overlapped with world A wherein the two may interact and be offset for the purposes of implementing moving objects like airships, floating islands, Leviathan class monsters who are so large that they are actually composed of nodes and may be damaged piecemeal, etc.

If anybody could answer any or all of these questions I would be very grateful. Thanks in advance for your patience!

Re: Question about features of minetest

PostPosted: Thu Jun 06, 2019 14:04
by yw05
I think the mapchunks (or something) is unloaded when it is inactive for some time (trains from AdvTrains is an exception but they also act weirdly in unloaded chunks). And for multiple versions of the same map - I think you mean rollback. Also, I really don't recommend large objects running like that esp. on a server - these can be a great lag source or they may look weird if the client has a very bad Internet connection.

Re: Question about features of minetest

PostPosted: Sun Jun 09, 2019 17:00
by parasite
If I am correct, (1) no, (2) no.

If I understand correctly your (2) issue, then you mean running several separate minetest instances at the same time (runing several minetest engines, having separate windows with seperate games). This is possible to run different servers (minetest engines, with own windows) in the same time in one computer, but you will not be able to make a complex link between two such games. You can send some data from one server to another (for example some amounts of diamonds from player X on server x to a player Y on a server y, that is just some simple arithmetic operation in one database and in other database, and some servers use such transfers). But you will not be able to walk with your character from one world (run by one server) into another world (run by other server). I suspect that no major (and fast) interaction between the two servers is possible. Anyway, the amount of data to be sent between such connected servers could exceed the capabilities available to any minetest hoster. So that is why I answered to your question as "no". But please, do not stop reading ;) There is a solution! You can have different dimensions, worlds, realms, kindgoms or whatever you can name it, in one game, in one window, in one server.

The default game contain only one "world" (do not confuse with "world" folder - all data that defines your game), which extends from 0 to -30 thousand blocks down (undergrounds) and from 0 to +30 thousand blocks above (empty space with air blocks only). The 0 level is the surface with grass, flowers, trees, mountains and seas. However, you can write a code that will divide this world into separate fragments.

Let's say, for example, that from the height of +10,000 to + 30,000 you will create a new "sub-world" with its own undeground layer, surface and air. So you will have a one "sub-world" with default settings (surface level at 0) and other with custom setting (lets say that it will have the surface at +20,000). Such two "sub-worlds" may have different features, like different rocks undeground and different ores, different trees, different gravitional force level and so on. How this can be made? Since the generation of various ores, mobs, plants and other blocks by mapgen also depends on the height, you can define in the code that, for example, oerrkie mobs will spawns only above +20,000, and zombies mobs only from -2 to +5 thousand.

You can make a player to be able to move from one "sub-world" to another without any problems (like: on foot, by stairs, towering, falling down and so on). But you can also seperate those two "sub-worlds" with undestructible layer of blocks (let say, for example, at the level of +10,000), so even when a player will build a tower on the surface of the bottom "sub-world", will never enter to the top "sub-world". With such "sub-worlds" in one game, you have the possibility of full interaction between them. You can even write a mod, thanks to which the player will have to do something in one "sub-world" in order to have the opportunity to do something different in the second "sub-world". Well, you can do much more if you know how to code. If you do not understand what I am trying to say, juch check this on servers. There are just a few servers on which you can see this. I know just two of them: MustTest and Pandorabox. (I may not know others if other such servers exist)

- MustTest. Some realms are separated from each other, and player need to use a special device to travel from one to another, but some realms are not seperated - player can dig down from surface to Nether realm. If you decide to visit this server, you must know that it is very demanding hard survival server, especially for beginners. That is, to make a progress and collect different kinds of food, to gather more food, more diamonds and build teleport portal to different realms, this will need a lot of time and effort.

- Pandorabox. When you join this server, you will see a typical minetest game, where there are trees and rivers on the surface, and iron, copper, diamonds ores underground. But that will be just the planet Earth. Other realms are the Moon, Mars and space with smaller asteroids. Od course, on Moon, Mars and in space you can`t breath as on Earth ;) If you decide to visit this server, you must know that it is not hard survival, this game is much easier than previous one. Here, soon after joining this server, you will be able to visit those other "sub-worlds".

If you are not a coder, you can use some existing mods that can make "sub-worlds" underground or make a space with asteroids, but even then, I guess, this will need some coding to configure these mods for your needs. There is also an attempt to create a general mod, which will allow you to create in your game various "sub-words" of any kind, but I do not know its current status (ie if this mod is playable).

If you are looking for an engine that will allow you to create two or more "sub-worlds" with the possibility of interaction between them, then maybe the minetest will be for you. Take some time to familiarize yourself with the aforementioned servers, look for this type of mods in mods sections of this forums, talk to people who have tried to do such things, maybe you will find something for yourself here.

Re: Question about features of minetest

PostPosted: Sun Jun 09, 2019 17:25
by yw05
According to my understanding:
(1) Askes whether different areas of a map can be processed by different cores - no. Large amount of data processing (or stuff like that) is basically causing lag to the server and therefore should be avoided.
(2) is about whether other dimensions exist (I think I get the point now) - no, but it appears that some people want to have this feature included.

Re: Question about features of minetest

PostPosted: Sun Jun 09, 2019 17:56
by parasite