[Mod] Skylands [4.2.1] [skylands]

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

Re: [Mod] Skylands [4.2.1] [skylands]

by philipbenr » Post

Topywo wrote:
HeroOfTheWinds wrote:I was actually considering a companion mod for Caverealms to make a "rope" block that, when placed, would make climbable rope drop down. Your idea could work better with more style. ;)
I'm not sure if those are all the drop down rope mods:

Bas080 has made a vines and rope mod:
viewtopic.php?f=11&t=2344

And this one (I couldn't find the forum post) from MirkoKa:
https://github.com/MirkoKa/Rope-mod-for-Minetest
Check out castle+ by Dan and I. I have had no time to work on my fork, castles++, because I can't get some things in Lux_Solis to work... Anyhow, it has a ropebox which has the same concept.

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

Re: [Mod] Skylands [4.2.1] [skylands]

by Kilarin » Post

fyregryph is running skylands on his "My Little Testy" server. Playing around on there brought to my attention one issue Skylands is going to have with multiplayer servers.

On a multiplayer server, in order to keep lag down, the server has to strictly limit the visual range. Well, not actually the "visual range", you can still set that to whatever you want, but on a server it is usually set to only load a short distance around you. So you might be able to "see" for hundreds of nodes, but you could only see nodes that you had passed close to and were loaded. It has to load only a small area around the player because it simply can't be sending everyone huge chunks of data every second.

But if your visual range is 30 nodes or less, finding a floating island becomes a MUCH bigger chore than it is in single player. You could build a bridge (or fly) right past a floating island in a multiplayer game and never know it was there unless you got within the limit the server loads.

I'm not certain what the solution to this is. Would it be possible to build some kind of "radar" node that could display where islands were out to a significant distance? Since the lua would run server side it MIGHT be possible to do this with less lag than actually transmitting all of the nodes? But, I'm skeptical about this one, since it would still require loading a big chunk of data, and with lots of users using radar nodes, it might still be putting a heavy load on the server.

If the broadband "radar" node is still too laggy, what about a wand type device that would scan for land in a very narrow path along one direction? That way it would be something that would be loading significantly fewer nodes. You could scan 200 nodes ahead, and only be loading 200 nodes, which is about the effort of loading a 6x6x6 node cube, pretty small. You could even scan 1000 nodes ahead and not be putting any greater load on the server than loading a 10x10x10 cube.

I have little or no clue about how to deal with server/client issues or how to code around lag. Networking is one of my weakest areas. So these ideas may be useless. But I think the issue of how to find floating islands in a vast sky when dealing with the limited area loading that happens on a multiplayer server is one that could use addressing.

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: [Mod] Skylands [4.2.1] [skylands]

by HeroOfTheWinds » Post

Kilarin wrote:fyregryph is running skylands on his "My Little Testy" server. Playing around on there brought to my attention one issue Skylands is going to have with multiplayer servers.

On a multiplayer server, in order to keep lag down, the server has to strictly limit the visual range. Well, not actually the "visual range", you can still set that to whatever you want, but on a server it is usually set to only load a short distance around you. So you might be able to "see" for hundreds of nodes, but you could only see nodes that you had passed close to and were loaded. It has to load only a small area around the player because it simply can't be sending everyone huge chunks of data every second.

But if your visual range is 30 nodes or less, finding a floating island becomes a MUCH bigger chore than it is in single player. You could build a bridge (or fly) right past a floating island in a multiplayer game and never know it was there unless you got within the limit the server loads.

I'm not certain what the solution to this is. Would it be possible to build some kind of "radar" node that could display where islands were out to a significant distance? Since the lua would run server side it MIGHT be possible to do this with less lag than actually transmitting all of the nodes? But, I'm skeptical about this one, since it would still require loading a big chunk of data, and with lots of users using radar nodes, it might still be putting a heavy load on the server.

If the broadband "radar" node is still too laggy, what about a wand type device that would scan for land in a very narrow path along one direction? That way it would be something that would be loading significantly fewer nodes. You could scan 200 nodes ahead, and only be loading 200 nodes, which is about the effort of loading a 6x6x6 node cube, pretty small. You could even scan 1000 nodes ahead and not be putting any greater load on the server than loading a 10x10x10 cube.

I have little or no clue about how to deal with server/client issues or how to code around lag. Networking is one of my weakest areas. So these ideas may be useless. But I think the issue of how to find floating islands in a vast sky when dealing with the limited area loading that happens on a multiplayer server is one that could use addressing.
Well, it makes me very happy to hear that this is now on a server!

Indeed, you bring up a very valid point, and your idea of a solution sounds very good. The only way to figure out where an island is located, is to calculate the same perlin used to generate the islands. Thankfully, since this would be a sub-mod of sorts, all the perlin values would already be there, and wouldn't have to be updated whenever the perlin values get tweaked. Also, I would probably do a 500-1000 node search in at least four directions, since calculating perlin noise in a for loop takes less time than firing up the LVM every time a chunk is loaded. I'll do some tests and see if I can get something worked out. Thanks for the catch!

EDIT: Half an hour in, it looks like this will take some time to solve..............
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

startdream
New member
Posts: 5
Joined: Tue Apr 22, 2014 16:20
Contact:

Re: [Mod] Skylands [4.2.1] [skylands]

by startdream » Post

Nice mod! :)

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: [Mod] Skylands [4.2.1] [skylands]

by HeroOfTheWinds » Post

Thanks! :)

Well, after trying for a while, I have come to the sad conclusion that such a radar is impossible to create as the minetest engine currently stands. The islands are generated with perlin noise offset from the world's seed, but the world does not calculate its own perlin for ungenerated areas. Hence, the regular functions used for getting perlin don't work outside of register_on_generated()... I tried using GetPerlinMap, but that, too, just calculates the noise irrespective of the world's seed (which the islands DO need). Hence, unless someone can think of something extremely clever, it will be necessary to just cross your fingers on finding islands on multiplayer servers...
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

mystik
Member
Posts: 65
Joined: Tue Oct 28, 2014 22:16
GitHub: jasonjayr
In-game: mystik

Re: [Mod] Skylands [4.2.1] [skylands]

by mystik » Post

I inherited the "My Little Testy" server (see here), and I can indeed confirm that the skylands mod is at least one source of lag. Thankfully the server is *relativly* small, (for now) but skylands has occasionally lagged users off.

The system hosting it has an IDE drive on it (it was a spare I had lying around), it's a Pentium 4 3.0 ghz (with hyperthreading), and of the 816 skyland timing samples I have in the last 3 days, 65 took more than 4000ms, with the longest 5 samples taking taking 95582-216062 ms. Since the time measurement seems to include vm:write_to_map() I'm going to credit most of exceptional high times to HD io time. The system is configured to run 2 EmergeThreads. I'm working on adding more graphing metrics to the system, and once I do, I'm happy to share what I find so we can correlate this against cpu + disk load.

I'm just starting to understand the MT engine, so I don't have any suggestions to add at this point, but I"m happy to experiment and split off the server for testing. The connection information is that post I linked above, feel free to visit :)

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: [Mod] Skylands [4.2.1] [skylands]

by HeroOfTheWinds » Post

Hmm, this seems a little odd. After I changed the liquid system, I didn't run into any more 4000+ ms generation times. Do you know which version the server is running?
Also, from my experiments, writing to map actually takes far less time. Most of that load is coming from the functions determining how to generate the islands, particularly where liquid is involved. If i have time this weekend, I might try seeing what could be optimized in the code. Thanks for reporting this, hopefully it should help to make SkyLands more efficient in the future.

So far, the most efficient mapgen mod I have is CaveRealms. In my tests, it usually runs at least 5 times as fast as SkyLands. A little less than 80 ms can be attributed to opening and closing VoxelManip, I think. But I haven't looked at it *that* closely.
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

mystik
Member
Posts: 65
Joined: Tue Oct 28, 2014 22:16
GitHub: jasonjayr
In-game: mystik

Re: [Mod] Skylands [4.2.1] [skylands]

by mystik » Post

I'm building from git head:

Code: Select all

root@minetest01:~# /opt/minetest/git-current/bin/minetestserver  --version
minetestserver 0.4.11-153-gca217d0
Build info: VER=0.4.11-153-gca217d0 BUILD_TYPE=Release RUN_IN_PLACE=0 USE_GETTEXT=0 USE_SOUND=1 USE_CURL=1 USE_FREETYPE=1 USE_LUAJIT=0 STATIC_SHAREDIR=/opt/minetest/git-current/share/minetest
I'll see if I can toss in a patch to emit timestamps before/after saving the voxel data, to see if the lag is before or after then.

mystik
Member
Posts: 65
Joined: Tue Oct 28, 2014 22:16
GitHub: jasonjayr
In-game: mystik

Re: [Mod] Skylands [4.2.1] [skylands]

by mystik » Post

I revisited one paticular chunk that lagged one of my players off:

Code: Select all

Feb 13 16:10:57 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] done gen 174440 ms 
Feb 13 16:10:57 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] done lighting 174838 ms 
Feb 13 16:10:57 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] done everything: 174858 ms 
Feb 13 16:10:57 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] chunk minp 
Feb 13 16:13:44 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] done gen 167542 ms 
Feb 13 16:13:45 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] done lighting 167935 ms 
Feb 13 16:13:45 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -432] done everything: 167953 ms 
Feb 13 16:13:46 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -352] chunk minp 
Feb 13 16:14:22 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -352] done gen 36814 ms 
Feb 13 16:14:23 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -352] done lighting 37173 ms 
Feb 13 16:14:23 minetest01 mt02-mltp2[8727]: [skylands] [2128 5568 -352] done everything: 37193 ms 
In beteween all that it lagged the core long enough that the irc gateway got disconnected due to an irc ping timeout
Those additional timestamps were inserted after gen_pool, after set_data/calc_lughting, and after the write_to_map calls. I also adjusted it to include the coordinates it was generating in each log message. -- is that normal to have it generate a chunk twice like that?

Code: Select all

Feb 13 16:21:46 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] chunk minp 
Feb 13 16:21:59 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] done gen 13106 ms 
Feb 13 16:21:59 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] done lighting 13523 ms 
Feb 13 16:21:59 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] done everything: 13542 ms 
Feb 13 16:21:59 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] chunk minp 
Feb 13 16:22:12 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] done gen 12663 ms 
Feb 13 16:22:12 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] done lighting 13078 ms 
Feb 13 16:22:12 minetest01 mt02-mltp2[8727]: [skylands] [2048 5488 -192] done everything: 13095 ms 


Few more samples where the the timing goes beyond 4000ms ...

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: [Mod] Skylands [4.2.1] [skylands]

by HeroOfTheWinds » Post

Yeah, that's normal. A chunk consists of several mapblocks, all of which have the same corner... I think. Try sticking a callback before gen_pool, you should see a huge jump in time required.
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

poet.nohit
Member
Posts: 55
Joined: Fri Mar 06, 2015 00:50
GitHub: poet-nohit

Re: [Mod] Skylands [4.2.1] [skylands]

by poet.nohit » Post

Interesting. You know, I've been toying with some ideas for nether portals, but maybe what I need are Skyland portals...

wcwyes
Member
Posts: 145
Joined: Wed Jul 31, 2013 22:42

Re: [Mod] Skylands [4.2.1] [skylands]

by wcwyes » Post

there are 4 missing png files
skylands_tool_airsword.png
skylands_cavorite_jar.png
skylands_hallowed_air.png
skylands_holyhilt.png

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: [Mod] Skylands [4.2.1] [skylands]

by HeroOfTheWinds » Post

Thanks for the catch. I'm surprised I missed that, and even more surprised it wasn't found sooner. Needless to say, fixed!
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

User avatar
Prot
Member
Posts: 36
Joined: Thu Apr 02, 2015 13:20
GitHub: EuPhobos
In-game: EuPhobos
Location: SaratOFF

Re: [Mod] Skylands [4.2.1] [skylands]

by Prot » Post

I want to add to the server, but found that these flying Islands cast a huge shadow on the usual grounds,
and the sky is blinking under them, that's a problem.
Image

Image

Image

Image

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: [Mod] Skylands [4.2.1] [skylands]

by HeroOfTheWinds » Post

Yeah, sadly that is an engine-side problem. I can't do much about it, but I can posit that the shadows will not appear if the land if generated before the islands above it.
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

ozkur
Member
Posts: 180
Joined: Wed Oct 07, 2015 20:59
In-game: ozkur or XoRoUZ
Location: 6 minutes in the future

Re: [Mod] Skylands [4.2.1] [skylands]

by ozkur » Post

can you set it to generate another world(as a floating island, about 5000-8000)? I'm trying to make a mod that adds planets, and the moon.
Biplanes! 'Nuff said

I am a native English speaker, Ich spreche kein Deuscht, mais je parle un pue français.

User avatar
programmingchicken
Member
Posts: 540
Joined: Sat Apr 18, 2015 02:20
GitHub: pchicken
IRC: chicken pchicken
Location: not here
Contact:

Re: [Mod] Skylands [4.2.1] [skylands]

by programmingchicken » Post

ozkur wrote:can you set it to generate another world(as a floating island, about 5000-8000)? I'm trying to make a mod that adds planets, and the moon.
why not just make a map?
<gamerdude> I apologize for the above content

ozkur
Member
Posts: 180
Joined: Wed Oct 07, 2015 20:59
In-game: ozkur or XoRoUZ
Location: 6 minutes in the future

Re: [Mod] Skylands [4.2.1] [skylands]

by ozkur » Post

i want it spanning the entire world, and im a little lazy to do a 3000000000 * 3000 blocks.

oh, yeah. i kinda want each planet normal, but stacked one on top the other, high enough to not cast shadows and cause problems.
Biplanes! 'Nuff said

I am a native English speaker, Ich spreche kein Deuscht, mais je parle un pue français.

User avatar
programmingchicken
Member
Posts: 540
Joined: Sat Apr 18, 2015 02:20
GitHub: pchicken
IRC: chicken pchicken
Location: not here
Contact:

Re: [Mod] Skylands [4.2.1] [skylands]

by programmingchicken » Post

ozkur wrote:i want it spanning the entire world, and im a little lazy to do a 3000000000 * 3000 blocks.

oh, yeah. i kinda want each planet normal, but stacked one on top the other, high enough to not cast shadows and cause problems.
Look into the oldcoder "moon" mod. It has the earth under (or above?) the moon, and if you just repeat that a few times with code, you can get 10 more earths and 1000 hours more worldgen time.
<gamerdude> I apologize for the above content

ozkur
Member
Posts: 180
Joined: Wed Oct 07, 2015 20:59
In-game: ozkur or XoRoUZ
Location: 6 minutes in the future

Re: [Mod] Skylands [4.2.1] [skylands]

by ozkur » Post

programmingchicken wrote:
ozkur wrote:i want it spanning the entire world, and im a little lazy to do a 3000000000 * 3000 blocks.

oh, yeah. i kinda want each planet normal, but stacked one on top the other, high enough to not cast shadows and cause problems.
Look into the oldcoder "moon" mod. It has the earth under (or above?) the moon, and if you just repeat that a few times with code, you can get 10 more earths and 1000 hours more worldgen time.
thanks.
Biplanes! 'Nuff said

I am a native English speaker, Ich spreche kein Deuscht, mais je parle un pue français.

User avatar
programmingchicken
Member
Posts: 540
Joined: Sat Apr 18, 2015 02:20
GitHub: pchicken
IRC: chicken pchicken
Location: not here
Contact:

Re: [Mod] Skylands [4.2.1] [skylands]

by programmingchicken » Post

ozkur wrote:
programmingchicken wrote:
ozkur wrote:i want it spanning the entire world, and im a little lazy to do a 3000000000 * 3000 blocks.

oh, yeah. i kinda want each planet normal, but stacked one on top the other, high enough to not cast shadows and cause problems.
Look into the oldcoder "moon" mod. It has the earth under (or above?) the moon, and if you just repeat that a few times with code, you can get 10 more earths and 1000 hours more worldgen time.
thanks.
( ͡° ͜ʖ ͡°).
<gamerdude> I apologize for the above content

User avatar
TumeniNodes
Member
Posts: 2943
Joined: Fri Feb 26, 2016 19:49
GitHub: TumeniNodes
IRC: tumeninodes
In-game: TumeniNodes
Location: in the dark recesses of the mind
Contact:

Re: [Mod] Skylands [4.2.1] [skylands]

by TumeniNodes » Post

This could be used to create a Journey to the Center of the Earth map : )
A Wonderful World

ozkur
Member
Posts: 180
Joined: Wed Oct 07, 2015 20:59
In-game: ozkur or XoRoUZ
Location: 6 minutes in the future

Re: [Mod] Skylands [4.2.1] [skylands]

by ozkur » Post

no idea what that is, but it sounds cool!
Biplanes! 'Nuff said

I am a native English speaker, Ich spreche kein Deuscht, mais je parle un pue français.

User avatar
Johnny Joy
Member
Posts: 56
Joined: Fri Sep 05, 2014 20:26
GitHub: johnnyjoy
In-game: jjb

Re: [Mod] Skylands [4.2.1] [skylands]

by Johnny Joy » Post

Is it possible to produce more smooth or clean-edged islands?

Post Reply

Who is online

Users browsing this forum: No registered users and 36 guests