Minetest logo

IRC log for #minetest-dev, 2014-03-15

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:02 realbadangel_ joined #minetest-dev
00:03 BrandonReese joined #minetest-dev
00:03 sapier ~ tell xyz I fixed that particular unaligned access but I can't be sure there aren't others I haven't encountered yet
00:03 ShadowBot sapier: O.K.
00:06 deltib1 joined #minetest-dev
00:07 kahrl joined #minetest-dev
00:08 psedlak_clone joined #minetest-dev
00:10 sapier left #minetest-dev
00:10 PilzAdam joined #minetest-dev
00:11 troller joined #minetest-dev
00:11 SmugLeaf joined #minetest-dev
00:11 SmugLeaf joined #minetest-dev
00:11 blaise joined #minetest-dev
00:16 kahrl joined #minetest-dev
00:20 troller joined #minetest-dev
00:35 kahrl joined #minetest-dev
00:37 Guest91260 joined #minetest-dev
00:43 blaise joined #minetest-dev
01:34 iqualfragile joined #minetest-dev
01:49 salamanderrake joined #minetest-dev
01:54 werwerwer_ joined #minetest-dev
01:55 SpeedProg joined #minetest-dev
04:51 khonkhortisan joined #minetest-dev
06:28 damiel joined #minetest-dev
07:01 khonkhortisan joined #minetest-dev
07:05 PenguinDad joined #minetest-dev
07:24 salamanderrake joined #minetest-dev
08:22 Exio4 joined #minetest-dev
08:29 ImQ009 joined #minetest-dev
09:13 nore joined #minetest-dev
09:13 grrk-bzzt joined #minetest-dev
09:15 nore ~tell sapier could you link me to the relevant code please?
09:15 ShadowBot nore: O.K.
09:49 CheapSeth joined #minetest-dev
10:06 VargaD_ joined #minetest-dev
10:07 restcoser joined #minetest-dev
10:18 Hiradur joined #minetest-dev
10:35 proller joined #minetest-dev
11:09 troller joined #minetest-dev
11:17 proller__ joined #minetest-dev
11:19 Hiradur joined #minetest-dev
11:32 proller joined #minetest-dev
11:45 proller joined #minetest-dev
11:46 Garmine joined #minetest-dev
11:53 EvergreenTree joined #minetest-dev
11:58 sfan5 who made formspecs so horrible
11:58 sfan5 ?
11:58 proller moron
11:59 proller somebody must rewrite formspec to json
11:59 sfan5 that is not the problem
12:00 celeron55 "horrible" is a rather vague description of a problem
12:02 celeron55 so, can we have a less vague description of a problem?
12:03 sfan5 yes
12:05 sfan5 look how nicely the field aligns: http://i.imgur.com/K6djBiJ.png
12:09 sfan5 also button_exit does not send checkbox fields
12:10 PilzAdam joined #minetest-dev
12:11 celeron55 fix it
12:15 tomreyn joined #minetest-dev
12:30 proller joined #minetest-dev
12:38 ImQ009 joined #minetest-dev
13:00 iqualfragile joined #minetest-dev
13:01 Hiradur joined #minetest-dev
13:08 PilzAdam nore, https://forum.minetest.net/vie​wtopic.php?pid=133192#p133192
13:08 PilzAdam the 200 range sounds familiar
13:08 nore yep...
13:09 nore how does the sound thing work? I hadn't even thought sound would be affected by this
13:22 celeron55 i am guessing the problem is in the call to updateListener
13:44 sfan5 wtf?
13:44 sfan5 why do we have many throw LuaError(NULL, ...) calls in a function where you have lua_State
13:44 sfan5 (first param to LuaError is supposed to be lua_State)
13:45 sfan5 makes debugging mods harder because you don't get a backtrace
13:47 celeron55 probably because somebody didn't figure that out and just copypasted stuff
13:50 sfan5 pushing in 5 mins: http://ix.io/b5W
13:53 NakedFury joined #minetest-dev
14:07 Megaf joined #minetest-dev
14:09 nore pushing in 15 mins if nobody objects: https://github.com/Novatux/minetest/commit​/9ded524b291cf3d6989afc4d86b0e2f1b4a5598a
14:13 EvergreenTree joined #minetest-dev
14:14 Hiradur speaking of sound... openal soft's hrtf would be nice
14:19 iqualfragile_ joined #minetest-dev
14:30 hmmmm joined #minetest-dev
14:33 restcoser joined #minetest-dev
14:37 Selat joined #minetest-dev
14:38 proller joined #minetest-dev
14:51 sapier joined #minetest-dev
14:52 sapier https://github.com/minetest/minetest/commi​t/03297acbf4efba9a19a7f31950cb6f2bc3c65ec8 I don't really understand the bug but wasn't there a way to fix this without doing multiple back and forward conversions?
14:54 sapier the code does         wide_to_narrow(wstrgettext(​chartowchar_t(gettext()))) ... previous one did gettext() only ... despite of a lot of timing changes I don't see how this is supposed to fix a bug
15:10 celeron55 that definitely should not be needed, why was it pushed?
15:11 celeron55 i am guessing something is still wrong in setting up locales on some platform
15:11 celeron55 but the commit message doesn't give any hint about which
15:12 celeron55 instead it just monkey-patches aroun dit
15:12 celeron55 around it*
15:12 celeron55 well that was a wrong term
15:12 celeron55 ugly workaround anyway
15:18 NakedFury joined #minetest-dev
15:23 smoke_fumus joined #minetest-dev
15:25 nore ok, pushing the sound fix... it has been much more than 15 mins...
15:29 troller joined #minetest-dev
15:39 troller joined #minetest-dev
15:46 Zeitgeist_ joined #minetest-dev
15:46 Zeitgeist_ joined #minetest-dev
15:49 grrk-bzzt joined #minetest-dev
15:50 restcoser stresstesting ruins mod:http://i.imgur.com/JFWC462.jpg
15:51 restcoser i guess i can call it stable
15:51 restcoser max 400ms/chunk
16:01 EvergreenTree joined #minetest-dev
16:08 rsiska joined #minetest-dev
16:40 Gethiox joined #minetest-dev
16:47 Garmine joined #minetest-dev
16:54 Selat As I understand this https://forum.minetest.net/viewtopic.php?id=4807 added 6D rotations support. Can I determine direction of node without Lua? (i.e. using only information from ContentFeatures).
16:57 nore Selat, direction is stored in param2
16:58 celeron55 you check from ContentFeatures whether it has CPT2_FACEDIR, and then if so, the value is in param2
16:58 kahrl or simply call MapNode::getFaceDir()
16:58 Selat I meant 6D facedir.
16:59 celeron55 that's the thing
16:59 celeron55 what do you expect?
16:59 Selat If i'm not mistaken CPT2_FACEDIR is only for horizontal rotations.
17:00 kahrl no
17:00 celeron55 6D facedir just extends the value to more rotations
17:00 Selat And how can I check whether it extended or not?
17:00 celeron55 it always is
17:00 celeron55 the old values are a subset of the new ones
17:01 nore 0-3 are the old ones, 0-23 the new ones
17:01 nore you have axisdir = int(param2/4), and rotation within it = param2 mod 4
17:01 OldCoder joined #minetest-dev
17:02 Selat Maybe we are talking about different things. How can I check whether node can have 6 or 4 directions?
17:02 nore you can't, they always have 24 IIRC
17:03 kahrl if it has CPT2_FACEDIR, it can have 24, otherwise it can have 1
17:03 celeron55 actually CPT2_WALLMOUNTED has positioning too
17:03 kahrl right
17:03 celeron55 it has six possibilities, which the 6d facedir change didn't change at all
17:04 Selat Example: torch have 6 directions and chest only 4. How can I check  this number?
17:05 celeron55 chest has 24 directions; it's the 6d facedir
17:05 celeron55 torch is wallmounted (CPT2_WALLMOUNTED)
17:06 Selat So to have 6 possible directions node must be wallmounted?
17:06 rubenwardy joined #minetest-dev
17:06 Selat For example pistons.
17:06 celeron55 yes, and it only works for nodes with certain properties (can't remember what exactly)
17:06 kahrl I assume pistons use 6d facedir as well
17:07 celeron55 just use the 6d facedir if you don't have a clear reason to use something else
17:07 kahrl so they can have 24 directions, except some of them look and work the same
17:08 Selat Sorry, but I can't understand what is 6D facedir. ContentParamType2 have only wallmounted and facedir.
17:08 kahrl facedir == 6d facedir
17:08 celeron55 you're the one who started talking about 6d facedirs :P
17:09 Selat When I set paramtype2 to facedir it can have only 4 directions.
17:09 celeron55 (note that dimensions don't equal directions)
17:09 celeron55 it can have 24 (0...23)
17:10 celeron55 those are the every possible direction and rotation you possibly can place a cube so that it still is axis-aligned
17:12 nyuszika7h joined #minetest-dev
17:21 Calinou joined #minetest-dev
17:39 sfan5 who decided it would be a good idea for 127.0.0.1 always having all privs (non-revokeable)?
17:40 sfan5 that makes local testing a pain in the ass
17:40 celeron55 umm what
17:40 celeron55 in non-singleplayer?
17:40 celeron55 only singleplayer should have automatic privileges
17:46 troller all privs = cheats
17:46 celeron55 yeah now we need proller comments
17:47 troller survival game cant have cheats on h j k keys
17:47 celeron55 those privileges aren't given on singleplayer unless you specifically configure it so
17:48 celeron55 so, more non-problems?
17:57 sfan5 celeron55: non-singleplayer
17:58 sfan5 wait wut
17:58 sfan5 I don't even
17:58 sfan5 what?
17:58 sfan5 it works fine now
18:02 celeron55 is there still the ancient logic where the "name" setting determines an implicit administrator?
18:02 sapier yes
18:03 celeron55 can that be what sfan5 stumbled on
18:03 sfan5 name is not set
18:04 celeron55 combined with the client writing the config on shutdown, it can make quite arbitrary behavior sometimes
18:04 sfan5 I use seperate config files
18:07 salamanderrake joined #minetest-dev
18:15 NakedFury joined #minetest-dev
18:15 PenguinDad joined #minetest-dev
18:20 Exio4 joined #minetest-dev
18:26 iqualfragile joined #minetest-dev
18:57 Hiradur joined #minetest-dev
19:00 Miner_48er joined #minetest-dev
19:02 EvergreenTree joined #minetest-dev
19:04 ShadowNinja sfan5: That's intentional.  I forget why, but I think it avoids duplicate tracebacks.  /me checks
19:05 sfan5 if you have duplicate tracebacks that is not the place to 'fix' it
19:07 ShadowNinja sfan5: The error handler generates a backtrace.  Passing a lua_Stack generates another one.
19:07 sfan5 I cannot reproduce that
19:08 sfan5 the error I had did not produce any stacktrace at all
19:08 ShadowNinja sfan5: Add your patch and cause a LuaError to be thrown in a Lua -> C++ call.
19:09 sfan5 please paste me some example output
19:12 ShadowNinja Alright, one minute.  Can you check this? http://ix.io/b5d
19:17 sfan5 seems fine
19:19 Selat Currently there is no support of facedir-like nodes placing but for 6 directions?
19:20 ShadowNinja sfan5: http://pastebin.ubuntu.com/7097329/
19:20 ShadowNinja Second one's empty though.
19:21 sfan5 well
19:21 sfan5 why do we have 2 in the first case?
19:21 sfan5 the bug I had had 0 backtraces without my patch
19:23 kahrl Selat: minetest.rotate_and_place
19:25 Selat So for each such node I'll have to write script that will rotate it?
19:25 kahrl Selat: just add on_place = minetest.rotate_node to the node definition
19:28 Selat Maybe it's a good complement for facedir and wallmounted? I think such type of rotation is widely used.
19:28 kahrl what do you mean?
19:28 ShadowNinja sfan5: LuaError::LuaError() can't get the traceback, see http://pastebin.ubuntu.com/7097386/
19:29 ShadowNinja (with http://ix.io/b6a)
19:29 Selat Add it to ContentParamType2.
19:29 kahrl it = ?
19:30 ShadowNinja sfan5: Specifically what caused no error?
19:30 ShadowNinja s/error/traceback/
19:30 sfan5 I think it was return false in on_rightclick
19:31 Selat facedir-like rotation with 6 directions. I understand that 6D facedir supports it, but auto-rotating may be very usefull for modding.
19:36 ShadowNinja sfan5: Returning false in on_rightclick isn't an error?
19:37 Selat I think it' better to remove from engine "wallmounted" and process "auto-rotating" in some builtin scripts.
19:37 sfan5 ShadowNinja: I'm not sure, try return true
19:40 kahrl Selat: you can't remove wallmounted without providing a viable alternative (6d facedir isn't one)
19:41 Selat Hmm.. Wallmounted isn't subset of facedir so it's bad idea.
19:41 ShadowNinja sfan5: Hmmm, yes, no traceback.  But your patch doesn't add one either.
19:42 sfan5 ShadowNinja: I notices that too
19:42 ShadowNinja http://pastebin.ubuntu.com/7097456/
19:42 khonkhortisan joined #minetest-dev
19:43 sfan5 anyway: why do we have two stacktraces in the first place?
19:44 ShadowNinja sfan5: Because LuaError::LuaError generates one if you pass it a lua_State.
19:44 ShadowNinja And the error handler generates one too.
19:45 sfan5 then one of them shouldn't generate one
19:46 ShadowNinja sfan5: Which is what happened before...
19:46 sfan5 why do we have a lua_State param to LuaError then
19:46 sfan5 ?
19:47 ShadowNinja sfan5: I believe it was used somethere.
19:48 ShadowNinja sfan5: The return value of on_place/on_rightclick isn't collected until after lua_pcall returns and the stack has unwound.
19:48 sfan5 then why does LuaError generate a stacktrace too?
19:49 ShadowNinja sfan5: Because it's used somewhere...
19:49 ShadowNinja I'll have to check before your commit to see where.
19:49 sfan5 mh
19:49 sfan5 so LuaError is used somewhere where there is no stacktrace generator
19:50 sfan5 apparently it is too hard to just use the stacktrace function there where LuaError is used
19:50 sfan5 s/LuaError/LuaError's lua_state/
19:50 ShadowNinja grep -r 'Error(L' src/script/  src/script/lua_api/l_object.cpp:throw LuaError(L, "skybox expects 6 textures");
19:51 ShadowNinja Perhaps the parameter should be removed.
19:51 ShadowNinja That function should be passing NULL too.
19:52 Selat What about adding something like nodes hierarchy? And callbacks of all base nodes will be called first.
19:52 ShadowNinja sfan5: Is it O.K. if I revert your commit and remove the lus_State parameter?  Then add a more informative error message for on_place/rightclick.
19:53 sfan5 ShadowNinja: yes
19:54 Selat This will prevent code duplication.
20:00 ShadowNinja I'll push my serializeStructToString changes too.
20:15 sapier is someone messing around with serverlist right now?
20:15 sapier nope ... forget about it
20:22 grrk-bzzt joined #minetest-dev
20:47 ShadowNinja sfan5: This should give you a more informative error: http://ix.io/b6u
20:48 PilzAdam http://ix.io/b6u/diff too
20:48 sfan5 TIL
20:48 sfan5 ShadowNinja: seems fine
21:10 alexxs joined #minetest-dev
22:41 ShadowNinja Where was that thing that we set up where you could make a donation for a particular issue?  It didn't get mentioned anywhere but this channel so it was never used, but maybe it would if we mentioned it on the donations page.
22:42 ShadowNinja There was also a debate about the distribution of rewards.   We could have it all go to an account used for the website and the like, it's unlikely that anyone's going to make a significant ammount anyway.
22:49 iqualfragile joined #minetest-dev
22:58 iqualfragile ook, so paramat is creating some seriously awsome mapgens, why not try to integrate them (or at least a selection) into core? (or are there plans about that allready?)
23:00 ShadowNinja iqualfragile: The core should provide a way for mods to make good mapgens, which it already does.  It should also provide it's own, good, mapgen.  But we shouldn't have Lua mods in the core.  Those belong in games.
23:01 iqualfragile ShadowNinja: i know, i meant: rewriting them into native code
23:01 troller and lua mapgens 10x+ slower than c++
23:01 iqualfragile i do not think 10 times is accurate
23:02 troller more than 10
23:02 iqualfragile with luajit it should be somewhere around 1.2 to 5
23:02 troller test it
23:02 ShadowNinja iqualfragile: I beleive paramat has made some suggections for the core mapgen, and more helpfull ones would be appreciated.
23:02 ShadowNinja iqualfragile: Look at his nick...
23:02 ShadowNinja troller: Not helpfull.
23:02 iqualfragile oht its proller?
23:02 troller also lua mapgen single threaded
23:02 iqualfragile ShadowNinja: what are helpfull ones?
23:03 iqualfragile i think mapgen is hard to decide on by comite
23:03 iqualfragile why not just let him do his thing and produce a great new mapgen for core?
23:04 troller c++ mg make one block per 50-200ms,  paramat's lua per 2000-4000 ms
23:04 ShadowNinja iqualfragile: kwolekr is already working on v7.  A maogen in the core should provide extensive capablities for mods to change it.
23:05 troller you cant make cube world with v7
23:05 iqualfragile he is working on that for the better part of a year allready
23:05 ShadowNinja troller: Real stats: minetest.env:set_node: 6854.4ms -- VoxelManip:                   153.5ms -- Mapgen in core:            60ms (estimated)
23:05 iqualfragile and i have to admit that i do not see too much progress on it
23:06 iqualfragile paragen is a lot more complex then core mapgen v6/7
23:06 ShadowNinja He's been busy I suppose.
23:06 ShadowNinja If paramat's good at C++ he might be able to help developing it.
23:06 ShadowNinja hmmmm: ^
23:07 troller i tried flexrealm day ago, it generate block per 2000+ms
23:07 troller it use vm.
23:08 troller its - real stats.
23:09 iqualfragile paramat stated that watershed takes about 2 secs per block, improvable in my opinion
23:09 hmmmm iqualfragile, I have been encouraging paramat to move some of his own mapgens to the core
23:09 troller core i7 can generate 8 blocks in one time by core mapgen, and only one by lua
23:09 hmmmm they are nice
23:10 hmmmm the problem is the biomes
23:10 iqualfragile explain please
23:10 hmmmm that's the main reason why mapgen v7 isn't making any progress
23:10 hmmmm there are several fundamentally different strategies to biome generation
23:11 hmmmm one is the thing that everybody has been using so far, voronoi diagram of points on a 2d plane of heat and humidity
23:11 hmmmm that's how paramat's biomes work and pretty much every biome mod ever
23:12 hmmmm the problem with this is that it can't take into account terrain shape when determining biome
23:12 hmmmm so a desert might actually be a very hilly region next to an ocean
23:12 hmmmm tihs is a problem that needs to be solved for meaningful progress to be made in mapgen v7
23:13 ShadowNinja hmmmm: If you haven't found a solution in so long then mabe it's better to have odities like deserts next to oceans than to never finish it.
23:14 hmmmm i'd rather do it right or not do it at all
23:14 hmmmm i had a distinct vision in mind for mapgen v7
23:15 iqualfragile i do not quite seem to see the problem: 1) choose some random direction for wind 2) generate terain (height) 3) offset height by some blocks in wind direction (or choose some litle bit smarter tactic) and influence humidity
23:15 iqualfragile done :D
23:15 hmmmm uh.. sure
23:15 ShadowNinja iqualfragile: Some things are easy to say and hard to code...
23:15 hmmmm you go do that then
23:16 ShadowNinja If they even end up working.
23:16 iqualfragile thats how it works in real life
23:16 sapier iqualfragile can you have a look if mod download fails for you too?
23:17 iqualfragile sure
23:17 iqualfragile yep, minetest crashes
23:17 iqualfragile 3) needs to be changed a bit
23:17 sapier hmm it doesn't crash for me but I get a 0 bytes file
23:17 ShadowNinja iqualfragile: Real life is more complicated than that, and you can't wait a few million years for the earth to form.
23:18 iqualfragile as the actual height is not all that relevant but you just need a true/false map containing if a mountain is higher then cloud height at this position
23:20 iqualfragile (which would make clouds rain in front of the mountain, making that have a higher humidity and obviously reduce the humidity behind the mountain
23:20 iqualfragile )
23:21 iqualfragile you could use another map containing if the terrain is higher/lower then sea level to increase humidity in wind directon behind it
23:21 iqualfragile would that realy be hard to code?
23:21 hmmmm anyway my idea was to have biomes in the way minecraft does
23:21 hmmmm like ocean is a biome
23:21 sapier prior doing global warming simulations within minetest can we first fix moddownload? ;-)
23:21 hmmmm there's a mountain biome
23:21 hmmmm and so on and so forth
23:22 hmmmm i know how minecraft does this as well
23:22 hmmmm it's just fundamentally incompatible with the way map generation works in minetest
23:23 iqualfragile i do not think having mountain/ocean (in general terrain height influencing) "biomes" in the same category as vegetation/material influencing biomes (those are real biomes btw) in the same category
23:24 iqualfragile sapier: sure, one sec
23:25 iqualfragile wtf did i just write
23:26 iqualfragile i do not think having mountain/ocean (in general terrain height influencing) "biomes" in the same category as vegetation/material influencing biomes (those are real biomes btw) is a smart idea.
23:26 iqualfragile better.
23:26 kaeza joined #minetest-dev
23:27 diemartin joined #minetest-dev
23:30 iqualfragile hmmmm: thoughts?
23:30 hmmmm iqualfragile:  at the end of the day, a vertical node column has a specific biome associated with it and it can't be both at the same time, the way this system is set up.
23:31 hmmmm what about hills vs. mountains (not based on height alone, but rather terrain variance)?
23:31 iqualfragile what about it?
23:31 hmmmm you don't want to differentiate between the two?
23:33 paramat joined #minetest-dev
23:33 paramat hiya :)
23:33 hmmmm a biome, for me, isn't just a certain area for certain types of vegetation
23:33 iqualfragile hi paramat we were talking about you
23:33 hmmmm the word 'biome' itself means a lot more.
23:33 hmmmm i think he came here because he saw biomes being discussed in the logs
23:33 paramat yeah i saw on logs
23:34 paramat hehe
23:34 paramat iqualfragile, the only person who should convert my mapgens to c++ is me :) but im not interested at the moment
23:34 paramat feeling a bit burnt out from 1 year obsessive modding
23:35 NakedFury but thats terrain modding, perhaps switch to another modding type?
23:35 hmmmm what might be interesting is to indeed have two different types of biomes... one climate related, and one terrain related
23:35 paramat currently i prefer to use lua and the amazing LVM
23:36 hmmmm maybe a terrain related one could be like 3 bits of the biome value and then the bottom 5 can be vegetation
23:36 iqualfragile hmmmm: in case one would just stick with the one bit height map hills would most likely not matter, as they probably wont surpass cloud height
23:36 hmmmm no idea what you mean by the cloud height thing..
23:36 iqualfragile in case you would add a few bits for details the answer is obvious
23:37 hmmmm terrain base biomes, hrmm
23:37 hmmmm I originally, very very early on, had this same concept
23:38 hmmmm there were "ice mountains" and "mountains" or "ice planes" and so on
23:38 hmmmm in Minecraft, there isn't a combination of each biome 'attribute' per se
23:38 hmmmm they're just their own distinct biomes
23:38 paramat Peacock and i consider the core should provide powerful tools for lua mapgen, so games can have their own, slightly slower mapgens
23:38 iqualfragile i know, but why not be better then minecraft?
23:39 hmmmm minecraft's generation/biome strategy is completely different and fundamentally incompatible.
23:39 iqualfragile paramat: sure can you provide an idea how the api should look like? that might help a lot
23:40 troller c++ mg mod api ;)
23:40 paramat iqualfragile, we already have it, VOXMYNIPS
23:41 hmmmm ...lol, vox my nips
23:41 paramat althogh 4s per chunk is a little slow for a server ...
23:41 hmmmm what the hell
23:41 troller but now your mapgens terribly slow
23:41 paramat yeah 6s per chunk now feel slow to me hehe
23:41 hmmmm the thing about lua mapgens is that lua is slower to begin with, so whenever you add a lot of heavy logic you slow the whole thing down
23:41 hmmmm there's no replacement for an in-core mapgen
23:41 paramat yes
23:42 iqualfragile paramat: what are your thoughts on generating maps in two fundamentally different steps, the first one for height, the 2nd one for surface material, vegetation and stuff? (for details read the logs)
23:42 hmmmm which is why you really should add your flagship mapgen to the core
23:42 paramat i can make a fast mapgen only through lua simplicity, some of mine are 2spc
23:42 paramat yeah sorry still catching up on logs
23:43 hmmmm I can't come up with a decent way to calculate terrain variance without taking samples of a kernel
23:44 paramat mapgen in 2 steps is v6/v7, i do it all in one go using the 3D noise 'density' to define layers
23:44 paramat ^ hmmmm did v5 do that?
23:44 iqualfragile might be a bit hard to implement if you realy want to compleetly define humidity via terrain features (lakes, mountains, oceans, hills)
23:45 hmmmm v5 had no biomes lol
23:45 iqualfragile because you would need to generate a huge radius of terrain to aproximate humidity at any given point
23:45 paramat i might convert a mapgen to c++ in future, just don't feel like it right now :)
23:45 iqualfragile but shouldnt generating terrain be fast?
23:45 PilzAdam joined #minetest-dev
23:46 iqualfragile additionally you would only need to do that once and could save them for the future (might need a slight change to map format)
23:47 paramat "paragen is a lot more complex then core mapgen v6/7" nope
23:47 paramat my mapgens are extremely simple, and use simple lua language
23:47 iqualfragile the alternative would be to generate 2d perlin noise for humidity and just influence it a bit by regional terrain features
23:48 paramat yeah i sometimes reduce humidity with altitude
23:48 iqualfragile paramat: in that case: congratulations, the results still look quite complex, which is good
23:48 hmmmm hmm
23:48 iqualfragile paramat: nah, the idea was to choose a random (but fixed) wind direction and influence the surrounding humidity
23:49 iqualfragile (because clouds stop and rain in front of mountains and the air has less to no humidity left behind mountains)
23:49 hmmmm if the biome system were to remain completely separated from the map generation process, it would make the terrain biome determining-algorithm have to rescan the entire block and block neighbors
23:49 iqualfragile finished reading logs?
23:49 iqualfragile hmmmm: not quite
23:49 hmmmm you sure have it figured out don't you
23:49 iqualfragile you could generate the heightmap the when you generate the terrain
23:50 hmmmm you don't really understand what the problem is i'm referring to
23:50 iqualfragile ok, sorry, rethingking
23:50 iqualfragile ok, i still understand it the same way, care to explain?
23:50 hmmmm I wonder if I can calculate terrain variance by doing things like a fast gaussian blur
23:51 hmmmm i need to think about things for a while, give me a minute..
23:52 hmmmm basically, calculating variance is an O(n) operation
23:52 hmmmm if you were to calculate variance for the entire block that's O(n * m)
23:52 iqualfragile only problem (i see) left to solve is determining the terrain height realy quick (or just not do that, generate the full terrain (in paralel, should be possible) and save it for later modifications)
23:52 hmmmm the idea is to change variance calculation to O(1)
23:52 hmmmm maybe it could be statistical variance, maybe it can be something that approximates the same behavior
23:53 iqualfragile we are now talking about the same problem, right?
23:53 hmmmm i don't know, I'm talking to myself more or less
23:53 iqualfragile sure, just carry on
23:54 celeron55 hmmmm: what kind of variance are you looking for?
23:54 hmmmm i don't know.  statistical variance or whatever
23:54 hmmmm i just said, some way to determine how much the terrain varies from column to column in an O(1) way
23:54 celeron55 but, like, the map generator is likely to create the variance in a quite simple way
23:55 celeron55 so trying to figure out the internal variance input of the mapgen from the final output of it is kind of insane
23:55 hmmmm how I would do this if I didn't need to be optimal is to just get the height values in some set radius and then calculate variance of those samples
23:55 celeron55 (i've said this a long time before too; just reminding)
23:55 hmmmm yeah, I know, that's why I said it's difficult to keep them separate systems
23:56 celeron55 i think just designing a reasonable interface between them would work well
23:56 celeron55 but dunno really
23:56 iqualfragile wouldnt it be enought to check if the perlin_noise - heightramp = border and choose the highest match on terrain generation?
23:56 hmmmm celeron, early on what I tried to do is make the turbulence selector noise act as the terrain variance values as well
23:57 hmmmm it didn't give good results
23:57 hmmmm (you know, the noise that modulates the noise?)
23:57 hmmmm s/turbulence/persistence/
23:57 celeron55 how were the results bad?
23:58 sapier I wonder if it'd be more simple to do biomes the other way round. meaning not specifying them on mapgen but simulating them in runtime
23:58 celeron55 i can kind of guess though
23:58 iqualfragile sapier: wat?
23:58 hmmmm lack of good correlation between actual terrain variance and selected biomes
23:58 hmmmm sapier, you need to be able to figure out the biome to select the top nodes/filler nodes
23:58 hmmmm at the very least
23:58 hmmmm also vegetation and whatever
23:59 hmmmm anyway these are all old ideas pretty much
23:59 sapier that's what I meant ... not generating vegetation on mapgen but simulating their spread in runtime
23:59 hmmmm I've thought things through, I've tried a whole bunch of stuff, it just doesn't work well

| Channels | #minetest-dev index | Today | | Google Search | Plaintext