Minetest logo

IRC log for #minetest-dev, 2023-03-05

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

All times shown according to UTC.

Time Nick Message
01:30 Baytuch joined #minetest-dev
05:00 MTDiscord joined #minetest-dev
05:55 calcul0n joined #minetest-dev
09:22 Warr1024 joined #minetest-dev
10:20 Baytuch joined #minetest-dev
10:48 YuGiOhJCJ joined #minetest-dev
12:25 YuGiOhJCJ joined #minetest-dev
12:29 YuGiOhJCJ joined #minetest-dev
12:29 appguru joined #minetest-dev
12:31 kilbith joined #minetest-dev
12:49 Zughy[m] kilbith: why was this closed? #2816
12:49 ShadowBot https://github.com/minetest/minetest/issues/2816 -- Biomes transitions
12:52 kilbith idk, rage quit probably
12:55 YuGiOhJCJ joined #minetest-dev
13:01 Zughy[m] Meeting reminder, today at 18:00 UTC
13:30 sfan5 can we quickly get an approval for #12391? would simplify some cleanup I'm doing
13:30 ShadowBot https://github.com/minetest/minetest/issues/12391 -- Make OpenGLES 2 the default driver on Android by rollerozxa
13:35 sfan5 merging #13271 soon
13:35 ShadowBot https://github.com/minetest/minetest/issues/13271 -- Tile: Fix segfault caused by invalid PNG data by SmallJoker
13:35 rubenwardy Gles2 code looks good to me, have you tested?
13:36 Krock giving it a quick test on android 5
13:37 Krock correction: android 6
13:38 Krock blue screen, nothing happens
13:39 Krock perhaps it really needs the manifest line? checking with that specific PR...
13:40 sfan5 ogles2 is already the default since the "drop irrcompileconfig" PR and I'm pretty sure I tested that during #13245
13:40 ShadowBot https://github.com/minetest/minetest/issues/13245 -- [no squash] Fix task ordering and more in Gradle Android build by sfan5
13:40 sfan5 make sure the assets got extracted correctly and you aren't missing the shader files from irrlicht
13:41 rubenwardy Yeah you might need to delete storage as Minetest only extracts when version code changes
13:45 Krock after installing the apk from the PR the issue magically solved itself :)
13:47 Krock all exposed shader checkboxes work too
13:50 sfan5 >(hacky-signed apk)
13:50 sfan5 heh
13:50 sfan5 you mean you downloaded the one from gh actions?
13:53 kilbith_ joined #minetest-dev
13:56 Krock sfan5: exactly. then signed with the "apk-signer" app
13:56 sfan5 yeah we should probably document that one day :D
13:57 Krock definitely. it eases the development process a lot. I had no idea this was possible at all
14:01 MTDiscord <luatic> app? I've been signing from the command line
14:02 Krock I suppose that's a saner way if you have at least a semi-usable keyboard
14:03 sfan5 merging #12391, #13263
14:03 ShadowBot https://github.com/minetest/minetest/issues/12391 -- Minor adjustments now that OpenGLES 2 is the default driver on Android by rollerozxa
14:03 ShadowBot https://github.com/minetest/minetest/issues/13263 -- Kubernetes: Deployments are stable since v1.16 by poggenpower
16:40 fluxionary joined #minetest-dev
16:40 Baytuch joined #minetest-dev
16:49 Flitzpiepe joined #minetest-dev
16:50 Flitzpiepe Hello everyone
17:05 Desour joined #minetest-dev
17:13 Baytuch joined #minetest-dev
17:22 sfan5 reminder: less than 40 minutes to meeting
17:24 Krock I'll ping the devs 15 minutes ahead of time. timer prepared.
17:44 rubenwardy !dev Meetings
17:44 ShadowBot Meetings - Minetest Developer Wiki -- http://dev.minetest.net/Meetings
17:45 Zughy[m] One minute earlier, buuu
17:47 Krock sfan5 @x2048 rubenwardy nrz_ and whoever else has time for it. Meeting in 14 minutes.
17:59 rubenwardy 5.8.0, let's go!
17:59 rubenwardy wait *5.7
17:59 Krock sure
18:00 Krock okay let's get started
18:00 rubenwardy wouldn't be the first time a version was skipped
18:00 Krock > Feature freeze?
18:00 Krock https://github.com/minetest/minetest/milestone/20
18:01 Krock the dual wield will be discussed later
18:01 sfan5 IMO yes
18:01 sfan5 question is just when, maybe not immediately
18:02 Krock we can set it in 2 weeks and if dual-wield isn't ready by then so be it
18:02 sfan5 well actually I'm mainly thinking about the ongoing work on Irrlicht, which might get in the way
18:02 Krock would you like to have that merged before 5.7.0?
18:03 sfan5 no, not like we'd turn it on by default anyway
18:03 sfan5 or be able to support it in any way
18:03 Krock are you talking about SDL2 integration?
18:03 sfan5 the opengl3 stuff and support changes that go along with it
18:04 sfan5 anyway I can tag a new irrlicht revision soon so we have a clean state
18:04 sfan5 so that's solved
18:04 Krock so it's mainly about irr#167 and irr#163
18:04 ShadowBot https://github.com/minetest/irrlicht/issues/167 -- Add unified OpenGL driver by numberZero
18:04 ShadowBot https://github.com/minetest/irrlicht/issues/163 -- Drop IrrCompileConfig by numberZero
18:06 Krock suggestion: let's set a feature freeze date and try to get the PRs done before that. it'll give some motivation to meet the deadline
18:06 Desour if dual wield (or other APIs where we are not sure if they're designed well enough) are merged, can we please declare such new APIs as instable until the next minor release, so that we may break backwards in that next release compat for that specific feature?
18:07 sfan5 Krock: the irrlicht ones?
18:07 Krock sfan5: yes, if they're not enabled by default anyway then it does not matter for a release, right? I'm also thinking the same for Dual Wield
18:09 Krock what do you think about that?
18:10 sfan5 there's no advantages having them in a release either (almost nobody builds with SDL2) so I'd rather we not rush them in
18:10 Desour s/backwards in that next release compat for/backwards compat in that next release for
18:11 Krock Desour: I think it should be made as compatible as possible
18:12 Krock in the current state there's no way in my option that it'll get merged
18:13 Krock judging by the activity, it looks almost as if it needed adoption
18:15 Krock Dual Wield could also be "fixed" by omitting the interaction part of the offhand. it would serve as a shield-indicator only until a solution is found
18:15 sfan5 @x2048, rubenwardy: opinions on feature-freeze?
18:16 rubenwardy I think it should happen in the next couple of weeks, it's overdue already. If dual wielding gets in that's great, but I don't want it to be rushed in any case
18:19 sfan5 ok then let's freeze immediately
18:21 Zughy[m] should I make an issue to pin, called "Feature freeze"?
18:21 Krock seems reasonable. 5.7.0 summary so far: faster mapblock mesh, improved lua error handling, a few Lua API additions, attached facedir/4dir nodes, postgresql mod storage, rotating entity selection boxes, shadows improvements
18:21 MTDiscord <x2048> +1 for a freeze
18:21 sfan5 Zughy[m]: its usually just announced in irc 🤷
18:21 Krock IRC /topic
18:21 MTDiscord <x2048> postprocessing: bloom, dynamic exposure etc.
18:22 Krock right! I totally forgot the fancy shader additions
18:22 Zughy[m] sfan5: I know but people might follow MT just on GitHub and miss it
18:22 Zughy[m] If no one opposes, I'll make it
18:22 sfan5 sure
18:22 sfan5 next meeting point?
18:22 kilbith but 2% of the userbase will actually discover bloom because the masses don't dig into advanced settings
18:23 Krock please open an issue or PR to improve that in the future
18:23 Krock > Dedicate the upcoming version to Jude/TurkeyMcMac
18:23 sfan5 is bloom a client-side setting? I thought we wanted to make everything an API
18:23 sfan5 definitely to that
18:23 Desour kilbith: the same is true for many other settings
18:23 Krock it's server-controllable
18:23 kilbith I don't think so
18:24 rubenwardy it's server-controllable but the client still needs to enable it
18:24 Krock https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L7508-L7524
18:24 MTDiscord <x2048> bloom is client side but requires exposure to be supported by the server
18:24 kilbith that's overly complicated for the average people I can tell you
18:25 MTDiscord <x2048> we can make a blog post about it
18:25 Krock so I'll propose a PR to update the main menu accordingly with a note.
18:25 Desour kilbith: ok, maybe not "many", but e.g. always_fly_fast, inventory_items_animations
18:26 rubenwardy can remove filtering and antialiasing (as it's broken anyway)
18:26 rubenwardy to make space
18:26 kilbith for now you can collapse all the "Waving leaves/etc." to a single "Waving environment" checkbox, so it leaves space for a bloom checkbox
18:26 rubenwardy well, antialiasing will be replaced by #13253
18:26 ShadowBot https://github.com/minetest/minetest/issues/13253 -- Add antialiasing filters (FXAA, SSAA) by x2048
18:27 sfan5 antialiasing works fine for me
18:27 rubenwardy I believe it doesn't work in 5.7-dev with shaders enabled?
18:27 rubenwardy or is it just with bloom/etc enabled
18:27 sfan5 not sure
18:28 sfan5 anyway what are the votes for > Dedicate the upcoming version to Jude/TurkeyMcMac
18:28 kilbith I support that
18:28 rubenwardy obviously use, should make an issue "Update credits for 5.7" and do it htere
18:28 rubenwardy *yes
18:28 MTDiscord <x2048> +1 from me
18:28 Desour you mean the "fsaa" msaa, right? the mipmapping and aniso filter antialiasing works and should stay.
18:29 sfan5 rubenwardy: yes, I plan on updating the credits anyway
18:29 rubenwardy it is part of the release precedure, maybe doesn't need an issue
18:29 MTDiscord <x2048> reg. AA - I will change the menu to allow the right settings whether using direct or pp pipeline.
18:29 Krock sfan5: if you could do that while updating the credits that would be great. thanks.
18:29 sfan5 Desour: I have 8x fsaa and mipmapping here
18:32 Krock > We're choking on PRs again: shouldn't MT advertise itself more so to potentially find new core devs and/or recruit existing contributors?
18:32 Krock Zughy[m]: how should that be done?
18:32 Zughy[m] for instance, how about NumberZero? They seem pretty active and with enough knowledge
18:33 kilbith he declined in the past
18:33 Krock AFAIK the last time we asked they declined
18:33 sfan5 do they want to be a coredev?
18:33 rubenwardy yeah, a few times
18:33 rubenwardy can't make someone be a core dev
18:33 Zughy[m] We might ask again though
18:34 kilbith not everybody have/want a sense of responsability over time
18:34 Krock it's better if people ask on their own
18:34 Zughy[m] advertising is hard, also because the only one that takes care of it is rubenwardy. Which is already busy with CDB and the engine
18:34 Zughy[m] the point is, PRs keep increasing, and I fear we might reach the 150 cap again
18:34 rubenwardy when it comes to recruiting core devs: it's a pipeline.   User -> contributor -> core dev.    If your PR takes months to years to be merged, you probably won't make more. It's a bit of a vicious cycle
18:35 Zughy[m] Also, the blog is unstable
18:35 Zughy[m] ^ and I also guess that's kind of depressing as a core dev to see that huge pile becoming even more huge
18:37 Zughy[m] unfortunately issues can't be tackled anymore, I spent months hunting them down, but I'm afraid there are no invalid/duplicate/solved issues around
18:38 MTDiscord <x2048> we have a high bar for entry, might need work targeted with people who want to become core like caffeinatedblocks
18:39 kilbith I'd oppose caffeinatedblocks
18:39 kilbith they're annoying with pointless stuff like MariaDB
18:39 kilbith can't give responsibility to someone like that
18:39 Zughy[m] (in the meanwhile: feature freeze issue done, I hope is alright #13285)
18:39 ShadowBot https://github.com/minetest/minetest/issues/13285 -- 🧊 Feature freeze time
18:39 kilbith or the auth stuff
18:41 sfan5 next meeting point?
18:41 rubenwardy devs need to be experienced enough in the language, Minetest, and the codebase to do code review
18:41 rubenwardy sure
18:41 Krock > "SSCSM execution" (TurkeyMcMac)
18:41 Krock #13046
18:41 ShadowBot https://github.com/minetest/minetest/issues/13046 -- SSCSM execution by TurkeyMcMac
18:41 Krock it's a huge chunk that needs adoption
18:43 Krock the IPC part seems to be up and running and it looks quite sophisticated
18:43 MTDiscord <x2048> I can take a look at it in a couple of months
18:43 rubenwardy would be a shame for this to go to waste
18:43 Krock although the TODO list in the description is way too long
18:44 Krock if someone wants to adopt it, the IPC part and a PoC should be merged first
18:44 sfan5 if split into chunks it can probably be adopted, though I don't know which chunks since I haven't recently looked at it
18:44 sfan5 I also don't know who is going to do the work, I certainly don't have the time
18:45 rubenwardy it sounds a lot like SSCSM is going to be a strong contender for the roadmap, so would be good to work out how it can be done
18:45 rubenwardy hopefully more successfully than the GUI replacement
18:45 kilbith * the fabled GUI replacement please
18:47 Krock > Reorder client initialization
18:47 Krock #12189
18:47 ShadowBot https://github.com/minetest/minetest/issues/12189 -- Reorder client initialization by SmallJoker
18:48 Krock eh I guess I could rebase it when it celebrates its anniversary. there doesn't seem to be much interest in it
18:48 sfan5 well I suppose it's not worth blocking this fix
18:48 sfan5 (retracting my informal -1)
18:49 Krock it does not seem important so it's fine to postpone a bit
18:50 Krock > MariaDB
18:50 Krock #13266
18:50 ShadowBot https://github.com/minetest/minetest/issues/13266 -- MariaDB Database Backend by caffeinatedblocks
18:50 Krock I added this point to clarify whether or not it's on the roadmap and in the meantime this already clarified
18:52 Krock > Dual Wielding -  How should we go ahead with this?
18:52 Krock #11016
18:52 ShadowBot https://github.com/minetest/minetest/issues/11016 -- Dual Wielding by LizzyFleckenstein03
18:53 Krock Desour and I already talked about it earlier. sfan5's solution is better than nothing at least
18:53 Krock any inputs, suggestions, ideas?
18:53 sfan5 which part? the first or second?
18:53 Krock the part where you suggested an additional callback parameter and API functions
18:54 sfan5 yeah
18:54 Krock actually the alternative seems to be even more promising
18:54 sfan5 I feel like the second could still be useful in some way in addition (modders that don't want items to work offhand?)
18:54 MTDiscord <x2048> Having items declare that they support offhand sound like a cleaner solution
18:55 Krock is_offhand_aware = true   item def field, for example
18:55 sfan5 I think we all agree that `set_offhand_wielded_item()` should exist
18:56 sfan5 independent of the rest
18:56 Krock isn't the offhand one stack only, anyway?
18:56 sfan5 what do you mean
18:56 Krock inv:set_list("offhand", { "itemstring" })  would be the alternative to that
18:57 Krock assuming that the inventory list is only 1 stack big
18:57 sfan5 ah, yeah sure
18:57 sfan5 the hotbar has multiple slots
18:57 sfan5 I guess it's not that important then
18:57 Krock same situation with the "hand" slot where we don't have a function for it either (AFAIK)
18:58 MTDiscord <x2048> Is hand a slot or inventory?
18:58 sfan5 one thing to note: if you have an item that declares offhand awareness you'd still want to know inside on_place whether it's being used offhand or not
18:58 Krock inventory list of size 1 or 0
18:58 sfan5 so we'd want the parameter either way
18:59 MTDiscord <x2048> yes
18:59 Krock would it make sense to include that information in pointed_thing?
18:59 sfan5 hmm, I don't think so
19:00 Krock mentioning that because both are calculated in the same place of the client and it's propagated to all callbacks anyway
19:00 Krock ("both" meaning the active stack and pointed_thing)
19:00 sfan5 I mean it would fit there but offhand usage is not a property of the thing you are pointing at
19:00 sfan5 not strictly
19:01 Krock ah right
19:02 Desour how about listname and listindex that state where the item comes from. then mods could make a player place something that they're not wielding
19:02 Desour might also be interesting for fake players
19:03 Krock is it needed, though? usually you update the itemstack with the return value
19:03 sfan5 good idea, maybe save it up for 6.0 :D
19:03 Desour 6.0, or include it in that "offhand_aware" field ;)
19:04 Krock the issue only starts when you use set_wielded_item(), thus offhand_aware=true might already suffice
19:04 Krock because the return value properly overwrites the wielded/used stack
19:05 Krock or am I missing something?
19:05 sfan5 yes
19:05 Desour the field could also be a "assume_use_from_wield = true" in that case
19:06 sfan5 I mean "no", you're not missing anything
19:06 Desour (if true, on_use and co. may only happen if the item is currently wielded)
19:07 Krock Desour: obviously the callbacks should only be run when the flag is set to true
19:11 Krock goddamn it. we cannot use return values in case the player dies from eating something
19:11 Desour the assume_use_from_wield would inverted, and default true, that's why it's the other way around
19:11 Krock https://github.com/minetest/minetest/blob/master/builtin/game/item.lua#L412
19:12 Krock perhaps the HP setter has to be delayed by a server step to make it work properly again
19:13 Desour core.after(0, <kill them>)
19:13 sfan5 I don't think you want to violate the invariant that p:set_hp(1);assert(p:get_hp()==1)
19:13 sfan5 or allow the player to do things for 1 step while they're supposed to be dead
19:14 MTDiscord <x2048> what's wrong with killing immediately?
19:14 sfan5 anyway I will write the discussion results down in a comment in the PR
19:14 Krock or redirect `set_wielded_item` for the time while callbacks are called? is that an option?
19:14 Krock sfan5: okay then I'll not submit mine :3
19:15 Desour x2048: https://github.com/minetest/minetest/blob/master/builtin/game/item.lua#L391
19:15 Desour >-- Changing hp might kill the player causing mods to do who-knows-what to the
19:15 Desour -- inventory, so do this before set_hp().
19:15 sfan5 bad idea, you never know which code is acting in intent of the item usage or another mod is just randomly wanting to check the wield item
19:16 MTDiscord <x2048> ah yes, dropping items to the ground
19:16 sfan5 https://github.com/minetest/minetest/issues/6546#issuecomment-488622306 this should be easiest to understand
19:17 Krock sfan5: this part is single-threaded, though. the itemstack (and override) is only available inside the callback sequence. outside of that the player might already have moved the stack
19:17 Desour if we had an item source params, like suggested earlier, do_item_eat could overwrite that slot instead of the wielded item
19:18 sfan5 Krock: sure but you never know which side effects an item usage has and which other code it might inadvertedly call
19:18 Krock sfan5: well then in this case the item def flag would prevent from running the callback, I guess?
19:19 Krock that way the responsibility is again at the modder's side
19:20 appguru joined #minetest-dev
19:21 Krock might you please be so nice to add a link to the logs?
19:22 Krock thanks
19:22 Krock > Add world-independent storage directory for mods
19:23 Krock #12315
19:23 ShadowBot https://github.com/minetest/minetest/issues/12315 -- Add world-independent storage directory for mods by rubenwardy
19:23 Krock question is how server owners run their stuff
19:24 rubenwardy So, mod directories may be readonly and any changes will be reset when the package is updated. This PR adds a new storage directory for mods to write to rather than their own mod directory.
19:24 rubenwardy The problem with this is that if there are multiple instances of Minetest running, you can end up with the same mod writing multiple times to the same file - which can cause issues
19:24 Krock on another side it's handy to have a shared media cache if they want to (issues only arise when writing)
19:24 rubenwardy Use cases include the ability to save schematics / stats / achievements between worlds
19:24 sfan5 Krock: this is more for the sake of singleplayer/games
19:25 rubenwardy yeah, this is mostly for singleplayer
19:25 rubenwardy There's 3 options   1) get server owners to change the mod data path   2) add some way to handle multiple access, say with locking   3) scrape + rethink
19:26 rubenwardy Mods can already write to their own directories and cause multiple process issues. I think 1) is the best thing to do here
19:26 sfan5 what does 1) mean here
19:26 Krock you could add a lock file and return an error if mods are trying to write while there's a lock file
19:27 Krock (error return value upon io.open)
19:27 sfan5 writing is not the problem with minetest.safe_file_write
19:27 Desour a simple locking API should be easy enough to use. and deadlocks can be prevented with forced timeouts (of i.e. 10s) that cause a mod crash
19:27 rubenwardy 1) would essentially allow server owners to make the mod data per-server
19:27 Krock that misses the point. It's supposed to be *independetly of worlds", as you wrote
19:27 sfan5 but you cannot properly read + update + write, you'd need a lock for the entire duration
19:27 sfan5 rubenwardy: I don't see how that's needed
19:28 sfan5 and if they want they can just use run_in_place
19:28 sfan5 or docker containers
19:28 sfan5 or something else
19:28 sfan5 many server owners probably also run a setup incompatible with this feature
19:28 Desour local lock = minetest.lock_world_independet_dir(modname) --[[ do file operations ]] lock:free()
19:31 Krock or a per-mod persistent directory could be added. one that's not overwritten
19:31 rubenwardy that's functionally equivalent, doesn't solve the problem here
19:32 Krock not if you place the mods into worldmods/ 8)
19:33 Krock but in that case it's not exchangeable. if you want shared data, then you need locking. simple as that.
19:34 rubenwardy yeah. Well, the idea behind 1) is that it's the responsibility of the server owner and can be disabled
19:34 rubenwardy How hard is filesystem locking without causing and server freezes?
19:36 Krock what if all write operations are sent to temporary file, and these swapped at once?
19:37 rubenwardy sounds like safe_file_write
19:37 sfan5 doesn't fix anything
19:37 sfan5 rubenwardy: not very, sqlite3 does it
19:37 sfan5 but if you give mods free hand in allocating and freeing locks that'll be bad
19:37 Krock I meant to integrate it into io.open()
19:39 sfan5 Krock: instance A: reads value=1, increments, instance B: reads value=1, increments, A: safely writes value=2, B: safely writes value=2
19:39 sfan5 doesn't work
19:40 Desour >but if you give mods free hand in allocating and freeing locks that'll be bad     <-- why?
19:40 Krock that's nasty
19:40 rubenwardy the locking API could be a callback, acting like try-with
19:40 rubenwardy also solves issues where the lock isn't immediately available
19:40 sfan5 I guarantee you at least one mod author will unconditionally take the log at startup and never free it
19:41 sfan5 and it will work, usually
19:41 sfan5 (how many people start Minetest multiple times?)
19:41 rubenwardy pretty much only server owners
19:41 Krock (too many)
19:41 rubenwardy *start Minetest servers
19:42 rubenwardy this feature is designed for singleplayer and local worlds, rather than for server owners
19:42 MTDiscord <x2048> Can it be disabled by default minetestserver / --server?
19:43 sfan5 what exactly do you want to "disable!"
19:44 rubenwardy make it act per-world rather than independently
19:44 Desour if the lock is never freed, that's fine. users can then not run multiple instances of the mod at once, which can even be an intended restriction
19:44 rubenwardy should have bought more mod licenses
19:45 Desour rubenwardy: I can sell you some LICENSE.txt files if you want c:
19:45 MTDiscord <x2048> I'd go with the feature without concurrency guarantees actually. Like network filesystems.
19:47 Desour btw. there's also another issue than concurrency stuff. what if there are two mods with the same name that are completely different, or at least forks
19:47 sfan5 NFS has locks I think(?)
19:49 sfan5 rubenwardy: anyway here's what I was thinking https://0x0.st/HzlG.txt
19:49 pgimeno is in-database mod storage not an option?
19:50 sfan5 would minimize abuse potential by mods and be easy to use and hard to get wrong
19:50 rubenwardy that makes sense to me
19:52 sfan5 pgimeno: can probably do safe writes but I don't think the "locked incrementing" usecase can be done with that either
19:53 rubenwardy providing it can be implemented easily without blocking the server thread
19:53 pgimeno if databases can't do locked incrementing then the world has a problem
19:53 sfan5 databases can but our mod storage can't
19:54 pgimeno sounds like an API problem then?
19:54 nrz_ Sorry, what is the issue with locks you Want to solve?
19:54 sfan5 rubenwardy: well maybe, question is would you actually want to delay the callback a mod has given to you until a later step? IMO it's better if the server tries immediately and just times out if it doesn't work
19:55 rubenwardy how long would the timeout be? 0?
19:55 sfan5 one or two seconds, mods should avoid using it that often
19:56 Krock you could specify the timeout in the API call
19:56 sfan5 pgimeno: well sure? this is just the first time it would ever be relevant since mods are fully single-threaded
19:56 Krock (if what we're talking about is the timeout until calling the callback after X server steps)
19:57 sfan5 nrz_: https://github.com/minetest/minetest/pull/12315#issuecomment-1435415253
19:57 Krock hard-locking the server - regardless of the time - is a bad idea
19:58 Desour (it could also time-out as soon as any other callback needs to be executed)
19:59 sfan5 rubenwardy: what usecases do modders have for this anyway
19:59 rubenwardy Use cases include the ability to save schematics / stats / achievements between worlds
19:59 sfan5 the usecase that would require the "locked incrementing" I keep talking about would be statistics
20:00 pgimeno I wonder if we're talking about a non-problem though. I'd rather we forbid separate instances to run at all when the data dir is shared, via a file lock.
20:00 rubenwardy what about server owners hosting multiple servers?
20:00 Krock envrionment variable
20:00 rubenwardy option 1 is to allow server owners to make the mod data directory via a setting
20:00 sfan5 shared folder that is exclusive to use ;)
20:01 Krock unshared shared folder
20:01 rubenwardy option 1 at the start of this convo was to allow server owners to make the mod data directory per-world/server via a setting
20:01 rubenwardy **
20:01 rubenwardy (which they could also do with a container or run_in_place)
20:02 pgimeno so, first step would be to gather information on how people who host multiple servers organize the data dirs
20:02 MTDiscord <x2048> I'd vote for that and skip the locking problem entirely
20:02 MTDiscord <x2048> And make that the default for servers
20:03 Desour it's shared, but not used by two entities at once that are both active, like a toilet
20:03 sfan5 that's just handwaving the problem away
20:03 sfan5 this feature is meant for singleplayer or games anyway
20:04 sfan5 assuming we don't want to do the "don't allow multiple instances" thing
20:06 sfan5 well I don't know, we could elect not to care and not do anything
20:06 pgimeno forbidding multiple instances if they share a data dir, would be the way to ensure that option 1 is viable and respecting
20:06 pgimeno respected*
20:07 Desour but it would be bad for subgames that want to add achievements
20:08 sfan5 since all instances are supposed to share this folder this would mean prohibiting multiple instances -> not an option
20:08 MTDiscord <x2048> How would achievements work with shared dir?
20:08 rubenwardy arguably, the use case there would only be in singleplayer - with servers, you wouldn't know if it's the same player and each server could have different ecomies
20:08 rubenwardy *economies
20:08 rubenwardy RE: achievements
20:08 Desour but people start multiple singleplayer instances
20:09 sfan5 you keep a file where you save whether the player has gotten the achivement, since it's global you know whether he has ever gotten it not just in this world, if he gets an achievement you update the file.
20:09 rubenwardy obviously we just need client meta   🍪
20:09 sfan5 in this case the player = singleplayer, no use in MP
20:10 MTDiscord <x2048> each world is uniquely randomly generated, why achievements in one would mean anything in another?
20:10 Desour client meta 🍪 then also needs synchronization between multiple client instances
20:10 MTDiscord <x2048> It's sounds like a very niche case.
20:11 MTDiscord <x2048> If we wamt a global ladder, let's build a global ladder.
20:11 Pexin joined #minetest-dev
20:11 Thomas-S joined #minetest-dev
20:11 basxto joined #minetest-dev
20:11 nore joined #minetest-dev
20:11 MTDiscord <x2048> *want
20:12 MTDiscord <luatic> Skin mods could potentially benefit from a shared global folder.
20:12 sfan5 this is literally how achievements work in just about every game (even random open world games)
20:12 rubenwardy yeah, lots of games have cross-save achievements
20:12 MTDiscord <luatic> Epidermis downloads SkinDB skins to the world folder. This leads to duplicate skins across worlds.
20:12 rubenwardy for use-cases, you probably want to look at the reasons why mods are currently writing to the mod dir
20:13 MTDiscord <luatic> I could also write to the mod dir, but that would require an insecure environment.
20:13 MTDiscord <luatic> (that said, I do like writing to the world dir, because it means I don't have to worry about such locking / concurrency issues)
20:29 MTDiscord <x2048> ok, achievements per game sound reasonable, but it's per game, not per mod like the epidermis case.
20:29 Topic for #minetest-dev is now Minetest core development and maintenance. FEATURE FREEZE IN EFFECT SINCE 2023-03-05.Chit-chat goes to #minetest. https://dev.minetest.net/ https://irc.minetest.net/ https://github.com/minetest
20:29 Topic for #minetest-dev is now Minetest core development and maintenance. FEATURE FREEZE IN EFFECT SINCE 2023-03-05. Chit-chat goes to #minetest. https://dev.minetest.net/ https://irc.minetest.net/ https://github.com/minetest
20:30 sfan5 a game is just a mod in this case ;-)
20:30 sfan5 however we might have a problem if different games have a mod called e.g. 'default'
20:30 MTDiscord <x2048> does not work
20:30 MTDiscord <x2048> exactly, evdryone will reuse the mod
20:30 rubenwardy yeah - Desour has suggested using paths.replace("/", ".")
20:30 rubenwardy virtual path would be a good candidate, as it's normalised to be portable
20:30 sfan5 well what if you move a mod
20:31 MTDiscord <x2048> I'd suggest having per-game and per-mod state
20:31 rubenwardy then it will lose the data
20:31 rubenwardy per-game can just be a mod named the same as the game
20:31 MTDiscord <x2048> Abstracted from filesystem
20:31 sfan5 maybe we game mods could additionally be distinguished by game
20:31 sfan5 -we
20:31 sfan5 but we could also not care about this since most non-MTG games already use different names
20:32 rubenwardy yeah - and ContentDB also enforces mod name uniqueness (minus forks) which will avoid a lot of cases
20:32 MTDiscord <x2048> I don't think it will
20:33 MTDiscord <x2048> Someone publishes achievementd mod for MTG, and them it lands im all modsoups
20:33 Desour my example (see github) involves a fork
20:33 Desour (i.e. a fork "updates" a data format)
20:34 sfan5 hmm
20:34 MTDiscord <x2048> Games are a thing. Forcing gamedevelopers to rename the mods to implement it is unfair.
20:35 Desour > well what if you move a mod  <-- users should be told about the data stored in there. they also need this information for doing backups and for removing data that came from now uninstalled mods
20:35 Desour I hate it when programs do not document their stored data
20:35 rubenwardy ContentDB already forces game developers to rename mods, to namespace them. This issue documents that problem #12034
20:35 rubenwardy Obviously, this doesn't apply to games shipped outside of CDB
20:35 ShadowBot https://github.com/minetest/minetest/issues/12034 -- Improve mod dependency system
20:36 Desour s/in there/in the world independent dir/
20:36 rubenwardy perhaps rather than path it could use `author-name`
20:36 Desour ^ that would be inconsistent to what world.mt does
20:37 Desour (and I wonder what happens if some author wants their name to be changed or removed, for privacy reasons)
20:37 rubenwardy sfan5: probably a good idea to do a release candidate for the feature freeze - please may I have a Windows build?
20:38 rubenwardy CDB has package aliases for changing author name, could change mod data too - but that only works when installing from CDB
20:38 rubenwardy also, going back to the path option, by default if you try to install a mod with the same name as an installed mod at mods/, it'll overwrite that mod
20:38 rubenwardy so forks will have the same path
20:38 rubenwardy *may
20:39 Desour that's not an issue. if you knowingly replace a mod, that mod should inherit the data path
20:40 appguru joined #minetest-dev
20:43 sfan5 rubenwardy: I'll tag irrlichtmt first
20:43 rubenwardy makes sense
20:55 Desour_ joined #minetest-dev
21:11 Desour_ would someone like to merge #12979? it's quite trivial
21:11 ShadowBot https://github.com/minetest/minetest/issues/12979 -- Improvement of #12974: better lin independent vector by Desour
21:12 sfan5 https://github.com/minetest/minetest/commit/9ef3c8ce388011f4f57adc9a7eb0326376aec750 pushing to master shortly
21:13 rubenwardy lgtm
21:13 rubenwardy does the android dep repo need to be updated?
21:13 rubenwardy guess so https://github.com/minetest/minetest_android_deps/blob/master/scripts/Irrlicht.sh#L2
21:15 sfan5 yes
21:32 rubenwardy can that be done now?
21:33 sfan5 it has to happen before release, that includes now
21:33 rubenwardy right done
21:34 rubenwardy when the CI builds, I'll do an Android build - will try using CI + apksigner
21:40 sfan5 rubenwardy: https://github.com/sfan5/minetest/files/10893025/minetest-5.7.0-9ef3c8c-rc1-win32.zip https://github.com/sfan5/minetest/files/10893026/minetest-5.7.0-9ef3c8c-rc1-win64.zip
21:41 rubenwardy thanks
21:45 rubenwardy https://forum.minetest.net/viewtopic.php?f=18&amp;t=29249
21:46 sfan5 I wonder if the different server list sorting is subtle enough that people won't notice
21:47 sfan5 (don't edit the post now to put it in there)
21:47 rubenwardy too late, someone already made a topic about it
21:48 rubenwardy https://forum.minetest.net/viewtopic.php?f=5&amp;t=29184
22:40 pgimeno could the dedication be made somehow visible in the release? like in the main menu, or at least in the log
22:40 rubenwardy for RBA, it was at the top of the credits in [About]
22:41 pgimeno that works
22:45 rubenwardy kilbith: what's your latest long-range (1000+) performance on 5.7-dev?
22:46 rubenwardy still https://www.youtube.com/watch?v=P28BBRu7hQM
22:46 rubenwardy want to put a statistic to the long distance performance improvements, like 1000 view range at X FPS
22:47 rubenwardy that video looks like it has jitter / a lower fps
22:47 rubenwardy but is also 4k
23:00 kilbith jitter come from screen recording and big fat shaders, and >8 million pixels to display
23:01 kilbith https://irc.minetest.net/minetest-dev/2023-02-18#i_6056582
23:02 kilbith would get more FPS with 8x block meshes obviously
23:07 kilbith joined #minetest-dev
23:16 rubenwardy oh, I built Android but then completely forgot to do anything with it
23:22 proller joined #minetest-dev
23:28 rubenwardy added android build
23:32 rubenwardy is the macos-build from GitHub actions useable?
23:44 rubenwardy user reports that it works, added

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