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/viewtopic.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/commit/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 |