{"action":"created","issue":{"url":"https://api.github.com/repos/minetest/minetest/issues/4428","repository_url":"https://api.github.com/repos/minetest/minetest","labels_url":"https://api.github.com/repos/minetest/minetest/issues/4428/labels{/name}","comments_url":"https://api.github.com/repos/minetest/minetest/issues/4428/comments","events_url":"https://api.github.com/repos/minetest/minetest/issues/4428/events","html_url":"https://github.com/minetest/minetest/issues/4428","id":170268516,"number":4428,"title":"Different \"Dimensions\" / Other worlds","user":{"login":"C1ffisme","id":9893266,"avatar_url":"https://avatars.githubusercontent.com/u/9893266?v=3","gravatar_id":"","url":"https://api.github.com/users/C1ffisme","html_url":"https://github.com/C1ffisme","followers_url":"https://api.github.com/users/C1ffisme/followers","following_url":"https://api.github.com/users/C1ffisme/following{/other_user}","gists_url":"https://api.github.com/users/C1ffisme/gists{/gist_id}","starred_url":"https://api.github.com/users/C1ffisme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/C1ffisme/subscriptions","organizations_url":"https://api.github.com/users/C1ffisme/orgs","repos_url":"https://api.github.com/users/C1ffisme/repos","events_url":"https://api.github.com/users/C1ffisme/events{/privacy}","received_events_url":"https://api.github.com/users/C1ffisme/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/minetest/minetest/labels/@%20Server%20/%20Client%20/%20Env.","name":"@ Server / Client / Env.","color":"009800"},{"url":"https://api.github.com/repos/minetest/minetest/labels/Feature%20request","name":"Feature request","color":"207de5"},{"url":"https://api.github.com/repos/minetest/minetest/labels/Non-trivial","name":"Non-trivial","color":"e144d8"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":53,"created_at":"2016-08-09T20:56:09Z","updated_at":"2016-10-02T04:55:12Z","closed_at":null,"body":"I don't think anyone suggested this in the past, and I thought maybe a place to discuss this (and put bounties) would be a good start.\r\n\r\n# Problem\r\n\r\nThe Minetest world is pretty big for the average player, right? 31 kilometers in 6 directions is enough for at least singleplayer, and most multiplayer servers, apparently.\r\n\r\nHowever, even then, you have a server that is just too big, or a player who wants to explore a pretty big area. Now, with only one \"dimension\", the current \"Overworld\", you already have enough space to last a good long time, but if you added mods like the nether mod, or anything else that adds a new space that is supposed to be \"far away\", then you run into problems.\r\n\r\nFor example, lets say I made a new dimension, and put it at around -30000. That seems to be far down enough. To get it, you need to mine a lot of diamonds to make a portal. Except, if you are one of those players who needs a lot of room (Or you just really love the colour of stone) you may mine all the way down to -30000. Then no matter how many diamonds you may have mined, you have reached the diamond dimension. Sure, I could use a bedrock-like block to stop people, but now we've lost 1000 layers downward of our world to a diamond dimension. Besides that, if I need any more space for my dimension, I need to take more room.\r\n\r\nBesides that, if I wanted to make a dimension like the Moon, and I want to make sure every player has a certain sky texture applied to them, I would need to check every so many times whether or not the player was above a certain height. How often would I need to check? Too fast, and the server would lag more than it already does. Too slow, and people would think it was \"glitching\".\r\n\r\nAfter all that, if even a world with no mods isn't enough space for a player, there really is no other way at the moment to give the player more space to work with. (Although the correct fix for this would be truly infinite worlds.)\r\n\r\n# Solution : Different Dimensions\r\n\r\nThe best way I can think to picture this is having two or more \"sub-worlds\" in the same world folder, both accessible in-game. Each of these \"sub-worlds\", or dimensions, can be accessed through the API. The player would have a fourth coordinate, d. Because nobody wants to deal with numbering off dimensions, this coord will be a string, and all dimensions will have string names. (Like \"nether\", or \"overworld\". Preferably, each mod's dimensions would start with the mod name, like \"builtin:overworld\" and \"nether:nether\"). The only way to travel through this fourth coordinate is through mods moving you.\r\n\r\n# API changes needed\r\n\r\n- minetest.set_node() and minetest.get_node() would need to allow for another coordinate. Perhaps these could be methods of the subworld, and not of minetest? (e.g., nether.get_node(),overworld.set_node())\r\n- Setting generation type and biomes for each world. Singlenode could be set as a default for some dimensions that use a luagen.\r\n- player:get_dimension() and player:set_dimension()\r\n- Other things I may have forgotten? (WIP, I'll write stuff here as it's disscussed.)\r\n\r\n# Problems to deal with.\r\n\r\n- One world is already a lot for some servers.\r\n- Again, other things I may have forgotten.\r\n\r\n# Profits\r\n\r\nTo sum up all of the things that were mentioned in the \"Problem\" section, here is what dimensions would allow:\r\n\r\n- Even more building space.\r\n- No hacked in dimensions, no need for bedrock.\r\n- No need to check whether or not the player is in your dimension with something like minetest.register_globalstep(). (In case they say, nerd-poled all the way up to your \"Moon\", or teleported there.) Because a dimension can only be reached through mods, all you would need is code like this:\r\n\r\n```\r\nif (player is in conditions to change dimension) then\r\n    player:set_dimension(\"mod:dimension\")\r\n    do(thing that you want to do to the player when he reaches that dimension.)\r\n```\r\n\r\nThe only concern is if another mod puts you in a dimension, then they have to worry about making sure they do the things you want them to do. Another option is to have something like:\r\n\r\n`dimension:register_on_entering(function(player))`\r\n\r\n- Enough space for as many dimensions as the computer has memory to hold them.\r\n- \"Home Worlds\"- type servers where every player gets a private world to do what they like with, and a hub world to play with/trade with/ attack other players.\r\n- Again, anything I forgot.\r\n\r\n(Sorry for the incomplete lists and such.)"},"comment":{"url":"https://api.github.com/repos/minetest/minetest/issues/comments/250953695","html_url":"https://github.com/minetest/minetest/issues/4428#issuecomment-250953695","issue_url":"https://api.github.com/repos/minetest/minetest/issues/4428","id":250953695,"user":{"login":"Icalasari","id":22527391,"avatar_url":"https://avatars.githubusercontent.com/u/22527391?v=3","gravatar_id":"","url":"https://api.github.com/users/Icalasari","html_url":"https://github.com/Icalasari","followers_url":"https://api.github.com/users/Icalasari/followers","following_url":"https://api.github.com/users/Icalasari/following{/other_user}","gists_url":"https://api.github.com/users/Icalasari/gists{/gist_id}","starred_url":"https://api.github.com/users/Icalasari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Icalasari/subscriptions","organizations_url":"https://api.github.com/users/Icalasari/orgs","repos_url":"https://api.github.com/users/Icalasari/repos","events_url":"https://api.github.com/users/Icalasari/events{/privacy}","received_events_url":"https://api.github.com/users/Icalasari/received_events","type":"User","site_admin":false},"created_at":"2016-10-02T04:55:12Z","updated_at":"2016-10-02T04:55:12Z","body":">Our 2 mapgen devs, hmmmm / kwolekr and myself, find the idea of 'world not big enough' funny and ridiculous, and strongly oppose enlargement. A few players ask for it only because of Minecraft's size.\r\n\r\nThere's more than just because of Minecraft, such as the fact that exploring horizontal directions is more likely as it's easier to walk kilometers than it is to climb up/dig down. That said,\r\n\r\n>No, completely different.\r\n\r\nDoes tell me it's a moot point as apparently I was mistaken about the difficulty of horizontal map... stacking? via realms/subworlds/etc. Actually, I am kind of curious as to why it's harder - It can't be the generation, can it? That would remain a problem even going vertical since any floating islands or cave systems would need to be generated consistently. Probably getting off topic though =/"}}
{"actor":{"display_login":"Icalasari"}}