Minetest logo

IRC log for #minetest-dev, 2016-04-25

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

All times shown according to UTC.

Time Nick Message
00:25 iangp joined #minetest-dev
00:26 Void7 joined #minetest-dev
00:34 gregorycu joined #minetest-dev
00:45 gregorycu Hmmmm: octant is like a quadrant, but in 3d space
01:13 gregorycu joined #minetest-dev
01:32 kaadmy heh hmmmm had a 15+ minute rant :D
02:00 jhcole left #minetest-dev
02:36 DI3HARD139 joined #minetest-dev
03:21 Wayward_One #4030
03:21 ShadowBot https://github.com/minetest/minetest/issues/4030 -- Server list displays incorrectly on Android
03:31 paramat joined #minetest-dev
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:37 electrodude512 joined #minetest-dev
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:00 gregorycu joined #minetest-dev
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:05 Hunterz joined #minetest-dev
05:06 jin_xi joined #minetest-dev
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 Zeno` joined #minetest-dev
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:20 nrzkt joined #minetest-dev
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/wikipedi​a/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 fling joined #minetest-dev
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:03 Fixer joined #minetest-dev
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:30 Darcidride joined #minetest-dev
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
10:42 iangp joined #minetest-dev
11:01 DFeniks joined #minetest-dev
11:09 Zeno` joined #minetest-dev
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/minet​est-dev/2016-04-25#i_4592872 ***
11:14 gregorycu Where did that Fixer guy go?
11:14 paramat bbl
11:14 paramat left #minetest-dev
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:40 Topic for #minetest-dev is now Minetest core development and maintenance. Feature freeze (2 weeks): 2016-04-24 [or maybe not, no new date yet....]. Last release: 0.4.13, Aug 20 2015. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.net/minetest-dev/ http://dev.minetest.net/
11:42 gregorycu I hope to god this is the problem
11:43 celeron55 joined #minetest-dev
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:00 Darcidride_ joined #minetest-dev
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 jin_xi joined #minetest-dev
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:25 damiel joined #minetest-dev
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:53 rubenwardy joined #minetest-dev
12:54 jin_xi yay
13:01 paramat joined #minetest-dev
13:01 misprint joined #minetest-dev
13:01 Fixer i hope i will not be banned with all this in and out on some servers
13:02 dzho joined #minetest-dev
13:03 gregorycu More in-and-out than Ron Jeremy
13:04 cheapie joined #minetest-dev
13:05 OldCoder joined #minetest-dev
13:05 paramat thanks for the work on 2602
13:06 MoNTE48 joined #minetest-dev
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:08 Darcidride joined #minetest-dev
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:11 jin_xi joined #minetest-dev
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:22 WarrTab joined #minetest-dev
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/mi​netest/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 rubenwardy joined #minetest-dev
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 nrzkt joined #minetest-dev
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 kaadmy joined #minetest-dev
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:55 DFeniks_ joined #minetest-dev
13:58 damiel joined #minetest-dev
13:59 MoNTE48 cross-compile freetype2 https://github.com/MultiCraftProject/MultiCr​aft/blob/master/build/android/Makefile#L355  Now use port, based on 2011 year code.
13:59 davisonio joined #minetest-dev
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 electrodude512 joined #minetest-dev
14:04 DFeniks joined #minetest-dev
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?sour​ceid=chrome-instant&ion=1&es​pv=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:10 Hunterz joined #minetest-dev
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/MultiCr​aft/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/buildscri​pts/blob/ad34efa38382c2ae76d0688a5be6c18​966863c34/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:27 Topic for #minetest-dev is now Minetest core development and maintenance. Feature freeze (2 weeks): 2016-04-27. Last release: 0.4.13, Aug 20 2015. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.net/minetest-dev/ http://dev.minetest.net/
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/MultiCr​aft/blob/master/build/android/Makefile#L684 - LuaJIT,
14:38 rubenwardy joined #minetest-dev
14:56 electrodude512 joined #minetest-dev
15:06 hmmmm joined #minetest-dev
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:43 rubywarden joined #minetest-dev
15:46 Void7 joined #minetest-dev
15:48 Krock joined #minetest-dev
15:48 Zeitgeist_ joined #minetest-dev
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:11 MoNTE48 joined #minetest-dev
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) {   <calc noise here>     <get biomes from noise>      <lookup pmin in cache>   <if miss, add current biomemap pointer and allocate a new one for the next call>
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:27 Hunterz joined #minetest-dev
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:42 Void7 joined #minetest-dev
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 Darcidride joined #minetest-dev
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 davisonio joined #minetest-dev
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:40 dr4Ke joined #minetest-dev
18:41 dr4Ke joined #minetest-dev
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:11 Void7 joined #minetest-dev
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:22 paramat left #minetest-dev
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/minetes​t/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:34 ElectronLibre joined #minetest-dev
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.
19:52 dr4Ke left #minetest-dev
20:18 MoNTE48 joined #minetest-dev
20:25 johnnyjoy joined #minetest-dev
20:26 rubenwardy joined #minetest-dev
20:49 davisonio joined #minetest-dev
20:49 Warr1024 joined #minetest-dev
20:50 Warr1024 joined #minetest-dev
20:57 Warr1024 joined #minetest-dev
21:10 Robby_ joined #minetest-dev
21:59 STHGOM joined #minetest-dev
22:00 Lunatrius joined #minetest-dev
22:03 est31 joined #minetest-dev
22:03 est31 sofar, you there?
22:05 misprint joined #minetest-dev
22:08 sofar est31: sure
22:08 est31 see https://github.com/minetest/minetes​t/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:02 Wayward_One joined #minetest-dev
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:17 yang2003 joined #minetest-dev
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
23:59 electrodude512 joined #minetest-dev

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