Minetest logo

IRC log for #minetest, 2024-11-20

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

All times shown according to UTC.

Time Nick Message
00:11 sinvet joined #minetest
00:40 ireallyhateirc and if they use only one material?
00:41 ireallyhateirc then "probably no" is the logical consequence
00:41 MTDiscord <luatic> a single mesh buffer is pretty much ideal for performance
00:47 ireallyhateirc take a seat: https://files.catbox.moe/k9fe19.png
00:47 ireallyhateirc luatic, it's still one mesh, it's just not a single plane. Idk how that affects buffers
00:49 Can0xfBows joined #minetest
00:54 ireallyhateirc Hmmmmm I have a bug where a newly created 3D model turns black when I start breaking it
00:54 NQN joined #minetest
00:55 ireallyhateirc other 3D models done basically the same way are not affected
01:06 wsor4035 joined #minetest
01:24 silverwolf73828 joined #minetest
01:42 hunter0one joined #minetest
01:51 hunter0one joined #minetest
02:41 SwissalpS joined #minetest
04:25 yezgromafic joined #minetest
04:54 SFENCE_arch joined #minetest
05:00 MTDiscord joined #minetest
05:15 SFENCE joined #minetest
05:50 TomTom joined #minetest
06:21 Trifton_ joined #minetest
06:44 lmat joined #minetest
06:45 whosit joined #minetest
06:53 sparky4 joined #minetest
07:14 MTDiscord <bastrabun> Since the report function in the forum seems not to work, how do I report spam threads?
08:43 jluc joined #minetest
08:51 MacroFaxSax joined #minetest
09:29 Juri joined #minetest
09:29 Niklp joined #minetest
09:43 tarsovbak joined #minetest
10:16 [MatrxMT] <Blockhead256> bastrabun: You pm me for spam reports, I was brought on as a moderator to deal with it. But I'm always checking the new threads anyway, so I'll probably get to it within 24h usually
10:17 [MatrxMT] <Blockhead256> just took care of one, probably the one you saw earlier
10:22 [MatrxMT] <Blockhead256> make that fourm PM/matrix DM or IRC I guess.. but by the time I see a forum PM I'm already looking through the unread post list
10:28 ireallyhateirc joined #minetest
10:31 [MatrxMT] <Blockhead256> forum pro tip for anyone who likes to read it all like me: At the top of each page there's a "Quick links" button, under that is "Unread posts" which shows you all your unread posts.
10:31 [MatrxMT] <Blockhead256> I'm not saying I've read every forum post ever. But one day I accidentally marked it all as read (there's a button on the home page for that)
10:31 [MatrxMT] <Blockhead256> and after that I now just have an unread post feed
10:57 gregon joined #minetest
12:07 JerryXiao joined #minetest
12:25 Lunatrius joined #minetest
12:30 MTDiscord <_devsh_> imagine if you could still draw all triangles in a single drawcall and cull together but was able to change the material on a per-triangle basis :mind_blown:
12:34 Bombo joined #minetest
12:34 Bombo joined #minetest
13:00 TheCoffeMaker joined #minetest
13:07 erstazi_ joined #minetest
13:22 whosit why this code gives me "<file> already exists in media cache" error when there 2 or more players?    https://pastebin.com/XErkTmtW
13:23 whosit if I set ephemeral = false, error goes away, but, according to API, it should be possible to send same file multiple times if it's sent to different players?
13:24 whosit (use case: trying to just dymaically load temporary texture only to the people who can see it)
13:25 whosit what's more strange, if I add ~3+ second delay, I can send same texture with ephemeral=true
13:26 whosit have a full repro, just tell me where to put it, if interested :p
13:44 MTDiscord <luatic> whosit: i don't see why your code would only send it to different players. you always send to all players.
13:45 whosit this is a minimal repro to trigger the error
13:45 erle luatic are you aware of the dynamic media trick where you make stuff look different for different players?
13:46 whosit I expect to be able to send it more than once with `to_player` set. What happens: it errors on second send to another player
13:46 erle luatic or where you send stuff only once it is necessary?
13:46 MTDiscord <luatic> erle: i am aware of the possibility of such tricks, yes
13:46 erle also sending to all players may leak info
13:47 MTDiscord <luatic> ofc
13:47 erle e.g. map data, sign text etc.
13:47 erle (i mean in-game maps a la mcl_maps and xmaps)
13:51 whosit https://github.com/minetest/minetest/blob/b63e988bd60089b5f0595442b974886c17d5e1c9/doc/lua_api.md?plain=1#L7139
13:52 whosit this says I should be able to do this, but I get 'ERROR[Server]: Server::dynamicAddMedia(): file "unique_texture.png" already exists in media cache'
13:52 whosit if I don't wait 3+ seconds between doing dynamic_add_media()
13:53 whosit (with ephemaral=true)
13:58 erle oh lol, commit d4b107e2e85d7d7a36e1b75122e4c94193b98e09 is comedy gold API design
14:00 erle whosit quick test, does it work before that commit or did it never work?
14:01 whosit hmm, I'll try
14:02 erle whosit i am asking because the code checks for ephemeral before and after, so i don't see how that would change much, but it's a recent change.
14:03 erle and i don't see any test case so maybe it broke (if it ever worked with ephemeral at all, which i am unsure about)
14:03 erle like, you see in server.cpp ephemeral is special cased there
14:04 whosit what I see is this: https://github.com/minetest/minetest/commit/d4b107e2e85d7d7a36e1b75122e4c94193b98e09#diff-d0ecb51621381529aa2b31bb04fecee4a1b1b7dc0be53978c4878f2c4d4bfe1fL3579
14:04 whosit this condition is unchanged, and it does not take into account `to_player` field
14:04 erle whosit look for the phrase “media cache” in src/server.cpp. the surrounding code explicitly does ephemeral special casing
14:04 whosit but I didn't read rest of the code :p
14:04 erle and has done since 2021
14:05 MTDiscord <luatic> "Regardless of any use of ephemeral, adding media files with the same name twice is not possible/guaranteed to work. An exception to this is the use of to_player to send the same, already existent file to multiple chosen players."
14:05 whosit yes, second sentence contradicts how it actually works
14:05 erle well there are no test cases, so you can assume it does not
14:06 erle or are there?
14:06 erle (can't find any, maybe they are somewhere else where i have not looked?)
14:07 erle luatic it makes sense that same name file is not guaranteed to work for one player, but i don't see the special casing of multiple players here in the code. you see it?
14:10 MTDiscord <luatic> whosit: I don't see a contradiction in the docs. The docs don't seem to be allowing your use case currently. (Sending different files to different players under the same name.) I assume this is because the server has something like a global media cache rather than a per-player media cache.
14:11 erle where do the 3 seconds come from then?
14:11 erle luatic the docs don't contradict themselves, they contradict the lived experience of whosit
14:11 erle (and, arguably, the code)
14:11 MTDiscord <luatic> I don't know, maybe it's dropping things from this cache once it's sure they have arrived. This is UB either way.
14:12 erle where do you see UB?
14:12 MTDiscord <luatic> not C(++) UB, luanti UB
14:12 erle oh
14:13 whosit I am _not_ seding different media to specific players under same name, I send same media with same name with `to_player` and `ephemeral=true`
14:14 erle luatic btw i have come to a new perspective regarding testing and API exploration: if someone plays an instrument, they don't always play on stage or in front of an audience, they do deliberate practice. because of this, writing tests and exploring API use cases and considering every possibility on a hobbyist level is not the “NASA style we should dot every i and cross every t” thing people think, it is merely the equivalent of practicing, but for coders.
14:15 erle this also explains why people without any formal education in programming produce vastly higher quality code when simply forced to test and explore edge cases, while people who have 10 to 20 years industry experience and get paid for such stuff fail fizz buzz (or any trivial task, really), if they don't believe in deliberate practice (mostly they say it is a waste of time)
14:15 MTDiscord <luatic> whosit: you are sending the same media again to players that already have it??
14:15 whosit no, I send it only once.
14:16 erle https://pastebin.com/XErkTmtW luatic look at the code
14:16 erle it iterates players
14:16 erle sends same to everyone
14:16 MTDiscord <luatic> i looked at that code. you're saying if you invoke that once it triggers an error?
14:16 whosit yes.
14:16 erle have you tried it luatic?
14:16 erle is whosit mistaken?
14:17 whosit it will error if there are at least 2 players
14:18 erle luatic check line 3627ff of server.cpp
14:18 erle first you have
14:18 erle 3627auto it = m_media.find(filename);
14:18 erle then you have
14:18 erle 3628if (it != m_media.end()) {
14:19 erle etc.
14:24 tarsovbak joined #minetest
14:25 MTDiscord <luatic> hmm
14:25 whosit https://pastebin.com/DPAbdVAR
14:25 whosit minimal repro you can plug in and try
14:25 MTDiscord <luatic> // Allow the same path to be "added" again in certain conditions if (a.ephemeral || it->second.path != filepath) { /* error */ } shouldn't it be !a.ephemeral?
14:26 whosit yes, that comment is confusing :)
14:26 whosit I tried changing that condition to allow it - and got some assertion crash later
14:48 SFENCE_arch joined #minetest
15:02 Desour joined #minetest
15:12 kamdard joined #minetest
15:24 mrkubax10 joined #minetest
15:38 gera joined #minetest
15:39 mrkubax10 joined #minetest
15:43 jaca122 joined #minetest
15:59 v-rob joined #minetest
16:08 whosit minetest-git/src/server.cpp:2772: void Server::stepPendingDynMediaCallbacks(float): Assertion `m_media.count(name)' failed.
16:10 whosit I'm not even sure what it's trying to delete (I don't use any files, I generate textures on the fly)
16:11 whosit (this is with patched server, bypassing that check)
16:25 SFENCE joined #minetest
16:34 v-rob joined #minetest
16:36 jluc joined #minetest
16:37 sfan5 your example code is faulty because "default_stick.png" - being from a textures folder in a different mod - is already collected by the engine as a media file at startup
16:37 bwarden joined #minetest
16:38 whosit it triggers same error as my actual mod though...
16:38 lemonzest joined #minetest
16:38 whosit what I'm trying to do: I have a "display" entity, that fetches it's texture via http
16:39 whosit I don't want to litter people's cache directories with textures that are used only once, so I set ephemeral=true
16:40 whosit I also don't want to spam people's connections if they're not anywhere near this display - so I do add_dynamic_media selectively
16:40 whosit I use "filedata" option and don't cache new texture on the filesystem either
16:41 whosit name of the texture is unique each time it's updated
16:42 whosit if two people are near this display when it changes pictures - only one person can get it, rest trigger the error mentioned
16:42 sfan5 if the name is unique how could this error possibly happen?
16:43 whosit it's unique frame00.png frame01.png, not player1_frame00.png player2_frame00.png
16:44 whosit because they all observe same entity, right?
16:46 sfan5 I see
16:47 whosit API says: "An exception to [not being able to send files with same name twice] is the use of to_player to send the same, already existent file to multiple chosen players."
16:47 whosit but the code only checks if name is the same
16:47 whosit and errors
16:48 sfan5 the answer is that adding identical files with the same name never works with `filedata` (or `ephemeral` for that matter) and the docs are not clear on this edge case
16:49 whosit so... my use case is impossible without filling up cache with garbage?
16:50 whosit I can't make texture names unique per player as a workaround - they observe same "display" entity, and it's texture parameter is same for everyone
16:52 sfan5 at the moment this is correct
16:52 whosit and then I don't understand what that sentence from API means at all, it's just wrong then?
16:53 sfan5 it should say "An exception to this is the use of to_player (only with ephemeral=false) to send the same, already existent file to multiple chosen players."
16:54 sfan5 and "the same" needs to be clarified to mean the same `filepath`. passing the same `filedata` twice won't work either
16:55 whosit with ephemeral=false, filedata seemed to work... I will re-check again
16:55 sfan5 anyway feel free to file a bug
16:56 whosit if I can get into github, I will X)
16:59 whosit hmm, does not look like setting ephemeral=false works...
16:59 whosit what's strange, I didn't notice the issue before I set all delays to 0
17:00 whosit so I was sending same filedata under same name to multiple people just fine - I assume because it was cleared from this cache between sends...
17:05 whosit it's a bit weird... I made a prototype according to the docs, we even tested it (with 2 players watching the thing) it worked... and now it turns out it's impossible :D
17:17 ___nick___ joined #minetest
17:20 ___nick___ joined #minetest
17:22 MacroFaxSax joined #minetest
17:40 SFENCE joined #minetest
17:57 SFENCE joined #minetest
17:58 SFENCE joined #minetest
18:03 SFENCE joined #minetest
18:16 Talkless joined #minetest
18:20 tarsovbak joined #minetest
18:37 MinetestBot [git] RichardTry -> minetest/minetest: Typo in lua_api.md (#15440) 946b3a4 https://github.com/minetest/minetest/commit/946b3a422272d680d5d9d9a208bb0ffedce0291f (2024-11-20T18:36:35Z)
18:41 jaca122 joined #minetest
18:42 SFENCE joined #minetest
18:47 tarsovbak joined #minetest
18:48 ireallyhateirc joined #minetest
18:55 mrkubax10 joined #minetest
19:00 peterz joined #minetest
19:07 kamdard joined #minetest
19:07 peterz joined #minetest
19:14 v-rob joined #minetest
19:15 SFENCE joined #minetest
19:36 SFENCE joined #minetest
19:45 tarsovbak joined #minetest
19:52 Verticen joined #minetest
20:04 SFENCE joined #minetest
20:36 SFENCE joined #minetest
20:58 tarsovbak joined #minetest
21:10 jaca122 joined #minetest
21:10 vampirefrog joined #minetest
21:24 SFENCE joined #minetest
21:33 erle can a game depend on a mod?
21:33 ROllerozxa sure, but it won't be pretty
21:34 MTDiscord <jordan4ibanez> You can make a mod in the game depend on a mod then make the other mods depend on that mod and cry if you ever have to modify this lol
21:34 ROllerozxa ContentDB rejects games that contain unsatisfied dependencies because the engine makes no effort to satisfy the dependency
21:35 MTDiscord <jordan4ibanez> You could make it optional to get around this and crash the game if a certain thing isn't there
21:35 erle i am asking because of debian
21:35 erle https://wiki.debian.org/UpstreamGuide#No_inclusion_of_third_party_code
21:35 MTDiscord <jordan4ibanez> Debian is very mean to us
21:35 erle haha tell
21:35 erle i was asking in #debian-games on OFTC about packaging one of the bigger games
21:36 erle and was told well, vendored copies …
21:36 ROllerozxa haha
21:36 ROllerozxa anyways exile did this with naturalslopeslib a long long time ago leading to the game booting up to a broken mess out of the box with little information for players that you need to manually install and enable an external mod for each world
21:36 ROllerozxa it ended up being resolved by adding the mod as a submodule to the game. which is what you usually should do when wanting to add third party mods into your game
21:37 erle ROllerozxa well subtree also exists and is less hassle IMO for this kind of thing, but yeah
21:39 MTDiscord <jordan4ibanez> How we put substree in the dependency class
21:40 erle it's a git thing
21:42 MTDiscord <jordan4ibanez> That sounds like an implementation detail for the game developer and it's their fault if they don't do this
21:43 MTDiscord <jordan4ibanez> But, then again, they can also just dump the folder into the game
21:45 erle jordan4ibanez, yes i hate it
21:46 MTDiscord <jordan4ibanez> Git is a cruel mistress
21:55 vampiref- joined #minetest
21:58 Lunatrius joined #minetest
22:01 cation joined #minetest
22:30 silverwolf73828 joined #minetest
22:30 simon816 joined #minetest
22:33 erstazi joined #minetest
22:55 SFENCE joined #minetest
23:07 SFENCE joined #minetest
23:09 MTDiscord <wsor4035> debians packaging of minetest/luanti games/mods is are worth avoiding
23:15 ireallyhateirc is it possible to add an offset to nodes?
23:16 ireallyhateirc I'd like to add different offset to different instances of the same node
23:16 MTDiscord <wsor4035> would have to use a custom model, but sure
23:16 MTDiscord <wsor4035> then no
23:16 MTDiscord <wsor4035> you would need different node defs for each offset
23:17 ireallyhateirc but the offset can be defined in nodedef or only in the 3D model?
23:18 [MatrxMT] <🇬regon> It can only be random, but see my mod that adds that
23:18 MTDiscord <wsor4035> only in 3d model iirc, dont quote me on that its not possible with normal node
23:19 [MatrxMT] <🇬regon> https://content.luanti.org/packages/Gregon/mcl_random_plant_positions/
23:19 ireallyhateirc 🇬regon, link?
23:19 ireallyhateirc ah thanks
23:20 MTDiscord <wsor4035> meshoptions only works with plantlife, so not applicable to normal nodes
23:22 ireallyhateirc ok so my options are: 1. doing several meshes with different offset manually or by writing a script 2. making a feature request for param2 type "offset" or something like that
23:22 ireallyhateirc the use case is a table with nonstandard height
23:23 ireallyhateirc I'd like to still be able to place items on it
23:33 panwolfram joined #minetest
23:49 Guest97 joined #minetest
23:56 amfl joined #minetest

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