Minetest logo

IRC log for #minetest, 2022-05-09

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

All times shown according to UTC.

Time Nick Message
00:04 Soni sorry
00:34 Verticen joined #minetest
00:38 Soni joined #minetest
00:53 nm0i left #minetest
01:03 Verticen joined #minetest
01:15 specing_ joined #minetest
01:43 MTDiscord <FatalError> something that hurts bones probably warrants being named after florida, after all they are the headstrong idiots of the states
03:23 fluxionary what's the provenance of `min_minetest_version` in some mod.conf files for various mods?
03:24 fluxionary it doesn't seem to be used anywhere? are there other similar conventions?
03:24 peterz joined #minetest
03:32 MTDiscord <Jonathon> Contentdb
03:41 peterz joined #minetest
04:00 MTDiscord joined #minetest
05:04 Evil joined #minetest
05:04 Mc joined #minetest
05:04 nore joined #minetest
05:12 nuala2 joined #minetest
05:13 mmuller joined #minetest
06:13 lemonzest joined #minetest
06:32 calcul0n joined #minetest
09:32 erle is there any method to call on an item being destroyed other than by the item entity despawning?
09:44 Fixer joined #minetest
09:44 YuGiOhJCJ joined #minetest
09:47 MTDiscord <luatic> erle: /pulverize and /clearinv theoretically exist as well as moving items to "trash" slots
09:48 erle luatic well, i just want map image garbage collection for mcl_maps
09:48 erle i played around with my improved version of it yesterday
09:49 erle the one that i made some months ago
09:49 erle and was like “why haven't i released this”
09:49 erle it saves the entire map in the item meta
09:49 erle so that it can be recreated when the file is gone
09:52 orwell96 joined #minetest
10:04 orwell96 joined #minetest
11:39 definitelya joined #minetest
12:09 onehittoaster_ joined #minetest
12:16 orwell96 joined #minetest
12:20 MTDiscord <Warr1024> There's no way to tell when an itemstack is destroyed, I think.  They can be created copied, moved around, serialized and deserialized, and there is no tracking for them.
12:21 rubenwardy You'd probably want general inventory callbacks for that
12:22 MTDiscord <Warr1024> That only works insofar as items are kept in inventories.
12:23 rubenwardy They mostly are
12:23 rubenwardy There's item entities
12:23 rubenwardy And then there's the chaos of mods
12:25 MTDiscord <Warr1024> Yeah, just mention "the chaos of mods" offhandedly like it's not 99.9% of the ecosystem or anything 😄
12:26 rubenwardy They're probably storing it as a table at that point, in which case you have no hope
12:27 MTDiscord <Warr1024> Most items in NC actually exist as serialized strings in meta at any given time, and the only "hope" in that is that they're generally accessed through an API
12:27 rubenwardy With inv callbacks, you could tell when it's removed from an inventory. You then have to worry about tracking it outside of inventories, and inventories being deleted
12:27 MTDiscord <Warr1024> Except of course that things like the tote exist that can serialize entire nodes with their meta...
12:27 rubenwardy Pretty impractical to do reliably
12:27 rubenwardy I'd reference count and add a last accessed datetime
12:28 MTDiscord <Warr1024> MT doesn't really offer a way to update a ref count for an itemstack, and even worse when it's in string form.
12:28 rubenwardy You can ref count it in string form
12:28 rubenwardy Can't*
12:29 rubenwardy Which is what the last accessed would be for
12:29 MTDiscord <Warr1024> "can't" sounds worse to me
12:29 rubenwardy It's the closest you can get to a solution, an actual solution isn't possible
12:30 MTDiscord <Warr1024> Last accessed doesn't really help because it doesn't sound like having the maps stored in a section of your world stop working because you haven't visited there in a long time would be a nice feature.
12:30 rubenwardy But if you can regen the map image it's not a huge deal
12:30 rubenwardy ^
12:31 MTDiscord <Warr1024> Well, if you can regen then from embedded meta, then I wouldn't try to track anything at all, I might just have a fixed size MRU, or just never permanently store images and have the server rebuild them after any restart.
12:32 rubenwardy Yeah. erle why do you need to cache in this way?
12:33 rubenwardy If this is about map exploration, why not store the exploration mask as a map of mapblock positions in the item
12:33 rubenwardy Also, maps could be limited in size
12:33 rubenwardy Say 2km by 2km
12:34 rubenwardy The caching could then be done for the world as a whole, like, you only need to store the map image once and then generate copies for each item with the mask applied
12:37 erle rubenwardy real-world experience shows that a) using item meta is the only way to make maps work in map downloads b) automatic regeneration of maps is the only way to make maps work automatically on servers
12:38 rubenwardy You can still use item meta to store map info
12:38 erle rubenwardy the map shows the territory at the point of snapshotting it. this serves to make map art. it will later serve to have treasure maps (i.e. having a very crude map rendering in a low fidelity style).
12:38 rubenwardy Ah, so could be outdated? I guess that makes sense
12:39 erle yeah, there is no way around it
12:39 rubenwardy How big is the image file, and what's in the map meta?
12:40 erle as an example what happens if you do not do automatic regeneration: kay27 made an incompatible fork of mcl_maps for mineclone5 which requires to run a python script server side to convert older maps … and then apparently did not run it on his own servers until called out (or something like that), despite loudly proclaiming in the forums that you “just have to run that script”.
12:40 erle now, people could say this is the fault of the server admin.
12:40 erle i am saying: no, it is the fault of the code. everything should be handled automatically.
12:41 orwell96_ joined #minetest
12:42 erle rubenwardy the regeneration is two-way for me by the way. if a map item does not have an embedded (zlib-compressed) bitmap, then this is created from the existing file. if it does have one and there exists no file on disk, then the file is regenerated from the item meta.
12:43 erle rubenwardy since writing the file from meta takes basically zero time, this would allow me to delete the file every time an item is destroyed, if it has the map bitmap in item meta. because that means that any copies of that map can trigger regeneration of the file.
12:43 erle it sounds very clumsy, but works very well.
12:43 MTDiscord <Warr1024> Maps are one of those features added to MC that took a lot of advantage of the fact that MC has no engine/game separation and one team has access to change anything to accomplish that goal.  Making it work at all in MT seems like it'd be clunky and painful...
12:44 rubenwardy So the map item does contain the image, and the file is only created to use as dynamic media in a GUI?
12:44 rubenwardy Either delete all the files on start up, or use [png
12:45 erle > use [png
12:45 erle please stop saying that
12:45 MTDiscord <Warr1024> Yeah, or dynamic media could add a string api
12:46 erle rubenwardy, sorry, but literally everyone who tells me to “use PNG” for maps never tried to implement this. also [png is *by far* the worst designed texture modifier.
12:46 MTDiscord <Warr1024> [png is probably what I would use myself, and the fact that the data is already zlib compressed sounds like the complicated part of supporting it has already been done
12:46 Taoki joined #minetest
12:47 erle it is not useful for bitmaps this big (128x128) and it is not useful for small bitmaps either, as the entire overhead of [png is around 100 bytes.
12:47 MTDiscord <Warr1024> It is not by far, if it's even worst at all.  There is some stuff competition for worst texture mod
12:48 erle look, you have never done this at all. it becomes immediately obvious once you want to do simple things like “replace this pixel in the texture with another one”.
12:49 erle i mean, i am assuming you have never done this and it might be a bit arrogant
12:50 erle but honestly, this is again one of these problems where i am discounting the experience of every single person who has a) never read the code fleck or me wrote b) never has read the design decisions and history behind the code c) never has tried implementing it themselves
12:51 MTDiscord <Warr1024> Yeah, that seems fair, since this is one situation where I am discounting the experience of the ONE person who continues to insist that TGA is a superior format to PNG.
12:51 fling joined #minetest
12:51 definitelya erle: Write a blog post about this if it irks you so much. lol
12:51 erle Warr1024 seriously, that depends on what you are doing.
12:52 definitelya So people can help you.
12:52 MTDiscord <Warr1024> It seems like it's just too much of a blow to your pride to manipulate a TGA behind the scenes and just convert it to PNG for display purposes
12:52 erle Warn1024 TGA is superiour to PNG in the same way that PNG is superior to TGA or JPEG is superior to both – every one of these formats excels under specific constraints given.
12:52 erle (compare this to BMP, which is worse than all of these three on every axis i know)
12:53 erle or PCX or whatever
12:55 erle Warr1024 this is not a pride thing. i am structuring the code in the way that it is possible to add this later, but the entire logic to support that as well as TGA would probably be at least 3 to 10 times the size of the current TGA decoder. i.e. it's not worth it, ever.
12:55 erle definitelya what irks me is that some people do not accept that there is a class of problems where every seemingly obvious answer is wrong.
12:55 MTDiscord <Warr1024> If it's not worth a few hundred lines of code then it's not worth a few hundred lines of complaining.
12:56 definitelya ^
12:56 erle Warr1024 well, the primary purpose of me complaining is people looking into issues to actually understand them.
12:57 definitelya Look at it this way; maybe it's just a matter of choosing whichever, and being ok with that decision?
12:57 erle it's not lack of information of the topic
12:58 MTDiscord <Warr1024> What I understand is that PNG is not optimal for erle's application.
12:58 erle definitelya as i see it, other people are not okay with “this implementation is superior in due to X, Y, Z” because they have some vague idea that some as-of-yet-unwritten other implementation that is inherently more complex could solve problems better.
12:58 erle Warr1024 that is entirely the issue at hand
12:58 MTDiscord <Warr1024> If we were writing an engine for mineclonia instead of for all MT games, then that might be an issue
13:00 MTDiscord <Warr1024> The "unwritten solution is better than this written" one is definitely a problem in MT culture, but here, [png is the written one and [tga is the unwritten one.
13:00 erle [tga would also be a horrible stupid solution
13:01 erle the written solution is mcl_maps, as fleck has implemented it and as i have improved it. asking me to add hundreds, possible over a thousand lines of code to it to make the code more complex just so it is in line with faulty assumptions about how textures work in games is unreasonable.
13:04 erle Warr1024 in general what is the proper counter to “oh, this unwritten implementation *might* be better than your entirely working one” if it comes from someone who has a lack of understanding of the particular thing?
13:04 erle i mean i have tried some things.
13:04 erle but usually, telling people that they have no idea what they are doing, is considered offensive.
13:05 erle and presenting them with examples of it is also considered offensive i think.
13:08 MTDiscord <GoodClover> what's the actual issue with [png? I understand you don't want to use it, but why?
13:09 MTDiscord <GoodClover> ah are you wanting to read the data back from the meta to manipulate? a lack of decode_png would make that hard, yeah
13:10 erle GoodClover try parsing [png
13:11 rubenwardy Looks like you ignored my first suggestion
13:11 erle rubenwardy, which one?
13:11 rubenwardy Another option would be to use ephemeral media and random file names, and delete them immediately
13:12 rubenwardy "delete all map files on start up"
13:12 erle rubenwardy yeah, that works better ig. it still risks a user being able to fill up the server disk by making maps and throwing them away though. ;)
13:12 MTDiscord <Warr1024> What I don't understand is what's the issue with erle's "working" map implementation?
13:13 MTDiscord <GoodClover> erle: if we had a decode_png function it'd be easy as: mt.decode_png(mt.decode_base64(s:sub(6, -1))), unless I'm misunderstanding something
13:13 erle GoodClover also i would have to write a PNG encoder
13:13 MTDiscord <Warr1024> If it already actually works and you're just trying to optimize it then why should I by sympathetic that the engine is not providing the exact right tools for that?
13:13 MTDiscord <GoodClover> MT has a PNG encode built-in?
13:13 erle it is not suitable for stuff like this though
13:14 debiankaios joined #minetest
13:14 erle use optipng on the checkerboard texture generated in devtest
13:14 erle that texture becomes 5% of its size
13:14 MTDiscord <Warr1024> I have a working implementation of attaching display entities to players, but in MP, depending on how players are loaded/unloaded as they come in/out of range, I have to destroy and recreate the entities periodically to try to fix them, and it doesn't always work; sometimes the entities simply refuse to display.
13:15 MTDiscord <Warr1024> Compared to something like that, I don't see how [png matters.
13:15 erle as far as i am aware minetest.encode_png() always encodes R8G8B8A8 while not only I currently use A1R5G5B5, the easiest in-place update can be had using a paletted bitmap (1 byte per color)
13:15 MTDiscord <Warr1024> [png, as I understand, is really designed for mods receiving images from external scripts, in which case you'd just run your png optimizers there.
13:15 specing_ joined #minetest
13:16 erle Warr1024 as i have been saying, [png seems to be a feature looking for a use case – too inefficient and awkward to handle for small textures, outclassed by dynamic media for large textures.
13:17 kamdard_ joined #minetest
13:17 MTDiscord <Warr1024> In the case of erle's maps, the [png option optimizes never having to write anything to disk, and therefore not having to worry about GC for image files.  Yes, of course there is going to be SOME trade-off for this, at least.
13:17 erle Warr1024 “never having to write anything to disk” is not remotely something i am interested in. i am interested in simple, extensible, robust code.
13:18 erle rubenwardy just to point it out why “delete existing images at startup” does not work: if you migrate from a version of mcl_maps that does not do this to a version that does do this, you immediately make all maps unusable.
13:18 MTDiscord <Warr1024> The use-case for [png is basically to replace the old [combine hacks.  Dynamic media, in theory, could do that too, but it adds the extra complication of having to pick filenames and deal with files on disk.
13:18 erle rubenwardy and this is exactly one of the things why i want people to try implementing it.
13:19 MTDiscord <Warr1024> I would prefer solutions that look complex, i.e. have some complicated internal encoding process, over processes that actually are complex, i.e. have to interface with external storage systems.
13:20 MTDiscord <Warr1024> Honestly, if I were considering maps, I would probably either (1) use [combine, because I'd make my maps more abstract and less representational, or (2) axe the feature.  So I probably can't help you with the how of something I'dn't do myself.
13:21 MTDiscord <Warr1024> People are telling you that you have an option.  You're saying you don't like the option.  Then I guess that means you just stick with what you have.
13:21 erle Warr1024 the problem is, it is quite bad at that. both constructing the string for [png and interpreting it is not easy at all. combine this with a hypothetical [pbm texture modifier, which would be absurdly easy to parse and serialize, human-readable and also be smaller than [png for every bitmap smaller than 10×10 (and probably some that are larger, this is only the bottom boundary)
13:23 erle Warr1024 as i said before, most people telling me i have an option are, for a lack of better word, not competent to evaluate this. as soon as someone says “why don't you try X” together with “i have done this, look at this code”, i am willing to listen much more.
13:23 MTDiscord <Warr1024> [png, [pbm, and [tga are all basically equivalent to me.  Each of them would represent a way to pass an opaque string representing some image data.  In all cases, encoding/decoding is just a function call, because these are all sufficiently well-established formats that I can't imagine a reason to roll my own en/decoder instead of using something already out there.
13:24 Taoki joined #minetest
13:25 erle from a high-level perspective, that might be true, but [pbm is just a bunch of ASCII characters. you do not need to have some random encoder to do write: P1 9 9 010010100010111110010011100010001000001000110101000101101010101100101000110010000
13:25 MTDiscord <Warr1024> If you're tired of getting "incompetent" opinions about it then just stop discussing it.  If you want to be able to discuss it publicly, you'll just have to accept that there will be some noise about it and respond with "thanks, I'll take it under advisement."
13:26 MTDiscord <Warr1024> Honestly I've had a lot of shit suggestions and I actually will honestly put a lot of them on my TODO list, just well below the "realistically will ever actually happen" threshold :-]
13:26 erle (the above is a 9×9 bitmap that you can not represent smaller in PNG)
13:26 erle Warr1024 what's the most common shit suggestion?
13:27 MTDiscord <Warr1024> erle, I would absolutely not manipulate that image in that format.  Writing the encoder myself might be simple, but I'd still probably have that separation.
13:27 erle Warr1024 the reasons to roll your own encoder/decoder are basically either “the encoder does not exist” or “the encoder does not do what i want it to do”
13:28 MTDiscord <Warr1024> Haha, the most common shit suggestions are the ones that either actually make my todon't list, or the ones that actually get implemented as troll or semi-troll features.
13:28 definitelya joined #minetest
13:28 proller joined #minetest
13:28 erle i *definitely* should add a TODONT list hahaha
13:28 erle “frequestly questioned answers”
13:29 MTDiscord <Warr1024> indeed, what your project will NOT do is often as important a part of its identity as what it will.
13:30 MTDiscord <Warr1024> My top "todon't" item is "I will not add anything that already exists."  One of the more common themes I run into is people telling me "you really need to add a way to X" where the response is "clearly you haven't actually tried very hard to X, have you..."
13:30 erle as fleckenstein said, mineclonia is basically defined by that kind of thing. whereas mineclone5 is defined by merging PRs even before the submitter has finished them ;)
13:30 MTDiscord <luatic> @olive can parse [png trivially using modlib ;)
13:30 rubenwardy erle: future compatibility isn't feasible, I wouldn't bother with that
13:30 erle rubenwardy it is feasible. proof: i have already implemented it.
13:30 rubenwardy With file leaks
13:31 erle yeah, but in my defense, every other version of mcl_maps has the same or more “file leaks”
13:31 erle so it's not like i am doing worse
13:31 rubenwardy But generally, making things future compatible isn't feasible because we don't have time machines
13:31 rubenwardy And users also don't even care
13:32 MTDiscord <Warr1024> Leaking files is not a huge issue for MT, marginally, considering that we already "leak" map terrain via players exploring but then not developing sections of the map, i.e. filesystem bloat is already a problem, so you're just adding a couple more drops to that bucket.
13:32 rubenwardy You need to decide on your requirements. There are multiple options here, each with different advantages
13:32 erle rubenwardy, users care very much about their maps. making map art in mineclone games is probably the most cumbersome process in the game, as you need to scout out a 128×128 area, clear it of obstacles and then arrange your painting there so that it is visible from the sky, before you make the map.
13:33 MTDiscord <Warr1024> Servers that actually care about GCing data bloat will probably have some kind of "periodically shut down the server and clear out fringe mapgen terrain" process, and you can just advise them to nuke the map image cache too when they do that...
13:33 rubenwardy Users don't care about forwards compatibility, they care more about backwards compatibility
13:33 erle rubenwardy my number one requirement is to never, ever, ruin any existing user-made content just because it is easier to implement it that way.
13:33 rubenwardy Agreeing with what Warr1024 says though
13:34 erle yeah, that is why i am not very concerned
13:34 erle users are not making tons of maps
13:34 erle i need a plan for when i want realtime maps though
13:34 rubenwardy This was a waste of time
13:34 MTDiscord <Warr1024> Forward compatibility is only approximately solvable at all, as it depends on being able to predict what the future will bring.  All you can really do is make sure you aren't likely to be painted into a corner, and you can't expect to be able to jump forward arbitrarily many versions.
13:34 rubenwardy Absolutely
13:34 erle rubenwardy it was not, because if i want the map to update even with 1hz the filesystem will be full in no time.
13:34 definitelya erle: Users can save portions of the map they care about with worldedit, or other mods.
13:35 erle definitelya, i am talking about handheld maps, not “maps” as in worlds
13:35 definitelya Oh sorry ahah
13:35 MTDiscord <Warr1024> I'd have to see some benchmarks before I am willing to believe that non-contrived map usage scenarios represent a realistic threat to filesystem space...
13:35 definitelya Was distracted
13:35 erle definitelya, no problem
13:35 erle “map” is overloaded here
13:35 erle the map is not the territory hehe
13:35 kamdard joined #minetest
13:35 erle this reminds me of the story of borges about the king who wanted a 100% accurate map of the kingdom
13:36 erle at the end of the story, the map is 1:1 scale
13:36 erle and covers the entire kingdom
13:36 MTDiscord <Warr1024> That's basically how you make a map in NodeCore :-D
13:37 MTDiscord <Warr1024> Not only does it preserves scale, and update instantly, but it also preserves location.
13:39 erle rubenwardy regarding forwards-compatibility, about a third or so of the design considerations in making software i create are not only about “how can i make this easy to update in the future” but also about “if some rando modifies this, how can i make it so that the easiest possible way to implement a new feature does not break compat”
13:39 rubenwardy You Ain't Gonna Need It
13:39 erle i think you misunderstand
13:40 erle i am not designing new features
13:40 erle i am trying to put the thing on rails
13:40 rubenwardy It's hard to anticipate future requirements, doing so is likely to result in overengineering
13:40 erle you still misunderstand
13:40 rubenwardy And bad code
13:40 erle i give an example
13:40 MTDiscord <Warr1024> You actually get better forward-compat from a YAGNI approach, because simpler designs are easier to support from the future end of things.
13:41 erle example: years ago, i created a backend that served JSON code to mobile apps. it is in production with a big company, as far as i am aware, and faster than their own system.
13:41 erle several things i added to it make sure that it is incredibly hard to do stupid changes to the source code.
13:42 erle for example, every output of the system is checked against both a general grammar of permitted outputs and a specific grammar for the specific function being called.
13:42 MTDiscord <Warr1024> I've seen a lot of things done to prevent stupid changes, but so far the only impact I've seen from them has basically been (1) making it harder to do non-stupid changes, and (2) people trying to make stupid changes just have to make stupider changes now to work around the safety measures.
13:42 erle also, the test suite tests every possible code path (there are only a few thousand of them, so it can be done in 30 minutes)
13:43 erle now, a result of this is that if you change a function without actually specifying the permissible outputs, you are going to have a hard time actually running that code.
13:43 erle the reason for that is that if you are doing that, you probably have *no idea* what permissible outputs are.
13:44 rubenwardy That sounds like overly strict integration testing rather than forwards compatibility
13:44 erle which means you skipped the design process, did not talk to the customer, etc. pp.
13:44 MTDiscord <Warr1024> Granted, I tend to work in fields that have rapidly-evolving problems, so maybe there are other areas where problems evolve slowly enough that having highly stable solutions is valuable, but most of what I've seen has been software not changing fast enough, rather than software that changes unexpectedly.
13:44 erle the thing is, this sounds massively overengineered, right?
13:45 MTDiscord <Warr1024> Haha, sounds pretty waterfall.
13:45 erle it was actually developed in an agile way.
13:45 MTDiscord <Warr1024> Yes, it's possible to ritualistically follow agile processes without actually following the philosophy.
13:46 erle it is just that every change to the grammar required both android and ios to sign off on it.
13:46 erle (the app devs i mean)
13:46 erle because the thing advertisis its own grammar.
13:46 MTDiscord <Warr1024> I've found that 90% of the "talk to the customer about their requirements" stuff tends to happen after they've got the product in their hand.  The 10% that you get before that is all either vague, or just outright wrong.  Asking the customer what they want presumes that they have a pretty good idea what that is, and they're still learning it the same as you are.
13:47 erle well, it turns out it is the only “big” application i wrote which to my knowledge had only 2 bugs, ever, in its lifetime, and one of them was entirely inconsequential, while the other was a bug in the python interpreter (thus not my fault and solved with a very ugly manual garbage collection trigger).
13:47 MTDiscord <Warr1024> Unless you're building life support systems, I think that is FAR too few bugs.
13:48 erle well, the joke is
13:48 erle i chose this architecture because the other dev quit
13:48 erle and i *really* needed to have it done
13:48 erle so i could not afford any spare time to fix bugs later
13:49 erle therefore i chose to make it so that it worked 100%
13:49 erle i had a manager who understood that and backed me at every point
13:49 erle IMO only if you have a spare budget you can afford technical debt. because you need to pay it at some point.
13:49 MTDiscord <Warr1024> Honestly if I don't create a new bug at least every few days, then that's a red flag that I'm not working fast enough and I'm investing too much time in too little code.
13:50 erle with any fire-and-forget solution, i.e. where you do not have the chance to fix it later, the debt is not really a debt, it's a trade-off
13:51 MTDiscord <Warr1024> I've never seen having technical debt or not as a choice; it's only ever been a question of how much technical debt can you afford, and how much do you budget for making interest payments vs paying down principal.
13:51 erle yeah, as i said, i could afford exactly zero tech debt
13:51 erle i would probably have developed it in a more “normal” way if there was something like “yeah and then for 6 months you'll do tech support and bug fixing”
13:52 erle anyways, circling back
13:52 rubenwardy Technical debt is a natural part of flexible software development. It's how you manage it that's important
13:52 erle the fun story is that my rigidity in the solution actually hindered someone who was incompetent to make stupid changes
13:53 erle incompetent of the level of “this person is never going to work for this company again, ever”
13:53 erle (someone else's words, not mine)
13:53 MTDiscord <Warr1024> I've seen rigidity stall stupid changes a few times too.
13:54 MTDiscord <Warr1024> The problem of course is that I've seen it also NOT stall it, because people who are going to mess up designing a solution are also going to mess up conforming to existing systems.
13:54 erle given that programmers can have negative productivity, i feel quite proud of having foreseen such a possiblity (albeit not so soon) and doing what i could to make it hard to do stupid shit
13:54 MTDiscord <Warr1024> and I've also seen it stall non-stupid changes plenty, to the point where I've been forced to introduce new stupid in order to make it happen.
13:54 erle in my case, the non-stupid changes were pretty obvious
13:55 erle basically everything that looks like a customer requirement already has a list of desired, i.e. permissible outputs
13:55 rubenwardy I agree with using tools to aid development and quality control, I'm a big fan of linters, type checking, and unit/integ testing. But being so inflexible is very much a waterfall and not an agile thing
13:55 MTDiscord <Warr1024> There's no real such thing as obvious.  For anything that you think is impossible for someone to miss, there are several people out there with beer for you to hold.
13:57 erle rubenwardy it works quite well in agile if the process is structured that way. for example: if you can not just send new JSON without a new schema and the app will not consume it without getting a schema it expects, you are forced to talk to the app dev. more than once this has resulted in “wait, this is hard to parse, please do not overload this field”.
13:57 rubenwardy Having typed schema is fine, this is actually pretty common in rest APIs
13:57 erle rubenwardy basically, i aim to reverse the “people write software that mirrors their communication structure” partially by making the software architecture require communication
13:58 erle well, then ig you agree it is an inflexibility that is overal positive?
13:58 MTDiscord <Warr1024> I'm a big fan of linters and will use them in every project.  Test automation is a lofty goal but as I see it, far more impractical and thus limited in applicability.  Type checking I've only found to be beneficial when a project is larger than the largest scale a single project should ever be; up until then, having to define types seems to cost more than the value I've gotten out of it so far.
13:59 MTDiscord <Warr1024> You're talking about Conway's Law, erle?
13:59 erle yeah
13:59 rubenwardy Typed schema isn't the inflexibility I mean, it sounds like your processes themselves are inflexible. With how you talk about testing, technical debt, and requirements, it sounds like you're working on a missile not an app backend
13:59 MTDiscord <Warr1024> It's a law in the scientific sense, not the legal sense, i.e. it's just a reflection of reality, not a thing you can choose to follow or try to break.
14:00 erle Warr1024 you are right, all of the roadblocks only work when the person/team has constraints. mineclone5 is a good negative example, it is not even compatible with old versions of itself, even if that comatibility would only require a few item aliases or renaming mods or adding code to different mods than they added it to.
14:00 MTDiscord <Warr1024> The most interesting thing about Conway's Law is that when you look at software that's designed and built by an individual, it shows you interesting things about the communication structure within a person.
14:00 rubenwardy Also, personally, I don't necessarily think that app and backend should be separate teams. There should be fullstack that do both, and they should work together on user stories
14:01 rubenwardy This is related to DevOps I guess, which is a philosophy that aims to join devs and operations
14:01 rubenwardy Well, comparable not related
14:01 erle Warr1024 the end result of this is that you can not make a mod that works with mineclone5 and reasonably expect it to work in the future. but since it is engineered as a monolithic ball of mud (i.e. they way it is developed could also be “everything in a single lua file”) they do not particularly care about it.
14:03 erle rubenwardy i see “full stack” devs actually as one of the biggest threats to well-structured designs. they tend to think you can solve architectural warts soemwhere else in the stack.
14:03 erle curiously, this also happens in minetest
14:04 erle i have seen bugs in mods that were solved by running a patched server (instead of fixing it) and by requiring a CSM (instead of fixing it).
14:04 MTDiscord <Warr1024> On the teams I work on, people can be specialized to some extent, but everybody is "full stack" and theoretically can be responsible for anything anywhere in the stack.  There are no front-end devs who don't know how to query a database, or mid-tier folks who don't know how to do some CSS.
14:04 erle and i have written mods myself solely to avoid buggy minetest behaviour.
14:04 rubenwardy Yeah exactly Warr1024
14:04 erle Warr1024 it's the question of what hat you are wearing at the time. you can be “full stack” in experience, the danger is “everyone is allowed to change everything without consulting the rest of the team”.
14:05 rubenwardy General software devs but with specialisation
14:05 erle basically, mandatory reviews for everyone
14:05 MTDiscord <Warr1024> I have never worked on a team with mandatory reviews.  We've considered it, and most of the time people are pushing in that general direction ... but it's usually just out of budget.
14:06 rubenwardy 🚩🚩
14:07 Lunatrius joined #minetest
14:07 MTDiscord <Warr1024> I guess I'm just sort of past thinking about what I would do in an ideal team if we had unlimited budget.  Everything is a trade-off and I always think about balancing the costs.
14:07 erle btw, in my experience, CSS is the weirdest thing: there exist a TON of “web developers” who have only a very casual understanding of how CSS works and prefer to use some CSS frameworks, openly admitting they actually do not unterstand the cascade.
14:07 MTDiscord <Warr1024> ruben, not having code reviews is not a red flag at all.
14:07 erle rubenwardy, Warr1024 am i in a bubble or is this common for you too?
14:07 MTDiscord <Warr1024> It just requires that your team structure its projects in such a way that no single component can bring down the whole operation.
14:07 erle Warr1024 “no code reviews in the budget” is basically “customer will not even pay for the minimum amount of QA”
14:07 erle oh, i see.
14:07 rubenwardy We limit tasks to max 6 hours, and the pull request for each task must be reviewed by a coworker
14:08 erle do you, by any chance, write erlang or elixir?
14:08 MTDiscord <Warr1024> Yeah, customers not paying for QA is pretty common where I work
14:08 rubenwardy [15:07] <+MTDiscord> <Warr1024> It just requires that your team structure its projects in such a way that no single component can bring down the whole operation.
14:08 rubenwardy If you can't trust your coworkers, they shouldn't be employed
14:08 MTDiscord <Warr1024> Shit, I'm pretty sure I've had customers who simply don't check whether they product actually worked or not even :-)
14:08 erle i have been lucky enough to have bosses and managers who will tell the customer that the customer is always wrong if a profesisonal tells them they are.
14:08 rubenwardy Also, we don't give our clients the option not to pay for QA
14:08 erle rubenwardy that's the spirit
14:09 erle i do security now, so “just put security in the budget from the start and say ‘we always do that’” is a thing
14:09 MTDiscord <Warr1024> If you have customers who actually reliably care whether the thing you deliver them works or not, I don't know whether that makes you lucky or unlucky :-D
14:09 rubenwardy I wouldn't accept a job offer from a company that didn't do code review lol
14:09 erle Warr1024 may i ask what type of software you create? i have only worked on one project where people would die if it does not work, but many where people would lose money in that case.
14:10 erle and i only did a small part in the “people would die if it does not work” thing, design for a security feature that fails-open, i.e. it goes into the “no one dies” state if the security bricks itself.
14:11 erle the customer was very insistent on this
14:11 erle and i admire that
14:11 erle many customers are totally fine with a device playing dead weight if a single bit flips lol
14:12 MTDiscord <Warr1024> I work in the events and meetings business, principally.  The requirements can change dramatically at any time.
14:13 MTDiscord <Warr1024> People may gain or lose a lot of money in the process, but I'm pretty doubtful that anyone really knows which of the changes they make results in that.
14:13 erle hahaha
14:14 MTDiscord <Warr1024> I'm lucky enough to avoid most of the thrash that happens on the customer side of it, and work on more R&D sorts of projects, i.e. product lines that hopefully carry over across contracts, but it's still very speculative and we're researching the market as we go, rather than designing to fixed known requirements.
14:14 rubenwardy I work in aerospace and misc other engineering industries. No safety critical stuff though, that's another department. I do desktop and web app/tools. So full-stack with web and desktop
14:14 rubenwardy I imagine that events and meetings was hit about as hard as aerospace in 2020
14:15 MTDiscord <Warr1024> Yeah, 'twas rough, though I was lucky enough to avoid the axe.
14:15 rubenwardy yeah same
14:15 rubenwardy I went from one of the most junior, to the most senior
14:16 erle rubenwardy not saying i am looking for a job rn, but if you know where to look for part-time remote work that appreciates being committed to stuff working well, where would that be?
14:16 erle rubenwardy klingon promotion? :D
14:16 rubenwardy sounds like you want safety critical, idk about remote work though
14:16 erle i don't want safety critical
14:16 rubenwardy safety critical is where you get the stuff where everything is tested to strict degree
14:16 erle i basically want to write software where a) no one dies if it malfunctions b) no one laughs at me if i make sure it 100% works (without taking excessively long)
14:17 erle because i have learned that people will make fun of me if i ensure everything works 100% even if it takes the same amount of time as the sloppy solution
14:17 erle i think it is an ego thing or so
14:17 erle “you think you are so good with your boring reliance on tests” etc. pp.
14:17 MTDiscord <Warr1024> "I don't want to work on software that people's lives will depend on because I'm too scared I'll screw something up and hurt someone" is pretty much EXACTLY the kind of thing that I'd think someone building safety-critical software will want in an employee.
14:17 erle i prefer software being EXTREMELY boring.
14:18 erle and that also ties into the future-proofing thing
14:18 MTDiscord <Warr1024> If you don't choose safety-critical stuff, tough luck because it sounds like it's chosen you :-D
14:18 erle i prefer something that obviously has no bugs but looks “ugly” to a “clever” solution that has no obvious bugs
14:19 rubenwardy safety critical is extremely boring
14:19 MTDiscord <Warr1024> You're like the exact opposite of me :-)
14:20 erle oh, btw, “build systems” is a much more widespread topic than “how to make a maps mod for minetest” where a lot of people have assumptions and suggestions that a) seem obvious to them b) are wrong c) are obviously wrong when you try to implement the thing you suggest
14:20 erle i bet you know topics like these too!
14:20 erle bc i would like to have a catalog from others
14:20 rubenwardy I've literally never had the problems you mention, I don't get it
14:21 erle rubenwardy the general form of the story is dev A making something that looks complex but then dev B comes and is “why don't you just …”, that's not too rare in my work.
14:23 erle and then dev A either explains it (for example, if dev B asks it in a review) or is dismisisve (i.e. “the reasons are X / Y / Z – if you do not believe it, try to implement or profile it yourself then you'll see”)
14:23 erle in my experience, there are just some topics where this happens again and again and again
14:23 erle and others where this never happens
14:23 erle dismisisve → dismissive
14:25 rubenwardy so, about the non-existing dependencies - is that like when you install a library that Minetest optionally uses, but it doesn't detect it? Or are there other cases?
14:26 erle it's non-existence dependencies, not non-existing dependencies
14:28 MTDiscord <Warr1024> In my experience, when a dev is trying to do A, and another dev comes along and suggests "why don't you just do B", then a discussion tends to ensue that results in them realizing that the best answer is probably C.
14:29 erle rubenwardy you probably have issues caused by non-existence dependencies but do not notice them due to neither you, nor the build system being aware of it.
14:29 MTDiscord <Warr1024> In cases where it turns out that A really WAS the right answer, this is one of those cases where if the why of A is not documented then that's a bug.
14:30 erle rubenwardy the most common case for that is when you are including a header file and the preprocessor found it in an earlier build, but then you install something so that it would have been found before the current thing, but due to the build system not realizing that stuff is not up to date, it does not re-check.
14:30 rubenwardy so the import path of a header file changing?
14:31 erle rubenwardy now, there are a lot of objections, i have probably heard all of them that come down to “but this case is so rare”. yes, it's true, it is, but there are a lot of cases like that. i am only listing the one most easily to grok.
14:31 erle rubenwardy wait, i have a writeup for that
14:31 rubenwardy this seems like a problem that would face more cmake C++ projects, so there should be general resources for this
14:32 rubenwardy and if not, maybe it's not a big problem
14:32 rubenwardy you can avoid the problem if you use <> and "" correctly, by marking system imports as SYSTEM so that "" doesn't pick them up
14:32 erle rubenwardy this should clear it up https://web.archive.org/web/20170326021857/http://news.dieweltistgarnichtso.net/posts/redo-gcc-automatic-dependencies.html
14:34 erle rubenwardy the funny thing about this problem is that there are actual stages of grief that have been the same for everyone i have spoken to about it. it always starts with “this must be such a common problem, but i haven't seen it being addressed, so it must not be very important or impactful” and always ends with “this is everywhere”.
14:34 rubenwardy lol
14:35 erle the intermediate stages are stuff like “okay, this is a theoretical problem, but not particularly widespread”
14:35 erle and “this is only a problem with C or C++ and only if you are not careful”
14:35 erle and “okay, this is widespread, but does not result in breakage in the real world”
14:36 erle and “this results in breakage in the real world, but not in commonly used software”
14:36 rubenwardy I'm not a fan of globally installed libraries personally, it results in so much breakage - especially after distros update. Computers have enough memory these days
14:36 erle and “this results in breakage in commonly-used software, but my own projects are unaffected”
14:37 erle i'd say you are at the “this is only a problem if you are not careful” stage
14:37 rubenwardy I want fewer problems, and more solutions
14:37 sfan5 the truth is that most projects have accepted that this can happen and are not willing to switch to some obscure build system to avoid occasional errors
14:37 rubenwardy and the solution cannot be switching from CMake
14:38 rubenwardy using something like ninja instead of make would be fine though
14:38 erle sfan5 no, the truth is that most projects have no idea that this is happening, unless it is pointed out and instead of switching build systems, the generally accepted solution is to rebuild everything every time 100%.
14:38 rubenwardy I use ninja with mt already
14:38 erle it is my favourite story to troll C or C+b devs btw
14:38 sfan5 that is exactly "projects have accepted that this can happen (and developed workarounds)"
14:38 erle ninja actually rejected the patch that would fix the most pressing issues i have described.
14:39 erle i have mentioned that before
14:40 erle i also mentioned before that it is not about switching to a particular build system, but to switch to a particular class of build systems, or rather, away from a class of build systems that, by design, are unfixable.
14:40 erle again, the paper “build systems a la carte” will help you understand the tradeoffs involved
14:40 erle https://www.microsoft.com/en-us/research/uploads/prod/2018/03/build-systems.pdf
14:42 erle thank you for supporting my assortion “build systems are a topic where people have lots of opinions, even if they never implemented one” ;)
14:42 rubenwardy yw
14:42 rubenwardy Minetest isn't a build system though
14:42 rubenwardy we want one that works well enough to not distract us from other issues
14:43 erle me too
14:44 erle in fact, the reason why i got into build systems at all were both spurious builds and wrong builds
14:44 erle i was doing a podcast many years ago
14:44 erle and converting it was the job of a build system
14:44 erle now, if you do an overzealous build it takes a long time to transcode stuff, needlessly. and messes up file caching.
14:45 erle if you misbuild, you get like, half an episode.
14:45 erle it was much more obvious than with C or C++ code
14:45 erle where a miscompilation can lurk for years or decades
14:46 erle so i decided to dive into the topic, noticed the issues and did the bare minimum to solve those for myself, only to realize others had done this too.
14:47 erle for example, for years daniel j. berstein has been writing his makefiles in a style that suggests he has an unreleased build tool that is solving most or all of the issues i have complained about.
14:48 erle to someone who has researched build tools this is about as obvious as if someone who usually writes C++ writes a python program
14:48 erle or someone who writes LISP writes a shell script
14:49 erle DJB is famous for not being an especially social person though. didn't answer my email and i bumped twice into him, never got his source code.
14:49 erle i later realized that libowfat was only written because libdjb had not been public domain for a long time
14:50 erle despite people asking (it eventually was released as PD i think)
14:52 erle anyways, the end resultis that i can run circles around ninja with relatively few lines of shell script – and so can anyone else once they accept that resolving and building dependencies in a different way than make does it (toposort followed by execution) is applicable to stuff like minetest mod loading order or module imports in programming, but not to stuff like C or C++ compilation or most use cases.
14:53 erle rubenwardy was https://web.archive.org/web/20170326021857/http://news.dieweltistgarnichtso.net/posts/redo-gcc-automatic-dependencies.html clear enough btw?
14:54 erle sfan5 btw “rebuild everything 100%” solves the problem of build correctness, but it is the slowest method by far, that is why i am not a fan of it.
15:08 Guest9173 joined #minetest
15:11 Guest9131 joined #minetest
15:36 erle rubenwardy Warr1024 btw, the current state of dynamically updating maps is limited to points of interests via banners, as that way i only need to save some coordinates in the map item. screencast here: https://mister-muffin.de/p/YDsb
15:37 erle if you have any ideas about how this could be more interesting, tell please
15:37 ronoaldo joined #minetest
15:38 erle (if the player marker is not an arrow, but a circle at the edge, then you are outside of the area)
15:39 erle i have thought about having the banners be named POIs, but then i'd need to render text on the minimap and that seems disgusting UX
15:40 erle also, i am thinking about making a stripped-down version of this for minetest game, but for that i'd need to know if that even makes sense. after all, maps are really cool only with item frames or when there are treasures to be found. i mean, they still serve as “here is an interesting location for you” items.
15:41 erle but map art needs item frames obv
15:58 grouinos joined #minetest
16:03 Sven_vB joined #minetest
16:35 fluxionary joined #minetest
17:02 Talkless joined #minetest
17:04 debiankaios joined #minetest
17:13 Oblomov oh nice there's an official minetest presence on mastodon. thanks rubenwardy
17:13 ___nick___ joined #minetest
17:14 rubenwardy Double the number of followers than in Twitter too
17:15 sobkas joined #minetest
17:18 Oblomov lol
17:28 ___nick___ joined #minetest
17:31 ___nick___ joined #minetest
17:50 grouinos joined #minetest
18:43 grouinos joined #minetest
18:43 MinetestBot [git] appgurueu -> minetest/minetest: Docs: Recommend `self.name` (#12239) 53c70b5 https://github.com/minetest/minetest/commit/53c70b5f27f2978029cb40845a82b681c844ec42 (2022-05-09T18:41:47Z)
18:43 MinetestBot [git] appgurueu -> minetest/minetest: Fix Minetest blaming the wrong mod for errors (#12241) 089797d https://github.com/minetest/minetest/commit/089797dbe68679b744304ba016e08d30df15ab28 (2022-05-09T18:42:43Z)
18:45 MinetestBot [git] appgurueu -> minetest/minetest: HUD: Update selection mesh every frame (#12270) c2898f5 https://github.com/minetest/minetest/commit/c2898f53bc3eb1f22daf93b37608156885fe5c5a (2022-05-09T18:43:47Z)
18:45 MinetestBot [git] SmallJoker -> minetest/minetest_game: Carts: Improve movement behaviour (#2951) 38307da https://github.com/minetest/minetest_game/commit/38307da22a6c74b45f021ad627b21b73672dfe14 (2022-05-09T18:44:06Z)
19:22 MinetestBot [git] sfan5 -> minetest/minetest: Add more Prometheus metrics (#12274) f5a8593 https://github.com/minetest/minetest/commit/f5a8593b11382b70ee969dc93b71f34fb0cad5df (2022-05-09T19:20:58Z)
20:20 Verticen joined #minetest
21:33 Boingo joined #minetest
22:00 Sven_vB joined #minetest
22:07 Pokey joined #minetest
22:19 Gustavo6046_ joined #minetest
22:21 beanzilla joined #minetest
22:25 riff_IRC joined #minetest
22:34 panwolfram joined #minetest
23:07 AliasAlreadyTake joined #minetest
23:27 settl3r[m] As a server owner, can i somehow detect who has their chat deactivated (with F2) ?
23:28 settl3r[m] Or do these clients look the same like those which just ignore the (public) chat?
23:29 MTDiscord <Warr1024> Pretty sure there is no technical way to tell
23:30 MTDiscord <Warr1024> you would have to come up with something you could send via chat that they would definitely respond to if they saw it, but if they're specifically trying to make you think they have chat turned off (or create plausible deniability at least) then you can't be sure of that either.
23:31 settl3r[m] Is there a signal which i (as hypothetical admin) reaches every client, even those who have used F2?
23:32 settl3r[m] * hypothetical admin) can send which reaches every
23:32 MTDiscord <Warr1024> As a mod author, you can send HUDs.  Those reach anyone who hasn't turned off the HUD, which would make playing difficult normally so people are less likely to do that continuously.
23:33 settl3r[m] ah.. or i could send a PM, these cant be ignored, can they?
23:33 MTDiscord <Jordach> uses the chat window
23:33 MTDiscord <Warr1024> You could also send a formspec, which can be dismissed by can't be prevented preemptively, and you can spawn an entity in front of or around them, which cannot be blocked but will also be visible to anyone else nearby.
23:34 MTDiscord <Warr1024> If you really need to get someone's attention, a kick will accomplish that, though you can't guarantee they'll see the kick message (--go users don't see those).
23:34 MTDiscord <Warr1024> Now I'm curious what the X problem is for this.
23:37 settl3r[m] Is there a way to check, if someone uses a bot?
23:38 settl3r[m] * a bot (-script) ?
23:38 MTDiscord <Warr1024> (1) subject your players to CAPTCHAs and (2) hope that there are still a couple of years before AI tech advances past human intelligence.
23:38 MTDiscord <Warr1024> If you're worried about stuff like cheaty CSMs, you'd need to find an anticheat mod.  I think there are a number of them out there in various states of incompletion.
23:39 MTDiscord <Warr1024> Also beware that some players use cheaty CSMs due to actual legit accessibility problems so you may be introducing discrimination problems to your server if you're too aggressive against them.
23:39 settl3r[m] i heard, that MT still has the problem of disconnection-lag, someone told me that they could glitch-dig through protected blocks..
23:40 settl3r[m] ..thus reaching areas which are supposed to be unreachable.
23:40 MTDiscord <Warr1024> Protection can mostly protect areas against players illegitimately modifying things, but generally doesn't work for denying them access to move through those spaces.
23:41 MTDiscord <Warr1024> If you want to protect a building, you need to protect the whole thing, not just the outer shell, as it's not hard for players to glitch through that outer shell
23:41 settl3r[m] How big should the outer shell be, t0 100% prevent access to the inner area?
23:41 MTDiscord <Warr1024> yes, 100%
23:41 settl3r[m] s/big/thick/
23:42 MTDiscord <Warr1024> 100% thick
23:42 settl3r[m] s/big/thick/, s/t0/to/
23:42 settl3r[m] 100 blocks wide?
23:42 MTDiscord <Warr1024> 100% wide
23:43 settl3r[m] eg. let's say we want to deny players access to a travelnet booth, how big should the wall around it be?
23:43 settl3r[m] and what material?
23:43 settl3r[m] obsidian? titanium?
23:44 MTDiscord <Warr1024> you won't be able to prevent players from getting into the travelnet booth; you'll need to prevent them from being able to activate it
23:44 settl3r[m] * obsidian, titanium, granite?
23:44 MTDiscord <Warr1024> material doesn't really matter much, it's the protection mod that matters.
23:44 MTDiscord <Warr1024> and of course whether or not this travelnet mod is going to cooperate with you
23:45 settl3r[m] so the only real protection would be to remove this travelnet booth right? so we had to use an alt, who puts it into his inventory, for instance
23:45 MTDiscord <Warr1024> What's the X problem here?
23:46 MTDiscord <Warr1024> Are you trying to make a secret member-only area?  Are you the server owner and have the power to install mods?
23:47 MTDiscord <Warr1024> Might be simpler to just make your own teleporter that only people with certain privs can access...
23:47 settl3r[m] no, i'm talking about two different issues, sorry
23:47 MTDiscord <Warr1024> other players can step in but it doesn't move them if they don't have the priv
23:47 settl3r[m] (the first was the chat issue, the second is general area security)
23:48 settl3r[m] no in the second problem, i'm not the admin, but just a normal player of a server
23:48 MTDiscord <Warr1024> I'm pretty sure general area security isn't a thing in MT.  You need specific threats to defend against.
23:49 MTDiscord <GoodClover> If you want to be guaranteed players can't access an area, teleport them out if inside some defined area. Protection mods can prevent Interaction (if your other mods co-operate).
23:49 settl3r[m] ok, let's say i had enough protection blocks and granite to create a wall of 11 meters thick around a travelnet booth (in all 6 directions), how would another player 'glitch through' that 11m thick granite wall?
23:49 settl3r[m] * 11m thick protected granite wall?
23:50 MTDiscord <Warr1024> As far as I know there's no upper bound to how badly a player can abuse glitches and lag to pass through something or access something they shouldn't, so you would need to design anything to tolerate that.
23:50 settl3r[m] if they started to dig through the outermost layer, the wall would quickly snap back, right?
23:51 MTDiscord <Warr1024> Teleporting a player out when they're somewhere they shouldn't be is of limited use since (1) they may still be able to be inside for long enough, pre-teleport, to do some harm, and (2) clients control player movement anyway so it's not hard to just warp back in usually.
23:51 MTDiscord <GoodClover> a physical wall isn't the correct solution
23:52 MTDiscord <Warr1024> If you rely on protection blocks to protect your stuff then you'll have to rely on them throughout your entire property
23:52 settl3r[m] ok, so i have to use an alt, to remove that booth into his inventory. That would be a perfect secure solution, right?
23:52 settl3r[m] s/perfect/perfectly/
23:52 MTDiscord <Warr1024> and of course they only protect against what they protect against, which may or may not be enough
23:52 MTDiscord <GoodClover> If teleportation and interaction prevention don't suffice the  I think we're screwed
23:53 MTDiscord <Warr1024> I mean if it were me, I'd just lay in wait and murder that alt and take the booth...
23:53 toshiba joined #minetest
23:54 settl3r[m] ..but you cant use the booth to teleport to the other travelnet, as it has to be placed by the correct owner to work.
23:54 MTDiscord <Warr1024> Then what happens if I just take it?
23:54 MTDiscord <Warr1024> I can't go there, but now neither can you
23:57 settl3r[m] ok, i have to explain the situation a bit, that you understand the setting:
23:57 settl3r[m] the main base is located many kilometers away, and has a travelnet A.  A connects to travelnet B, which is located deep in a mine (kilometrers below the ground) and there is no outer entrance to that mine. The mine can only be accessed by teleportation through that travelnet.
23:57 settl3r[m] So there really isn't that much player traffic at station B.
23:57 settl3r[m] s/kilometrers/kilometers/
23:58 settl3r[m] The only players who will ever see it, are those which dig horizontal tunnels underground to explore it, and find it by (very rare) accident.

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