Minetest logo

IRC log for #minetest-dev, 2014-08-30

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

All times shown according to UTC.

Time Nick Message
00:22 sfan5 joined #minetest-dev
00:54 cg72 joined #minetest-dev
00:55 Zeno` joined #minetest-dev
00:59 Taoki joined #minetest-dev
01:06 sfan5 joined #minetest-dev
01:07 diemartin joined #minetest-dev
01:08 cg72 https://github.com/minetest/minetest/pull/1584 << anyone care to tell me if and how i did this one wrong??? i know no one likes me trying to dev ;)
01:13 RealBadAngel openin a folder as a file to read?
01:14 Zeno` That should be ok. Lua directly calls libc fopen() which will open a directory as a stream if it exists (you can't do anything with said stream AFAIK though)
01:14 Zeno` except close it again
01:15 Zeno` Who knows what it does on Windows though...
01:16 Zeno` http://codepad.org/gxE6Iy1M
01:18 kaeza joined #minetest-dev
01:20 CraigyDavi`` joined #minetest-dev
01:21 NakedFury joined #minetest-dev
01:22 cg72_ joined #minetest-dev
01:22 Zeno` http://codepad.org/h3lmZBmN
01:23 ImQ009 joined #minetest-dev
01:23 Zeno` $ ./a.out
01:23 Zeno` Could not read: : Is a directory
01:23 cg72_ ok that was weird
01:24 NakedFury joined #minetest-dev
01:27 lanxu_ joined #minetest-dev
01:32 paramat left #minetest-dev
01:40 Jordach joined #minetest-dev
01:50 RentedMule solved my port problem by recompiling from git HEAD.
01:50 Zeno` joined #minetest-dev
01:50 hmmmm joined #minetest-dev
01:50 Anchakor1 joined #minetest-dev
01:50 HLuaBot joined #minetest-dev
01:50 deltib joined #minetest-dev
01:50 CraigyDavi joined #minetest-dev
02:11 Sokomine paramat, hmmmm: the forceplacement parameter is very hepful, yes. as far as extending schematics goes - perhaps it might be useful to make it possible to insert a schematic directly into a luavoxelmanip data structure from withhin lua. it would also be great to have an api function to uncompress (unzip) the schematic's data structure from withhin lua without additional libraries, if possible
02:15 Miner_48er joined #minetest-dev
02:42 proller joined #minetest-dev
02:56 zat joined #minetest-dev
03:07 paramat joined #minetest-dev
03:42 paramat VanessaE, hmmmm, first test of running a 'get node'/'add node' mapgen mod alongside a voxelmanip mapgen mod (canyon mod plus landup mod): no problems. But of course this is just one mod combination
03:45 CraigyDavi` joined #minetest-dev
03:45 Zeno` Do both mods affect the same area?
03:46 VanessaE but how are the two mods actually DOING it?
03:46 VanessaE paramat: the problem I think comes from the vmanip mod writing not just the underlying land but the adjacent layer of *air* too
03:47 VanessaE I guess that's what snow mod did before the hack
03:47 VanessaE (either you had grass with air above, or you had dirt-with-snow with more snow above)
03:47 VanessaE but I haven't looked at the code in detail
03:50 paramat Zeno` yes, i tried to replicate the conditions as close as i could
03:51 paramat but im still outvoted 2 to 1 :) more people should test
03:53 paramat to be fair i did try snow mod plus plantlife and indeed had the same problems as you did
03:56 VanessaE paramat: and you saw nothing wrong with plants_lib's code that could cause it?
03:58 paramat correct, but plantslib/plantlife are complex i don't have my head completely around the code
03:58 VanessaE heh
03:59 paramat i need to try more combinations that write to the air above a terrain, so am suspending judgement
04:00 VanessaE well there ain't much to it.  it does a register_on_gen in which it reads from the map with a find_nodes_in_area, finds all surfaces therein, runs through the action loop to put stuff on the map, and exits from the callback
04:00 Zeno` my glow worms don't write to air above the terrain
04:00 VanessaE there's two of those (one for where checking for air above the target is needed, and one for where it isn't)
04:01 Zeno` but they do write to air below ground level
04:01 VanessaE Zeno`: ok, so then that theory isn't valid. *shrug*
04:01 Zeno` paramat, https://github.com/Zeno-/minetest_mtz/blob/master/glowworms/init.lua
04:01 VanessaE I have to wonder if find_nodes_in_area() is the problem?
04:01 VanessaE no, that can't be it
04:02 VanessaE because the writes are happening and then being overwritten
04:02 VanessaE (hence the dry grasses in-the-water entities still surviving)
04:04 * paramat looks at glowworms
04:07 paramat and what failed, glowworms or plantslib?
04:07 Zeno` glowworms made the plantslib not work
04:08 Zeno` i.e. plantlibs plants were not staying in the world
04:08 VanessaE Zeno`: didn't you write a little stub of mod that does what plants_lib does?
04:08 VanessaE just as a test I mean
04:08 Zeno` I don't think so. I ended up doing: https://github.com/Zeno-/minetest_mtz/blob/altgworms/glowworms/init.lua
04:08 Zeno` So they'd work together
04:09 Zeno` So I still read the voxelmanip data but use set_node() to modify (yeah I was lazy heh)
04:10 paramat perhaps i will try plantlife and voxelmanip landup
04:11 Zeno` Oh you mean for testing Vanessa?
04:11 VanessaE Zeno`: yeahg
04:11 VanessaE -g
04:11 Zeno` Yeah I wrote a little stub to put plants in random places
04:11 Zeno` let me see if I still have it
04:11 VanessaE point being, I seem to recall you ruled out plants_lib as being the fault here :)
04:12 Zeno` Yeah I do remember doing that now
04:20 Zeno` I can't find it :(
04:20 Zeno` I found some really useful C snippets though... blah.c shit.c test.c
04:21 paramat so far plantlife works alongside landup, but is slow, i recommend rewriting using voxelmanip and not 'find nodes in area'
04:21 VanessaE vmanip won't be any faster
04:21 VanessaE find_nodes_in_area() is capable of filtering the map in one cal
04:21 VanessaE call*
04:21 VanessaE can't do that with vmanip
04:23 VanessaE though I'll consider doing that later
04:24 Zeno` Perhaps I am using voxelmanip incorrectly?
04:25 Zeno` I haven't ruled that out yet
04:25 * paramat finds a mountain range at last
04:25 Zeno` If I am using it incorrectly then of course I could have ruled out plants_lib
04:26 VanessaE Zeno`: yeah but if you are, then SPlizard is also...
04:27 Zeno` Well, I copied someone else's code. Just looking at it now, is vm:write_to_map(data) correct? It seems I could be calling it simply as vm:write_to_map()
04:27 Zeno` Not sure... reading docs
04:27 paramat where landup and plantlife share chunks both work good
04:27 VanessaE Zeno`: it shouldn't matter *what* you do to the map though.
04:27 paramat glowworms code looks okay to me
04:28 Zeno` hmm ok
04:29 paramat i don't trust 'find nodes in area' because i once used 'find nodes near' and it was very slow even for small radii
04:29 VanessaE paramat: it's always worked for me :)
04:29 paramat and this modpack has multiple calls to plantslib
04:29 VanessaE paramat: nope.avi
04:29 paramat oh okay
04:29 VanessaE one single call to that function
04:29 paramat wise
04:30 VanessaE well there are two (one in the legacy don't-check-for-air code)
04:30 VanessaE but it's not like it used to be
04:31 VanessaE register_on_generated [start] --> read the map with one call to find_nodes_in_area() with a list of potential surfaces, search that list for surfaces with air above, pass the result into the action loop which populates the surfaces according to the biome defs (this is where all those calls actually went), loop ends ---> [exit on_generated]
04:32 VanessaE the no-air-check does the same thing, from a separate table and a separate call to find_nodes.
04:32 VanessaE s/search that list/search the returned table/
04:33 VanessaE the code got only about 2.5x faster when I reduced the number of calls to find_nodes from 123 to 2.
04:33 VanessaE so it's not really slow at all compared to the rest of the code :)
04:35 paramat it's still slow for what it does, i recommend simplifying and using voxelmanip
04:35 VanessaE it's a latency issue more than a speed issue
04:36 VanessaE the mapgen queues up too many blocks all at once and then spits them out in a big glob
04:36 VanessaE but I'll do what I can
04:39 paramat are various experiences are still bemusing though, however, still IMO too early to say there is a bug with voxelmanip
04:39 paramat (our various ...)
04:45 * paramat thus evades having to kick hmmmmm's ass
04:53 paramat left #minetest-dev
04:54 hmmmm darn
04:54 hmmmm he left
04:54 hmmmm --;
04:54 hmmmm and one minute ago too
04:54 hmmmm ghghghghghgh
04:55 VanessaE heh
05:01 OldCoder joined #minetest-dev
05:35 paramat joined #minetest-dev
05:35 paramat here hmmmm
05:43 Hunterz joined #minetest-dev
05:43 Zeno` hmmmm, do you know why LuaVoxelManip::l_read_from_map() calls vm->initialEmerge() ?
05:44 Zeno` Doesn't that get the map as if it was unmodified mapgen data? Or am I misunderstanding
05:45 Zeno` hi paramat
05:45 paramat o/
05:57 hmmmm Zeno`:  it calls initialEmerge because initialEmerge reads the map
05:58 paramat 'unturned' is a cute new game worth checking out, however the 'sun rays' are irritating, as they are in any game
06:00 Zeno` hmmmm, yes I see that now
06:14 hmmmm paramat, there's a specific combination of mods that has the issue vanessae mentioned
06:14 hmmmm snow biomes and the flower mod
06:15 Zeno` my mod (glowworms) and plantlife as well
06:15 paramat interesting ...
06:15 hmmmm ughhh
06:15 hmmmm i'm gonna have to install mods
06:15 hmmmm i hate having to install mods
06:15 Zeno` fortunately changing my mod to use set_node() makes very little difference performance wise (I still read the map using voxelmanip) so I worked around it
06:23 paramat hmmmm, hope you saw my request for 'force placement' bool to remain in schematics
06:23 hmmmm i would never remove features
06:28 paramat cool, thanks
06:29 Zeno` interesting
06:29 Zeno` https://github.com/minetest/minetest/blob/master/builtin/game/register.lua#L347
06:30 Zeno` If I change that to for i = cb_len, 1, -1  do then my mod and plantlife coexist nicely, so obviously order is important
06:33 khonkhortisan joined #minetest-dev
06:34 paramat order of multiple 'on generated' callbacks?
06:36 Zeno` the order they're called in, yeah
06:36 paramat perhaps the order can be controlled with dependancies
06:36 Zeno` Is there a way to force/prioritise order of on_generated callbacks?
06:37 paramat i was told the order is the order of registration
06:37 Zeno` I think VanessaE tried that, but the problem I have with that is putting plantlife as a dependency when it's not *really* a dependency in the strict sense of the word (IMO)
06:37 Zeno` Yeah that seems to be the case
06:38 paramat okay so that might explain your exception to our findings
06:39 Zeno` possibly yes
06:40 Zeno` There is no other way to control the order of callbacks other than the order mods are loaded?
06:40 Zeno` on_generated callbacks*
06:41 paramat doubt it
06:44 Zeno` paramat, the depends doesn't fix it :/
06:44 paramat 8/
06:44 Zeno` I think I would need to add my mod as a dependency to plantlife... which is kind of back to front
06:44 hmmmm stop with the hacks already
06:44 Zeno` I'm not hacking
06:44 Zeno` I'm experimenting
06:44 hmmmm it's a bug, simple
06:44 hmmmm heh
06:45 hmmmm honestly you're not getting too far with experimenting
06:45 Zeno` experimenting to understand is helpful to ME
06:45 hmmmm this is something i am pretty sure i know what's going on about
06:45 paramat so the order isn't determined by order of registration?
06:45 Zeno` well I am, because now I know that order is important and I know how the callbacks are actually called, so I learned something
06:45 hmmmm vanessae insists that somehow set_node calls are overwritten by a voxelmanip object that has already committed its changes
06:46 Zeno` It must be terribly boring to never experiment with things to see how they work :p
06:46 hmmmm i can't say this is false because i haven't even run minetest in months, but it certainly smells like a lot of bullshit
06:47 Zeno` How do you explain that things work if I reverse the order of callbacks?
06:47 hmmmm it's probably that vanessa got confused with the order of the mods running, and set_node callbacks in on_generated are getting run before voxelmanip ones, and the voxelmanip object obviously doesn't get updated from a set_node call
06:47 hmmmm in that case all I'd do is add a new voxelmanip function to check if the area it has loaded is dirty or not
06:47 Zeno` I'm not suggesting that as a SOLUTION
06:48 hmmmm changing order of callbacks is not a solution
06:48 Zeno` I'm not suggesting that as a SOLUTION
06:48 hmmmm i already know how to fix it --;
06:48 Zeno` I did it to confirm that order was important and to aid in my understanding
06:48 hmmmm if it is what i think i tis
06:48 Zeno` sorry for being curious :p
06:48 hmmmm anyway read my explanation from a couple lines up
06:48 hmmmm you realize that a voxelmanip object contains a *copy* of the map, right?
06:49 Zeno` I did. I think it's the reverse of what you said :)
06:49 Zeno` Yes I do
06:49 Zeno` A copy of when the object is created
06:49 hmmmm when the map gets updated independently from the voxelmanip, the voxelmanip memory won't have those things that got changed
06:49 Zeno` It doesn't seem threaded though
06:49 hmmmm so then when you have a mod's on_generated callback get the voxelmanip for that area you just did some set_nodes on, it's going to have the way the map looks just after mapgen generation
06:50 paramat !
06:50 Zeno` so the data from the voxelmanip is not written back to the map when you call write_to_map()?
06:50 hmmmm then when that voxelmanip memory is committed, it'll effectively "wipe out" changes
06:50 hmmmm it is
06:50 hmmmm it is written back to the map once you call that
06:51 hmmmm but the data being written back is the data the voxelmanip currently has
06:51 hmmmm not what the map has
06:51 Zeno` ok it is. So why doesn't vmanip have a copy of the map in it's state after the previous on_generated callback?
06:51 paramat voxelmanip should read from map the results of the previously run mod's actions
06:51 hmmmm what vanessae contends is that this, in fact, is incorrect, and nonsensically, set_node changes are being wiped out far after the voxelmanip mod has run
06:52 Zeno` It obviously does, otherwise the order of execution wouldn't matter and I've already shown that it does
06:53 hmmmm Zeno`, the actual voxelmanip that was used by the mapgen is being modified whenever you call vm.set_data()
06:53 hmmmm so if you have mod #1 get the voxelmanip object in on_generated and you set_data to all... stone or something
06:53 Zeno` So there needs to be a way to call all the vmanip callbacks first
06:53 hmmmm and then mod #2 on_generated fires, and gets the voxelmanip object... it'll have the stone there
06:54 hmmmm but set_node() is completely different mechanism from voxelmanip
06:54 hmmmm set_node directly modifies map
06:54 hmmmm it does not know about any such voxelmanip objects that may have that area loaded in
06:54 Zeno` ok it is. So why can't vmanip get a copy of the map in it the maps current state after the previous on_generated callback?
06:54 hmmmm so you're saying you want every single on_generated callback to re-read the map?
06:54 hmmmm that would certainly work, but do you realize how inefficient that is?
06:54 Zeno` Probably not
06:54 Zeno` Yes
06:55 hmmmm now like i said
06:55 hmmmm you'd only want to re-read this if the voxelmanip is dirty
06:55 hmmmm i.e. if a node being contained inside the area of a voxelmanip had been modified outside of the voxelmanip
06:55 Zeno` I can follow that, yes
06:55 paramat ah i think i see ...
06:56 Zeno` And that's how I've understood it all along
06:56 Zeno` So a combination of order and some kind of dirty flag would, surely, solve the problem
06:56 Zeno` anyway, bbiab
06:56 Zeno` dinner time
06:56 hmmmm so then i would just modify the get_data() to have a new boolean parameter to control the cache state
06:56 hmmmm by default this would be 'true', as in "yes, re-load the map if the area had been invalidated since the last read"
06:57 hmmmm and then get_data() would look like:
06:57 Zeno` Thanks for explaining what bools are :p
06:57 hmmmm if (this->is_dirty)
06:57 hmmmm this->initialEmerge(p1, p2);
06:57 hmmmm this->is_dirty = false;
06:58 hmmmm or whatever
06:58 hmmmm the difficult part here would be how to decide which voxelmanips are listening for changes to their area
06:58 hmmmm i'd have to keep track of voxelmanips that are currently active on that Map object
06:59 Anchakor joined #minetest-dev
06:59 paramat i had assumed each 'on generated' always re-reads the map as it was left by the previous 'on generated' *:/
06:59 hmmmm so then when Map::setNode() is called, it'll loop through all the voxelmanips and then check if the position of the node being set is contained in a cuboid of one or more of the voxelmanips and then set their dirty flag
07:00 hmmmm as you can already imagine, this is going to require synchronization nonsense
07:00 hmmmm but without a doubt, it is the most efficient solution to the problem
07:01 hmmmm for completeness, i'll have the mark-as-dirty check in voxelmanip blitbacks as well, to take care of the unusual edge case of two active voxelmanips with an intersecting area
07:02 * paramat will probably make that unusual case happen
07:02 hmmmm --;
07:02 Zeno` or you could just add a some kind of priority when registering the callback and if none given put it at the back of the queue, and leave it for modders to decide in the meantime
07:02 hmmmm ..eh
07:03 hmmmm how about i just do my non-hacky solution
07:03 hmmmm grr
07:03 hmmmm fine whatever
07:03 Zeno` yep, ok. I didn't realise priorities were a hack. Most kernels use them.
07:03 hmmmm priority should not matter here
07:04 hmmmm there is no concept of priority for callbacks
07:04 Zeno` In a perfect world, no
07:04 Zeno` make it a concept
07:04 paramat thanks for explaining hmmmmm
07:04 Zeno` How does it hurt?
07:05 hmmmm https://github.com/minetest/minetest/blob/master/builtin/game/register.lua#L378
07:06 Zeno` err, not exactly what I envisioned
07:06 hmmmm change "function (func)" to "function (func, index)" and do table.insert(t, func)
07:06 Zeno` yes
07:06 hmmmm t, index, func rather
07:06 Zeno` or just priority
07:07 Zeno` and insert at the appropriate index
07:07 hmmmm priority = priority or table.size
07:07 Zeno` yes
07:07 hmmmm so that way if the parameter isn't provided it'll just append
07:07 Zeno` so that wouldn't break existing mods
07:13 paramat okay 8am ... i'm off will read logs later
07:13 Zeno` bye bye
07:13 * paramat will sleep easier now
07:14 paramat left #minetest-dev
07:24 Garmine joined #minetest-dev
07:24 PenguinDad joined #minetest-dev
07:27 Calinou joined #minetest-dev
07:53 Krock joined #minetest-dev
08:06 casimir joined #minetest-dev
08:31 proller joined #minetest-dev
10:08 proller joined #minetest-dev
10:14 kahrl joined #minetest-dev
10:20 Krock joined #minetest-dev
10:31 Zeno` Anything new happening?
10:49 PenguinDad joined #minetest-dev
10:50 PenguinDad joined #minetest-dev
11:09 Megaf joined #minetest-dev
11:09 Megaf heh, Minetest is abusing and burning my CPU acording to OS X dmesg, http://paste.debian.net/118344/
11:18 darkrose_ joined #minetest-dev
11:20 ottodachshund joined #minetest-dev
11:23 kahrl_ joined #minetest-dev
11:27 VargaD_ joined #minetest-dev
11:41 ImQ009 joined #minetest-dev
11:49 proller joined #minetest-dev
11:50 realbadangel_ joined #minetest-dev
11:51 ImQ009_ joined #minetest-dev
11:51 alexxss joined #minetest-dev
11:52 AnotherBrick joined #minetest-dev
11:52 kahrl joined #minetest-dev
11:52 Zeno`` joined #minetest-dev
11:53 Zeno`` yikes
11:53 Zeno`` left #minetest-dev
11:59 casimir joined #minetest-dev
12:10 proller joined #minetest-dev
12:12 Megaf heh, Minetest is abusing and burning my CPU acording to OS X dmesg, http://paste.debian.net/118344/
12:13 PilzAdam joined #minetest-dev
12:14 Zeno` joined #minetest-dev
12:16 Zeno` Well, it appears nobody has implemented the simple fix for voxelmanip. I guess we have to wait for the overly complex solution because the more complex it is the less likely it's a hack.
12:18 PenguinDad Zeno`: simple fix for what?
12:19 Zeno` voxelmanip; actuallt, order of on_generated callbacks
12:20 ImNotQ009 joined #minetest-dev
12:21 Weedy joined #minetest-dev
12:21 Weedy joined #minetest-dev
12:21 Zeno` hmmmm wants to do some crazy transaction based method when being able to simply specify the order or priority of those callbacks will solve the problem
12:22 Zeno` Because the simple answer is a "bullshit hack"
12:22 kahrl_ joined #minetest-dev
12:24 Zeno` I have no idea why the more complex a solution is the "better" it is
12:25 troller joined #minetest-dev
12:27 Zeno` I guess IRQ priorities are a hardware hack
12:27 Zeno` that don't address the order of execution problem properly :/
12:28 Zeitgeist_ joined #minetest-dev
12:29 book` joined #minetest-dev
12:41 troller joined #minetest-dev
12:41 Zeitgeist_ joined #minetest-dev
12:42 Krock2 joined #minetest-dev
12:43 crazyR joined #minetest-dev
12:49 Jordach joined #minetest-dev
13:01 darkrose_ joined #minetest-dev
13:03 realbadangel__ joined #minetest-dev
13:06 ImQ009_ joined #minetest-dev
13:07 crazyR joined #minetest-dev
13:07 sfan5 joined #minetest-dev
13:09 FungusAdam joined #minetest-dev
13:21 realbadangel__ joined #minetest-dev
13:21 Zeno` joined #minetest-dev
13:30 ImNotQ009 joined #minetest-dev
13:32 Robby_ joined #minetest-dev
13:33 Kray_ joined #minetest-dev
13:48 NakedFury joined #minetest-dev
14:16 EvergreenTree joined #minetest-dev
14:17 ^v joined #minetest-dev
14:23 CraigyDavi joined #minetest-dev
14:32 Sokomine i'm not sure if a dirty flag will help. the villages-code uses voxelmanip for the entire area; yet it has to resort to set_node or similar for metadata. perhaps it might be easier to pass changes done via set_node/add_node/remove_node in on_generated to the voxelmanip data?
14:33 Sokomine but i don't really know the code. if this suggestion is rubbish, just forget about it
14:35 PenguinDad joined #minetest-dev
14:35 Zeno` Being able to set the order that the on_generated callbacks are called can solve the issue
14:35 Zeno` there is no need to complicated this Sokomine
14:35 Zeno` complicate*
14:36 Zeno` But, I don't thing voxelmanip affects metadata anyway so that's probably a separate issue (from memory the only thing that voxelmanip does is set param0 aka the node id)
14:37 Zeno` content id*
14:37 Zeno` whatever it's called :)
14:42 Sokomine that's right. and that's why - in this special case - further calls are needed additionally to voxelmanip. the main work can be done by voxelmanip though. just the chests etc. need special treatment
14:42 Zeno` What I am annoyed about it hmmm's attitude
14:42 Zeno` <Zeno`> interesting
14:42 Zeno` <Zeno`> https://github.com/minetest/minetest/blob/master/builtin/game/register.lua#L347
14:42 Zeno` <Zeno`> If I change that to for i = cb_len, 1, -1  do then my mod and plantlife coexist nicely, so obviously order is important
14:43 Sokomine there'd be no need to invoke any dirty flags in this case as the nodes themshelves are not changed
14:43 Zeno` <hmmmm> stop with the hacks already
14:43 Zeno` <Zeno`> I'm not hacking
14:43 Zeno` <Zeno`> I'm experimenting
14:43 Zeno` after that I reiterated that what I was doing was not a solution
14:44 Zeno` and he kept going on about how my solution was a hack when it was never meant as a solution, merely an observation
14:44 Sokomine hmmmm is not always easy to get around with. yet he does excellent work.
14:44 Zeno` I agree
14:45 Zeno` but jumping to conclusions about what I was saying is... insulting
14:45 Zeno` putting words in my mouth and not even listening when I try to correct those assumptions
14:45 Zeno` anyway, I'm over it :)
14:46 Zeno` the "proper" way is not always the correct way btw
14:47 Sokomine fine :-) getting along with each other and managing to communicate is sometimes difficult with all those diffrent languages, cultures and personalities out there
14:47 Zeno` yep
14:49 Tesseract joined #minetest-dev
14:50 gentoobr1 joined #minetest-dev
14:53 Ritchie_ joined #minetest-dev
14:55 rmilan joined #minetest-dev
14:55 Robby joined #minetest-dev
14:56 celeron55_ i'm sure all of you know how to discuss things objectively, so just do that with the goal of making stuff that will work years into the future without becoming a PITA
15:00 celeron55_ (the hardest part for me tends to be having to explain complex things to some random people on the internet who are likely to just do nothing and disappear and make the whole discussion a wasted effort; there's no good way of fixing that; every established developer can have that problem)
15:02 celeron55_ (so new guys: yes, you're almost worthless until you prove otherwise and you will always see it in how busy people act towards you; however, it will change at the instant you make something that is accepted into the project)
15:03 Zeno` Ok, well I was being objective
15:03 Zeno` I don't expect to be attacked for making an observation
15:04 sfan5_ joined #minetest-dev
15:04 Zeno` I don't expect it in real life and I don't expect in on IRC
15:04 Zeno` it*
15:04 celeron55_ yes hmmmm isn't always fair at all; don't take it too personally
15:05 Zeno` Oh, I'm over it now
15:05 celeron55_ me neither
15:05 sfan5- joined #minetest-dev
15:05 celeron55_ i just decided to throw some random half-philosophical thoughts in here and that's almost always a bad idea
15:08 Zeno` The strange thing is that I'm asleep right now
15:08 Zeno` I have no idea who's typing this
15:08 Ritchie joined #minetest-dev
15:09 celeron55_ i'm being very random but... like, i'm bothered by you having to get over it 8)
15:10 Zeno` I'm sorry for making you bothered
15:10 Zeno` :p
15:10 celeron55_ anyway it looks like you got a lot of answers so that discussion doesn't seem all that bad
15:10 Zeno` In the end it turned out fine, which is why "I'm over it" (perhaps a bad choice of words)
15:11 Sokomine it's good that you're bothered about it :-) apart from all the technical aspects, we sometimes have to remind ourshelves that there are other humans behind the screen - and that missunderstandings are easy and some things sound more harsh. while at the same time devs prefer to get a good solution to a problem
15:11 celeron55_ my point is, always when discussing with someone who originally made a feature, the discussion will be harsh
15:12 celeron55_ more or less such, depending on the personality of the author
15:12 Sokomine (and yes, i know that all those "users" can be very annoying :-) especially if they take a long time to understand what's so obvious to oneshelf)
15:12 Zeno` no no, I was more bothered by the immediate assumption that I was suggesting a solution (when I was not, and I thought I made that clear)
15:12 Zeno` Perhaps I need to brush up on MY communication skills
15:12 celeron55_ oh yeah, making a distinction between an experiment and a proposal is important
15:12 celeron55_ half of MT is a bodge of random experiments that were just left there so that is easy to miss
15:13 Zeno` Anyway, can we move on from this? :)
15:13 realbadangel__ hi
15:13 celeron55_ yes
15:13 PenguinDad Hey RealBadAngel
15:14 Zeno` Thanks. And good night :)
15:14 Zeno` Hi RBA, bye RBA
15:14 Zeno` left #minetest-dev
15:14 RealBadAngel celeron55_,  lately i made a commit with main menu music score
15:15 RealBadAngel it was kinda old style, demoscene
15:15 RealBadAngel most of the folks do not like it (why oh why) ;)
15:15 RealBadAngel so i found a new one
15:16 RealBadAngel http://incompetech.com/music/royalty-free/mp3-royaltyfree/The%20Descent.mp3
15:17 RealBadAngel celeron55_, can you try it?
15:18 celeron55_ no we won't have common main menu music
15:19 RealBadAngel you want them per game?
15:19 celeron55_ at most
15:19 RealBadAngel two cons then
15:19 RealBadAngel minimal is default
15:19 celeron55_ but games don't really need main menu music and MT doesn't really need music anywhere anyway
15:19 RealBadAngel and will be chosen at first sight
15:20 celeron55_ minimal should be disabled from the menu by defauult
15:20 celeron55_ -u
15:20 celeron55_ (unless it's the only one available, maybe)
15:20 RealBadAngel thats good idea
15:21 RealBadAngel but my 2nd thought, if music score will be per game, selecting games will make it a jukebox
15:21 RealBadAngel and above all yes, we do need music
15:22 RealBadAngel you may curse me or whatever, but a game need a music
15:24 Calinou joined #minetest-dev
15:25 celeron55_ well, it can improve the experience of a game, which is why i'm okay with having it per-game for that purpose
15:25 troller joined #minetest-dev
15:25 PenguinDad RealBadAngel: that song is much better than your previous suggestion imo
15:27 Amaz joined #minetest-dev
15:28 Sokomine many players did indeed complain about lack of music/sound effect quality and asked for improvements on the forum
15:31 RealBadAngel celeron55_, ingame music is up for games
15:32 RealBadAngel we are talkin now bout main score
15:32 RealBadAngel the flagship
15:32 Calinou music playing by default is problematic for users with high OS/hardware volume and people using headphones
15:33 celeron55_ there is no common feeling or anything to try to embrace in the main menu with music
15:33 RealBadAngel stop jokin
15:33 celeron55_ it's not useful at all
15:33 Calinou it leads to people starting the game for the first time, then going all “Argh! My Sennheisers!”…
15:33 RealBadAngel sound playing was problematic in 8-bit age
15:33 celeron55_ instead, games can have such in the menu so game-specific makes sense
15:33 Calinou it's not a matter of sound quality here
15:33 RealBadAngel not 21st century
15:33 Calinou volume is the problem
15:33 mrtux joined #minetest-dev
15:34 celeron55_ Calinou: you can't be serious
15:34 RealBadAngel and before any dare to ask
15:34 celeron55_ if you start a game, you expect it to have sound
15:34 celeron55_ that isn't an issue
15:34 RealBadAngel i tested a few tunes on my sennheisers
15:34 RealBadAngel at work
15:35 RealBadAngel few hours per tune
15:35 RealBadAngel they dont get annoying
15:36 Calinou not really
15:36 Calinou I am serious.
15:36 Calinou it's as problematic as sound-playing sites that play on page load.
15:37 Calinou by the way, Minecraft doesn't play immediatly music when starting it
15:37 RealBadAngel fade in and fade out
15:38 Calinou you need a long fade in, at least 5 seconds
15:38 RealBadAngel (in case we would make them per gme)
15:38 RealBadAngel *game
15:39 RealBadAngel btw technic and dreambuilder scores are also propably picked
15:39 RealBadAngel dreambuilder: http://incompetech.com/music/royalty-free/mp3-royaltyfree/Americana.mp3
15:40 RealBadAngel technic game: http://incompetech.com/music/royalty-free/mp3-royaltyfree/Americana.mp3
15:40 RealBadAngel ooops
15:40 RealBadAngel http://incompetech.com/music/royalty-free/mp3-royaltyfree/Future%20Gladiator.mp3
15:41 RealBadAngel ^^ above is for Technic
15:41 Calinou .mp3? no thanks
15:41 Calinou not even converted
15:41 Calinou royalty-free is not enough
15:42 Calinou also no loaded songs
15:44 RealBadAngel license is good to go
15:44 RealBadAngel convertion is not a problem
15:44 RealBadAngel its cc license
15:44 Calinou it decreases quality in a visible way
15:44 Calinou “Which CC?”
15:44 Calinou modification and commercial use must be allowed
15:45 RealBadAngel we are not commercial
15:45 Calinou …
15:45 Calinou preventing commercial use is non-free: http://freedomdefined.org/Licenses/NC
15:45 RealBadAngel we do not need that
15:45 Calinou we sure do
15:45 RealBadAngel no we dont
15:45 RealBadAngel cc by sa is enough for us
15:45 Calinou forks of Minetest are getting sold right as we speak 8)
15:45 Calinou …
15:45 Calinou whoa
15:46 Calinou you really have no idea what you're talking about
15:46 Calinou CC BY-SA doesn't prevent commercial use
15:46 Calinou what does is CC BY-NC or CC BY-NC-SA
15:46 RealBadAngel The Standard License is available for projects where attribution is not wanted or is otherwise impossible. (radio ad, TV ad, corporate presentation, commercial short, on-hold music, etc.)
15:46 RealBadAngel There is no charge for a Creative Commons license. It does require that you credit the music.
15:47 Calinou if you buy a license, it's exclusive and thus non-free
15:47 RealBadAngel but if you fuckin insist i will buy the license
15:47 RealBadAngel is that ok with you?
15:49 Calinou no.
15:49 RealBadAngel credit is enough in our case
15:50 Calinou do you understand what I say?
15:50 Calinou there are several CC licenses
15:50 Calinou some are free, some aren't
15:50 Calinou (free as in freedom.)
15:51 RealBadAngel There is no charge for a Creative Commons license. It does require that you credit the music.
15:51 RealBadAngel please translate it to english
15:52 Calinou <Calinou> (free as in freedom.)
15:52 Calinou not about price
15:53 RealBadAngel facts please
15:53 VanessaE Calinou: on the site RBA gets that music from, all of the "royalty free" music, the license is CC-by-SA 3.0 unported.  No ND or NC clause.
15:53 RealBadAngel usage, pirce, conditions
15:53 Calinou ah
15:53 Calinou still .mp3 and possibly sounds like crap
15:53 VanessaE Calinou: nope, sounds pretty good.
15:54 RealBadAngel why the fuck you are thinkin we gonna use mp3?
15:54 RealBadAngel and even if, so what
15:54 VanessaE RealBadAngel: "Americana" sounds like something by Alan Silvestri..  "Forrest Gump" or similar
15:55 RealBadAngel i picked that because youre female and i kinda know your taste
15:55 RealBadAngel was i right?
15:55 VanessaE mmhmm
15:55 VanessaE pretty close yes
15:55 Calinou conversion decreases quality
15:55 RealBadAngel kinda opposite to technic tribal one yes? ;)
15:56 VanessaE RealBadAngel: yeah
15:56 VanessaE about as opposite as it gets :P
15:56 RealBadAngel calinou for that i can buy aiifs
15:56 VanessaE Calinou: it can if the codecs suck
15:56 VanessaE Calinou: but if you have a high enough bitrate for the source material, then it doesn't matter - if you can't hear the loss of quality, then it's not important that there is one
15:56 * Calinou facepalms
15:57 Calinou VanessaE, yes, if your mp3 is 320 kb/s it'll be fine
15:57 Calinou sadly, most of them are 192 kb/s
15:57 RealBadAngel calinou, you realize that for game usage we have to make it mono
15:57 RealBadAngel and lower the bitrate?
15:57 VanessaE Calinou: that "Americana" was 320 kbps.
15:58 Calinou OK
15:58 troller olly .flac!!!
15:58 troller only
15:58 Calinou making it mono isn't a problem
15:58 Calinou RealBadAngel, you don't have to lower bitrate
15:58 RealBadAngel only troller :P
15:58 Calinou keep it reasonably high
15:58 Calinou I don't think the music is even sent in multiplayer
15:58 RealBadAngel i know what i wanna do with main menu
15:58 VanessaE Future Gladiator is also 320 kbps.
15:58 troller all music lower 1mbps - noisy shit!!!
15:59 RealBadAngel i want the scene, with player in the middle
15:59 RealBadAngel and 360degs panorama
15:59 RealBadAngel and fuckin music for that
15:59 RealBadAngel cinematic
15:59 * Calinou facepalm
15:59 Calinou I stopped reading at “panorama”
15:59 VanessaE troller: double-blind studies have already ruled that even the best audiophiles can't tell the difference between FLAC and anything over roughly 256 kbps.
15:59 Calinou stop imitating Minecraft stuff
16:00 Calinou VanessaE, high-quality OGG is still useful
16:00 RealBadAngel lol
16:00 VanessaE Calinou: indeed, good for a "master" format
16:00 VanessaE sorta like the 2k and higher files I use for HDX
16:00 RealBadAngel calinou, i was demoscene coder before notch started to shit in his pants
16:00 Calinou no, for listening
16:01 VanessaE Calinou: for listening only if the quality is above your personal threshold, yes
16:01 Calinou not everyone has the same threshold
16:01 VanessaE I know
16:01 VanessaE but as I said, double-blind studies already worked this out.
16:01 RealBadAngel if i mean main menu score i mean whole the effect
16:01 RealBadAngel movie plus music
16:02 VanessaE most people in a silent, sound-controlled environment can't tell the difference between 256 kbps and an uncompressed source.
16:02 RealBadAngel the way how it should look like
16:02 VanessaE hell most can't tell 128 kpbs from an uncompressed source if the codec is good enough and the speakers/headphones are "just okay"
16:02 VanessaE and that's like 90% of the listening public.
16:02 RealBadAngel to attract the folks and bring them to their knees
16:03 zat joined #minetest-dev
16:03 VanessaE (and I say this as someone who always uses the highest quality settings or opts for FLAC whenever possible in her own music library)
16:03 RealBadAngel game doesnt need loseless formats
16:03 RealBadAngel ogg is enougn
16:04 VanessaE ogg is fine as long as the source material is well-mastered, noise-free, and a good codec is used to create the ogg
16:04 RealBadAngel decent music i managed to play on RS latches
16:04 RealBadAngel on Z80
16:05 RealBadAngel and i made and soldered all of them
16:08 VanessaE I'll do you one better - I did it with an R-2R ladder on the C64 user port :D
16:09 RealBadAngel latches were first, to hold the signal
16:09 RealBadAngel ladders were after them
16:10 Calinou and you whine about audiophiles…
16:12 VanessaE Calinou: this was before MP3 existed :P
16:13 RealBadAngel im not audiophile, im technocrate
16:13 VanessaE neither am I an audiophile. :)
16:13 VanessaE a music lover listens to the music.  an audiophile listens to the noise :P
16:14 RealBadAngel vinyl noise is rare and precious
16:33 Krock joined #minetest-dev
16:38 casimir For main menu music this is a good source: http://opengameart.org/art-search-advanced?keys=loop&amp;field_art_type_tid[]=12
16:54 RealBadAngel from what i can see, whatever i will choose and make, there will be always a hater there
16:54 RealBadAngel so i will just do my best to make it shine
16:56 OldCoder joined #minetest-dev
16:56 RealBadAngel game main menu should be a  visit card of the game
16:56 RealBadAngel not pull down submenu of the system
17:00 Calinou make it have a better theme first
17:00 Calinou more readable buttons, larger font
17:04 VanessaE Calinou: sapier's working on that.
17:04 VanessaE and zefram_fysh
17:04 Calinou textures are not necessarily a better choice.
17:05 Calinou procedural generation is preferable
17:05 Calinou hello, high-DPI screens…
17:26 paramat joined #minetest-dev
17:46 paramat 320mp3 sounds okay, but i notice a difference to FLAC. The game engine is neutral so can't have music, it's a game thing. Music in menus is a waste of memory because players only spend a few seconds there. Music files are super-heavy, it's far better for players to provide their own music than doubling/tripling the size of a MT download for music most will tire of quickly, i'd rather download additional subgames.
17:53 Calinou ^
17:53 Calinou theme-less games can't really have music
17:53 Calinou or very neutral, classical one
17:54 paramat Would music be downloaded to clients? seems to me media download would become unbearable.
17:55 Calinou unlikely
17:57 paramat If players ask for music it's because they're used to mainstream games, we should give them a refreshing change and encourage them to provide their own choice of music.
17:59 paramat Also, i'm impresses that RBA can listen to a tune on repeat for hours without getting tired of it, who else could do that? ;)
18:00 paramat (impressed)
18:00 Calinou our issue list is long enough
18:00 Calinou how about we instead tackle it?
18:04 VanessaE Calinou: what?  are you crazy?
18:04 VanessaE FIX ISSUES?
18:04 * VanessaE gasps at the horror
18:04 Calinou eg. https://github.com/minetest/minetest_game/pull/312
18:08 paramat We'ew so lucky to have the top devs we do, this game would be such a mess otherwise
18:08 paramat (we're)
18:10 Calinou top devs?!
18:10 Calinou developers are mostly bad
18:10 Calinou we have a lunatic, a Minecraft emulator, a troll, a mathematician…
18:11 PenguinDad What's bad about mathematicians?
18:13 Calinou they spend their time making stupid mapgens that look pretty :/
18:13 Calinou we've clearly seen this last year
18:13 Calinou but they're unplayable
18:14 paramat Zeno`, if you see this, hmmmmm would have been sleeping straight after our chat so could not have worked on voxelmanip
18:23 paramat anyway bbl
18:23 paramat left #minetest-dev
18:29 Jordach Calinou, if someone fucking asked I'd make MGV7 mapgens a thing
18:30 Calinou meh, just look at small issues, fix them
18:30 Jordach and i noticed the -dev attachment again
18:33 * Jordach purrs at Calinou
18:33 Jordach again
18:34 Jordach left #minetest-dev
18:36 * sfan5 meows at Calinou
18:45 Calinou joined #minetest-dev
18:53 RentedMule does anyone know the name of the prefered deb/ubuntu package for redis library support?
18:55 RentedMule ah, it's hiredis.
19:31 Megaf joined #minetest-dev
19:34 Sokomine if you want to fix bugs, there's still https://github.com/minetest/minetest/issues/944
19:34 * Sokomine looks hopefully
19:35 Sokomine upon celerons suggestion, i've added more documentation regarding the bug and a simple mod that makes testing regarding potential bugfixes easier: https://github.com/Sokomine/experimental
19:38 Sokomine the documentation of the bug and the steps to reproduce it can be found in the README.txt of said mod
19:47 celeron55_ Sokomine: i don't think the api needs any extensions for this
19:47 celeron55_ what should happen is that both of the slots get called allow_put and allow_take, and then that happens if all of those four things are allowed
19:51 Sokomine if all four calls where done, that'd be fine, yes. 2 calls may do already - player inventory is usally of less intrest/does not have those limitations
19:51 celeron55_ it's a bit weird though, i'm not sure if it causes ambiguous situations
19:51 Sokomine although...a function that checks when a player gets or looses inventory might also be useful as an api fucntcion
19:52 celeron55_ well there can be other inventories than the player's inventory
19:52 Sokomine perhaps the swapping parameter might be easier to implement. it would solve the current problem
19:52 Sokomine hm. you're right. it's just that we somehow always have the player's inventory at the bottom half of the screen. it's so common players may even get confused if it where otherwise
19:53 celeron55_ well, you can put them side by side or something to make the distinction; in any case, it's entirely possible
19:53 celeron55_ anyway, that extra will_swap parameter doesn't give control for what the item to be swapped into the place is, which could be bad for some purpose
19:54 celeron55_ i guess extending the api could be done by adding an entirely new allow_swap call for this, IF extending it is needed
19:55 Sokomine no, it doesn't give control. the only thing which could be done then would be to deny the move - which would be better than the current state
19:55 celeron55_ any decision made here will certainly shape the feel of the system to both players and modders
19:55 Sokomine i thought about providing information about the destination stack, but that seemed more complicated
19:57 celeron55_ i think i could accept the will_swap parameter if more modders agree that it will work for enough purposes
19:58 Sokomine not necessarily. if we choose your patch, it would have a lot of impact and be rather impractical, although it does fix the bug. trouble is: in most cases, the swapping is a good/convenient solution for the player
19:58 celeron55_ then checking the move will require just two allow_take calls with that parameter set
19:59 Sokomine good question. i don't know how many ran into this problem. i'm not sure there's any other mod out there which might have that issue; for most inventories, it might be a slight inconvenience to have input in an output-only slot, but it does not matter (i.e. furnaces - who really cares if they get input in their output slots?)
20:04 Megaf what do you think about this?
20:04 Megaf process minetest[3462] thread 200631 caught burning CPU!; EXC_RESOURCE supressed due to audio playback
20:04 Megaf That’s what my OS X’s dmesg says
20:13 hmmmm joined #minetest-dev
20:22 casimir joined #minetest-dev
20:59 hmmmm Zeno`:  I did not say that priorities were a hack, my point was that using priorities to solve this particular problem is a hack
21:00 hmmmm like for example how many CPUs do you know order multiple loads/stores across different threads in order to save on cache invalidation/flush logic?  none
21:01 hmmmm i didn't implement that load order thing last night because it was past 3 AM and i thought i sufficiently explained what needed to be done so somebody else (like you) could do it...
21:02 hmmmm it might take 5 seconds to code but you still have to test it to make sure it works and that's what will take longer to do
21:02 hmmmm so i can't do that at 3 AM in the morning
21:02 hmmmm s/load order/callback order/
21:03 VanessaE I wanted to ask...exactly what IS the order of callbacks?  determined by dependency resolving, alpha order otherwise?  or something else?
21:03 hmmmm the most recently registered callback gets added last
21:04 hmmmm so if mod A is a dependency of mod B, and mod A has an on_generated as well as mod B, mod A's callback will be called first followed by mod B
21:04 VanessaE ok, that's what I figured.
21:05 hmmmm all this morning i've been doing family stuff and cleaning the house, and soon I'm going to some festival with my gf, so I don't know how much work I can put in
21:05 hmmmm see I only get the weekends to do this
21:05 hmmmm =/
21:05 VanessaE I know.
21:06 hmmmm and I'm only basing my solution to this issue off of what it sounds like from people talking and my knowledge of the code
21:06 hmmmm you maintain that i'm incorrect though
21:06 hmmmm i can only know for sure if i try it independently
21:07 VanessaE the only thing I maintain being incorrect is that you can't pass the same map data to two or more callbacks.  it's nonsensical.  Somewhere, one of them has to be able to get the results of the other so that it can modify that data.
21:08 hmmmm did you read the log of last night
21:08 hmmmm i explained exactly what the issue is if mod A does set_node() and mod B does voxelmanip
21:08 VanessaE I did, but I'm not entirely sure I understand what the solution will end up being,.
21:08 hmmmm you say that the problem exists if mod A does voxelmanip and mod B does set_node() which makes nosense
21:09 hmmmm (the order of execution being A, then B, to be precise)
21:09 VanessaE yes and you also explained that you still have yet to actually install mods and *try* it.
21:09 VanessaE whereas Zeno, paramat, SPlizard, jp and I have all done so to one degree or another.
21:09 hmmmm don't know who jp is
21:10 * VanessaE grumbles.
21:10 VanessaE you didn't read what I wrote then.
21:10 VanessaE [08-29 01:33] <VanessaE> is *anyone* gonna look into it?  it's been a problem since last February.
21:10 VanessaE [08-29 01:35] <VanessaE> https://forum.minetest.net/viewtopic.php?p=129941#p129941   <----  first report I recall seeing of this issue.
21:11 VanessaE I understand perfect about not having time to look into stuff.
21:11 VanessaE I get that.
21:11 VanessaE but ^^^^^ that, I don't get.
21:11 VanessaE no reasonable person would.
21:13 VanessaE since I wrote that within 1 minute of your last statement to the same effect, and you never responded, I assumed you had me on /ignore at that point, so I just left for the night.
21:13 hmmmm i don't ignore people
21:13 hmmmm i find that rather juvenile
21:13 VanessaE same here.
21:13 hmmmm compiling the most recent minetest now
21:14 hmmmm so what two mods do I need to replicate the problem?
21:14 VanessaE SPLizard's snow mod and my plantlife modpack.
21:14 VanessaE https://github.com/Splizard/minetest-mod-snow/
21:14 VanessaE https://github.com/VanessaE/plantlife_modpack
21:15 hmmmm is there a reason why splizzard's name is capitalized in that manner?
21:15 VanessaE you will have to disable SPlizard's compatibility "hack" - edit snow mod's src/mapgen_v6.lua and comment out lines 307 and 324
21:15 hmmmm lol exit to menu crashes minetest
21:16 hmmmm hooray
21:16 VanessaE the capitalization?  I think that's how he writes it in the forum.
21:16 hmmmm S.P. Lizard
21:16 VanessaE *checks*...  actually it's Splizard
21:17 VanessaE (also I have a rollover glitch between my hands and this piece of shit keyboard, so stuff comes out with excess caps)
21:17 hmmmm just drag & drop the mod directory into minetest/mods?
21:18 VanessaE for plkntlife, yeah
21:18 hmmmm so the directory layout is like minetest/mods/minetest-mod-snow-master/init.lua?
21:18 VanessaE plantlife*
21:18 hmmmm does the directory name matter?
21:18 VanessaE for snow mod, I think it has to be named "snow"
21:18 hmmmm how about yours
21:18 VanessaE directory name matters for mods, but not for modpacks.
21:18 VanessaE mine can be anything; the existing name should be fine
21:19 hmmmm jesus christ
21:20 hmmmm i don't mean to knock splizard, but doesn't he realize the importance of breaking up functions into smaller chunks?
21:20 VanessaE heh
21:20 hmmmm if you have more than 4 levels of indentation, you're doing it wrong
21:20 VanessaE well I'm not much better though I have some changes to make in plantlife (for that very reason)
21:21 * VanessaE inserts a missing comma where needed.
21:21 hmmmm agh shoot did i need to do something special to enable the mods on map creation
21:21 VanessaE yes
21:21 hmmmm s/map/world/
21:21 VanessaE click the map name, hit "Configure"
21:22 hmmmm yeah found it
21:22 hmmmm i don't recall needing to do that...
21:22 VanessaE click the mod in the list, check the "enable" checkbox at the top, and for the modpack, click the top level of the modpack name and click "Enable MP"
21:22 VanessaE yeah, been that way for a while
21:22 VanessaE this is why I keep telling you guys to actually *play* now and then ;)
21:22 hmmmm wow map generation is so slow
21:22 VanessaE you mean with plantlife + snow?
21:23 hmmmm yeah but i'm not seeing any snow areas yet
21:23 hmmmm did I need to enable MP?
21:23 hmmmm i don't play on MP ever
21:23 VanessaE MP for modpack
21:24 VanessaE so yeah, find the top level of plantlife in the list, click "EnableMP" to turn it on, then delete the map and try again
21:24 VanessaE (or just find some new land)
21:24 VanessaE expect it to take a while, 15-20 seconds
21:25 VanessaE big lag there because it queues up a whole bunch of mapblocks all at once for some reason
21:25 VanessaE (I have a plan to mitigate that somewhat)
21:26 hmmmm how far do i typically need to look in order to find a snowy area
21:26 VanessaE I'm not sure, around 50-100 nodes should be adequate
21:26 VanessaE you should see at least *something* pretty readily
21:27 hmmmm well i'm seeing tons of plantlife but no snow
21:27 VanessaE for plantlife, you'll know right away due to seeing a bunch of new stuff all over the map
21:27 VanessaE ok
21:28 VanessaE now, did you disable the hack I mentioned?
21:28 hmmmm yes
21:28 hmmmm still not seeing any snow at all
21:29 hmmmm with this issue, what am I supposed to be seeing exactly?
21:29 VanessaE actually you're seeing... if you'll excuse the pun...  the polar opposite problem.
21:29 VanessaE you should *also* be seeing snow here and there
21:29 hmmmm i smiled
21:30 VanessaE snow biomes are only around 100 nodes or so in size if Splizard's map in the first post is still valid
21:30 hmmmm this is taking longer to find than i thought
21:30 VanessaE http://img802.imageshack.us/img802/3824/mapabu.png
21:30 hmmmm i need to do this later
21:31 hmmmm what is the seed for that?
21:31 hmmmm and coordinates
21:31 VanessaE none given in the first post
21:31 VanessaE however you can see that that particular map is old as fuck too
21:31 VanessaE it still has pre-mudflow trenches
21:32 hmmmm is snow not working because moreblocks isn't installed
21:32 hmmmm I see it has "moreblocks?" as a dependency
21:32 VanessaE nope.
21:32 hmmmm hrmm okay
21:32 VanessaE ? means it's optional.
21:32 hmmmm bbl
21:32 hmmmm i'll look more into it
21:32 VanessaE ok.
21:45 alexxs joined #minetest-dev
21:47 hmmmm alright i have a little more time
21:47 hmmmm vanessae:  are you still around?
21:47 VanessaE yeah
21:47 * VanessaE hides
21:47 VanessaE should I be worried?
21:47 hmmmm just to verify, the modpack 'plantlife' is dark green and has a lot of indented subentries that are lime green
21:47 hmmmm and snow is green as well
21:48 VanessaE lemme check that
21:48 hmmmm it looks like a poor attempt to make a TreeView =/
21:48 hmmmm the irrlicht toolkit is wholy unsuitable for a gui
21:48 VanessaE for plantlife, that's correct
21:48 hmmmm and then all the rest are blue
21:48 VanessaE I'm not sure if snow should that too - probably yet.  been a while since I last ran it (because of this issue)
21:48 VanessaE blue = a regular mod
21:49 VanessaE (and a poor choice of color)
21:49 VanessaE jesus, my typing sucks.
21:49 VanessaE I'm not sure if snow should do that too - probably yes.  been a while since I last ran it (because of this issue)
21:49 VanessaE that's better.
21:49 hmmmm hmmmmmm I am still not seeing any snow
21:50 hmmmm http://pastebin.com/E47UxCr4  i don't see Snow in here... bad?
21:51 VanessaE yeah, I'm pretty sure the snow mod prints a notification that it is enabled.
21:51 * VanessaE checks the code
21:52 VanessaE hm, it's a regular mod so it'll be among the blue ones....
21:52 hmmmm vanessae, are you sure I didn't comment out the critical part of the code
21:52 hmmmm you told me to comment out lines 307 to 324
21:52 VanessaE positive.
21:52 hmmmm but voxelmanip data is never being written if i do that....
21:52 VanessaE by doing that you're forcing it to always write its vmanip
21:52 hmmmm umm, are you sure you didn't mean to comment out lines 307 and 324?
21:53 VanessaE that's what I said to do.
21:53 hmmmm you said "to"
21:53 VanessaE [08-30 17:16] <VanessaE> you will have to disable SPlizard's compatibility "hack" - edit snow mod's src/mapgen_v6.lua and comment out lines 307 and 324
21:53 VanessaE nope.avi
21:53 VanessaE I said "and".
21:53 hmmmm mm okay
21:53 hmmmm misread that
21:53 VanessaE you suck :)
21:54 VanessaE now, delete the map and start clean
21:54 VanessaE you'll find snow, and no plantlife stuff
21:54 VanessaE with that hack, plantlife will be able to run in the non-snow areas but only because he obviously doesn't run the vmanip then
21:54 hmmmm i see reedmace
21:54 hmmmm what is that
21:55 VanessaE it's one of plantlife's mods
21:55 VanessaE but I guess you only see part of it?
21:55 VanessaE the part in the water
21:55 hmmmm well i do see some reedmace
21:55 VanessaE yeah, reedmace is a special case, it's part entity.
21:56 VanessaE what you should see it a metric assload of...well what you saw before.
21:56 hmmmm hmm okay I see the issue you're describing
21:56 VanessaE yes
21:56 VanessaE *nods*
21:56 hmmmm snow things, and almost no plantlife
21:56 VanessaE yup
21:57 VanessaE THIS is what we've been banging our heads against the wall over :)
21:57 VanessaE same thing happened with zeno's MTZ mod, with those glowworms
21:57 VanessaE it used vmanip to place them, and so plants were no-go
21:58 VanessaE soon as he ditched the vmanip's, the plants were able to grow
22:02 hmmmm so let's see this
22:02 hmmmm splizzard's mod is the one being able to function properly and it uses voxelmanip
22:02 hmmmm your mod is the thing getting broken, which uses set_node
22:02 VanessaE yup
22:02 hmmmm does your mod get run before splizzard's mod?
22:03 VanessaE I am unsure what runs first, but putting snow into plants_lib's depends.txt doesn't always work - it's been tried in the past and didn't work.
22:03 VanessaE paramat also tried and was not successful
22:03 hmmmm how are you unsure what runs first
22:03 hmmmm the entire mystery here is based on you being "certain" that splizzard's mod ran first
22:03 VanessaE because neither snow mod nor plants_lib have each other as depends
22:04 hmmmm you fought with me tooth & nail that splizzard's mod ran first in fact
22:04 VanessaE but the only thing that makes sense to me is that snow is running first.
22:04 hmmmm that wouldn't make sense
22:04 VanessaE well,
22:04 hmmmm that's what i was arguing against because it just makes no logical sense
22:04 VanessaE if plants_lib were running first, wouldn't snow mod be starting with a plantlife- populated map?
22:04 hmmmm how can your mod's output get overwritten if splizzard's mod runs first
22:04 hmmmm what?
22:04 VanessaE s/map/mapblock/
22:04 hmmmm are you kidding me
22:04 * hmmmm falls out of chair
22:05 hmmmm you CLEARLY didn't read what i have been explaining is the problem for the past 4, no 5 times we discussed this
22:05 hmmmm oh god
22:05 hmmmm just read the conversation i was having with paramat and zeno` last night, i'm not going to repeat myself
22:06 VanessaE I *did* read, but now you're coming back to whether execution order matters.  If execution order matters, then that means that map data can change between on_gen callbacks.
22:06 hmmmm MAP data can change between on_generate callbacks
22:06 VanessaE yes
22:06 VanessaE and vmanip data doesn't
22:06 hmmmm VOXELMANIP data is different from MAP data
22:06 VanessaE I get that
22:06 VanessaE I know this
22:06 hmmmm wtf then
22:06 hmmmm where is the mystery
22:07 hmmmm i knew precisely what the issue was, within 5 minutes of first hearing about the problem
22:07 VanessaE so how then am I, in plants_lib, supposed to be able to tell $RANDOM_MAPGEN_MOD that what it read from the map is not in fact valid?
22:07 hmmmm and you kept on going "NO NO NO NO YOU'RE WRONG"
22:07 hmmmm you cannot
22:07 hmmmm I however, can
22:07 VanessaE ok,
22:07 VanessaE I didn't think so.
22:07 hmmmm yes
22:08 VanessaE see, we're on the same page here.
22:08 hmmmm you weren't for a long while
22:08 VanessaE it's just that you tend to explain with a shotgun approach, and you know it.
22:08 VanessaE blam!  here's a whole bunch of explanations all at once
22:08 hmmmm now if I add "print "hello there 1" in your mod and "print "hello there 2"" in splizzard's mod, is it going to say "hello there 1 hello there 2"?
22:08 VanessaE intermixed with links to code that you know I don't understand as ell as you do
22:09 VanessaE well*
22:09 hmmmm you obviously have a lot of free time on your hands.... what's wrong with learning the code
22:10 VanessaE hah
22:10 VanessaE you try diving into a project as complex as this one with no prior knowledge.
22:11 VanessaE I took C in college.  about 20 years ago, when it was still K&R.  that's as close to C++ as I can get.
22:11 VanessaE passed the class, then moved on to stuff I could actually *use* at the time
22:11 hmmmm ...
22:11 hmmmm it doesn't take a genius to learn how2C++
22:12 VanessaE learning the language may not be all that hard, but learning Minetest's codebase would be a real bitch and you KNOW that.
22:13 VanessaE plus, this:
22:13 hmmmm i got used to it fairly quickly
22:13 hmmmm you started playing minetest way before i have
22:13 VanessaE [08-30 11:02] <celeron55_> (so new guys: yes, you're almost worthless until you prove otherwise and you will always see it in how busy people act towards you; however, it will change at the instant you make something that is accepted into the project)
22:13 VanessaE Why should I even try to learn and contribute to the core codebase with an attitude like this?
22:14 VanessaE (and this is *after* I've already done so)
22:14 hmmmm because it's rewarding as hell
22:14 hmmmm there's something you don't like with the engine?  bam you can change it just like that
22:14 hmmmm no nagging 500 people
22:14 hmmmm for weeks and weeks
22:14 VanessaE HAH!
22:14 VanessaE you're funny
22:15 VanessaE change it?  sure.
22:15 hmmmm I just see excuses
22:15 VanessaE theoretically true.
22:15 VanessaE then change it again, and again, and repeat every time some upstream change breaks my patch
22:15 VanessaE not nag 500 people?  no, nag half a dozen to get said change merged.
22:15 VanessaE I've seen the process here.
22:16 hmmmm well, you do what you want then.
22:16 VanessaE it is NOT conducive to "get it working right and right now".
22:18 hmmmm ugh
22:18 hmmmm i'm gonna have to add a mutex to voxelmanips
22:19 celeron55_ that's ugly
22:19 hmmmm i know..
22:19 celeron55_ originally they were intended to be mostly pure data objects
22:19 hmmmm map is going to need a mutex that isn't an envlock
22:19 hmmmm well
22:19 blaise hey guys, check this out.. https://github.com/mnagel/clustergit
22:20 hmmmm set_node gets called, locks non-envlock mutex, updates list of registered voxelmanip areas
22:20 hmmmm so alright
22:20 paramat joined #minetest-dev
22:20 * blaise waves to paramat
22:21 hmmmm when MapVoxelManipulator does an initialEmerge, it'll lock a Map::vmanip_area_lock, and add its active area to the list of active voxelmanips
22:21 celeron55_ yeah obviously you need it if you're feeding back something to them, but that's... ehm... well, it might be needed then
22:21 paramat hiya :) i tried to make snow mod run before plantlife using dependancies but still no plantlife except underwater reedmace which is an entity
22:21 hmmmm then when set_node() gets called, lock, check the node is contained in any areas active with vmanips, then if so mark as dirty
22:21 celeron55_ it's not like VMs are used for their original purpose much at all now
22:21 hmmmm unlock
22:21 hmmmm what was their original purpose
22:22 blaise heh
22:22 hmmmm the purpose i see is just some nearly-direct-access fast way to do map operations
22:22 celeron55_ their original purpose was to be fast buffers for map data
22:22 hmmmm yeah
22:22 hmmmm except now when you have this kind of situation you need to be able to tell if it's dirty or not
22:23 celeron55_ well it still is kind of the same usage
22:24 celeron55_ adding locks and dirty flags like that can cause very painful slowness in some cases
22:24 celeron55_ goes against KISS
22:24 hmmmm got any better ideas
22:25 celeron55_ just... don't do dirty flags? 8)
22:25 celeron55_ it's not like people can't understand what using a separate buffer implies
22:25 hmmmm how can this be slow?  the only way this could ever cause slowness is if futexes start having lots of overhead (they don't - they never go into kernel mode) or there are like millions of active voxelmanips
22:26 hmmmm just scan a list, compare some numbers, set a flag
22:26 hmmmm okay, be back later
22:27 hmmmm celeron55_:  one really dirty solution would be to tell people to call initialEmerge every time the voxelmanip object gets acquired
22:28 celeron55_ i guess the question is, how of then it would be a useless call then
22:28 celeron55_ often*
22:29 celeron55_ (i need to sleep)
22:32 celeron55_ are you intending on locking the mutex every time any operation is done on the VM?
22:32 paramat so i understood last night's discussion: that each on generated doesn't necessarily read the resulting map of the previous one, so it's essential to run the voxelmanip mod before the add_node mod, so i tried correctly ordering snow and plantlife using dependancies but with no success, weird 8/
22:33 celeron55_ i have very much not read the discussion, but is that because the VM changes are applied to the map only after all the on_generated calls have been run?
22:34 * VanessaE hands hmmmm a towen to clean up his exploded brains
22:34 VanessaE towel*
22:35 VanessaE celeron55_: it's because all on_generated callbacks are given the same map content, and if a vmanip callback runs last, it writes out the clean map + its changes, because the set_node() stuff wasn't included into the vmanip object it received.
22:36 celeron55_ well that explanation doesn't fully explain what paramat said
22:36 celeron55_ mine would
22:37 AnotherBrick joined #minetest-dev
22:37 celeron55_ (what i said is just an addition of an important detail to that)
22:37 paramat apparently multiple vms do read the result of each previous vm
22:37 VanessaE indeed - thing is, I guess something very much like your explanation a little while back
22:37 paramat the problem is mixing vm with add_node
22:37 VanessaE but my guess was quickly ...  invalidated, shall we say
22:38 paramat note i tried replicating this situation with 2 of my own mods, no bug
22:38 paramat this may be specific to plantlife plus snow, or either of those plus some other mod
22:39 VanessaE paramat: zeno duplicated the issue without involving either plantlife nor snow
22:39 VanessaE neither*
22:40 paramat yeah
22:40 celeron55_ hmmmm: isn't your automated dirty flag list also going to have to be checked through in all VM operations so that VMs are synchronized with each other?
22:41 celeron55_ hmmmm: or how do you intend to do that? it's going to require rather much extra handling
22:42 celeron55_ i wonder if it would be possible to special case map generation and redirect set_node calls only then 8)
22:43 celeron55_ (probably not without issues)
22:43 paramat VE: "it's because all on_generated callbacks are given the same map content ..." < celeron55, what VE said in that line
22:44 paramat at least that's my understanding, i may be wrong
22:45 VanessaE zeno came to the same conclusion when he started reading through the code.
22:46 paramat however even the correct order of snow then plantlife didn't help
22:46 paramat which makes me suspect something to do with the slowness of plantlife, perhaps the use of 'find nodes in area' on a large volume (whole chunk)
22:47 paramat i'll do more testing with my own mods in various orders
22:49 celeron55_ the same VM is shared between the map generator and all the get_mapgen_object("voxelmanip") calls
22:50 celeron55_ but the stuff in the VM is written to the map before the on_generated calls are made
22:50 celeron55_ but not between them
22:51 celeron55_ except that... the on_generated implementations call vm:write_to_map it by themselves
22:52 celeron55_ this is quite clear
22:53 paramat best i don't try to explain, best to read logs. still too early IMO to say there's a bug
22:53 celeron55_ there's no bug
22:53 celeron55_ it just wasn't designed with direct map access in mind
22:54 Sokomine how was it designed/intended?
22:54 celeron55_ well, design bug
22:54 paramat yeah i suspect its a case of modders pushing things to breaking point again
22:54 * paramat is good at this
22:54 * VanessaE hides
22:54 celeron55_ Sokomine: hmmmm probably intended that lua mapgens would use either way but not both at the same time
22:54 VanessaE paramat: I plead the 5th
22:56 celeron55_ i don't understand why this wouldn't work when the direct map access mods are run after the VM mods though
22:56 celeron55_ there seems to be nothing preventing that from working
22:57 celeron55_ as long as the VM isn't written by any mod anymore after any set_node()s are made by other mods, it should work
22:57 celeron55_ but paramat just described that this doesn't work
22:57 celeron55_ paramat: are you sure this doesn't work?
23:00 proller joined #minetest-dev
23:06 paramat yeah correct order of snow then plantlife doesnt work
23:07 paramat except for reedmace entity
23:07 VanessaE .....which proves that plantlife's calls are being run.
23:07 paramat which i suspect survives because it is an entity
23:08 paramat so i suspect plantlife's code is the cause for that bizarre result
23:08 celeron55_ does plantlife use VM?
23:08 VanessaE no.
23:08 VanessaE only set_node() (and those entities for the reedmase)
23:09 VanessaE reedmace*
23:09 celeron55_ if it would at all, it would break itself when run after a full map generating VM mod
23:09 paramat i'll try my own mods: mixing vm with add_node, and i'll try both orders
23:09 celeron55_ (or... maybe would)
23:10 paramat and snow mod is the vm mod
23:11 paramat btw does a modpacneed it's own depends.txt to order it correctly? i put snow in each mod's depends.txt
23:11 paramat (modpack)
23:11 celeron55_ no
23:12 celeron55_ at least shouldn't
23:12 paramat *phew*
23:12 paramat plantlife is as slow as watershed 8/
23:15 VanessaE :P
23:18 proller joined #minetest-dev
23:30 PilzAdam joined #minetest-dev

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