Time Nick Message 00:45 gregorycu Hmmmm: octant is like a quadrant, but in 3d space 01:32 kaadmy heh hmmmm had a 15+ minute rant :D 03:21 Wayward_One #4030 03:21 ShadowBot https://github.com/minetest/minetest/issues/4030 -- Server list displays incorrectly on Android 03:32 paramat hi sorry for absence was exhausted and slept through sunday 03:33 paramat i'll merge #4016 soon, has 2 approvals 03:33 ShadowBot https://github.com/minetest/minetest/issues/4016 -- tile.cpp: Automatically resize overlaying texture to base dimensions by SmallJoker 03:35 paramat last PR for engine is #2602 , obneq might be making a fresh PR for this, however they say they are not good with code so someone else implementing this might be good to get it done faster 03:35 ShadowBot https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq 03:38 paramat #4005 seems to have some progress 03:38 ShadowBot https://github.com/minetest/minetest/issues/4005 -- Minetest.apk build failure 03:40 paramat then there's issue 4030 03:40 paramat so it seems freeze is slightly delayed 03:42 paramat uh no-one reviewed game#1039 game devs must be preoccupied 03:42 ShadowBot https://github.com/minetest/minetest_game/issues/1039 -- Tnt+: Changes for TNT mod after #862 by sofar 03:43 paramat anyway that seems ready to go in so game is almost frozen 03:48 paramat !tell Zeno` since you have commented on https://github.com/minetest/minetest/pull/2602 could you make a new PR for this? 03:48 ShadowBot paramat: O.K. 04:02 gregorycu Only one blocker left? 04:03 gregorycu #4005 04:03 ShadowBot https://github.com/minetest/minetest/issues/4005 -- Minetest.apk build failure 04:03 paramat hmmmmm i feel we should keep 2D perlin noise for clouds. although players are not very concious of them the pattern quality is very important to a world, as important as perlin noise for the terrain. it's consistent in noise character to the terrain too 04:03 gregorycu I don't mind keeping them 04:03 gregorycu Though, if we wanted to make clouds faster, we should cache results 04:04 gregorycu (I'm not saying we need to make clouds faster) 04:04 paramat well 1 PR and 2 issues 04:04 gregorycu Which ones? 04:05 paramat 4005 seems close to resolution thogh 04:05 paramat search for milestone 0.4.14 in issues and PRs 04:05 paramat milestone == blocker 04:05 gregorycu Ahh ok 04:06 gregorycu Who is looking at #4024? 04:06 ShadowBot https://github.com/minetest/minetest/issues/4024 -- Expiring particle spawners broken 04:07 paramat no-one, but i have asked if anyone can make a new PR for that, maybe zeno 04:07 paramat the old PR is n PR milestones 04:07 paramat (in) 04:08 paramat zeno would be ideal due to his previous review and comments 04:09 gregorycu ok 04:23 paramat hmmmmm your plans for biomemanager sound ok 04:36 paramat sofar your sheep are good but perhaps the leg walking motion should be reversed for the rear legs, like real animals 04:38 paramat front left and rear right go forward together 04:39 gregorycu Reversed or offset? 04:39 paramat reversed i think for simplicity 04:41 gregorycu So the motion will look like this? / \ | | \ / | | / \ 04:41 paramat on one side yeah 04:41 gregorycu hmm... 04:46 paramat !tell est31 see https://github.com/minetest/minetest/issues/4005#issuecomment-214057751 04:46 ShadowBot paramat: O.K. 04:55 sofar paramat: yeah, this is all just a draft... plus they have no knees... 04:56 gregorycu Anyone have any performance related gripes? 04:59 paramat ok. please don't add knees, no cuteness and over-complex 04:59 sofar I wouldn't add knees, no 04:59 sofar the goal for the sheep is to debug all the AI code behind my mob AI engine 05:00 paramat heh ok, was worried for a moment 05:00 sofar once I have pathing code that doesn't get stuck, I can start on damage handling etc. 05:00 sofar I have state transitions completed 05:01 sofar the sheep can go from roaming, to eating, to fleeing, etc. 05:01 sofar each state can have it's own animations and behavior 05:01 sofar everything is modular too 05:01 gregorycu Were there discussions about mod support in engine core? 05:01 Wayward_One gregorycu: too much fps lately 05:01 paramat your sheep are the first MT sheep i have seen that are actually cute, instead of awkward looking 05:02 gregorycu Too much FPS? 05:02 Wayward_One I have to keep increasing my view range 05:02 sofar paramat: for a reason. I'm absolutely not taking anyone's models or textures (they're bad, seriously bad) 05:02 Wayward_One :P 05:02 gregorycu :) 05:02 gregorycu I'm glad Wayward 05:02 sofar also, I'm not publishing anything until I'm happy with it 05:02 paramat anyone know the fix for #4005 ? 05:02 ShadowBot https://github.com/minetest/minetest/issues/4005 -- Minetest.apk build failure 05:02 sofar but when I do, it will include blend files. 05:03 gregorycu Wayward: There is a perf thing on the way 05:03 gregorycu For some people large FPS improvement 05:03 Wayward_One Ah, nice 05:03 sofar gregorycu: I wouldn't put mobs in engine code, maybe mtg, though 05:03 sofar s/code/core/ 05:03 Wayward_One Oh, the superfluous shaders PR? 05:04 gregorycu Yeah, that one 05:04 Wayward_One I've been meaning to test that out 05:15 gregorycu #4029 05:15 ShadowBot https://github.com/minetest/minetest/issues/4029 -- find_path: consider walkable instead of CONTENT_AIR by sofar 05:16 gregorycu sofar, did you perf test this function? 05:16 gregorycu (I'm not expecting you to, just wondering if it's something I should look at) 05:16 gregorycu Considering I seem to be the performance guy 05:23 sofar gregorycu: please do 05:24 gregorycu You know what would be awesome for me 05:24 gregorycu Electronic sheep 05:24 sofar like I said to pilzadam, this function is hopelessly useless if you can't safely walk through grass 05:24 sofar at least that part is fixed 05:24 gregorycu Nah, it's good, I just want to make sure it's performant 05:24 sofar now for the getting stuck on ledges part :D 05:24 sofar well, I'm currently running 20 sheep at the same time 05:25 sofar and that's not giving me any issues 05:25 gregorycu Well, I want to crank that number up very high 05:25 gregorycu 1000 for instance 05:25 sofar they do get stuck when they bump into eachother 05:25 sofar due to collision boxes 05:25 gregorycu Just like real sheep :) 05:26 sofar I wish there was a cheap way to "bump" in minetest 05:27 sofar I can see why tenplus1 has his mobs despawn every 5 minutes 05:28 sofar my goal is to have them never despawn because they simply don't get stuck 05:28 gregorycu Indeed 05:28 gregorycu A good goal 05:28 gregorycu Do you have a cut-down mod of your sheep that use find_path? 05:29 gregorycu Save me writing my own mods 05:29 jin_xi sofar how is it working with the 'extremely bloated path' the pf returns? 05:29 gregorycu (How I usually profile is I call the function with a lot of different data and see what percentage of total runtime is spent in that function) 05:29 sofar sorry, that would be a lot of work right now 05:30 jin_xi because it used to have an optimization using line of sight to return waypoints of paths, but that did not work very well 05:31 jin_xi anyway, gotta go 05:33 sofar jin_xi: I need to write some path cleanup functions 05:33 sofar other than that it makes horrible angular paths 05:33 sofar like these sheep are living in US cities somehow and only know grid road systems 05:37 paramat now merging #4016 05:37 ShadowBot https://github.com/minetest/minetest/issues/4016 -- tile.cpp: Automatically resize overlaying texture to base dimensions by SmallJoker 05:40 sofar afk. more sheep path fixing for a few more days I think, until I get all the stuckness gone. 05:42 sofar paramat: looks better with the leg order changed too :) 05:46 paramat merged 05:53 paramat hmmmm i've realised that resetting tunnel width https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L738 is essential when using custom noise parameters for 3D noise tunnels. since it's fairly simple would i be allowed to do this today for release? 06:01 paramat added #4019 to milestones 06:01 ShadowBot https://github.com/minetest/minetest/issues/4019 -- Make ItemStack with different metadata not stackable by hunterdelyx1 06:22 paramat added #4023 to milestones to be careful 06:22 ShadowBot https://github.com/minetest/minetest/issues/4023 -- New unified favourites can disappear after game exit 06:24 gregorycu I guess this needs to be fixed before release then? 06:24 gregorycu When is the release scheduled? 06:25 paramat 2 weeks from now 06:25 paramat roughly 06:37 gregorycu We best hurry then 06:40 Zeno` It'd be nice is somebody could at least reproduce it within 2 weeks :) 06:43 paramat indeed 06:44 paramat reviews for #4019 welcome, it's simple 06:44 ShadowBot https://github.com/minetest/minetest/issues/4019 -- Make ItemStack with different metadata not stackable by hunterdelyx1 06:46 gregorycu My git is running out of memory 06:46 gregorycu I'm not very impressed, to be honest 06:50 hmmmm gregorycu: have you tried git gc --aggressive? 06:50 hmmmm paramat: ? 06:50 gregorycu I tried the regular gc, I'll attempt aggressive now 06:50 paramat hi 06:58 hmmmm paramat: i didn't get what you meant 06:59 hmmmm in any case, do you not use overgeneration for biomes? 06:59 paramat oh about tunnel width 07:00 paramat when people use custom noises for 3D noise tunnels, it's almost always essential to also altr thr tunnel width number 07:00 paramat (alter) 07:00 paramat (the) gr 07:00 hmmmm you mean the threshold? 07:00 paramat yes 07:01 hmmmm that hasn't been modifiable since its introduction 07:01 hmmmm i don't think it'd be smart to add it now 07:01 hmmmm aren't we supposed to be having a feature freeze? seems to be an awful lot of activity for a project in a supposedly frozen state 07:01 paramat i do 07:02 paramat hm 07:02 paramat 3 new mapgens are about to be released, i would like them to have this from the start 07:03 hmmmm v5 fractal and flat? 07:03 paramat flat fractal valleys 07:03 hmmmm those are new as of 0.4.14 07:03 hmmmm hum 07:03 paramat thng is, tunnels are effectively not customisable without a parameter for tunnel width 07:04 hmmmm i highly doubt anybody is going to be able to modify the caves 07:04 paramat mgv7 is getting used more now too, so i would really like this in that too 07:04 hmmmm controlling that noise is so finnicky 07:04 hmmmm sure, i don't have an issue with adding a new parameter as long as it's done the right way 07:04 paramat i know of someone adjusting the spreads 07:04 paramat ok 07:04 hmmmm but i'm just saying 07:05 hmmmm this is technically a feature 07:05 hmmmm and the project is supposed to be in a feature freeze 07:05 hmmmm you're the one who did that too 07:05 paramat yeah we're not quite frozen due to a few PRs still waiting 07:05 paramat and a few issues too 07:06 Zeno` issues should not stop a freeze 07:06 paramat yes 07:06 paramat i mean agreed 07:06 Zeno` should they? I mean... the freeze is to fix issues so if there are no issues then just release hehe 07:06 Zeno` heh 07:06 paramat exactly 07:07 hmmmm paramat, you know you're able to set biome parameters per-mapgen right now, correct? 07:07 paramat i know that 07:07 paramat but we need the defaults to be different per mapgen 07:08 hmmmm you can do that too 07:08 paramat biome noises 07:08 hmmmm just not using the configuration file 07:08 hmmmm i want to deprecate setting noises by the config file anyway 07:08 paramat yeah 07:09 paramat so i won't work on that as you are 07:09 hmmmm in mapgen.lua have a bunch of if mgparams.name == "v7" then core.set_noiseparams("mg_biome_heat", { ...}) elif mgparams.name == "v5" ... 07:10 paramat ahh 07:10 paramat i didn't know 07:10 hmmmm so i just want to confirm: 07:10 hmmmm as of right now, you do NOT overgenerate biome noise 07:10 hmmmm right? 07:11 paramat correct, because my overgen is only ever vertical, 1 up 1 down, and only for 3D noise 07:12 hmmmm what do you think a good name would be for the current biome calculation approach? 07:12 hmmmm if you can't think of anything i'll just use Original 07:12 paramat hm 07:15 paramat well this diagram is often named after Whittaker https://upload.wikimedia.org/wikipedia/en/2/29/PrecipitationTempBiomes.jpg 07:16 hmmmm Climate would be another candidate 07:16 hmmmm BiomeGenOriginal 07:16 hmmmm BiomeGenClimate 07:16 hmmmm BiomeGenWhittaker 07:16 paramat HeatHumid? 07:16 hmmmm don't forget that ground level is also a variable in this calculation 07:17 paramat ah 07:17 hmmmm do you want to use Whittaker? 07:17 paramat 'climate' could mean so many systems, perhaps 'original' 07:18 paramat i think 'original' 07:18 paramat as new calculations would probably work with whittaker's diagram too 07:18 hmmmm OK then 07:21 gregorycu ffs 07:21 gregorycu I can't reproduce lighting issues 07:21 gregorycu I thought I had it for a second, except I was looking at a dandelion and not a torch 07:22 Zeno` lol 07:22 gregorycu Even flowers are trolling me 07:29 VanessaE heh 07:30 hmmmm hrmm 07:31 hmmmm paramat, with the new system you won't be able to overgenerate biomes without F'ing up the biome cache, is that OK? 07:32 paramat do you mean the 2D biome noises will always be restricted to the mapchunk? 07:32 Zeno` I can't stop laughing. I have this picture stuck in my head of gcu staring at a dandelion wondering why it doesn't illuminate everything around it 07:32 hmmmm actually you know what i don't actually know what i'm doing 07:32 hmmmm because of the overhang problem 07:33 hmmmm there can be more than one biome mapped to a specific (x, z) 07:33 paramat yes, my function recalculates biome at each new upper surface 07:34 paramat .. in a column 07:34 hmmmm alright 07:34 hmmmm relatively speaking, biome recalculations are rare 07:34 hmmmm is this fair to say? 07:34 paramat tends to be 1 or 2 per column 07:35 hmmmm no, this isn't going to work out 07:35 hmmmm i can make a horrible mapgen paired with horrible biome definitions that would own this approach 07:36 hmmmm this is why i hated including the raw Y position in biome calculations, it's just that i couldn't ever figure anything else better out 07:37 paramat isn't it essential since biomes have upper and lower limits? 07:37 hmmmm it wasn't supposed to be that way but that's how things ended up 07:37 paramat heh 07:37 paramat stacked biomes are absolutely essential 07:37 hmmmm so basically biomes are always going to be three coordinates, x y and z 07:38 hmmmm i can't start storing a third dimension of data 07:40 hmmmm the obvious solution to this would be to store runs of columns that are a specific biome 07:40 hmmmm like y = 64 to y = 400 at (x,z) is tundra 07:40 hmmmm and then y = 401 and so on is blah 07:40 hmmmm but now this would be a vector for every single (x,z) 07:41 hmmmm i need to invent something clever here 07:41 hmmmm or, alternatively, i could ignore the problem 07:48 hmmmm no wonder why i put this off for such a long time 07:57 gregorycu How do we feel about exceptions? 07:59 hmmmm i hate them 07:59 gregorycu We all have our character flaws 08:00 Zeno` I hate them also 08:00 Zeno` Well, the way they're seemingly always (mis)used in C++ anyway 08:02 gregorycu #4023 08:02 ShadowBot https://github.com/minetest/minetest/issues/4023 -- New unified favourites can disappear after game exit 08:02 gregorycu it appears that we read in text, but write in binary 08:03 gregorycu I'm not sure this would cause issues 08:10 hmmmm see, this page http://minecraft.gamepedia.com/Anvil_file_format implies that minecraft *ignores* the problem of overlapping terrain and biomes 08:10 hmmmm biomes are saved in a plain x,z format 08:11 hmmmm maybe i'm overthinking the issue 08:13 paramat well out biome map is 2D, because that's biome at highest surface in mapchunk 08:13 paramat (our) 08:13 paramat biome at the heightmap surface 08:14 hmmmm that's how it incidentally turns out if you keep updating the heightmap in that order 08:14 hmmmm so what if a rock that's plains is hovering over the ocean 08:15 hmmmm a modder queries the biome at the player's current position 08:15 hmmmm it reports plains even though the player is clearly swimming in an ocean 08:15 hmmmm how do you reconscile that? 08:15 paramat the API would use getBiome and include the y co-ord 08:16 paramat there's an unused function in mgv7 that does that 08:16 hmmmm yeah but now there's no caching that 08:16 hmmmm it's unused because it's supposed to be private, or at least it was until you started using it for your mapgens 08:16 hmmmm ugh 08:17 paramat i don't use it for mapgen 08:18 hmmmm so my point is, because of this, biomes cannot be 2d in minetest 08:19 paramat correct, the world would look awful 08:19 hmmmm so how does minecraft do it and store their biomes in a 2d array? 08:20 paramat maybe there array is like our biomemap, biome at highest surface? 08:20 hmmmm but that would be pointless since they'd need to recalculate the biome at every x,y,z 08:20 hmmmm so why bother storing it 08:21 hmmmm maybe they hardcode different y ranges for each biome 08:21 hmmmm or something disgusting that we'd never do 08:21 paramat well we do that as decos are placed according to the 2D biomemap 08:22 paramat (we store a biomemap as ..) 08:23 paramat i mean, we bother storing a 2D biomemap to control deco placement 08:25 hmmmm that's not necessarily right 08:25 hmmmm i mean i guess it's good enough because you can also control height_min and height_max with decos 08:26 hmmmm but if you were to have no height restrictions and only have a biome restriction it'd start spawning in the ocean biome as well as overlapping floating rocks and/or peninsulas 08:26 hmmmm i mean cliffs 08:27 gregorycu I need that Fixer guy to come online 08:27 hmmmm so i hate saying this but maybe the biomemap as it exists is implemented wrong 08:28 hmmmm what i was thinking is reserving a special biome, let's say -1, to mean there's at least one overlap at that x, z 08:28 paramat our biomes are stacked, so decos can be restricted by biome only and still work fine 08:28 hmmmm and therefore if the biome id == -1, recalculate the biome using that heat/humidity/y position 08:28 hmmmm but you see the problem now 08:29 hmmmm we don't store the raw heat and humidity with the biome map 08:29 hmmmm so now you have to recalculate perlin noise for that point! 08:30 hmmmm i might go with this dumb approach' 08:30 paramat heat and humidity are 2D and are stored in heatmap and humidmap, not recalculated 08:31 hmmmm yeah maybe at map generation time but what about in the biome cache 08:32 paramat sure if later we 'get biome at point' noise is recalculated 08:32 hmmmm look at #minetest 08:32 paramat but that's lightweight 08:32 hmmmm i asked somebody to try it out in minecraft for real 08:32 hmmmm i was right, they totally ignore the problem 08:32 paramat ahh will read 08:33 hmmmm IDK maybe we're trying too hard to solve this 08:33 hmmmm maybe i should let it go 08:35 paramat sleep on it :) 08:36 gregorycu https://www.youtube.com/watch?v=moSFlvxnbgk 08:43 gregorycu *sigh* Fuck lua 08:43 gregorycu Honestly 08:53 DI3HARD139 Was there a recent change in how player privs are handled? 09:40 Calinou gregorycu: time to implement V8 in Minetest 09:46 paramat Zeno` are you able to work on a new PR for #2602 ? since you have reviewed and commented on it 09:46 ShadowBot https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq 09:48 Zeno` paramat, it's pretty old. I'll try and rebase shortly 09:49 paramat ok 09:49 Zeno` Is it planned for release? 09:49 gregorycu Calinou: While I do like JS, I was thinking more like Python :) 09:50 Zeno` I'll review and rebase as soon as I finish cleaning up after dinner anyway :) 09:50 paramat it's needed for release 09:51 Zeno` ok I'll prioritise 09:51 Zeno` it's a pity that it's taken over a year to finally get around to merging it 09:51 Zeno` makes it harder :) 09:54 gregorycu Does the GUI lua always get called via the main thread? 09:55 paramat feel free to start a new PR for it if that's easier 09:55 gregorycu urgh. No it doesn't 09:59 paramat concerning your question gcu, i don't know 10:05 gregorycu It's always a good idea to get latest before trying to debug an issue 10:12 gregorycu ty 10:14 Fixer gregorycu, dissappearing favs file thing happens on my win7sp1 10:14 gregorycu So I saw 10:14 Fixer gregorycu, also, read the logs, you trying to catch lighting glitch in 3770? or different one? 10:14 gregorycu Don't worry, minetest has its best man on it 10:15 gregorycu Yeah,3770 10:15 gregorycu Time for shaders to become great again 10:15 gregorycu But first rugby (30 min) 10:16 Fixer gregorycu, try playing on multiplayer server, it gives better chance for me, also, you can catch it after day change, it seems, good server to catch it: Just Test (but it is down), or I can also catch it on Extreme Survival Minetest on platform high in the air 10:20 Fixer gregorycu, it happens by itself, everything seems fine, day changes, or even not, you decide to teleport to go up on platform at Y=100 or so and suddenly you realise it is glitched on platform, and below too, daychange could trigger it i guess, also place some nodeboxes, i feel like they can trigger too 10:22 Fixer gregorycu, what i've noticed: when bug kicks in, it can be like, ground is ok, but that nodebox thing: door or protector is having wrong lighting, placing a torch does not fix it iirc 10:22 Fixer lighting of ground is ok, but nodebox in it is wrong 10:23 Fixer gregorycu, to catch the bug I guess you need at least several daychanges and a lot of random walking were many building appear 10:25 Fixer buildings* 10:33 Zeno` paramat, why is 2602 needed for release? 10:33 paramat see issue #4024 10:33 ShadowBot https://github.com/minetest/minetest/issues/4024 -- Expiring particle spawners broken 10:34 paramat amazing it hasn't been fixed before 10:34 Zeno` Oh I see. The PR has squashed commits 10:34 Zeno` cool 10:35 Zeno` bb in 15 11:12 paramat *** to be clear we are not in freeze due to work on a few remaining PRs, see my summary in logs http://irc.minetest.ru/minetest-dev/2016-04-25#i_4592872 *** 11:14 gregorycu Where did that Fixer guy go? 11:14 paramat bbl 11:29 Fixer gregorycu, i'm here 11:29 gregorycu \o/ 11:29 Fixer i was eating 11:29 gregorycu You know there is work to do 11:29 gregorycu And you were eating... 11:29 Fixer gregorycu, sure 11:29 Fixer gregorycu, go on 11:29 gregorycu unbelievable 11:30 gregorycu Would you mind assisting with #4023 later 11:30 ShadowBot https://github.com/minetest/minetest/issues/4023 -- New unified favourites can disappear after game exit 11:31 gregorycu I'm out of ideas as I can't repo, but I've got an idea 11:31 Fixer gregorycu, ok 11:31 gregorycu Involves proc mon 11:31 gregorycu Cool, give me 30 min as there are a few things I want to see first 11:31 Fixer ah, sysinternals one? 11:31 gregorycu Yeah 11:31 Fixer I have it 11:32 gregorycu Awesome, I'll basically get you to trace file operations on the favourites file 11:32 gregorycu And take note at if it's accessed by more than one thread 11:32 gregorycu But yeah, 30 minutes, want to chase a different lead down first before bothering you 11:38 Fixer i've already set the filter to minetest and to path "contains" favoriteservers.txt 11:39 Fixer already shows info 11:39 gregorycu Oh awesome, can you use the column chooser to make sure thread id is selected 11:39 Fixer ok 11:39 gregorycu What we are looking for is results that look like failures, or two different threads using the file at once 11:40 gregorycu Or rather, two different threads using the file at all 11:42 gregorycu I hope to god this is the problem 11:44 Zeno` there was a thread problem related to main menu the other day but nore and I should have fixed it 11:44 gregorycu Can you elaborate? 11:44 Fixer i'm testing with 21079cc 11:45 Fixer Zeno`, escape characters PR? 11:45 gregorycu Nore = Ekdohibs ? 11:45 Zeno` gcu, yeah 11:45 Zeno` the one where server list was being downloaded twice (and a related one because Log is not thread-safe) 11:46 gregorycu hmm... 11:46 Zeno` 2177f3090e6bb8037779a5b518f193a03094797f 11:46 gregorycu Which commit do you have Fixer? 11:46 Fixer gregorycu, newer than this, 21079cc 11:47 Zeno` I doubt it's related but I'm just saying that kilbith's commit already exposed a race condition buf 11:47 Zeno` bug* ... so maybe it's exposed something else as well (sorry if this has been discussed; I haven't been keeping up with the conversation) 11:47 gregorycu Right 11:48 gregorycu So, to get you up to speed 11:48 gregorycu To save a new version of the file, it loads the file, closes it, adds or deletes are desired, and then opens the file and writes 11:48 gregorycu If it fails to read the file, it does so silently 11:49 Zeno` oh... great 11:49 gregorycu So, I'm thinking there may be some issue where two threads are trying to read the file or something, which causes the read of the file to fail, and thus empty it when it writes 11:49 Zeno` backtrace doesn't show anything? 11:50 Zeno` I had trouble backtracing the other 2-thread issue because it kept ending back up in Lua lol 11:50 gregorycu Not for me, however, I have curl turned off 11:50 gregorycu I cannot repo 11:50 gregorycu Fixer is taking a look to see if two threads attempt to read the file 11:50 gregorycu Hopefully 11:50 Fixer i'm trying to reproduce the bug with monitor on 11:50 Zeno` I can't either (I cannot download the server list at all... something to do with ipv6 on my installation possibly) 11:50 Fixer so far i see only one thread id 11:50 gregorycu hmm... 11:51 gregorycu Have you repo'd it? 11:51 Fixer but need to encounter the bug first 11:51 Zeno` it just times out... but I can visit the URL in a browser. I'm pretty sure it's something I've setup wrong which is why I haven't made an issue 11:52 Fixer gregorycu, i need some time to reproduce it, on the order of XX minutes 11:53 gregorycu Cool, take your time, you're doing me a favour 11:53 Zeno` time to see if this rebase worked. Why did paramat assign me? That wasn't fair 11:53 gregorycu meanwhile I'm going to get curl to work 12:00 Zeno` hmm 12:00 Zeno` well it compiled 12:00 Zeno` must be correct! lol 12:05 Zeno` sofar, if you have time can you check my rebase of #2602 ? 12:05 ShadowBot https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq 12:09 Zeno` or anyone for that matter 12:13 jin_xi just looking at the patch, thank you for doing this. i tried and failed yesterday 12:14 Zeno` Thanks 12:14 Zeno` I didn't enjoy it much heh 12:14 jin_xi one thing though, you did a comment on the original pr, suggesting a change in the //manage particle spawner expiration section of env cpp 12:14 Zeno` yes, that is not applied yet (I'll add a comment) 12:14 jin_xi your code seems much clearer than mine, if it works im all for it 12:15 Zeno` I think my suggested change should be added as well 12:15 Zeno` maybe you can do it then :) 12:17 jin_xi hm, i think i fucked up my repo when i attemted rebase. 12:18 jin_xi Zeno`: what would be the course of action to add that change? 12:18 Zeno` heh, reset time 12:18 jin_xi i;m 12:18 jin_xi too thick for git 12:18 Zeno` from the command line? git am filename 12:18 Zeno` so download the attachment and do git am rebase_2602.txt 12:19 Zeno` (after you've fixed your repo of course :P) 12:21 Zeno` I can PR to your github if you like 12:21 Zeno` err 12:21 Zeno` hang on a tick. I've attached the wrong file lol 12:26 Fixer gregorycu, still trying to catch it :S 12:27 gregorycu Are you having more problems reproducing it? 12:27 gregorycu You used to be able to reproduce it at-will right? 12:27 Fixer not at will 12:27 Fixer it was random 12:30 Zeno` jin_xi, download the patch again please 12:32 Zeno` jin_xi, I also sent your repo a PR 12:32 Zeno` um crap 12:33 jin_xi ugh, i have a feeling this would be much easier to simply redo 12:34 Zeno` I think so 12:34 Zeno` I stuffed up... 250+ commits lmao 12:34 Zeno` I'm not sure how that happens... shows as one commit in my git history 12:36 Zeno` I've spent an hour trying to rebase it 12:36 Zeno` would have been quicker to type it all in 12:36 Zeno` it *is* rebased but I have nfi why all those commits are showing up 12:36 Zeno` they're not in my tree :/ 12:38 jin_xi sorry zeno :( 12:41 Zeno` or is that your repo? 12:41 Zeno` mine it is showing as one commit: https://github.com/Zeno-/minetest/tree/obneq 12:42 Zeno` https://github.com/Zeno-/minetest/commits/obneq 12:42 Zeno` weird 12:43 jin_xi look i dont know, i tried rebasing yesterday ontop of current master then fucked up something when editing which resolved the conflict but was wrong. but i did not push 12:47 Zeno` No need to be sorry. I'm just baffled :) 12:48 Zeno` oh I see 12:49 Zeno` your repo is 1085 commits behind master 12:49 Zeno` the rebase is fine 12:50 Zeno` I'll make the PR for you again. That way your master can be up-to-date heh 12:51 jin_xi sure you do not rather just want to fix it with a proper pr and delete my pr? i dont wanna waste more of your time 12:51 Zeno` I could just make a PR to minetest 12:52 Zeno` maybe not merge my PR to your repo... it looks odd 12:53 Zeno` I'll just leave it all as-is 12:53 Zeno` it's rebased so *shrug* if someone wants to merge it they can at least 12:54 jin_xi yay 13:01 Fixer i hope i will not be banned with all this in and out on some servers 13:03 gregorycu More in-and-out than Ron Jeremy 13:05 paramat thanks for the work on 2602 13:06 gregorycu #2602 13:06 ShadowBot https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq 13:06 gregorycu No problem 13:06 Zeno` rofl 13:07 Zeno` please test it, paramat 13:07 Zeno` i've triple-checked it though 13:07 Fixer i need to predent that i'm playing, that way bug can show up carelessly 13:07 MoNTE48 Hi ) 13:07 paramat possibly, very busy though 13:07 gregorycu lol 13:08 Zeno` jin_xi, has agreed to my suggested changes so I'll add them as well once it's tested by others also 13:08 Zeno` hi MoNTE48 13:08 Zeno` MoNTE48, what are you doing on IRC? :p 13:09 MoNTE48 I'm tired of being a jerk and I'm trying to do better Minetest. )) 13:09 Zeno` :) 13:09 paramat #4033 13:09 ShadowBot https://github.com/minetest/minetest/issues/4033 -- Fix issue #4005 and update depends by MoNTE48 13:11 MoNTE48 I would like to update some (all) depending on android port Minetest. Ogg, vorbis, luajit (this is really important!), Freetype, openal-soft. I need a little advice. 13:13 gregorycu Have we ever considered a built-in video encoder 13:13 gregorycu That can spit out a file 13:13 gregorycu A video, if you will 13:14 paramat i can't remember that being considered 13:14 gregorycu Or maybe even twitch 13:14 MoNTE48 There is someone who is interested in the Android port, to help me? Or ask me later? 13:16 Fixer gregorycu, there are external tools for that i guess 13:16 gregorycu That is true 13:16 Fixer gregorycu, i record with hypercam2 usually 13:16 Fixer did some tests 13:17 Fixer x264 encoder, ultrafast 13:17 Fixer got 30 fps on 1280*1024 record 13:25 paramat i think core dev sapier is our other android expert, but they're not around much recently 13:26 gregorycu I've always found phones/tablets clunky to play these types of games 13:26 gregorycu To be honest 13:26 gregorycu Maybe if you could attach a gamepad.... 13:26 Fixer gregorycu, reproducing the bug takes much longer today :/ 13:27 gregorycu Have you done it once? 13:27 Fixer it depends on lack, have not reproduced today yet 13:27 Fixer it is matter of time 13:27 gregorycu Cool 13:27 gregorycu Don't worry about it 13:27 MoNTE48 http://i63.tinypic.com/mbnama.png 13:27 gregorycu It looked like you could repo it somewhat easily yesterday 13:28 Fixer gregorycu, yeah, but build was the same 13:28 MoNTE48 gregorycu 13:28 MoNTE48 gregorycu 13:28 MoNTE48 gregorycu, gamepad :))) 13:29 sfan5 MoNTE48: could you consider using a different image host like imgur 13:29 sfan5 i do not feel like waiting 15 seconds to look at a small image 13:29 MoNTE48 sfan5, really 15 sec? lol. 13:30 sfan5 yes 13:30 gregorycu Took a while for me too 13:30 Fixer tinypic is crap 13:30 gregorycu But my internet sucks 13:30 sfan5 gregorycu: https://github.com/sfan5/minetest/tree/minemovie_x264 probably broken by now 13:30 gregorycu Hooray curl works 13:31 MoNTE48 http://i.imgur.com/VOk5vL5.jpg 13:31 Fixer gregorycu, scanario of bug hunt is join some servers, after some time, exit to server browser, and exit the game 13:31 sfan5 interesting look on the gamepad 13:32 gregorycu Fixer: Yeah, stop wasting your time, I can play with the code a bit to try and force the issue 13:32 MoNTE48 It is very convenient. It has been more than 5 options gamepads, this was the best. 13:32 Fixer hate such random bugs, they feel so random, and appear when you don't want it, yet when i want it they don't appear 13:34 MoNTE48 The coordinates of the left top of the 10x bring me more good than the build version 13:36 gregorycu lol, I'd imagine so 13:39 MoNTE48 So as of now there is no one who would be actively involved in Android port, I'd be happy to help. If necessary, of course. 13:40 paramat your help is much appreciated 13:40 gregorycu Hopefully this bug exists on android 13:41 MoNTE48 gregorycu, ?? 13:41 gregorycu That way I can palm it off to you :) 13:42 MoNTE48 I've updated the ogg / vorbis and corrected some NDK11 questions. I posted it on my account. https://github.com/MoNTE48/libvorbis-android Someone could give me some advice on where best to place this code if you want to it by the link Makefile 13:49 gregorycu I have no idea :( 13:49 gregorycu Sorry 13:51 MoNTE48 I could post it on my repo (as is now). If there is anyone who is against it. 13:52 gregorycu It's your repo 13:52 paramat maybe try to contact sapier 13:54 MoNTE48 Who uses several modules on repo unknown people. We could put them in github.com/minetest, or create another organization (e.g. minetest-android) 13:59 MoNTE48 cross-compile freetype2 https://github.com/MultiCraftProject/MultiCraft/blob/master/build/android/Makefile#L355 Now use port, based on 2011 year code. 14:00 sfan5 wat 14:01 sfan5 why does the target for freetype create a ndk toolchain? 14:01 sfan5 nevermind every libraries gets its own toolchain 14:02 sfan5 man the android makefile is a piece of shit 14:03 gregorycu MoNTE48 spent ages writing it, be kind 14:03 MoNTE48 @sfan5, TARGET_TOOLCHAIN = arm-linux-androideabi 14:03 sfan5 gregorycu: yeah but it uses the ndk to create the same identical toolchain for each and every libraries 14:04 sfan5 -s 14:04 sfan5 also the minetest makefile looks the same 14:04 MoNTE48 Makefile drawn badly, the code simply shit. Many errors and inaccuracies. I agree. But I created it and I do not have time to remake it. If you want, you know how to do PR 14:04 sfan5 wasn't that written by sapier? 14:05 MoNTE48 Shit. But NOT I created it and I do not have time to remake it. 14:05 MoNTE48 Makefile write sapier, and this is very-very-very bad code 14:06 sfan5 ideally android would just use the normal cmake code to build minetest, use external scripts (wtf why is it in a makefile???) to build dependencies and then only use android stuff to build the final app 14:07 gregorycu Fixer: I'm giving up on this. I can't reproduce. Hopefully if you stumble across it, you'll realise it's a certain set of conditions 14:08 MoNTE48 @sfan5, It would be great if you could help this :) 14:08 MoNTE48 I have not worked with yet cmake. I'm not a programmer. 14:08 sfan5 my initial android porting attempts used to use cmake 14:08 nrzkt sfan5: i tried to use cmake but android NDK is cmake aware 14:08 sfan5 http://dev.minetest.net/Android#sfan5.27s_Android_port 14:08 MoNTE48 Then we use a dick sapier port? 14:08 gregorycu Fixer: We should clean up the code a bit to make sure that it displays a clear error when it fails to update favourite and also can't accidentally wipe it out if it fails to open 14:09 sfan5 nrzkt: no i mean: cmake would build a .so file, ndk-build just copies that .so file and uses it 14:09 MoNTE48 NRZ, https://www.google.com.ua/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=android%20cmake 14:09 gregorycu dick sapier 14:09 sfan5 MoNTE48: my port wasnt finished 14:09 Fixer gregorycu, ok, but i will keep monitor working, and if it deletes the files, i will tell if the same thread 14:09 gregorycu Thanks Fixer. Don't leave that monitor running overnight, it will use all your ram 14:10 gregorycu Night all 14:10 Fixer nah, i will have it for some hours 14:10 Fixer gn 14:11 nrzkt MoNTE48: copy google like a noob isn't useful 14:12 nrzkt cmake doesn't like ARM builds using the NDK toolchain, it's not easy to have cross compiling on it 14:12 nrzkt sfan5: if that work good. sfan5 i think we could switch sqlite to the Android.mk instead of this ugly makefile to have less makefile shit 14:13 sfan5 i'll need to have a look at it 14:13 sfan5 it will need lots of adjustments 14:13 sfan5 but if it works we can drop that huge & bloated Android makefile 14:13 sfan5 cmake using the ndk toolchain worked fine for me 14:14 sfan5 aside from some c++ standard lib problems 14:15 MoNTE48 SQLite? Makefile only download and unpack sqlite archive https://github.com/MultiCraftProject/MultiCraft/blob/master/build/android/Makefile#L629 14:16 MoNTE48 OpenAl-Soft not compile for me use CMake :( I get error on creating .so 14:17 sfan5 MoNTE48: this worked fine in some other project https://github.com/mpv-android/buildscripts/blob/ad34efa38382c2ae76d0688a5be6c18966863c34/scripts/openal-soft-android.sh 14:17 paramat any reviews for #4019 ? simple PR 14:17 ShadowBot https://github.com/minetest/minetest/issues/4019 -- Make ItemStack with different metadata not stackable by hunterdelyx1 14:18 MoNTE48 sfan5, ok, openal-soft and freetype we can build use cmake 14:18 sfan5 paramat: code looks good 14:19 paramat ok 14:20 MoNTE48 By the way, we can build almost all libraries use build/android/android.mk, we just have to download and unpack source use makefile. 14:22 paramat *** freeze moved to end of ozzy shift tuesday night (mid-wednesday euro time) *** 14:28 MoNTE48 I can add something else to release in the Makefile? It seems that 2 days no one has time to redo it. 14:29 sfan5 a android makefile re-do won't happen in the near future 14:30 MoNTE48 Then look https://github.com/MoNTE48/libvorbis-android https://github.com/MoNTE48/openal-soft 14:31 MoNTE48 https://github.com/MultiCraftProject/MultiCraft/blob/master/build/android/Makefile#L684 - LuaJIT, 15:07 paramat please can anyone review #4033 ? i have no idea with andriod stuff. Wayward1 is testing it 15:07 ShadowBot https://github.com/minetest/minetest/issues/4033 -- Fix issue #4005 and update depends by MoNTE48 15:22 paramat phew 9hrs MT work 15:57 hmmmm agh too bad you left 15:57 hmmmm i needed somebody to bounce my ideas off of 15:58 hmmmm so i slept on it, and came to the realization that a biome cache is just a cache - it's okay if we don't have the data available 15:58 paramat bounce away 15:59 hmmmm if a specific (x,z) is marked as having an overtop then it's simply a case of us not having the biome value at that point and it'd need recalculation the same way as if the position weren't present in the cache whatsoever 16:00 * sofar is bouncable 16:01 hmmmm but this presents two issues 16:01 hmmmm one that i might write off as a non-issue 16:02 hmmmm synchronization: so we have a position present within a certain block of the biome cache already 16:03 hmmmm *something* either a mapgen, mod, or map access re-queries this at a different y and finds that it has a different biome than what's there already 16:03 hmmmm so it overwrites that single biome_t (a u8 right now) with BIOME_OVERTOP 16:04 hmmmm but there could be many consumers currently using that exact same chunk of memory 16:06 hmmmm second is the fact that the biome map used by the mapgen is the same piece of memory as the biome cache itself 16:06 hmmmm in the mapgens we encounter overtops all the time and just overwrite with the values for the higher elevation 16:06 hmmmm the "new way" is to mark it as an overtop instead 16:07 hmmmm so we're going to have other consumers with semi-valid biome results 16:10 paramat for a 2D biomemap the most useful value to store is the highest surface, because that's usually where the decos are placed and the dust dropped onto 16:11 hmmmm there's no decoration underneath a ridge? 16:11 paramat so it's less calculation to store the biome of the top surface than a lower one and recalculate the higher 16:11 paramat correct 16:12 hmmmm well that's some shit 16:12 hmmmm didn't I fix that? 16:12 hmmmm besides, you're only concerned about the biomemap at map generation time 16:12 paramat decos and dust are placed on highest surface in a mapchunk, which is also the heightmap and biomemap surface 16:13 hmmmm the reason i'm mostly concerned with maintaining a cache is because modders will probably want to know the biome in the surrounding of nodes around the player 16:13 paramat a cache for on-gen function? 16:13 hmmmm no 16:13 hmmmm it caches the results from the on-gen function 16:13 paramat wow a permanent cache 16:14 hmmmm then when the mod queries in serverthread code it'll get that 16:14 hmmmm permanent cache is an oxymoron 16:14 hmmmm the way it works is like 16:14 paramat when is the cache deleted 16:14 hmmmm LFU 16:15 hmmmm maybe something more clever, i'll have to see 16:16 paramat ah 16:16 hmmmm BiomeGen::calcBiomes(v2s16 pmin) { 16:17 hmmmm the reason why we mostly need a cache is for the client-side visual effects 16:17 paramat ah i was wondering 16:17 hmmmm BiomeManager is going to be present on the client too 16:18 hmmmm i still haven't decided if it'll calculate its own biomes or rely on results from the server 16:18 hmmmm probably a bad idea to do the former... 16:21 hmmmm biomemanager maintains the list of biomes and the biome cache, biomegen allocates/manages the noises, computes the biomes, and uses a biomemanager to manage the cache and provide the biome list 16:22 hmmmm there's only one biomemanager per gamedef however there can be many biomegens 16:22 hmmmm biomegens are per-thread 16:23 paramat yeah so this enables alternate biome calculation, like the MC-inspired one you were considering a while ago 16:23 nore ~tell gregorycu a possible explanation for the favorites disappearing is that it is trying to access to the file at the same time it writes the file, thus trying to access a non-existent file 16:23 ShadowBot nore: O.K. 16:31 paramat keep in mind that MT will become increasingly multi-layered. there could be for example 8 stacked realms each with multiple layers of floatlands and overhangs, could be 100+ overtops 16:32 Fixer nore, could be 16:32 Fixer will resume monitoring minetest, maybe will catch the bug again 16:32 paramat my new mapgen will be like that 16:49 hmmmm right 16:49 hmmmm if those are different 'realms' perhaps they should have separate biomemaps 16:49 * sofar still would prefer server redirects so this problem goes away entirely 16:49 hmmmm that being said, the biomecache is going to have to be v3s16... :( 16:50 hmmmm the biomemanager does not know what altitudes these layers are going to be at 16:50 hmmmm so it can't know if that node in the middle is just a random node or the part of a new floating landmass 16:50 hmmmm you're gonna have to tell biomemanager about this somehow 16:51 hmmmm of course, this wouldn't be an issue if there was no cache at all 16:54 paramat well now you mention it :) 16:55 hmmmm the cache is going to be necessary though 16:55 hmmmm just maybe not at this point in development since the use cases simply won't exist 16:56 hmmmm i just want to design this right so when the time comes to really add the cache i don't have to redesign and rewrite everything again 16:56 paramat seems like it would be less trouble to just calculate biome at x, y, z when needed 16:57 paramat less memory used for sure 16:59 paramat it's also possible a mapgen could be completely floatlands so that it can't be divided into realms, but still have 100s of overhangs 17:03 paramat if the cache is LFU there's going to be lots of recalculation anyway 17:05 jin_xi one thing to consider are 'nested' biomes, so for example i want a desert type, and only within that biome some oasis and wadi sub-biome 17:05 jin_xi or similar, optimally with a way to guarantee there is exactly one of a sub in a biome 17:09 paramat that may be possible by defining multiple identical biomes at surrounding heat/humid points 17:10 paramat you can have up to 256 biomes 17:11 paramat but it's difficult because noise 18:10 paramat nah :) i disagree we will need biome caches that are effectively storing biome per-node. consider a weather effect that needs to calculate biome at player position every, say, 10s. with an average of 2 biomes per column a cache solution needs to long-term store 80x80x2 values. whereas calculation when needed is 1 extremely lightweight calculation every 10s 18:12 paramat what i mean is, mod's need for biome information is usually going to be minor like that example. only very rarely will high-resolution biome per-node information be needed 18:13 paramat overall the total complexity and intensiveness (and dev headache) will be lower with calculate-at-point-on-demand 18:15 paramat it might be justifiable to make the mapgen-object-biomemap 3D and make it available to a mod's on-gen function, but then delete it as currently 18:18 Fixer i hope hardware requirements will be the same 18:29 paramat i think the cache idea allocates a chunk of memory, and will delete the least used data as new data is added 18:29 paramat but that means recalculating biome information when revisiting areas where the data was deleted 18:30 paramat smaller the allocated memory, the more recalculation needed 18:47 dr4Ke hi everyone. I have some troubles using voxelmanip. Outside a register_on_generated, I can't get a voxelManip object using minetest.get_voxel_manip(). I always get a 'nil' and I don't understand what's wrong. 18:49 dr4Ke the only error reported is when I try to use the object: "attempt to index local 'vm' (a nil value)" 18:54 dr4Ke Is this possible to use a voxelmanip object outside a register_on_generated function? 18:56 sofar sure, take a look at the TNT mod 18:58 paramat the mapgen object voxelmanip is only available in on-gen 18:59 paramat otherwise you need to use a 'non-mapgen-object-voxelmanip' which uses slightly different code 18:59 paramat ^ dr4Ke 19:00 paramat the 'mapgen object voxelmanip' is a copy of the mapgen's own c++ vm in the state after mapgen, it is of course discarded after on-gen 19:01 dr4Ke ok. So is this 'non-mapgen-object-voxelmanip' documented somewhere? 19:01 paramat yes in lua_api.txt 19:01 paramat but an example i will find for you 19:04 paramat https://github.com/minetest/minetest_game/blob/master/mods/default/trees.lua#L280 19:05 paramat the 'non-mg-obj-vm' actually reads from the map, so can be used at any time long after mapgen 19:05 paramat for example saplings growing into trees 19:10 dr4Ke Thanks. Actually, I have used a similar example from "games/minimal/mods/default/init.lua". And right after the minetest.get_voxel_manip(), I get a nil value instead of a voxelmanip object. 19:13 dr4Ke Is there something to load before I can use this function? I don't have much information in the debug log. 19:15 paramat interesting 19:16 paramat if saplings grow in minimal game this code is correct 19:19 paramat hm no idea 19:21 dr4Ke The saplings grows, so it seems to work. It must be something in my code. I'll try it with a blank mod. 19:22 paramat bugfix milestones #4031 and #4033 are now tested, can anyone review/approve? 19:22 ShadowBot https://github.com/minetest/minetest/issues/4031 -- Android menu: Unified serverlist by kilbith 19:22 ShadowBot https://github.com/minetest/minetest/issues/4033 -- Fix issue #4005 and update depends by MoNTE48 19:22 paramat time for anime (Macross Delta!) and sleep 19:26 hmmmm dr4Ke: your question would have been answered if you read the docs on voxelmanip 19:26 jin_xi ain't nobody got the time for that 19:28 dr4Ke hmmmm: what do you mean? I have read the lua_api.txt file (the section about voxelManip) and the wiki page. I may have overlooked something but… 19:28 nore ~tell paramat per-node biome information would be needed for biome colors, for example 19:28 ShadowBot nore: O.K. 19:28 hmmmm https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L2996 19:33 dr4Ke OK, but I try to use voxelManip outside of a on_generated callback. L2904 states that it could be created with VoxelManip() or minetest.get_voxel_manip() but I can't 19:37 jin_xi http://paste.ubuntu.com/16055494/ is a relevant section from one of my mods 19:37 jin_xi min, max being positions 19:38 jin_xi also this type of question is probably more suited to #minetest, -dev refers to engine development, not mods 19:39 jin_xi dr4Ke: ^ 19:40 dr4Ke Oh. OK, I'll go there, next time. Thank you for your time and help. 22:03 est31 sofar, you there? 22:08 sofar est31: sure 22:08 est31 see https://github.com/minetest/minetest/pull/4029#issuecomment-214544899 22:09 sofar oh, cool 22:09 sofar my patch is trivial to redo 22:09 sofar simple one liner substitutions 22:09 sofar do you want me to push to your PR branch? 22:12 est31 #4037 22:12 ShadowBot https://github.com/minetest/minetest/issues/4037 -- Pathfinder cleanup by est31 22:12 sofar ok, I'll push a PR to your branch later today 22:13 sofar that'll give you a test over your code as well 22:13 sofar see if my sheep approve ;) 22:13 est31 ok 22:13 est31 there is some problem with the sheep falling 22:13 sofar in my video? 22:13 est31 falling down slopes 22:13 est31 yes 22:13 sofar yes, I'm aware and I have a solution 22:13 sofar I may have already fixed it too 22:13 est31 has it to do with the pathfinder? 22:13 sofar no, nothing 22:14 est31 ok 22:14 sofar it's easy to explain 22:14 sofar we have a path that goes down 1 node 22:14 sofar we move forward and start falling 22:14 sofar but we fall forward past the next target point 22:14 sofar so now the sheep wants to fall backward 22:14 sofar so it turns, moves back 22:14 sofar but moves too far, turns again 22:15 sofar until it hits the ground and free fall stops 22:15 sofar I just need it to let it fall and not touch while falling 22:15 est31 I see 22:15 sofar est31: the white wool particles in my videos are pathfinder results 22:15 sofar red is the target pos 22:16 est31 thats cool 22:16 sofar yeah, helps a ton to see what the sheep is "supposed" to be doing 22:16 sofar I also have them sometimes stop before they reach a target 22:17 sofar just so I can verify that they don't get stuck at random locations (instead of always-good target positions where they're unlikely to get stuck) 22:17 sofar so it's quite a thorough test 22:17 est31 yeah 22:17 sofar they can even get out of water already 22:17 est31 yeah for the pathfinder water is solid :) 22:18 sofar not with my patch 22:18 sofar but my patch makes water air 22:18 est31 thats not correct too 22:18 sofar hmmm 22:18 est31 nothing is perfect :) 22:19 sofar both are valid cases 22:19 sofar 1) mob walking water bottom 22:19 sofar 2) mob swimming 22:19 est31 yeah 22:19 sofar it would suck to have an extra parameter 22:19 sofar but it may just be needed 22:20 sofar although, pathfinding in water could easily be done in lua since it's just flying 22:20 sofar which is way less complex 22:20 est31 not really 22:20 est31 there can be obstacles in water too 22:20 jin_xi about that pathfinder: i still wonder about that last step in pathfinding, which i have removed 22:20 sofar sure, but take a vmanip and map away... 22:21 jin_xi sapier thinks it works, i found it would give wrong straight paths for complex terrain 22:21 sofar I've seen weird paths 22:22 sofar I was thinking about making a path cleaner in lua 22:22 sofar then maybe later we can add it to c++ 22:22 est31 or just fix the pathfinder 22:22 est31 :) 22:22 jin_xi i mean the last step currently is get_path function, there used to be check between nodes if LOS then remove waypoint 22:22 est31 yeah 22:22 jin_xi smoother paths, but often only start and endpoint 22:23 sofar sure, I should be able to understand the code by now 22:23 jin_xi so i removed it on the grounds that its an improvement, he says its bloat. 22:23 sofar I don't mind a few extra waypoints 22:23 sofar my sheep actually prune waypoints aggressively 22:24 sofar that makes them cut corners which looks good 22:24 sofar LoS checks in lua may be expensive 22:24 jin_xi yes, i think its doable in lua and better than falling into holes and stuff 22:24 jin_xi LoS is wrong, discards info you searched that path for in the first place 22:25 est31 LOS just discards straight lines, no? 22:25 sofar well if v1 and v2 have equal values for x&y or x&z or y&z then v1 can be removed 22:25 est31 whats the problem about it? 22:25 sofar LoS wouldn't spot a hole 22:26 est31 it would 22:26 est31 if the check is done correctly 22:26 sofar x__x 22:26 jin_xi in my experience LoS optimization gives you back often path consisting of two nodes only, your given start and end pos 22:26 est31 if it doesnt spot the hole, its a bug 22:26 sofar _xx_ 22:26 est31 jin_xi, then the LOS optimisation code is bugge 22:26 est31 d 22:26 est31 but the idea of doing LOS is not wrong 22:27 sofar right 22:27 sofar it's just not 'los 22:27 sofar ' 22:27 sofar we should just call it 'straight-path' 22:28 sofar suppose p, (vecs), v2 22:28 sofar if (p & v2) share 2 axes values 22:28 sofar then it's a straigth line 22:28 sofar if (vecs) share those too, they can be eliminated 22:29 est31 whats (vecs) 22:29 sofar more x,y,z's 22:29 jin_xi this removed part i mean, the change from optimized to full path 22:29 jin_xi https://github.com/minetest/minetest/pull/2651/files#diff-8d9e12b326fa867dd31cb0791d53ac2cL321 22:29 est31 i mean the algorithm for doing the optimisation should be straightforward, no? 22:30 jin_xi as i said, i found many 2 node paths straight over chasms 22:30 est31 just iterate the vector with the path, and if the current waypoint has two same coords with the waypoint from the last iteration, eliminate it 22:31 sofar well 22:31 sofar that commit was good 22:31 est31 and if you eliminated a waypoint, you must not update the "waypoint from the last iteration" 22:31 sofar assuming m_env->line_of_sight actually IS "a line of sight" function 22:32 sofar est31: I actually don't mind all the extra waypoints 22:32 sofar they're perfectly reasonable 22:32 sofar it sucks that they're always L shaped, though 22:32 sofar other than that, it's cool 22:33 est31 well ServerEnvironment::line_of_sight is not the right function to use here 22:33 est31 its a buggy implementation 22:33 est31 if you use it 22:33 sofar I don't think it's even needed to use it 22:33 est31 yes 22:33 sofar pathfinder should have all the info needed 22:34 sofar that would be interesting to look at 22:34 est31 its yet another of these horrible places 22:34 est31 where we call .getNodeNoEx(pos) on positions 22:34 est31 even though we have already this cost map array 22:34 est31 with all the distances cached 22:35 est31 man this could drive me crazy 22:35 est31 is line_of_sight used _anywhere_ except for the pathfinder 22:35 est31 aha seems to be a lua api function 22:36 sofar I was gonna say 22:36 sofar it's a minetest.* thing 22:36 est31 well either way, its use inside the pathfinder is wrong 22:36 sofar I've used it in mods, and it sucks 22:36 est31 just do a check based on the coords 22:36 sofar I tried doing it in the lightning mod 22:36 est31 *done* 22:37 sofar then I realized, it's easier to "shoot" the lightning particle from the sky at insane velocities down to the landscape 22:37 sofar and that's how lightning is done :D 22:37 sofar (collision detection enabled, of course) 22:37 sofar est31: 9 seconds? neat, that was easy 22:38 est31 ?? 22:39 sofar you said "just do a check based on the coords" then "*done*" 9 seconds later 22:40 est31 ermm, the *done* was meant as "that's it, no fancy stuff to do" 22:40 est31 i have not implemented that optimisation 22:42 est31 nor do i really want to implement it 22:43 est31 its not me who wants it, both are okay for me 22:43 jin_xi well after a release there might be issues pouring in from mobf users thats why i ask. but i wonder how that could have worked in the first place 22:43 est31 just the way it was done is just horribly wrong 22:44 sofar agreed 22:45 sofar just like how I understand how tenplus1 is frustrated that find_path constantly fails... no wonder if the code thinks that you're inside a solid block if you stand on a grass plant :) 22:45 sofar anyway, gotta finish my work day first, still in the office here 22:45 est31 jin_xi, the line of sight optimisation you removed didnt deserve to be there, but that doesnt mean that a "only store start and end positions of straight paths" optimisation shouldn't be there. 22:46 jin_xi agreed, but not over air 22:46 est31 have fun sofar :) 22:46 est31 yeah jin_xi, over air the pathfinder is supposed to continue the path below 22:47 jin_xi or not when drop_height too big 22:49 est31 yes 22:49 est31 but the pathfinder should already detect that. 22:52 sofar you can't eliminate drops away 22:59 jin_xi hm i am gonna check this out. this all is complicated because that same commit fixes drop height also. so maybe i removed LoS optimization before i spotted that typo and thats why i got such bad results 23:14 celeron55 offtopic: i've been programming in rust during the past week 23:14 celeron55 i have to say it's highly usable by now 23:15 celeron55 good design, and everything actually works 23:15 celeron55 libraries work too 23:16 celeron55 personally i would like to see this used in, like, everywhere; there's actually no good reason not to 23:17 sofar some of my colleagues are using it 23:18 celeron55 originally i thought rust would be unwieldy to program given all the extra rules it makes one follow, but actually the rules make programming more relaxed when things can't be broken and weird 23:18 sofar my problems are still: what are available gui languages? binaries are huge and builds are long, etc. 23:18 celeron55 yeah, maybe not good for large programs; that's true 23:18 sofar but yeah, I'll likely give it a go (pun intended) soon 23:18 celeron55 what i've been making is a small game 23:19 celeron55 SDL2 bindings work fine, and various other things 23:19 celeron55 just define what you want, run "cargo build" and it's there like magic 23:19 sofar that's good, sdl2 will get you really far 23:20 celeron55 and things that aren't finished yet are obviously going to be production ready in a few years 23:20 celeron55 because nothing prevents them from being 23:23 celeron55 going from C/C++/Python/Javascript/whatever to rust is a bit like going from no version control to git, or going from nothing to a thing like ansible in server management 23:23 celeron55 it takes care of the stuff that a machine should be able to take care of, so that you can think productively 23:24 celeron55 maybe not as extreme but it's the closest of analogies that i can think of 23:27 jin_xi hm so i do think i dun goofed. the problem with that LoS is not so bad, but rather that pathfinder returns one single pos in many cases when it really finds no path 23:47 rubenwardy Is there something "better" than sdl? Something more like sfml? 23:47 celeron55 better? 23:48 celeron55 do you mean "ui toolkit" 23:48 celeron55 i mean, sdl is perfect for my purposes 23:50 celeron55 i guess there really isn't 23:51 celeron55 there's https://github.com/PistonDevelopers/conrod if you need something inside opengl or sdl, but that's not what you're asking 23:52 celeron55 wait 23:52 rubenwardy I like how sfml is more object-y without losing the control of SDL. Sprites, etc 23:52 rubenwardy Ofc I know sfml isn't just that 23:52 celeron55 http://gtk-rs.org/ 23:52 celeron55 i think this is the most relevant 23:52 rubenwardy awesome 23:53 * sofar arrives $HOME 23:53 celeron55 i haven't tried of course, but if my other experience is anything to go by, it might work reasonably already