Minetest logo

IRC log for #minetest-dev, 2020-01-24

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

All times shown according to UTC.

Time Nick Message
00:00 rubenwardy diff between last good and current bad:   https://github.com/minetest/minetest/compare/468eb4bf5710e851b2599baeff870518f979c71a..master
00:00 Sokomine it didn't crash immediately for me, Lone_Wolf. took a few seconds. i'm not sure what triggered it
00:00 rubenwardy I have a suspicion that this is related to the weight removal, as that touched packets
00:01 Sokomine could be. afaik packet message problems where mentionned when it crashed
00:07 Lone_Wolf I was on Craig's for a minute or two
01:26 p_gimeno It crashes in this line: SharedBuffer<u8> chunkdata(chunkdatasize); with chunkdatasize = 495
01:28 p_gimeno well, actually in this other line: data = new T[m_size]; with T = u8 and m_size = 495 (called from the line above)
01:30 p_gimeno 'The "invalid size" that the message refers to is not your size argument but an internal "chunk size" used by the memory manager, which has an unexpected value. Since that is invalid, you must have a memory corruption bug somewhere in your code.'
01:30 p_gimeno so, double free or buffer overflow (probably the latter)
01:42 ANAND joined #minetest-dev
02:04 Lone_Wolf joined #minetest-dev
02:57 fluxflux joined #minetest-dev
03:37 pmp-p joined #minetest-dev
04:04 ANAND_ joined #minetest-dev
04:18 ANAND_ joined #minetest-dev
04:28 ANAND joined #minetest-dev
04:31 ANAND_ joined #minetest-dev
04:34 ANAND_ joined #minetest-dev
04:36 ANAND_ joined #minetest-dev
04:38 ssieb joined #minetest-dev
06:53 pmp-p joined #minetest-dev
07:27 troller joined #minetest-dev
07:58 ANAND joined #minetest-dev
08:37 ShadowNinja joined #minetest-dev
09:42 troller joined #minetest-dev
10:16 erlehmann joined #minetest-dev
10:36 df458 joined #minetest-dev
10:39 erlehmann joined #minetest-dev
12:09 proller joined #minetest-dev
12:30 proller joined #minetest-dev
12:42 erlehmann_ joined #minetest-dev
13:34 Fixer joined #minetest-dev
13:48 pmp-p joined #minetest-dev
13:54 Taoki joined #minetest-dev
14:37 absurb joined #minetest-dev
14:50 proller joined #minetest-dev
15:19 pmp-p joined #minetest-dev
15:23 erlehmann joined #minetest-dev
15:29 proller joined #minetest-dev
15:55 proller joined #minetest-dev
16:51 indiana joined #minetest-dev
17:40 Krock joined #minetest-dev
18:24 rubenwardy merging #9314 in 10
18:24 ShadowBot https://github.com/minetest/minetest/issues/9314 -- Update translations by rubenwardy
18:28 Krock what is ChatBuffer::formatChatLine() even supposed to do?
18:28 erlehmann joined #minetest-dev
18:30 Wuzzy joined #minetest-dev
18:30 Krock the text wraps automatically even without that
18:30 Wuzzy I fixed pathfinder. Sorta. #9339
18:30 ShadowBot https://github.com/minetest/minetest/issues/9339 -- Fix pathfinder bugs: returning nil frequently, broken A*, jump through solid nodes by Wuzzy2
18:31 Wuzzy afk
18:32 rubenwardy thanks so much, Wuzzy
18:33 rubenwardy Krock: did we decide on rebasing-merge or squash-merge for #9314 ?
18:33 ShadowBot https://github.com/minetest/minetest/issues/9314 -- Update translations by rubenwardy
18:33 Krock rebase is OK
18:34 rubenwardy done
18:51 Krock finally gdb provides valid backtraces on "throw NULL;"
18:52 Krock previously it seemed to be connected to a garbage bin
18:54 rubenwardy isn't it recommended not to throw heap initialised objects?
19:10 p_gimeno Wuzzy: well done, kudos! as for your question, I vote for XZ only.
19:11 p_gimeno Wuzzy: what's the height for fitting through doors? 2 nodes? (and shouldn't that be a parameter?)
19:17 erlehmann_ joined #minetest-dev
19:20 Lone_Wolf joined #minetest-dev
19:35 Krock Wuzzy: background_chat.jpg is not documented
19:44 Krock will push fix for #9338 in 15 minutes: https://krock-works.uk.to/u/patches/0001-EnrichedString-Fix-substr-segfault-caused-by-non-for.patch
19:44 ShadowBot https://github.com/minetest/minetest/issues/9338 -- Memory corruption (recent)
19:44 Krock interestingly I never got two identical backtraces in gdb
19:50 Krock Wuzzy: https://i.imgur.com/4XteJPw.png
19:50 Sokomine p_gimeno: afaik most pathfinders can *not* find paths through doors. it'd surprise me if the one in the engine would be aware of them
19:56 sfan5 Krock: s/assert/SANITY_CHECK/ maybe
19:57 Krock I thought about that as well, but I don't see a need for this check in release builds
19:57 Krock it means that EnrichedString is again malfunctioning internally
19:58 Krock well, adding it doesn't hurt either
19:59 sfan5 better than hard to debug memory corruption for sure
19:59 Krock mmh.. longer compiling time again
19:59 Krock whatever, will add it
20:01 ssieb joined #minetest-dev
20:06 Krock works. pushing...
20:11 Wuzzy p_gimeno: height clearance is not implemented. the pathfinder is only on a node-per-node basis
20:11 Wuzzy but I agree, that's a required and important feature for pathfinder. but not for this PR
20:12 Wuzzy first step is to actually make the pathfinder work at all ^^
20:12 Wuzzy oh you mean doors?
20:12 Wuzzy ha, doors are an entirely different beast
20:16 sfan5 perhaps mods should just be able to specify a list of nodes that the pathfinder will consider to be air
20:17 Sokomine sfan5: that might be helpful, yes. mobs that can open doors can then specify them and pass through. that might save some problems
20:18 Sokomine however, doors are not the only problem regarding pathfinders. we do have nodeboxes and meshes. in a house built by me, pathfinders have a hard life. thin slabs as walls and handrails block the path in some directions only. handling that would probably be too much for a pathfinder in the engine
20:19 Wuzzy specifying which nodes are "free" and which are "blocked" is also an idea that I had
20:20 Wuzzy nodeboxes are one of the biggest challenges for a pathfinder, true
20:20 Sokomine though the existing ones i've seen usually have an extra function that checks weather a particular node can be reached. if there could be a callback there, that could help a lot for some mobs
20:20 Wuzzy i have experimented with burli's [pathfinder] mod a bit to automate a bit the handling of nodeboxes
20:21 Wuzzy its very basic and only looks at 1-box nodeboxes if they are thin enough
20:21 Sokomine Wuzzy: i did to some degree as well, but only with particular, known nodes - not on a general nodebox- or rather collision-box-level
20:21 Wuzzy I try to keep hardcoding away
20:22 Wuzzy my code basically checks e.g. if the single-box nodebox is far to the side, thin enough and not too far in center. then my code concludes its passable in that direction
20:22 Sokomine mobs acting as npc will need to interact specificly with some specific objects (things they can sit on, beds, workplaces, ..) so it's acceptable for me to have specific handling for that kind of mob
20:23 Sokomine that is very good, wuzzy. better and more general than what i attempted with burlis pathfinder
20:23 Wuzzy its still makes my head hurt and is far from complete
20:23 Sokomine Wuzzy: can this checking be included in the engines pathfinder at least in theory?
20:24 Wuzzy you also need to consider rotations thanks to facedir and wallmounted ...
20:24 Sokomine (i mean as a callback)
20:24 fluxflux joined #minetest-dev
20:24 Wuzzy sorcerykid claimed to have made a lua pathfinder with callbacks, but with the callback results cached so it doesnt need to be called over and over again
20:25 Wuzzy sorcerykid says the callback idea is basically only meant for the highly complex cases that somehow cannot be automated away
20:26 Wuzzy note my notebox analysis still needs overthinking as well
20:26 Wuzzy there needs to be awareness of how big the nodebox tolerance will be...
20:26 Wuzzy but i guess this stuff could be done very efficiently
20:27 Wuzzy just cache the "passable" flag for each node
20:27 Wuzzy maybe even globally so it's always O(1) for pathfinder
20:28 Wuzzy there only needs to be one loop at startup that checks in which dirs nodes are passable...
20:28 Wuzzy but i'm not sure how well this works out for differently-sized entities
20:29 Wuzzy Sokomine: But yes, i suppose in theory, you could do the callback thing
20:30 Wuzzy i am just not sure if its a good idea. more code ...
20:30 Wuzzy we should try to keep code size small. i mean of lua code at least. Let the engine do the "hard" things
20:31 Wuzzy figuring out how to collide with nodeboxes is something i consider "hard"/complex
20:32 Wuzzy Krock: whats with that Bender img?
20:34 Krock scroll up further
20:46 Sokomine Wuzzy: sounds like a good plan. diffrent-sized entities are always a problem
20:47 Sokomine i agree, wuzzy. perhaps that cached list might help there as you already suggested - so that lua does the checking of each node and direction, and the engine just gets that node list as a parameter
20:48 Wuzzy I propose to also keep the features relatively lightweight, in order to not drown in complexity. good design is important
21:15 Sokomine wuzzy: definitely. it's more a remaining aware of such features beeing necessary in some situations and not to close doors there too early if possible
21:19 mizux joined #minetest-dev
21:38 erlehmann joined #minetest-dev
21:47 df458 joined #minetest-dev
21:52 An0n3m0us joined #minetest-dev
23:02 proller joined #minetest-dev
23:19 DI3HARD139 joined #minetest-dev
23:21 p_gimeno Wuzzy: I meant height clearance. I said doors to make it simpler. So 1 node height?
23:21 Wuzzy yea
23:21 Wuzzy still
23:21 Wuzzy its a pathfinder for things that a 1 node tall
23:22 Wuzzy height clearance is an important feature for the future, definitely
23:22 p_gimeno ok, thanks
23:22 Wuzzy I think it would be pretty easy to implement, but it will come at a price ...
23:22 p_gimeno what about e.g. lava? is it considered air? walkable? unwalkable?
23:23 Wuzzy pathfinder only knows "walkable" and "non-walkable"
23:23 Wuzzy and in Minetest Game, lava is non-walkable
23:23 Wuzzy in other words, pathfinder happily guides you into lava 😀
23:23 p_gimeno I see
23:23 Wuzzy yeah being able to exclude nodes from search will also be important feature, sure
23:24 Wuzzy i had the same throughs as you
23:24 Wuzzy because those featurs are no-brainers
23:24 p_gimeno I'm just reflecting on the future of pathfinding for minetest :)
23:25 Wuzzy I'd say height clearance would be top priority, with custom node exclusion on rank 2 (because liquids are common)
23:25 p_gimeno the distinction "walkable" / "non-walkable" is a bit ambiguous to me
23:25 Wuzzy walkable = solid
23:25 Sokomine the bugfixes from today seem to work. latest mt runs smoothly again
23:25 p_gimeno so, a wall is walkable?
23:25 Wuzzy yes
23:26 p_gimeno ok, I see
23:26 Wuzzy walkable means that entities will collide with it
23:26 Wuzzy and players
23:26 Wuzzy all objects
23:26 Wuzzy it's called "walkable" because you walk on it
23:26 Wuzzy its  a weird term, its just the same word you find in node definition
23:27 p_gimeno I see
23:27 Sokomine exactly. there's also climbable...havn't found a solution for that in pathfinding yet. i'm afraid a 2d pathfinder may run into problems there
23:27 Wuzzy but this means that pathfinder will be able to walk through e.g. most plants since they dont collide
23:27 Wuzzy climbable is a bonus =)
23:28 Wuzzy for later
23:28 Wuzzy hmmm i should maybe write down all ideas
23:28 p_gimeno sounds like a good idea
23:28 p_gimeno and making an enhancement proposal issue with them
23:29 Wuzzy one thig that sounds really problematic are mobs that are wider than 1 node ...
23:29 Wuzzy I'm afraid they might require a new algorithm even
23:30 p_gimeno well, a more sophisticated collision algorithm than examining just the immediate node's type I'd say. It would need to check its neighbours too.
23:31 Wuzzy but the thing is, in which direction do you check?
23:31 Wuzzy if you have a 2×2×2 mob
23:32 Wuzzy if you just slap many checks on every A* iteration, i think the runtime will quickly explode
23:32 * Sokomine compresses the mob into a neat 1x1x1 cube, squeezes it through the path, and then inflates it again
23:33 Wuzzy i wonder how MC does it ... MC has big mobs, too
23:33 Sokomine if mobs are solid and collide with each other and with players, mobs may easily block paths as well. but those are more complex things where there really isn't a good solution yet
23:33 Wuzzy maybe big mobs don't actually pathfind until player is close? 🙂
23:34 Sokomine could make sense. big mobs won't want to move quickly most of the time (too much mass to move or brake)
23:35 Wuzzy hmmmm objects could trigger all nodes they touch to be "occupied", so A* would treat them as solid nodes. the challenge is how to do it efficiently
23:38 p_gimeno I'm trying to think about a groups system so that depending on the type of mob, certain nodes are walkable or not
23:39 Wuzzy i'd rather keep it simple. just tell the function your nodes config
23:39 p_gimeno yeah, that makes sense too

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