Kilarin wrote:A possible suggestion for those who want more horizontal exploration space. An approach that MIGHT require a smaller engine rewrite.
Don't get me wrong : I didn't expect such a thing to be doable without modifying the engine. The whole discussion has been mostly spent on "why would you ever need this?", but we're actually in the "Feature discussion" section, and I wasn't asking for help on doing that in a mod.
Your idea might be doable, but it MAY be more complicated than just using bigger coordinates. Still, every lead on how to do it is interesting, IMHO.
thetoon wrote: I wasn't asking for help on doing that in a mod.
Nope, it would still be an engine rewrite.
thetoon wrote: it MAY be more complicated than just using bigger coordinates.
Yep. That's why I was asking for the developers opinions. There is every possibility that wraparound logic might be far more complicated than just increasing the size of the coords. I can foresee possible problems with mapgen logic when crossing the edges? It all depends on how the code is structured.
Kilarin wrote:Nope, it would still be an engine rewrite.
My point, exactly. Well, rewrite might be a bit of an exageration, but that's certainly not just a matter of a changing a datatype declaration. I'm surprised, though, how well minetest behaves when you cross the boundaries : you can easily teleport beyond the limits and things keep working. Just without ground. That's encouraging.
What I'm calling here is not a patch, nor even an indication on how to do it, it's just collective brainstorm about how high the cost of an horizontally bigger map would be. Then we might eventually decide it's not worth it.
It would be easier to change the way positions are serialised (stored) than doing wrap around. As in making it so it is a 192k etc map. From what I understand of the engine, anyway.
I think the 'wraparound logic' that's being discussed would be a very valuable addition/change in its own right, with more good uses beyond fudging world space/size. Like creating 'spherical' worlds by removing any edge, having all four edges of the map loop back to the opposite edge. Or you could fake a 3D cube planet with six 'faces' and fourteen (did i count right?) looping/wrapping edges - possibly useful for letting you easily later generate an external view (as in a space game with multiple planets), by ripping just the visible surface geometry (and this might permit some limited external interaction, or assist in more seamless transition between zones).
And, am I the only one who feels this somehow connected to the VAE concept? I feel like the two would be similar in a lot of ways, in terms of what logical difficulties they present, and might both be best solved with the same root change.
emugod wrote:Or you could fake a 3D cube planet with six 'faces'....
That's an awesome idea! You could make use of a heck of a lot more of the 64k^3 volume that way. Use a cube with a "radius" (center to face distance) of up to 30k. Depending on which of six regions you are in (determined by which primary axis coordinate has the greatest magnitude and its sign), up/down would just be in a different direction (for determining camera orientation, gravity, and "height"). There'd be the +X region, and -X, +Y, -Y, +Z, and -Z.
prestidigitator wrote:Depending on which of six regions you are in (determined by which primary axis coordinate has the greatest magnitude and its sign), up/down would just be in a different direction (for determining camera orientation, gravity, and "height"). There'd be the +X region, and -X, +Y, -Y, +Z, and -Z.
What I was really suggesting was to 'fake' this, without any need for the gravity changing around, by instead using the wraparound/loop on a normal flat map, just arranged as an unfolded cube laid flat (most commonly shown as cross shaped). More because I really feel the true 3D cube world just wouldn't actually be any fun, but also just to avoid the fairly significant work of implementing that gravity changing.
emugod wrote:What I was really suggesting was to 'fake' this, without any need for the gravity changing around, by instead using the wraparound/loop on a normal flat map, just arranged as an unfolded cube laid flat (most commonly shown as cross shaped). More because I really feel the true 3D cube world just wouldn't actually be any fun, but also just to avoid the fairly significant work of implementing that gravity changing.
thetoon wrote:What would happen if people ... mine ?
That's actually the exact problem I have with the true 3D cube world concept. If players are constantly changing the shape of the planet it would seem to me you'd quickly wind up with significant 'gravitational anomalies'. What happens when a player digs to the center? Do they become trapped, floating? Or what about when a player builds their space elevator, or their artificial mountain? Is the center of gravity shifted?
Whereas with what I'm describing to fake it, it's just a standard map of somewhat unusual shape (like an unfolded cube box, commonly depicted as cross made of six squares), with the wraparound/looping effect between faces. It would provide an expediency to generating a false external view, and probably even one that could support some degree of external interaction.
thetoon wrote:What would happen if people ... mine ?
What happens when a player digs to the center? Do they become trapped, floating? Or what about when a player builds their space elevator, or their artificial mountain? Is the center of gravity shifted?
Just put a black hole in the center. If player digs into it, do anything you want. Kill, teleport, give superpowers. And the black hole would be the only source of gravity so you don't need to worry about gravitational shifts.
A somewhat simplified method of faking a cube-world on a single map might be to use something like "Möbius" Farlands: a procedurally-generated border to the map that symmetrically joins one edge to its opposite.
This could be a Perlin mountain range, or a desert, or even a vast Tethys Ocean, but it would need to be just large enough to take you out of visual range of one map edge, before teleporting you to a corresponding point within the opposite Farland. The idea is that from the POV of the player, continually walking in one direction eventually takes you around the world.
To avoid storage cost, the Möbius Farlands might have to be intantiated as-and-when encountered, and thus any changes to them would be non-persistent.
spootonium wrote:The idea is that from the POV of the player, continually walking in one direction eventually takes you around the world.
Unfortunately, this will not make the world larger. It'll become even smaller because travel distance between 32768,32768 and -32768,-32768 will be zero.
thetoon wrote:What would happen if people ... mine ?
If players are constantly changing the shape of the planet it would seem to me you'd quickly wind up with significant 'gravitational anomalies'. What happens when a player digs to the center? Do they become trapped, floating? Or what about when a player builds their space elevator, or their artificial mountain? Is the center of gravity shifted?
Eh. We're not talking about perfect geometry, so just make it consistent:
local xm, ym, zm = math.abs(x), math.abs(y), math.abs(z);
local xs, ys, zs = (x ~= 0 and x/xm) or 1, (y ~= 0 and y/ym) or 1, (z ~= 0 and z/zm) or 1;
up =
{ x = (xm >= ym and xm >= zm and xs) or 0,
y = (ym > xm and ym >= zm and ys) or 0,
z = (zm > xm and zm > ym and zs) or 0 };
Always an up. Jump/climb/fly that way (or the opposite, if you're in space) to go home.
Nore wrote:I do have code that should make the world infinite, however, there are still a lot of limitations:
-> you still can't go further than 214748 because of the way floats are sent (a 32 bit integer)
Could you elaborate on this? And the nature, root cause, of the current codes 2^15 limit?
Nore wrote: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
This works, but collision stops working after ±32768. If you fall past that limit, the game will freeze, using all CPU and taking RAM increasingly. Frequent flickers of the world also happen.
Thus, only a few blocks are really available, this still adds 1856 blocks, which is 6 % more, in each direction.
I just read this whole topic and the smartest thing said was Kilarin's post on page 2, 3rd post down. If it would take that long to just WALK (NO hitting mapgen "walls", NO stoping and looking, NO mining, NO building NO NOTHING EXCEPT WALKING!!!) Why the fuck do you idiots need or even want a bigger map? That is also just the surface, if you tak into account the actual number of changeable nodes in the game (including replacing air with something) It is as close to infinate as we could ever need. 15 fucking years to walk the whole map. If you all want a Minecrap like map then fucking go play Minecrap. I for one suggested SMALLER maps, because there's no need for something so big. This game is free, just fucking play the game and have fun. Don't be a whiney little baby because "theres and edge", or "I can't walk in a straight line for more than 3 hours". Honestly, if you need to walk for more than 3 hours, you have no life (and this is coming from someone that actually has no life). Another thing I saw was, "You need to add mods to make it playable" So fucking what?? Minecrap has a ton of mods also. Every little fucking thing you see in that game, came from a mod originally, the monsters, the nodes, everything! I had creepers and zombies on my Minecrap Classic server, how? MODS! Grow the fuck up people. The map is plenty big, (too big in my opinion) mods make different servers different, just like on your Minecrap game. Again, if you want another game, go play that game. Don't expect this one to change for you and you alone. Honestly, if this game becomes much more like Minecrap, I will find another game to play, just like if this ever goes pay like Minecrap.
And I already explained why people want more space. The smartest idea was about transforming map into a cube with gravity. Probably you can't into reading and understanding so try something else like going to the war and become a hero (all girls will be yours).
It is mostly just bragging rights. Don't you want to say 'the maps in Minetest are bigger than in Minecraft'?
Also, bigger maps are needed in order to create real life things, such as a whole country from height map data.
But that is about it. We currently have the bragging right of unlimited in all directions, which is good for a mining game. I suggest we make more use of this, in gameplay. Vertical biomes? Like different types of stone and caverns.
Personally i found the idea of larger or edge-wrapping worlds boring, it's much more interesting to have an edge which is reachable in a reasonable length of time, just think how much time we save compared to a Minecraft long term mission to the farlands. If there was an edge much further away i wouldn't even bother trying to travel to it. As you can see Nore has tried to create a larger world and Calinou has tested and demonstrated it is impractical. Some people 'want' a larger world without actually 'needing' it. Some of these ideas can be done in a lua mapgen that slices up our huge vertical space, combined with teleportation. Other than that it looks like a larger world is only possible with a huge rewrite of the engine, no-one can be bothered for such a non-existant need. Minetest's own mapgen dev has commented on this topic on IRC and his attitude is very similar to this.
rubenwardy wrote:But that is about it. We currently have the bragging right of unlimited in all directions, which is good for a mining game. I suggest we make more use of this, in gameplay. Vertical biomes? Like different types of stone and caverns.
I think we can safely say that modders like paramat and I have been trying to remedy this a bit with some mods like fracture, floatindev, SkyLands, subterrain, and CaveRealms. :) Not to mention some of the other mods that wouldn't mind a revival, such as PilzAdam's nether mod or the nyan cat heaven mod. (I actually am trying to implement a heaven of sorts in SkyLands right now.)
I also agree with paramat on all but one point: while I'm not thirsty for edge-wrapping worlds, I'm not against them either. I'm actually quite tempted to try making a "farlands" style mod that includes edge wrapping, but I have no idea when I would get around to it. I'm barely keeping up with the mods I'm already working on. :P
Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P
Any "wrap around" that would be implemented should work seamlessly. Instead of teleporting a player to the other side of the world when they reach the edge, or any other cheap tricks, the client should load the chunks of the other side of the world as if they are adjacent to the edge. This might be difficult to do, but it will most definitely be worth it.
The reason for wanting a larger world, is that there needs to be more diverse (and larger) surface features available for players to explore and build upon. When the world is bigger than what could rationally be used, one can go far out and discover much more than what can ever be packed into a small world. That way, you never really know what is "out there", and there always exists interest in finding new, awesome places to build at. This would also have the effect of helping servers keep players from getting bored and quitting.