Time |
Nick |
Message |
00:00 |
PilzAdam |
maybe print something to infostream? |
00:00 |
kahrl |
yeah |
00:00 |
kahrl |
I checked the #minetest-dev talk on the day the black magic was added, there was nothing |
00:03 |
PilzAdam |
btw, push that run_test() fix |
00:05 |
PilzAdam |
ok, got a case where black magic is used: I have 1 clay block in my inventory; then I move a dirt block into the creative inventory |
00:05 |
PilzAdam |
if I move it on clay in the creative inventory, it selects the clay in my players inventory |
00:05 |
kahrl |
found something in #minetest: http://irc.minetest.ru/minetest/2012-09-02#i_2476281 |
00:06 |
kahrl |
which run_test() fix? the one doubling a delay to 100ms? |
00:06 |
PilzAdam |
yes |
00:10 |
sweetbomber |
how can i access a table within a table in luaapi? |
00:10 |
PilzAdam |
Lua or c++? |
00:10 |
sweetbomber |
i tried with lua_getfield, but i probably did something wrong since i do not understood this system fully |
00:11 |
sweetbomber |
c++ |
00:11 |
sweetbomber |
ill show my code |
00:11 |
sweetbomber |
http://pastebin.com/973aPurP |
00:12 |
PilzAdam |
maybe look at l_craft.cpp readCraftRecipeShaped() |
00:14 |
|
diemartin joined #minetest-dev |
00:14 |
PilzAdam |
sweetbomber, in c_converter.cpp are some methods to push and read vectors |
00:18 |
sweetbomber |
how do i use for instance read3f? I need to use lua_getfield first? |
00:18 |
sweetbomber |
and when should i use lua_pop? |
00:18 |
sweetbomber |
s/when/ / |
00:20 |
khonkhortisan |
Thanks kahrl! |
00:21 |
kahrl |
you're welcome :D |
00:21 |
kahrl |
for what specifically? |
00:23 |
khonkhortisan |
the run test delay |
00:24 |
kahrl |
yeah, it kept bugging me too |
00:25 |
kahrl |
sweetbomber: if the table you want to read (with indices "x","y","z") is at position "index" on the lua stack, you call read_v3f(L, index) |
00:26 |
kahrl |
or checkFloatPos(L, index) if you want it to be multiplied with BS |
00:34 |
sweetbomber |
im still trying to understand how does this stack works, and what it contains |
00:34 |
kahrl |
I recommend reading "Programming in Lua" |
00:34 |
kahrl |
it has a part about the C API |
00:35 |
kahrl |
and some edition(s) of it are available online |
00:35 |
sweetbomber |
ty, ill give it a try |
00:35 |
sweetbomber |
i really feel lost |
00:36 |
PilzAdam |
kahrl, your black magic fix definitely works better than the previous code |
00:38 |
kahrl |
it should be tested with mods that do inventory-related black magic of their own |
00:38 |
PilzAdam |
VanessaE, can you test it with UI? |
00:38 |
VanessaE |
sure I guess |
00:43 |
VanessaE |
and this is for that issue where part of the stack gets left behind when you swap stacks? |
00:43 |
Exio |
rename "Minetest" to "Magictest" |
00:44 |
PilzAdam |
VanessaE, for this: https://github.com/minetest/minetest/issues/332 |
00:44 |
VanessaE |
ah |
00:44 |
PilzAdam |
to reproduce: have 2 exact same stacks in the invenory, then put an item on the second one |
00:44 |
PilzAdam |
(exact same == same item and same count) |
00:45 |
VanessaE |
seems to work fine. exactly as expected. |
00:46 |
VanessaE |
if A and A are in the inventory and I pick up B, and place it on the second A, B is placed and the second A is in my hand. that's what I'd expect it to do. |
00:46 |
PilzAdam |
with the patch? |
00:46 |
VanessaE |
yes |
00:46 |
PilzAdam |
then it works |
00:46 |
PilzAdam |
try moving stuff to different lists |
00:47 |
VanessaE |
seems fine e.g. with bags and crafting grid |
00:47 |
VanessaE |
lemme check with a chest. |
00:48 |
VanessaE |
there's some jumping back and forth as items are moved around |
00:49 |
VanessaE |
but the final behavior of each action is as I'd expect. |
00:49 |
VanessaE |
wait |
00:50 |
VanessaE |
yeah, seems okay, but server lag makes it confusing (and this is *singleplayer mode*) |
00:50 |
VanessaE |
(re: kahrl's comment earlier) |
00:50 |
VanessaE |
oop |
00:50 |
VanessaE |
nope, there was one |
00:50 |
PilzAdam |
yea, there is a bug with chests: two same dirt stacks are in a chest; I move a cobble on the second one and the first one teleports to the position of the cobble in the player inv |
00:50 |
VanessaE |
the bug still exists. |
00:51 |
VanessaE |
with the player inventory it seems right, but moving stuff back and forth inside a chest still triggers it |
00:51 |
PilzAdam |
kahrl, seems like the bug still exists in chests |
00:52 |
VanessaE |
the bug exists in furnaces too |
00:52 |
VanessaE |
when swapping between the input slot and your inventory. |
00:52 |
VanessaE |
pretty reliably in fact. |
00:56 |
kahrl |
I know, but I don't know why |
00:58 |
kahrl |
I suppose having prediction would fix it |
00:58 |
kahrl |
Ah, I can see why |
00:59 |
VanessaE |
s/the bug/the B replaces A1 instead of A2 bug/ |
00:59 |
kahrl |
since there is no prediction the verifySelectedItem call clears m_selected_item, so the black magic happens and chooses the first item |
01:02 |
sweetbomber |
kahrl: ty. Its working now :D |
01:05 |
PilzAdam |
unrelated: another formspec glitch: https://github.com/minetest/minetest/issues/779 |
01:07 |
kahrl |
PilzAdam: && m_selected_item->i == i; <-- second i should be item_i |
01:08 |
PilzAdam |
awesome! |
01:09 |
* PilzAdam |
hands kahrl an award for fastest bug fixing in Minetest history |
01:09 |
Exio |
haha |
01:10 |
* kahrl |
noms the award |
01:11 |
kahrl |
it's made of marble (with some mushrooms atop). I have tough teeth. |
01:12 |
VanessaE |
(marble? pilzadam runs technic? ;) ) |
01:13 |
PilzAdam |
*insert Darth Vader "NOOO!" here* |
01:20 |
|
Miner_48er joined #minetest-dev |
01:52 |
|
ch98 left #minetest-dev |
03:08 |
VanessaE |
that funky, intermittent "ABMs just simply stop running" bug just struck my server. This has been known since at least 0.4.4 |
03:15 |
|
ffoxin joined #minetest-dev |
03:18 |
|
Miner_48er joined #minetest-dev |
03:24 |
|
sweetbomber joined #minetest-dev |
03:31 |
|
dexter0 joined #minetest-dev |
03:34 |
kaeza |
VanessaE, what bug? |
03:34 |
VanessaE |
that's all I have, kaeza . |
03:34 |
VanessaE |
just that ABMs simply stop executing entirely every so often, without otherwise disrupting the server. |
03:35 |
kaeza |
in a local map, I have an underground lava lake that fails to update no matter what I do |
03:35 |
kaeza |
could this be related? |
03:35 |
VanessaE |
dunno, but I have such a thing on my server also. |
03:45 |
|
dexter0 joined #minetest-dev |
04:09 |
|
ch98 joined #minetest-dev |
04:41 |
|
neko259 joined #minetest-dev |
04:42 |
|
OWNSyouAll_DESK1 joined #minetest-dev |
05:26 |
|
ch98 left #minetest-dev |
05:26 |
|
ch98 joined #minetest-dev |
05:26 |
|
ch98 left #minetest-dev |
05:27 |
|
ch98 joined #minetest-dev |
05:32 |
|
ch98 joined #minetest-dev |
05:42 |
hmmmm |
anyway |
05:42 |
hmmmm |
here's the finalized version i'd commit to upstream: https://github.com/kwolekr/minetest/commit/341badab4a2fe2afcc1b2c4c0816ca4f0c058ff3 |
05:43 |
hmmmm |
comments or complaints anybody? |
05:46 |
ShadowNinja |
hmmmm: I block or one node radius? |
05:46 |
hmmmm |
mmmmmm |
05:47 |
hmmmm |
fixed |
05:54 |
|
ch98 left #minetest-dev |
06:50 |
kahrl |
hmmmm: iirc we had portability problems with strcasecmp before, use str_equal(..., ..., true) instead |
06:50 |
hmmmm |
i aliased stricmp() to strcasecmp() for windows |
06:50 |
hmmmm |
a while ago |
06:51 |
kahrl |
ah ok |
06:51 |
hmmmm |
first i've heard of str_equal though, where is it defined? |
06:51 |
kahrl |
util/string.h |
06:52 |
celeron55 |
why is there a separate decoration and decoration_list? |
06:52 |
celeron55 |
generally in other parts the API will accept a single value or a list in the same field |
06:52 |
hmmmm |
because decoration wouldn't sound right if it were a list |
06:53 |
celeron55 |
also, why deco_type and not just type? |
06:53 |
hmmmm |
to follow suit with ore_type and some other things |
06:54 |
kahrl |
class Decoration needs a virtual dtor |
06:54 |
hmmmm |
right |
06:54 |
celeron55 |
i think the "wouldn't sound like" isn't a valid reason |
06:54 |
celeron55 |
right* (ehm... i'm just waking up) |
06:55 |
hmmmm |
i'll change that then |
06:58 |
celeron55 |
(actually, now that i think of it, i can't remember anything that actually does that...) |
06:59 |
celeron55 |
there's something for sure, but it's not nearly as common as i thought |
06:59 |
|
smoke_fumus joined #minetest-dev |
07:01 |
kahrl |
read_aabb3f_vector does |
07:01 |
kahrl |
(used for node_box etc.) |
07:01 |
celeron55 |
a more common thing is when a field accepts either a string or a table with named fields |
07:01 |
celeron55 |
(register_privilege, sound_play) |
07:07 |
kahrl |
would it be useful to allow group: notation for the node names? |
07:07 |
hmmmm |
perhaps, but that's an enhancement to be added later on |
07:08 |
hmmmm |
i just want to get this big part out of the way |
07:08 |
celeron55 |
kahrl: i think it would become meaninglessly random |
07:08 |
kahrl |
celeron55, that's a danger |
07:08 |
hmmmm |
i think he was referring more to spawn_by |
07:09 |
hmmmm |
perfectly valid |
07:09 |
celeron55 |
there's not really any use case where you want a flat distribution of something |
07:09 |
celeron55 |
oh spawn_by |
07:09 |
celeron55 |
well that makes sense 8) |
07:10 |
celeron55 |
(it does have the same danger if used wrongly though) |
07:10 |
hmmmm |
if there's demand.. |
07:10 |
celeron55 |
(but we shouldn't care that much about the effects of being used wrongly) |
07:11 |
hmmmm |
anyway, what's right here would be enough to replace the rest of generate_ore in mapgen.lua, reducing it to..... nyancat generation. |
07:11 |
hmmmm |
also it'd replace vanessa's flower mod |
07:11 |
hmmmm |
but what i really want to get to is the structure deco type |
07:16 |
hmmmm |
also, i'm considering changing divlen to sidelen as the configurable parameter. with divlen, the amount of decorations produced is unpredictable, since you don't know the chunk size |
07:17 |
hmmmm |
but i'm trying to make this as close to the original as possible |
07:21 |
VanessaE |
jeez, that mod barely got a chance :) |
07:22 |
celeron55 |
hmmmm: yes, thange divlen to sidelen |
07:22 |
celeron55 |
change* |
07:22 |
celeron55 |
if possible |
07:22 |
celeron55 |
or umm... what does that really even do? |
07:23 |
hmmmm |
chunksize = pmax.X - pmin.X + 1, chunksize / divlen = sidelen |
07:24 |
hmmmm |
oh you're asking for an edge case if it doesn't evenly divide |
07:24 |
celeron55 |
no i am not |
07:24 |
celeron55 |
but anyway, replace that divlen already with something sane |
07:24 |
celeron55 |
it's ridiculously bad regarding any future changes to the map generator |
08:21 |
|
iqualfragile joined #minetest-dev |
08:43 |
|
Calinou joined #minetest-dev |
10:12 |
|
Jordach joined #minetest-dev |
10:12 |
|
Jordach joined #minetest-dev |
10:28 |
|
proller joined #minetest-dev |
10:33 |
|
PilzAdam joined #minetest-dev |
10:33 |
|
dexter0 joined #minetest-dev |
10:46 |
|
Jordach_ joined #minetest-dev |
10:46 |
|
Jordach_ joined #minetest-dev |
10:57 |
|
Jordach joined #minetest-dev |
10:57 |
|
Jordach joined #minetest-dev |
11:13 |
|
Calinou joined #minetest-dev |
12:07 |
|
proller joined #minetest-dev |
12:32 |
|
BackupCoder joined #minetest-dev |
12:46 |
|
ImQ009 joined #minetest-dev |
13:28 |
|
iqualfragile_ joined #minetest-dev |
13:46 |
Taoki |
http://forum.minetest.net/viewtopic.php?pid=95214#p95214 I'd like to hear what everyone thinks of this idea |
13:47 |
Taoki |
If the devs are ok with doing it un Lua, I should be able to at least start it myself |
13:50 |
proller |
from me about it: http://forum.minetest.net/viewtopic.php?id=4618 |
13:50 |
proller |
but lua - too slow for it |
13:54 |
Taoki |
Trying to think of a system that would allow int in Lua. Finding any that could be fast enough for the thousands of loaded nodes however would be very hard |
13:55 |
Taoki |
Typically, when there's only one to a few players on a server with the default view distance, how many nodes are active at once? |
13:56 |
|
serengeor joined #minetest-dev |
13:57 |
proller |
where to store temperature ? |
13:59 |
Taoki |
proller: Either as each node's property (as a meta value), either have a Lua table of the form {x_pos, y_pos, z_pos, temperature} for every existing node (which might be huge) |
14:00 |
proller |
i think one temp and humidity for 16x16x16 block is enough |
14:00 |
Taoki |
Wouldn't do what I was thinking of still |
14:01 |
Taoki |
Like realistic and correct heat transfer |
14:01 |
Taoki |
We could however give a "lower resolution" to the heat transfer pattern itself... not sure |
14:02 |
Taoki |
And only do a call when heat really changes |
14:03 |
Taoki |
My idea was having a register_abm on every single node (even air nodes), which of course would be horrible. This would chack the temperature value of neighbor nodes, and absorb it by 1 unit each time |
14:03 |
Taoki |
In case it's not equal... if it is avoid the checks altogether if possible |
14:08 |
Taoki |
So the main question is, how hurtful would it be to hav a register_abm on every single node loaded in the world, which goes a get_meta on 6 nodes each time (the neighbors), and possibly a set_meta on 7 nodes (neighbors + self) if necessary. |
14:08 |
Taoki |
**which does |
14:09 |
|
rubenwardy joined #minetest-dev |
14:09 |
proller |
its like finite liquid |
14:11 |
Taoki |
Still, has anyone tried running register_abm on every single block including air nodes? I'm curious how much performance that by itself takes |
14:11 |
proller |
its depends on content of abm |
14:12 |
Taoki |
Ah... actually it would only need to be done every 1 or 2 nodes. Since a node checks its neighbor's temperature and transfers it, so there's no need for that neighbor to do the same |
14:13 |
proller |
maybe make complex every node abm |
14:13 |
Taoki |
yeah |
14:14 |
proller |
and move liquid move in it |
14:14 |
proller |
and make something like steam with it |
14:14 |
proller |
staem moving up |
14:14 |
proller |
and temp+humidity transfer |
14:15 |
rubenwardy |
I have replied |
14:15 |
rubenwardy |
Instead of per X/Z you could do it per mapblock |
14:15 |
rubenwardy |
but per node would be the most realistic |
14:16 |
Taoki |
yeah, per node is that I'm wanting |
14:16 |
proller |
look not on every node like in openttd |
14:17 |
proller |
but in 3d |
14:18 |
proller |
like diagonal 1,1,1;2,2,2;3,3,3;....;2,1,1;3,2,2;... |
14:18 |
rubenwardy |
The problem with making the temperature spread is that eventually everywhere will be the same temp |
14:18 |
rubenwardy |
the world does not work like that |
14:18 |
rubenwardy |
how would we get around that? |
14:19 |
proller |
spread only if neer temp < my-1 |
14:20 |
rubenwardy |
So only is the near block's temp is more than one smaller |
14:20 |
proller |
yes |
14:20 |
proller |
or higher |
14:21 |
proller |
its work on finite liquid now, but must be fixed |
14:21 |
rubenwardy |
not realistic in real life, but the player will not notice, it should give same effect |
14:21 |
PilzAdam |
Taoki, this is unrelated to Minetest core development -> #minetest-mods |
14:21 |
Taoki |
PilzAdam: I actually wanted to add it to core :P |
14:22 |
proller |
PilzAdam, its must be in core |
14:22 |
rubenwardy |
In v9 map gen |
14:22 |
Taoki |
But ti can be a mod first for testing |
14:22 |
rubenwardy |
*7 |
14:22 |
Taoki |
*it |
14:22 |
rubenwardy |
just like how finite liquid was |
14:22 |
PilzAdam |
I dont think this its a useful feature |
14:22 |
proller |
mod is spreading time, make in branch |
14:22 |
PilzAdam |
-this |
14:23 |
rubenwardy |
It would be usefull for mapgen |
14:23 |
Taoki |
I think it would be really awesome. But that would be for the dev team to decide |
14:23 |
Taoki |
Yeah, I'll likely make it as a mod first |
14:23 |
PilzAdam |
rubenwardy, mg v7 already has some heat calcultations |
14:23 |
rubenwardy |
you could have static temperature, with the temperature and humidity being set on map gen |
14:23 |
rubenwardy |
oh |
14:23 |
rubenwardy |
and dynamic where it spreads and changes |
14:24 |
rubenwardy |
It would be useful if we were going for a DayZ type of survival experience |
14:24 |
rubenwardy |
(need a fire to keep warm) |
14:25 |
PilzAdam |
what Taoki wants is a Lua interface "get_temperature(pos)", and that can be done in a mod |
14:25 |
PilzAdam |
(if I get it right what you aimed at) |
14:25 |
Taoki |
PilzAdam: I'm thinking of doing the whole thing in Lua |
14:26 |
PilzAdam |
you can just grab the heat perlin noise from mg v7 and get your initial values based on that |
14:26 |
proller |
Taoki, no no no! |
14:26 |
Taoki |
As a mod means putting it in the mods folder. I was thinking of developing it as part of minetest_games if that was wanted |
14:26 |
Taoki |
ok :P |
14:26 |
proller |
its eat 101% of cpu |
14:26 |
PilzAdam |
proller, why do you think so? |
14:26 |
PilzAdam |
in the easies implementation its just some perlin noise calls from the API |
14:26 |
proller |
PilzAdam, because lua slow |
14:27 |
PilzAdam |
you cant generally say that |
14:27 |
Taoki |
proller: It's possible it might not... don't know. Depends on how register_abm would behave when set every 2 x 2 nodes |
14:27 |
proller |
calc every node on lua - very slow |
14:27 |
proller |
firt try of finite liquid was on lua with rubenwardy |
14:28 |
proller |
its 10-100 slower than current |
14:28 |
PilzAdam |
finite liquids used ABMs |
14:28 |
proller |
and impossible to play |
14:28 |
PilzAdam |
the temperature calculations can be done with on_place() and on_dig() |
14:28 |
proller |
temperature transfer - no |
14:29 |
Taoki |
PilzAdam: They can change dynamically, so the checks need to be done constantly |
14:29 |
PilzAdam |
I think of starting with the perlin noise from mg v7 and only modify values in meta if a player places ice or lava |
14:29 |
PilzAdam |
everything else would be too complex, even in the core |
14:29 |
Taoki |
One example of how it would work: When night falls, air touched by the sunlight is no longer heated. So every node surrounding the air would slowly get colder |
14:30 |
PilzAdam |
oO |
14:30 |
PilzAdam |
it would never run if you want it like this |
14:30 |
Taoki |
I did think of something realistic after all :P |
14:30 |
Taoki |
ok |
14:31 |
Taoki |
I even wanted to make fires / furnaces heat up closed rooms |
14:31 |
proller |
PilzAdam, why ? |
14:31 |
Taoki |
There is one advantage however: If I give a node low heat transfer, I can set the register_abm to even run once every 30 seconds |
14:31 |
PilzAdam |
Taoki, the close room heatup would work in the way I imagine it to be too |
14:32 |
Taoki |
So for example: Air which transfers heat quickly runs every 5 seconds. Stone however could run every 60 seconds |
14:32 |
PilzAdam |
you cant run an ABM on air, even in core |
14:32 |
PilzAdam |
it immediatly explodes |
14:32 |
Taoki |
PilzAdam: True. It would be instant then but could be calculated. I assume my sun idea would also work, since I can only trigger the change a few times based on time of day |
14:33 |
Taoki |
I did sort of want to make it dynamic and slow |
14:33 |
Taoki |
Ah |
14:33 |
Taoki |
Thought you could... |
14:33 |
Taoki |
Is there a strict Lua limitation that doesn't allow it? |
14:34 |
PilzAdam |
well, minetest crashs after a second or so |
14:34 |
Taoki |
Sounds like a bug |
14:34 |
PilzAdam |
no |
14:34 |
PilzAdam |
just server overload |
14:34 |
Taoki |
Anyway, I could specify a temperature tendency (eg: based on biome) and add influences to that instead. That way it can be done without abm checks |
14:34 |
proller |
туув ещ ашч ше |
14:34 |
proller |
need to fix it |
14:35 |
Taoki |
I can only add an abm to the onode generating heat. As for environment temperature, I can figure out other ways |
14:35 |
rubenwardy |
Why do you need to do air abm? |
14:35 |
Taoki |
*node |
14:35 |
Taoki |
rubenwardy: For heat transfer |
14:35 |
rubenwardy |
just do solid stuff abms |
14:35 |
rubenwardy |
dont allow to do that |
14:35 |
rubenwardy |
just do it on nodes, and radiation |
14:36 |
Taoki |
Yeah. Especially if it is to be done in a cheap way |
14:37 |
Taoki |
Radiation... yes |
14:37 |
Taoki |
Anyway, BBL. Will think more about it |
14:38 |
Taoki |
I think I can figure out an easier system |
14:54 |
|
BlockMen joined #minetest-dev |
15:09 |
|
hmmmm joined #minetest-dev |
15:11 |
PilzAdam |
is the minetest.register_decoration() intended to not work yet? |
15:14 |
hmmmm |
it works fine |
15:15 |
PilzAdam |
what am I doing wrong here: https://gist.github.com/PilzAdam/5797689 |
15:15 |
hmmmm |
probably using the wrong mapgen |
15:16 |
PilzAdam |
does it only work with v7? |
15:16 |
hmmmm |
it works with any mapgen that utilizes it |
15:16 |
hmmmm |
so far, only v7 does |
15:16 |
PilzAdam |
is it planned to be added to v6 and the others? |
15:16 |
hmmmm |
i'll update v6 to use it later on |
15:25 |
BlockMen |
hi, i have noticed, that particles are drawn behind the water -> http://i.imgur.com/z6MJOwW.png |
15:25 |
PilzAdam |
known |
15:25 |
BlockMen |
fixable? |
15:25 |
PilzAdam |
they are also drawn behind selectionboxes |
15:26 |
PilzAdam |
fun fact: MC draws them behind water too |
15:26 |
BlockMen |
and another thing: they dont have the same light value like nodes |
15:27 |
PilzAdam |
objects have the same bug |
15:28 |
BlockMen |
soo...its and irrlicht thing? |
15:28 |
BlockMen |
*-d |
15:28 |
VanessaE |
everything that's not a cube has lighting bugs |
15:29 |
PilzAdam |
AFAIK its not an Irrlicht bug |
15:30 |
Jordach |
youre forgetting minetest was not made for odd shapes |
15:31 |
BlockMen |
the effect isnt that strong without smooth lighting |
15:31 |
VanessaE |
but very jarring with. |
15:47 |
|
serengeor joined #minetest-dev |
16:00 |
|
tango_ joined #minetest-dev |
16:14 |
|
dexter0 joined #minetest-dev |
16:24 |
|
kaeza joined #minetest-dev |
16:47 |
|
sapier joined #minetest-dev |
16:48 |
|
Zeg9 joined #minetest-dev |
16:55 |
sapier |
temperatures ... funny :-) what about creating a climate simulation? *gg* |
16:55 |
|
neko259 joined #minetest-dev |
16:57 |
proller |
sapier, simple is possible |
16:57 |
proller |
winter/summer, snow, etc |
16:57 |
sapier |
including heat spread? forget about it |
16:58 |
proller |
maybe without spread, using chunk heat/humidity |
16:58 |
sapier |
biome granular temperatures changed light rain yes that'd be possible |
16:58 |
proller |
change in time, rain-snow from clouds,... |
17:00 |
sapier |
yes but I guess that'd require biomes to be identifyable after generation (not only biome type) |
17:08 |
hmmmm |
it *can* be done |
17:09 |
hmmmm |
hmmm, how do you gradually change a perlin noise map into something different gradually.... that's the big question |
17:10 |
|
Calinou joined #minetest-dev |
17:10 |
hmmmm |
incrementing or decrementing the noise lattice values before interpolation would have the desired affect |
17:10 |
hmmmm |
s/affect/effect/ |
17:12 |
hmmmm |
in order to do this, the right way would be to add a new method to Noise, given a set of previous lattice points, transform them, and then interpolate |
17:13 |
hmmmm |
as for other octaves, i guess it'd make it more interesting if you kept it the same or changed those values more gradually than the larger octaves |
17:21 |
sapier |
hmmmm my concern is not the theoretical possibility but the cpu performance required for dynamic heat spread ;-) |
17:22 |
|
rubenwardy joined #minetest-dev |
17:24 |
|
rubenwardy joined #minetest-dev |
17:30 |
|
rubenwardy joined #minetest-dev |
17:30 |
|
rubenwardy joined #minetest-dev |
17:32 |
|
rubenwardy joined #minetest-dev |
17:32 |
|
rubenwardy joined #minetest-dev |
17:37 |
hmmmm |
clearly, you'd only want to modify the active range surrounding a player |
17:39 |
hmmmm |
i'd say it'd be quick enough, updateHeightmap only takes around 1-2ms for an 80x80 area, regenerating the perlin noise is only a couple of ms as well, and modifying blocks with a voxelmanipulator is fast as well |
17:39 |
hmmmm |
well, 2d perlin noise for an 80x80 area is less than a ms |
17:40 |
hmmmm |
i'd vary the noise lattice point values by 1d perlin noise |
17:41 |
|
Calinou joined #minetest-dev |
17:42 |
hmmmm |
or, probably better, by noise1d(t) |
17:42 |
sapier |
ms?? |
17:42 |
hmmmm |
millisecond?? |
17:42 |
sapier |
you're kidding ms are ages |
17:43 |
hmmmm |
for comparison, generating a chunk takes around 100ms |
17:43 |
sapier |
which are aons ;-) |
17:43 |
|
rubenwardy joined #minetest-dev |
17:43 |
hmmmm |
how often do you think this would be run, precisely |
17:44 |
hmmmm |
i'm thinking once every minute or whatever, incrementally (so a whole bunch of crap doesn't happen at the same time) |
17:44 |
sapier |
don't know depends on precision you want to do ... if you do it only every 1000 steps or something like that most likely won't be an issue ... if it needs to be done each step it is |
17:45 |
hmmmm |
recalculating temperatures every step is pretty useless |
17:45 |
hmmmm |
nevermind 1000 steps, let's try a minute of actual time |
17:45 |
hmmmm |
that would be more reasonable |
17:45 |
sapier |
still when hearing incremental heat spread I think of climate models which do exectly this calculate heat and their transmission between cubic atomospheric elements |
17:46 |
hmmmm |
if you want to simulate actual seasons, thne maybe a lot longer than a minute |
17:46 |
sapier |
ok they do a lot of thins more of course ... but they have a lot more cpu power too ;) |
17:46 |
hmmmm |
also, the way to do this i just proposed wouldn't be simulating heat spread, but just incrementally morphing a 2d noise map |
17:47 |
sapier |
can you tell me the benefits we are hoping to get from it? |
17:47 |
hmmmm |
we?? you mean you, you came up with the idea |
17:48 |
sapier |
no no I just read from logs |
17:48 |
hmmmm |
i assume this is for having real seasons and some more dynamicism in biomes |
17:48 |
hmmmm |
like for a snow biome, when the temperature changes, some of the snow would melt away |
17:48 |
hmmmm |
or something |
17:49 |
hmmmm |
anyway this would be a cool idea for a *mod* |
17:49 |
sapier |
if biomes where some sort of entities (not mt entities) a biome could simulate its temperature changes independent of other biomes but I don't see a way to achieve this |
17:50 |
sapier |
I leave this mod for someone else ;-) atm I've got enough work with asking about formspec mainmenu beeing included every day ;-) |
17:50 |
hmmmm |
if you wanted to do it that way, you can vary the heat/humidity points for the biomes and recalc the biome map for some area |
17:52 |
sapier |
sounds like lot of cpu power |
17:52 |
proller |
why independent of other biomes ? |
17:53 |
proller |
if show "biome" slowly transforms to desert - its more intresting |
17:53 |
proller |
in 10+ game years |
17:54 |
proller |
with yearly season changes |
17:54 |
sapier |
now we really reach climate model levels ;-) |
17:54 |
hmmmm |
well actually, modifying a single biome climate point would change all the other biomes as well |
17:54 |
hmmmm |
you can't really prevent that |
17:54 |
sapier |
I guess this should be tested in some experimental branch first |
17:55 |
|
BrandonReese_ joined #minetest-dev |
17:55 |
proller |
change season temp in -(10-30)..tempcenter..+(10-30) where tempcenter is biome defined and can change |
17:55 |
hmmmm |
calculating a biome map isn't absolutely terrifying, but it's not something you'd want to keep doing |
17:55 |
hmmmm |
hence biome map cache |
17:56 |
hmmmm |
and plus it'd only be every once in a long while in game time |
17:56 |
Taoki |
hmmmm: I posted a thread about a temperature system earlier (for weather and such). PilzAdam mentioned mapgen v7 will have a perlin heat map however, which sounds even better and renders my idea mostly pointless. I'm curious about it... what is the perlin heat in v7? |
17:56 |
sapier |
I've tried swamp mod if biome calculations are a tenth as expensive it's still way to much |
17:56 |
Taoki |
Does it contain a heat level at each node location? |
17:56 |
hmmmm |
taoki, yes, each node has a certain temperature and a certain level of humidity |
17:57 |
hmmmm |
this, along with elevation of the terrain, are the factors that define what the biome is at that point |
17:57 |
Taoki |
hmmmm: Really awesome. Yeah, better than my idea then. And a very good addition |
17:57 |
|
rubenwerdy joined #minetest-dev |
17:58 |
Taoki |
hmmmm: Only issue is that making fire in a house inside a snow biome can't change that heat map. Maybe I can make a mod that does, if each part of the prelin noise can be modified from Lua |
17:58 |
proller |
if make heat map perlin 3d and use Y as time (slow) - we get random biomes transform |
17:58 |
Taoki |
So you can warm up houses |
17:58 |
Taoki |
(since I'd plan to use this heat map for things like materials reacting differently to various temperatures) |
17:58 |
hmmmm |
taoki, the heat map is really just for map generation. if you'd like to use it for other things, that's pretty much mod territory |
17:59 |
Taoki |
sure |
17:59 |
hmmmm |
i.e. keep your own version of it to be modified |
17:59 |
Taoki |
But will there be a lua function to change heat and humidity at a certain node? |
17:59 |
hmmmm |
proller, that's true, i didn't think of using 3d noise here but that is completely valid |
18:00 |
hmmmm |
taoki, that wouldn't be technically possible |
18:00 |
Taoki |
makes sense. Still sounds awesome and useful for many features |
18:00 |
hmmmm |
see, when biome map cache gets added, i guess you'd be able to write the heat value to *that*, but when a biome map needs to be generated, it's generated by perlin noise |
18:01 |
Taoki |
So for instance, if you place water in a cold snowy area in mapgen v7, it will always turn to ice, regardless whether it's snowing or not |
18:01 |
hmmmm |
it's possible, then, if you somehow maintain a list of points where there's a heat source |
18:01 |
hmmmm |
(hey, like light sources ...) |
18:01 |
Taoki |
yeah :) |
18:01 |
hmmmm |
building a heat map should never rely on what's already on the map though |
18:01 |
* Taoki |
really wishes I could try v7 out. But the biome definitions in Lua don't seem to work yet and give errors :( |
18:02 |
hmmmm |
weird |
18:02 |
proller |
Taoki, water->ice now possible with seasons mod, bit it buggy and need to remake |
18:02 |
hmmmm |
you're not missing out on much anyway |
18:02 |
Taoki |
proller: Nice |
18:02 |
Taoki |
hmmmm: It does sound like it has some awesome features |
18:04 |
Taoki |
hmmmm: What determines heat and humidity however? I know each biome has a certain amount of each. But like, does that depend on valleys and caves, height, and other factors at each spot? |
18:04 |
hmmmm |
no, it's just perlin noise |
18:04 |
hmmmm |
you should check out BiomeDefManager::calcBiomes |
18:04 |
Taoki |
ok. Sounds like they still match she shapes of valleys / hills and such |
18:05 |
Taoki |
Or is the noise of heat / humidity unrelated to the shape of the generated terrain, and a separate random perlin map? |
18:05 |
hmmmm |
heat, humidity, and terrain elevation are three separate variables |
18:06 |
Taoki |
nice. Sounds about right then |
18:06 |
hmmmm |
just read the code and it'll answer all of your questions |
18:06 |
Taoki |
Cuz if it wasn't and heat / humidity had to match the terrain, digging or covering a hill would mismatch what the map generated |
18:06 |
Taoki |
ok |
18:08 |
|
kaeza joined #minetest-dev |
18:11 |
rubenwardy |
You could use pilzAdam's method and just store a modifier (ie: if the wanted temp is 5, and it was 10 originally, the modifier would be -5) |
18:11 |
hmmmm |
[02:01 PM] <hmmmm> it's possible, then, if you somehow maintain a list of points where there's a heat source |
18:19 |
|
kaeza joined #minetest-dev |
18:20 |
|
diemartin joined #minetest-dev |
18:20 |
|
diemartin joined #minetest-dev |
18:32 |
proller |
i think temp(x,y,z) must be like t=gametime (get_noise3d_value(x,ft(t),z))*fy(y)*(biomepoints()) fy like: 30000: -50, 0:0, -30000:+200 ft is like sin(period year)*20 |
18:47 |
Taoki |
proller: Temperature should probably be something of the form (heatmap_at_pos(pos) + sunlight_if_any(pos)) |
18:47 |
|
BlockMen left #minetest-dev |
18:47 |
Taoki |
Since maximum sunlight would add a lot of heat too |
18:48 |
proller |
and sunlight depends on clouds, clouds depend on humidity |
18:48 |
proller |
and height |
18:48 |
Taoki |
Even better and more accurate then |
18:49 |
Taoki |
Also, the 3D clouds and sunlight depend on area humidity too? Didn't know that, sounds great |
18:49 |
proller |
but no sunlight underground |
18:49 |
Taoki |
proller: Yeah, ungerground it's just the biome temp |
18:50 |
Taoki |
eg: considering we'd give tesert biomes an average of 30*C, and sunlight always has an addition of 5*C. Nodes in that biome touched by the sun at maximum day time (and when it's not cloudy) would have 35*C |
18:50 |
Taoki |
**desert |
18:51 |
Taoki |
Underground there would still be 30... but up to a certain height only (since deep underhround you'll always have very cold temperatures regardless of biome) |
18:51 |
sapier |
that's not accurate as below some depth temperature should rise again |
18:52 |
sapier |
but I'm not sure how this might fit to 32k blocks height |
18:52 |
Taoki |
That's what my temperature function will probably do when I make it. At ground level, temperature is humidity + X amount if touched by sunlight. Once you go below water level (y < 0), it gets colder. Also as you go above cloud level. |
18:52 |
Taoki |
erm, heat + X amount |
18:53 |
Taoki |
Humidity can play a role too. It can be used to exagerrate any temperature by a small amount |
18:54 |
Taoki |
Since humid hit areas feel even more hot, and humid cold areas feel even colder. At least to living beings... not sure if that affects objects as much |
18:54 |
sapier |
you know lava is overheated wet stone? |
18:55 |
Taoki |
yeah |
19:01 |
|
loggingbot_ joined #minetest-dev |
19:01 |
|
Topic for #minetest-dev is now Minetest core development and maintenance. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.ru/minetest-dev/ http://dev.minetest.net/ |
19:03 |
|
sfan5 joined #minetest-dev |
19:16 |
|
sapier left #minetest-dev |
19:29 |
|
smoke_fumus joined #minetest-dev |
19:42 |
hmmmm |
taoki, in case i'm getting your hopes up, i'd just like to repeat this is a good *mod* idea |
19:42 |
hmmmm |
i have no plans to put something this complicated into the engine |
19:42 |
Taoki |
hmmmm: I know. It wouldn't even be mapgen related |
19:55 |
|
proller joined #minetest-dev |
20:10 |
Taoki |
meh. That moment when you're bored and click the 'git pull' button every few minutes hoping to see something new :p |
20:12 |
kaeza |
uhh... click? what is that? :P |
20:13 |
Taoki |
The command to update GIT |
20:13 |
PilzAdam |
-> #minetest |
20:30 |
|
ecube joined #minetest-dev |
20:31 |
|
sapier joined #minetest-dev |
20:32 |
|
jin_xi joined #minetest-dev |
21:05 |
hmmmm |
hmm |
21:06 |
hmmmm |
in the interests of simplifying code, sidelen must be a power of two |
21:06 |
sapier |
whats a sidelen? |
21:06 |
hmmmm |
for the decorations |
21:06 |
hmmmm |
there's divlen and sidelen |
21:07 |
sapier |
ohhh side len :-) |
21:07 |
hmmmm |
i wanted to make it as close to the original decoration placement from lua which had divlen as a parameter, the number of divisions a chunk is split up into |
21:07 |
hmmmm |
so chunklen / divlen = sidelen, which is the size of the area being placed |
21:08 |
hmmmm |
obviously this would make scarcity vary based on the person's chunk size |
21:09 |
sapier |
I rememer calls to lua mapgen result in quite ugly divs as the number supplied are very small |
21:09 |
hmmmm |
the limitations for sidelen are: it must be a power of 2, and it must be less than or equal to the chunk size |
21:09 |
hmmmm |
actually forget about the power of 2 requirement |
21:10 |
hmmmm |
i'll make it simply that it must evenly divide the chunk size |
21:10 |
sapier |
don't know what this exactly results in |
21:10 |
hmmmm |
sounds reasonable, right? |
21:10 |
sapier |
yes |
21:10 |
sapier |
at least if chunk size is a known value |
21:11 |
hmmmm |
it is known at run time |
21:11 |
hmmmm |
the mods don't know it though |
21:11 |
hmmmm |
basically, i'm relying on mods not setting ridiculous values for sidelen |
21:12 |
sapier |
I guess that's not a good idea |
21:12 |
hmmmm |
it shouldn't be a problem because the majority of modders just copy and paste code snippets from other things like the default mod, and then modify it as needed, leaving things they don't fully understand alone |
21:12 |
PilzAdam |
^ |
21:14 |
sapier |
believe me if there's a way to do it wrong modders will find at least 10 ways to do it even more wrong |
21:14 |
hmmmm |
really, i could restrict sidelen to be <= the size of a block |
21:14 |
hmmmm |
it's a tradeoff |
21:14 |
sapier |
make it foolsafe :-) |
21:14 |
hmmmm |
make assumptions that have a small chance of breaking the mod on some peoples' wacky configurations |
21:15 |
hmmmm |
or keep it <= 16 and be sure it works everywhere |
21:15 |
hmmmm |
I guess i could just write that |
21:15 |
sapier |
"works everywhere" sounds good |
21:15 |
hmmmm |
orrrrr |
21:15 |
hmmmm |
i could fix their value up for them |
21:16 |
sapier |
NO |
21:16 |
hmmmm |
so if chunksize is a single block |
21:16 |
hmmmm |
but the sidelen is something like.... 32.... |
21:16 |
hmmmm |
i set sidelen to 16, and divide the distribution by 2 |
21:16 |
sapier |
very very very bad style to ignore a parameter and use a different one without letting anyone know it was ignored |
21:16 |
hmmmm |
could just have a warning |
21:17 |
sapier |
it's a lua error am I correct? |
21:17 |
hmmmm |
errorstream or infostream |
21:17 |
hmmmm |
doesn't need to bring lua to a grinding halt |
21:17 |
sapier |
imho if a bad parameter is specified it's perfectly ok to throw a lua error |
21:18 |
hmmmm |
"hey what you wanted doesn't work because there's a combination of the mod being stupid and you setting a stupid chunk size, so i fixed it for you, i made it %d" |
21:18 |
sapier |
won't be realized |
21:18 |
sapier |
that's error hiding |
21:19 |
sapier |
if I call a function with invalid parameters I want to know it |
21:19 |
PilzAdam |
if you document that its min(chunksize, sidelen) in the lua-api.txt then its ok |
21:19 |
hmmmm |
but it's not really an invalid parameter |
21:19 |
hmmmm |
yeah, good idea pilz |
21:19 |
hmmmm |
could do that too |
21:19 |
PilzAdam |
*Adam |
21:20 |
sapier |
no it's not ok ... ariane5 was destroyed because of invalid input parameters ... and those where documented |
21:20 |
hmmmm |
adam should be the first half of your name |
21:20 |
hmmmm |
because it'd come naturally then |
21:21 |
hmmmm |
sapier, this is a video game, not a mission critical control system for a satellite |
21:21 |
sapier |
if the ariane 5 software did correct range checks for input parameters that bug would have been found before |
21:21 |
sapier |
good style isn't a matter of what you program |
21:22 |
sapier |
there's nothing good in ignoring modders parameters ... you won't do what he tells you and he'll have to search some time why it's not working as intended |
21:22 |
hmmmm |
it'd work just as intended |
21:22 |
PilzAdam |
ehm, what exactly is the problem sapier? |
21:22 |
sapier |
not as intended by him |
21:23 |
hmmmm |
but |
21:23 |
hmmmm |
it's documented |
21:23 |
sapier |
hmmm wants to silently ignore invalid input parameters replacing them by more correct ones |
21:23 |
hmmmm |
if someone expects something to work a certain naive way, and doesn't read the documentation... |
21:23 |
sapier |
no one reads documentation |
21:23 |
PilzAdam |
sapier, not silently, documentent in lua-api.txt |
21:23 |
sapier |
unless something bad happens |
21:23 |
PilzAdam |
<sapier> no one reads documentation <- wrong; argument invalid |
21:23 |
sapier |
if you throw a lua error documentation will be read |
21:24 |
PilzAdam |
anything else? |
21:24 |
sapier |
i don't understand you guys on the one hand you are that pedantic with any code I submit on the other hand you just du plain wrong things and tell "but it's documented" |
21:26 |
sapier |
if a input parameter is wrong TELL modder |
21:27 |
hmmmm |
yes sapier, i'll also be sure to write things such as: char foo[64]; if (strlcpy(foo, "bar", sizeof(foo)) > sizeof("bar")) { fprintf(stderr,"AWOOGA AWOOGA! COULD NOT COPY OVER STRING, ABORTING RIGHT NOW!"); abort(1); } |
21:27 |
PilzAdam |
who tells you that its wrong? the setting in minetest.conf can be wrong |
21:28 |
sapier |
doesn't matter for the current setting in minetest.conf this parameter is wron |
21:29 |
PilzAdam |
we need to define "wrong"; for me a "wrong parameter" is something that the engine cant handle; if we add some check that makes it handleable in all cases, it cant be wrong by definition |
21:29 |
hmmmm |
but seriously |
21:30 |
hmmmm |
by that logic, all of the lua api that use getstringfield_default is wrong |
21:30 |
PilzAdam |
this discussion is rediculous |
21:30 |
hmmmm |
s/is/are/ |
21:30 |
PilzAdam |
-e +i |
21:30 |
sapier |
pilzadam if we can find a way to handle on our own why even give an option to set a parameter? |
21:31 |
sapier |
getstringfield_default returns default if NO parameter is set, thats completely differend |
21:31 |
PilzAdam |
because there are still cases where the setting is used as is? |
21:31 |
hmmmm |
sapier, or if it's not a string |
21:32 |
hmmmm |
so nodename = 534, <--- this might not be what the modder wanted, let's abort and put the entire computer under lockdown until the situation is corrected |
21:32 |
sapier |
try accessing a std::vector with an out of range value ... I strong guess this won't result in last valid element beeing returned |
21:33 |
hmmmm |
it depends on how you try to access it |
21:33 |
PilzAdam |
sapier, if we document that it does so then its fie |
21:33 |
PilzAdam |
*fine |
21:33 |
sapier |
I'm listening to your magic hmmmm how you get a value with an out of range index |
21:34 |
hmmmm |
er, i didn't mean that |
21:34 |
sapier |
you said that hmmmm |
21:35 |
hmmmm |
i was reading that sentence as "it's going to explode with an exception" |
21:36 |
sapier |
it will ... unless the one calling put a catch around it ... in any case the caller WILL be warned by error handling not by silently correcting his actions |
21:36 |
hmmmm |
aren't there compiler options to ignore C++ exceptions that might be enabled? |
21:36 |
sapier |
I don't know about any |
21:37 |
sapier |
as far as I know an uncought exception will result in application to be terminated |
21:37 |
sapier |
you can catch it at very high level but that'll result in all following code not beeing executed |
21:38 |
hmmmm |
oh actually |
21:38 |
hmmmm |
you're thinking of std::vector::at |
21:38 |
hmmmm |
vector::at is bound checked, operator[] isn't |
21:38 |
sapier |
but I don't want to continue this discussion imho its stupid to ignore out of range errors and silently fix them you won't persuade me from anything different |
21:39 |
PilzAdam |
sapier, again, we do not fix them silently, its documented |
21:39 |
hmmmm |
because we'd have to handle some people complaining about how a mod they downloaded doesn't work because we chose to have intentionally stubborn behavior |
21:39 |
sapier |
that's even more stupid pilzadam |
21:39 |
PilzAdam |
it just prevents users from crashing their server by a setting |
21:40 |
PilzAdam |
sapier, how so? |
21:40 |
sapier |
fixing bugs by documentation .... |
21:40 |
PilzAdam |
what is stupid about that? |
21:41 |
sapier |
if you've time to write it to docs you have time to fix it |
21:41 |
sapier |
if a user sets his resolution to strange values minetest will fail to |
21:41 |
sapier |
or enables shaders while none present |
21:41 |
PilzAdam |
we are talking about the API, "fix it" means changing other peoples' mods |
21:41 |
sapier |
or trys to run windows version on linux .. or or or |
21:41 |
PilzAdam |
I dont plan to do that |
21:42 |
PilzAdam |
many settings in minetest.conf have rangelims |
21:42 |
hmmmm |
indeed^ |
21:42 |
sapier |
we're not talking about minetest.conf settings |
21:42 |
PilzAdam |
we try to prevent people from crashing minetest with settings |
21:42 |
PilzAdam |
sapier, we are |
21:43 |
sapier |
no we aren't we're talking about a lua api parameter |
21:43 |
hmmmm |
...and lua api parameters are never bounded |
21:43 |
PilzAdam |
but it crashes if the setting is set wrong |
21:43 |
PilzAdam |
so the setting is the root cause of the crash |
21:43 |
sapier |
so let it crash |
21:44 |
sapier |
post an additional error message above crash in lua done |
21:44 |
PilzAdam |
and add a new setting "crash = <bool>"? |
21:44 |
sapier |
do what you want it's still wrong |
21:45 |
PilzAdam |
we should have the official goal that minetest.conf settings should be crash safe |
21:45 |
sapier |
that's completely unrelated |
21:46 |
sapier |
if a modder doesn't have a chance to set this parameter to a CORRECT value remove it |
21:46 |
PilzAdam |
thus mods that rely on minetest.conf settings should be crash safe too |
21:46 |
sapier |
obviously it's not required at all as you're able to guess a valid value |
21:47 |
sapier |
so either you give a modder the opportunity to specify a value or not but don't fool him about what is set |
21:48 |
sapier |
good night |
21:48 |
|
sapier left #minetest-dev |
21:48 |
hmmmm |
'fooling people' is 'having it clearly marked in the documentation' |
21:48 |
hmmmm |
hehe, we're sneaky, we'll hide it in lua_api.txt |
21:49 |
PilzAdam |
ragequit? |
21:49 |
hmmmm |
maybe he has to go to sleep |
21:49 |
hmmmm |
isn't it like 11 pm in germany? |
21:49 |
PilzAdam |
23:50 |
21:51 |
hmmmm |
not to mention all of the getintfield uses |
21:52 |
hmmmm |
if they pass a value larger than 2^31 - 1, it's going to wrap around when assigned to an s16 (which is used instead of int for lots of things) |
21:53 |
|
lrh9 joined #minetest-dev |
21:53 |
hmmmm |
it's understood that if you pass along something insane, you're going to get insane results, or it's going to be fixed, so you should avoid dumb things or be sure what the behavior is if you're trying it |
21:54 |
hmmmm |
sapier ought to be worried about all the integer overflows, not something as minor as *this* |
22:23 |
hmmmm |
well whatever |
22:24 |
hmmmm |
https://github.com/minetest/minetest/commit/56093b6614a47b181bbce6d4e35d213a4e04120c |
22:31 |
|
ch98 joined #minetest-dev |
22:36 |
|
lrh9 joined #minetest-dev |
22:43 |
PilzAdam |
hmmmm, should I push this commit that makes clay use register_ore()? |
22:49 |
hmmmm |
sure |
22:49 |
hmmmm |
that'll definitely fix the clay problem |
22:49 |
PilzAdam |
"the clay problem"? |
22:50 |
hmmmm |
yeah, not enough clay to work with |
22:51 |
hmmmm |
https://github.com/minetest/minetest/commit/0b20768a242851364ba645a99c24a85c23544f86 |
22:52 |
PilzAdam |
https://github.com/minetest/minetest_game/commit/b0ab4fb4ab83dac9300f93a54a042023aba824be |
23:03 |
Exio |
what about removing an useless call in mapblock_mesh.cpp? |
23:03 |
Exio |
it added +5fps here (not much, but it may be a lot in other hardware?) |
23:03 |
Exio |
https://github.com/EXio4/minetest/commit/f8c8aedfcd01236257e865d26bf6f5f02a4df979 |
23:05 |
Exio |
VanessaE: try it |
23:08 |
kahrl |
Exio, should be a fine change |
23:08 |
kahrl |
I don't know why I left that call in |
23:08 |
kahrl |
(commit 807a0d31) |
23:09 |
PilzAdam |
kahrl, if thats really a useles call then merge it |
23:13 |
kahrl |
yeah, translateMesh does the thing that recalculateBoundingBox does within the loop |
23:13 |
kahrl |
(it might be more efficient to just translate the bounding box, but meh) |
23:16 |
kahrl |
PilzAdam, should I push the fix for https://github.com/minetest/minetest/issues/779? |
23:16 |
kahrl |
have you tested it? |
23:16 |
PilzAdam |
yes, of course |
23:28 |
kahrl |
should I push the black magic change? |
23:28 |
PilzAdam |
I would say so |
23:28 |
PilzAdam |
we can find a fix for chests later on |
23:28 |
kahrl |
adding node metadata prediction would be a fix for chests |
23:29 |
kahrl |
and the black magic change will work with that |
23:29 |
PilzAdam |
ok, then push it |
23:31 |
PilzAdam |
if there is a large number of objects in a world that cause an FPS drop, how would I see that in the F6 output? |
23:33 |
|
Taoki joined #minetest-dev |
23:35 |
Exio |
"don't do black magic" |
23:36 |
Exio |
the best commit, ever :P |
23:36 |
kahrl |
:D |
23:39 |
kahrl |
PilzAdam: SEnv: num of objects |
23:39 |
PilzAdam |
I only have a client on a public server |
23:39 |
PilzAdam |
where this happens: https://www.dropbox.com/s/08c6wwsmtoo2bvo/DuplicationBug.png |
23:39 |
kahrl |
hmm |
23:39 |
PilzAdam |
and the FPS constantly go down |
23:40 |
PilzAdam |
compared the F6 output to a "normal" minetest, no differences |
23:41 |
kahrl |
guess a CEnv: num of objects could be added |
23:42 |
PilzAdam |
there are several of these "stacks" (wich I guess are caused by the duplication bug) |
23:42 |
PilzAdam |
one of it got unloaded for a short time and my FPS got up to 60 again |
23:43 |
PilzAdam |
I guess there are several objects at the same position |
23:46 |
kahrl |
https://gist.github.com/kahrl/5801519 |
23:48 |
kahrl |
^ anyone objecting to merging that? |
23:48 |
PilzAdam |
seems good |
23:49 |
hmmmm |
wait, why average? |
23:49 |
PilzAdam |
the one for the server env uses that too |
23:49 |
hmmmm |
oh, nevermind |
23:58 |
PilzAdam |
kahrl, ok, the server that has this FPS drops and the sapling "stacks" shows me ~4000 objects in CEnV |
23:58 |
PilzAdam |
and this number of objects is definitely caused by a duplication bug |
23:59 |
kahrl |
ouch |