Minetest logo

IRC log for #minetest, 2023-12-26

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

All times shown according to UTC.

Time Nick Message
01:10 smk joined #minetest
01:14 sys4 joined #minetest
01:14 qur joined #minetest
01:31 xBarkDog joined #minetest
01:35 xBarkDog joined #minetest
02:02 appguru joined #minetest
02:23 khimaros_ joined #minetest
02:24 kyle56 joined #minetest
02:32 kyle56 left #minetest
03:29 YuGiOhJCJ joined #minetest
04:30 diceLibrarian joined #minetest
04:49 Verticen joined #minetest
05:00 MTDiscord joined #minetest
05:45 fluxionary joined #minetest
06:27 cow321 joined #minetest
07:18 diceLibrarian joined #minetest
08:18 Leopold_ joined #minetest
08:23 calcul0n joined #minetest
08:57 definitelya joined #minetest
09:09 xBarkDog joined #minetest
09:21 s20 joined #minetest
09:24 Sobinec joined #minetest
09:40 Leopold joined #minetest
09:47 jluc joined #minetest
10:12 Talkless joined #minetest
10:14 mrkubax10 joined #minetest
10:34 jaca122 joined #minetest
10:38 TomTom joined #minetest
11:03 MinetestBot [git] grorp -> minetest/minetest: Remove non-existent textures from texture_packs.md 524721e https://github.com/minetest/minetest/commit/524721ee275875d4c76808bb0c9cb0ed3ccb3ac1 (2023-12-26T11:01:46Z)
11:06 YuGiOhJCJ hello, I was wondering how Minetest is generating the world from a unique seed and storing the full world in an sqlite file. I don't know how many cubes the world is composed but I guess that storing the full world when you start the game will make a too big file, several Go and will use all your disk space. So, what is stored exactly in this file?
11:09 YuGiOhJCJ (note: I already know how to generate the same values from a seed using rand/srand)
11:17 calcul0n the world is generated where players are, and only that is stored
11:17 calcul0n which is already a lot in fact, world data can become pretty big on old servers
11:22 YuGiOhJCJ yes that makes sense but in this case, the player position is very important for the world generation, it means that there is a function that is taking in parameter player position and the unique world seed, generates the world near the player (let's say a 100x100x100 area), but it's a problem because it means that if a player moves forward instead of backward, we will start by generating cubes located forward, from the seed, and so
11:22 YuGiOhJCJ the sequence of numbers generated will not be the same that if the player decided to move backward, how is it possible that the world is always the same, not matters which decision the player take moving any directions
11:23 YuGiOhJCJ ?
11:25 jluc guess it depends on the position, not the direction
11:25 jluc f(x,y)
11:25 calcul0n this is the magic of perlin noise :)
11:25 YuGiOhJCJ I already heard a lot about perlin noise but never read it carefully
11:26 MTDiscord <bla8722> player position is only used to determin which part of the world is loaded/generated but not for how its generated
11:26 YuGiOhJCJ bla8722, yes it makes sense
11:26 YuGiOhJCJ so the world will always been generated the same way, from the unique seed
11:27 calcul0n yes
11:27 YuGiOhJCJ so there is a function f(x,y,z,seed) that is generating from the position + seed always the same value?
11:28 calcul0n exactly
11:28 YuGiOhJCJ ok I think I understand now
11:28 YuGiOhJCJ thanks
11:29 calcul0n i suggest to read wiki's page about perlin noise, you'll get an idea of how it works
11:29 Waffelo joined #minetest
11:29 calcul0n https://en.wikipedia.org/wiki/Perlin_noise
11:29 YuGiOhJCJ yep I'll do it thanks
11:32 YuGiOhJCJ can we say that the  pseudo-random number generator functions ("srand" to initialize a new sequence and rand to get the next number from this sequence) won't be used when using perlin nose? it looks like that these are two different methods
11:38 calcul0n yes that's different
11:39 calcul0n hmm, hard to explain :)
11:39 appguru joined #minetest
11:40 calcul0n we could say the same maths are involved but they are used differntly
12:05 s20_ joined #minetest
12:13 mrkubax10 joined #minetest
12:27 YuGiOhJCJ I think I got it, firstly you have a seed, secondly from this seed you create a sequence of numbers that you store in an array, so same seed means same sequence of numbers, now you can call your perlin noise function f(x,y,z,array) that will return the wanted value from the position + array
12:28 imi joined #minetest
12:35 YuGiOhJCJ not sure however why they say that the numbers in this array have to be between 0 and 255
12:38 jaca123 joined #minetest
12:42 calcul0n this is just how the original implementation work, there are different technics
12:42 calcul0n minetest uses some kind of hash function to get a gradient at (x, y)
12:43 calcul0n here: https://github.com/minetest/minetest/blob/524721ee275875d4c76808bb0c9cb0ed3ccb3ac1/src/noise.cpp#L157
13:38 jaca122 joined #minetest
14:09 sy joined #minetest
14:09 sy Hey all
15:47 Desour joined #minetest
15:47 appguru joined #minetest
15:51 jaca122 joined #minetest
16:58 mrkubax10 joined #minetest
17:44 Desour would someone like to play and test out the ghost crypt game with me?
17:44 Desour this here: https://content.minetest.net/packages/group_foo/ghost_crypt/
17:45 Desour it's a game jam submission, but looks like it's multiplayer only
17:52 MTDiscord <warr1024> I tried it out by running a local server and launching a second instance to join.  Of course some of the mechanics you can't fully test, and of course you can't really get a feel for the pace of action when you can only play one part at a time, but it's notoriously hard to arrange play time for competitive multiplayer games (that aren't already popular) so at least it's an option. There's a "testing server" listed.  Maybe people could try
17:52 MTDiscord to arrange events where people meet on that server at the same time so there are enough people to play. I'd also be interested in seeing videos and such of actual gameplay with multiple people, which could be a good way for people who can't make those events to see what the game is capable of.
17:53 Guest47 joined #minetest
17:53 Guest47 hello
17:53 Guest47 is there some limit to operate techpack in a public server?
17:54 Guest47 someone knows something more about this discussion on forum: https://forum.minetest.net/viewtopic.php?t=19784&amp;hilit=error+generate_key2number&amp;start=150
17:55 Desour that's why I asked. I tried to get ppl to join the test server at the same time, warr0x1p10
17:57 DeepThgt Guest47, from my experience with technic and mesecons, which also have performance issues of the same variety, here is what i have learned has helped perfomance
17:58 DeepThgt switching to postgres from sqlite for the world db, compiling with luajit, disabling hyperthreading
18:00 Guest47 i understand, so not exist something in postgres yet, I need to compilate
18:01 MTDiscord <warr1024> Desour: oh, you meant right now though, right?  If that works, good, but if it doesn't work well enough, I'm just suggesting that if you schedule it for some time in the future, like a day or 2 from now, you'll have more time to get people to plan it into their schedules.
18:02 MTDiscord <warr1024> Ideally they should just pick like 3 times a day as "meeting times" around the clock (for people in different TZs) and post that on the description page so that people don't pop in for a random 5 minutes here and there and miss each other.
18:02 Desour yep, that's also what I planned ^^
18:04 mrkubax10 joined #minetest
18:13 Desour trying again in about an hour, and/or tomorrow 17:00 UTC
18:15 Guest47 so guys, about the error on techpack just compiling a new version with postgres?
18:20 DeepThgt boo mesecons and worldedit dont play nice
18:29 CRISPR joined #minetest
18:48 Leopold joined #minetest
19:23 MinetestBot [git] grorp -> minetest/minetest: Make the loading screen progress bar respect "gui_scaling" 335af39 https://github.com/minetest/minetest/commit/335af393f09b3629587f14d41a90ded4a3cbddcd (2023-12-26T19:21:15Z)
19:32 Desour joined #minetest
19:33 Desour ok, am back. is there someone who wants to play now?
19:33 CRISPR joined #minetest
19:33 Desour if not, I'll just ask again tomorrow, 17:00 utc
19:34 Desour DeepThgt: last time I tried, using worldedit for mesecons constructions worked very good
19:46 cow321 joined #minetest
19:52 CRISPR joined #minetest
20:09 DeepThgt Desour my issue wasnt that, it was what i was trying to do
20:10 DeepThgt ty tho
20:14 DeepThgt one good way to crash a server, try setting an entire plane to any node :D
20:14 DeepThgt like, 30927 0 30927 to -30927 0 -30927
20:14 DeepThgt it does NOT like that
20:15 Sobinec joined #minetest
20:36 DeepThgt https://imgur.com/umeEIA6.png
20:37 DeepThgt worldedit is too much fun
20:57 DeepThgt m
21:04 appguru joined #minetest
21:47 MTDiscord <jordan4ibanez> Fractally
21:51 CRISPR joined #minetest
22:15 MTDiscord <jordan4ibanez> Realistically, set node should have a local constant for memory usage per instruction and internally multiply it by the volume of the area and then break it up into steps for on step or something if it exceeds the memory limit of the vm
22:16 MTDiscord <jordan4ibanez> Not set node, the voxel area api
22:26 Guest47 joined #minetest
22:27 Guest47 hello! Early I was asking about the error described in this post https://forum.minetest.net/viewtopic.php?p=414454#p414454
22:27 Guest47 but I needed to go out, so I'm back to asking again, the one way to solve this is compiling the mod change to postgres?
22:28 Guest47 the error is: TL-ERROR Number2Pos pos is nil
22:28 Guest47 and mod is Techpack
22:29 MTDiscord <wsor4035> hmmm, is that mod using minetest.serialize for large data? if so, wouldnt be suprised
22:30 MTDiscord <wsor4035> looking at https://github.com/search?q=repo%3Ajoe7575%2Ftechpack%20minetest.serialize&amp;type=code, yeah, yikes
22:31 MTDiscord <wsor4035> timebomb waiting to happen
22:44 Guest47 joined #minetest
22:44 Guest47 sorry, something wrong in this connection
22:45 MTDiscord <warr1024> (Anyone whose IRC client doesn't collapse join/part noise and gets mad over a little of it is a masochist anyway 😏)
22:46 imi joined #minetest
22:46 Warr1024 Sometimes when I upgrade my client it'll get stuck in a restart loop and I'll have like a half dozen reconnections before I get it stabilized again 🙄
22:46 Guest47 yess :D
22:47 Guest47 but i didnt understand how to use this link https://github.com/search?q=repo%3Ajoe7575%2Ftechpack%20minetest.serialize&amp;type=code
22:48 MTDiscord <warr1024> Same, actually; I don't know if the purpose of that link it to show "look: among the uses of serialize in this mod, some of them are clearly working on large 'database'-type objects" or to show "they use serialize way too much, to the point where it seems unlikely they're making consistently good judgements about whether it's appropriate."
22:49 MTDiscord <warr1024> It looks like it could be quite painful to have to evaluate each of those cases to see how big data could actually typically be expected to grow under "normal" non-contrived situations.
22:50 MTDiscord <warr1024> I've frankly gotten away with a lot of serialize abuse myself, without taking care for explicit guardrails, and it's mostly just gameplay factors that have minimized the risk of players finding exploits that can break serializaiton..
22:50 Guest47 so its about how much each player can amount in every single slot? inv or chest?
22:51 Guest47 the server is allow 999 in each slot for anything
22:51 MTDiscord <warr1024> If, let's say, you use serialize to serialize the content of a container into an item, like a shukler box or whatever ... then, let's say you allow players to write near arbitrarily long books, or you allow them to nest containers, where the contents of the container are stuffed in an item that can get serialized inside another container ... eventually you have a recipe for potential disaster.
22:51 MTDiscord <jordan4ibanez> But how can we fix this
22:52 MTDiscord <warr1024> Allowing items in large quantities like 999 isn't an issue, since if they can stack they don't take up more space than the extra 2 digits to represent the quantity ... but things that don't stack and contain arbitrarily large user-supplied data like written books can become an issue.
22:53 MTDiscord <warr1024> The simplest hack to fix it is to use json instead of serialize, which I think does not suffer the same limit problem.  But it may suffer other problems (I'm not sure of its rounding behavior), it definitely doesn't represent all possible data structures that lua can, and it may have performance trade-offs.  It also won't save you once your tables start getting to be to much for the lua VM itself.
22:54 MTDiscord <warr1024> The real long-term solution is to redesign your thing entirely so that you never have huge hunks of data that need to be loaded/saved at any given time, but everything is either limited in scale, or you break things down into smaller transactions.
22:55 MTDiscord <warr1024> mod_storage, for example, once upon a time sucked because it wrote an entire mod's data as a big JSON file every 5.3 seconds ... but now that it uses an actual database backend, so long as you're not still using the legacy file one, those keys can be accessed one at a time.  That doesn't help so much with itemstack or node meta (and I'm not sure about players) but in at least some cases you can redesign to avoid these problems.
22:55 Guest47 I understand now, so techpack is not recommended to public servers with no restrictions to users
22:56 MTDiscord <warr1024> Personally I can't say anything specific against techpack given just what I've seen (I didn't look too deeply into the original issue report) but if indeed it's a problem of not guarding against users creating data that's large enough to cause crashes, then yeah, it's "vulnerable to abuse" basically and so you should consider that when making the decision about whether to use it or not.
22:57 MTDiscord <warr1024> You can still of course even run packs that are vulnerable to abuse, as some choose to do because not having the gameplay features is an unacceptable trade-off for them, and they just have to do more moderation and cleanup work sometimes in exchange.
22:58 MTDiscord <warr1024> Of course, if the "abuse" scenario also can happen eventually under normal gameplay circumstances without deliberate attacks ... well, that's another level of problem to consider.
22:58 depsbzl joined #minetest
23:00 Guest47 i understand now, well I think is not solution for now. I was playing in the simple server that uses this mod and it crashes with error and the admin wants to remove, but a lot of constructions that we made was based on techpack, so a caotic situation
23:01 MTDiscord <warr1024> Oh oof, yeah, once you've gotten invested then you've got a problem, and that may be a big part of the trade-off that keeps people just constantly fixing crashes instead of just not running the offending mods anymore.
23:03 Guest47 yes, but he wants to remove. So techage is susceptible to same error?
23:04 MTDiscord <warr1024> I actually have no idea how techage and techpack are related, if at all.
23:04 MTDiscord <wsor4035> Never use mintest.serrialize and I stead use minetest.write_json
23:05 Guest47 but, the mod I think was installed from original source, no modifications
23:05 MTDiscord <warr1024> Never using serialize under any circumstances is a bold generalization and, even assuming I could be sure I never ran into data structures that json doesn't handle well (like mixed array/hash tables) I'd still want somebody to verify first that JSON performs at least comparably to serialize.
23:06 Guest47 the admin of server tells he wont change the code byself
23:06 MTDiscord <warr1024> And yes, it shouldn't be the responsibility of a mod user (server operator, singleplayer user, etc) to maintain an incompatible fork of the mod that uses serialization differently...
23:08 Guest47 yes, i know. so concluding no solution until Joe7775 releases a fix
23:09 MTDiscord <warr1024> 🤷 no good ones, probably, at least.
23:09 MTDiscord <warr1024> it's not easy to fix "oops I trusted the wrong serialization format" either
23:10 MTDiscord <warr1024> you have to do stuff like providing an upgrade and migration path for existing worlds
23:10 MTDiscord <warr1024> and the fix isn't necessarily just to slap JSON in there instead; often this is a warning that the serialization format itself is just a symptom of dealing with irresponsibly large objects as monoliths to begin with.
23:10 MTDiscord <luatic> yep
23:12 Guest47 well, so if I found this serielize code in techage, probably it has the same problem, i'll check this
23:14 Guest47 and yes, I guess he does
23:15 Guest47 https://github.com/search?q=repo%3Ajoe7575%2Ftechage_modpack%20minetest.serialize&amp;type=code
23:17 MTDiscord <warr1024> Lots of people use minetest.serialize and in 99.9% of cases it poses no issue, so just looking for the presence of the code is only very weak evidence that there's cause for concern.  To really know, you kinda have to analyze what they're doing with it.
23:28 loggingbot_ joined #minetest
23:28 Topic for #minetest is now The official Minetest channel | Latest version: 5.8.0 (2023-12-04) | General, player and modding discussion is on-topic. If in doubt, post here | Responses may take a while, be patient | Rules: https://wiki.minetest.net/IRC#Rules | Development: #minetest-dev | Server list: https://minetest.net/servers | IRC logs: https://irc.minetest.net/minetest
23:28 Guest47 May I access this chat form discord?
23:30 MTDiscord <jordan4ibanez> Yes
23:31 MTDiscord <jordan4ibanez> I give you express permission with absolutely no warranty
23:32 Guest47 :D thank you jordan
23:32 panwolfram joined #minetest
23:32 MTDiscord <luatic> I think you have to be of a certain "rank" to access this chat from discord?
23:32 Guest47 the channel name there is #minetest too
23:33 MTDiscord <luatic> it's minetest-irc
23:34 Guest47 and the server is Minetest, right?
23:35 illwieckz joined #minetest
23:36 Guest47 well dont  appear to me so i have to use for here
23:37 MTDiscord <luatic> yep the server is Minetest
23:38 Guest47 so the rank is necessaru
23:38 Guest47 necessary
23:38 Guest47 but may i talk in general no?
23:38 MTDiscord <luatic> Yes, you may talk in general. The "rank" requirement exists to prevent spam from newcomers, I believe.
23:39 MTDiscord <warr1024> Right, we just expect people to talk a bit in the non-IRC channels first so that if there are moderation issues with them, IRC isn't subjected to the consequences as well.
23:39 MTDiscord <warr1024> but it doesn't take long to earn the necessary privileges.
23:40 MTDiscord <warr1024> Also don't 100% rely on the Discord only for your access to IRC.  The bridges CAN go down (and of course Discord as a platform could become arbitrarily shitty in any way it wants to overnight).
23:41 Warr1024 hence why a lot of us are connected directly via both protocols, when we have that optoin.
23:41 Guest47 right. I understand. thank you for all in next time I'll use for that as Hephaestus
23:42 Guest47 what irc cliente do you use?
23:42 MTDiscord <wsor4035> thelounge
23:42 MTDiscord <warr1024> Yeah, that, self-hosted, for me.
23:43 MTDiscord <warr1024> It's not very featureful but it works well on mobile (if you have a server to host the server component) which is one of the major obstacles a lot of users have with IRC usage today.
23:44 Guest47 no and im using win11
23:45 MTDiscord <warr1024> That's a shame.  You can rent a VPS for under $10 a month, but that's a lot to bother with if it's JUST for an IRC client and you don't have some other use for it.
23:45 MTDiscord <warr1024> I think there are publicly hosted instances, but then, I never know how much I should trust those, especially with things like NickServ credentials.
23:47 Mantar if you're on desktop, hexchat is pretty good
23:48 Guest47 oh no, I asked just to access this irc channel, I didn't express myself well
23:50 DeepThgt warr1024 you can rent a vps for under $13 usd per year to run znc on
23:50 DeepThgt 10 a month is massively overpaying for a bouncer
23:51 MTDiscord <warr1024> I used hexchat on desktop and found it to be pretty good, yeah.  Unfortunately I've grown way too used to the idea that I should be able to get up and leave my desktop at any time and as long as I have my phone with me, I shouldn't lose immediately access to what I was connected to...
23:51 hephaestus joined #minetest
23:51 DeepThgt https://lowendbox.com/blog/1-vps-1-usd-vps-per-month/ <-- cheap shithosts
23:51 Guest47 done with hexchat
23:51 hephaestus thank you guys
23:52 MTDiscord <warr1024> Hmm, those low-end machines are pretty good looking, i.e. I didn't see that "burstable" shit that Amazon EC2 does... 🤔
23:53 DeepThgt ya id rather have a colonoscopy than use amzn for anything
23:54 DeepThgt on that list ive used racknerd only
23:54 DeepThgt no complaints for what i paid
23:54 MTDiscord <warr1024> Amazon Web Services has so many random products that colonoscopy is probably one of them, so your could achieve your worst nightmare there.
23:54 DeepThgt lmao
23:54 MTDiscord <warr1024> I wish I had know about $1 a month VPS hosting before I'd scope-creeped the other like $6 a month worth of shit I'm running on mine now 😄
23:55 DeepThgt when time for renewal comes up you know at least
23:55 DeepThgt if you feel like migrating
23:56 DeepThgt i used to use these for wordpress/woocommerce installs
23:56 DeepThgt worked well
23:57 sparky4 joined #minetest
23:59 MTDiscord <warr1024> Heh, goes on my todo list, and I'll have to figure out exactly how much of the ~$7 per month Contabo machine I'm actually using at this point...

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