Minetest logo

IRC log for #minetest, 2022-02-18

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

All times shown according to UTC.

Time Nick Message
00:00 Gustavo6046 I think MCl5 doesn't have an IRC bridge, soo https://git.minetest.land/MineClone5/MineClone5/issues/213
00:03 erlehmann umbrella issues are a bad idea from a project management POV, but what do i know
00:03 erlehmann Gustavo6046 can you make hopperdupe more reliable please?
00:04 Gustavo6046 hopperdupe?
00:04 erlehmann its so much work
00:05 erlehmann yeah, when the hopper dupes your items randomly
00:05 Gustavo6046 erlehmann, yeah it's generally better to have each change as its own thread or issue, but they're a cluster of small changes that probably don't need a lot of individual attention so I figured this was fine
00:05 erlehmann i think you are downplaying your contributions
00:05 Gustavo6046 larger changes will have their own issues and PRs
00:05 Gustavo6046 plus, it's an excuse to use markdown tables :D
00:05 erlehmann but ok
00:05 Gustavo6046 as for hopper dupes, I'm unaware of those
00:05 erlehmann lol markdown
00:05 erlehmann oh
00:05 erlehmann well
00:05 Gustavo6046 i mean tables in general
00:06 erlehmann ok so about hopperdupe, just get a stack of hoppers
00:06 erlehmann build a tower
00:06 erlehmann then dig them again
00:06 erlehmann then do it again and again
00:06 erlehmann at some point you will have 1 hopper more than before
00:06 Gustavo6046 o.o
00:06 erlehmann implying a dupe
00:06 Gustavo6046 that is bad
00:06 erlehmann yes, it should be triggered more reliably
00:07 Gustavo6046 no!
00:07 Gustavo6046 I think it's a hopper node sucks in a hopper item
00:07 Gustavo6046 but one that is already being picked up
00:07 erlehmann oh you are fast lol
00:07 erlehmann yes that's it
00:07 erlehmann i have to do precise movements
00:07 Gustavo6046 is there a grace time between an item being picked up (and counting to inventory) and despawning in which a hopper can suck it in?
00:07 erlehmann to get the dupe
00:07 erlehmann but the towering thing works fine
00:07 Gustavo6046 I will make it reliable... reliably impossible :D
00:07 erlehmann but people will hate you for it!
00:08 erlehmann :P
00:08 Gustavo6046 I take it! xD
00:08 erlehmann ok well i give you one more info
00:08 Gustavo6046 thanks erleh for shining that insight on me!
00:08 Gustavo6046 oh
00:08 erlehmann someone broke it in mineclone5
00:08 erlehmann or mineclone2
00:08 erlehmann but hopperdupe is not in mcla i think
00:08 Gustavo6046 hmm
00:08 erlehmann that should narrow it down
00:08 Gustavo6046 you want me to merge them to keep the codebases "in sync"?
00:08 Gustavo6046 I was thinking to figure a way to detect if any given item entity was "taken"
00:09 erlehmann no, i want you to figure out how to dupe more stuff lol
00:09 erlehmann dw i'll make a really mean antidupe too
00:09 erlehmann i figured out that anvilduped nodes have an easy to detect corrupted value in their meta
00:10 Gustavo6046 ah ha!
00:10 Gustavo6046 item_entity.collected
00:10 Gustavo6046 nvm
00:10 Gustavo6046 that's for orbs
00:10 erlehmann please, if you ask who has told you the dupe
00:10 erlehmann claim it was the player ASKI
00:11 erlehmann i have a grudge
00:11 erlehmann he asked me how to cheat
00:11 erlehmann :P
00:11 erlehmann and was like “if you do not tell me how to cheat, i shoot your friend with arrows of harming”
00:11 erlehmann ok so
00:11 Gustavo6046 huh
00:11 Verticen joined #minetest
00:11 erlehmann it's a little kid
00:11 Gustavo6046 _removed is set to true in the collection subroutien in ENTITIES/mcl_item_entity/init.lua
00:11 erlehmann my revenge was, i mentioned it earlier
00:12 erlehmann making holes in the bedrock roof on kay27 server
00:12 Gustavo6046 lol
00:12 erlehmann and putting signs there implying ASKI had made the holes
00:12 Gustavo6046 ahaha
00:12 Gustavo6046 nice
00:12 erlehmann oh and one hole has a waterfall
00:12 Gustavo6046 that's a way to exact your revenge
00:12 erlehmann yes i hope ppl go on ASKIs nerve about how to break bedrock
00:13 erlehmann i might actually have broken the most amount of bedrock among the mcl* game servers lol
00:13 erlehmann not sure
00:13 AliasAlreadyTake joined #minetest
00:13 erlehmann if you find a big hole in the roof on kays mcl5 server at zerozero, say hi from me ^^
00:13 erlehmann after i made it, i actually patched it up again
00:13 erlehmann and hid a lot of tnt there
00:14 erlehmann and put a button somewhere
00:14 erlehmann i stood nearby when someone wondered what the button did
00:14 erlehmann it blew up the roof of course!
00:14 Pexin this is why keep all your items in backpacks
00:15 Gustavo6046 hehehe
00:16 erlehmann keep all your bedrock in your pocket
00:16 erlehmann Gustavo6046 so about hopperdupe
00:16 erlehmann can you reliably trigger it?
00:17 erlehmann mmhhh
00:17 Gustavo6046 I haven't tried
00:17 erlehmann i think only one of the three anvil dupes is unfixed
00:17 erlehmann might need a new dupe
00:17 Gustavo6046 is it the stacking one?
00:17 Gustavo6046 ...are you suggesting me to sneakily introduce a bug?
00:17 erlehmann hey, copying books is an intended game mechanic
00:18 erlehmann i mean books stack
00:18 Gustavo6046 one so cryptic and invisible in the code that it'll never be actually fixed
00:18 erlehmann so i have a stack of 25 books
00:18 Gustavo6046 hmmm
00:18 Gustavo6046 I think I'll apss
00:18 Gustavo6046 pass
00:18 Gustavo6046 erlehmann, ah
00:18 erlehmann and then i put an enchanted book in the second slot
00:18 erlehmann and then i have 25 enchanted books
00:18 erlehmann pretty simple lol
00:18 Gustavo6046 right
00:18 erlehmann get your MAX LEVEL enchantments while you still can
00:18 erlehmann wuzzy claimsed it was a mistake lol
00:18 erlehmann :P
00:18 Gustavo6046 lol
00:18 Gustavo6046 I can't
00:19 erlehmann you can't ENCHANT?
00:19 Gustavo6046 I can!
00:19 erlehmann nice
00:19 Gustavo6046 Just don't have enough book cases for the max level stuff yet
00:19 erlehmann just dupe some books
00:20 erlehmann using some other dupe
00:20 erlehmann e.g. hopperdupe
00:20 Gustavo6046 I think I'll pass
00:20 erlehmann funniest dupes are the sawing table dupes actually
00:21 erlehmann like cut wood into tiny pieces, but everyone of them has the same burntime as the input itemstack and stuff like that
00:23 kabou Gustavo6046 I made a composter, but I have a problem getting it to work with hoppers
00:24 erlehmann https://github.com/minetest-mods/moreblocks/pull/173
00:24 Gustavo6046 kabou, that might be the case if a composter does not have an inventory internally.
00:24 Gustavo6046 I'll look into that later
00:24 erlehmann ha, kabou i told you it should have one!
00:24 kabou well, brewing stands do not interact with hoppers either afaics
00:24 kabou composters have an additional issue
00:25 erlehmann look, banners have an inventory too
00:25 kabou they only accept items that are compostable
00:25 erlehmann yeah what's the issue with that
00:25 erlehmann the items do not go into the inventory
00:25 erlehmann oh wait
00:25 erlehmann you need TWO inventories
00:25 erlehmann one input, one output
00:25 kabou how to get hoppers to only push items that are compostable into composters?
00:25 erlehmann new container type?
00:26 erlehmann also where is group compostable
00:26 erlehmann that contains the chance
00:26 erlehmann wouldn't that be cool
00:26 erlehmann i mean stuff is flammable too
00:27 kabou erlehmann you're probably correct
00:27 erlehmann nice
00:27 Gustavo6046 do you need to do get_luaentity() on an item entity in order to get item-specific fields?
00:27 erlehmann refactoring incoming
00:27 kabou so GROUPS.md needs updating
00:27 Gustavo6046 like fields defined in the item's code
00:27 erlehmann kabou, make items have a group compostable, then make a container type that can not contain specific things, like shulkers. a hopeer will not put a shulker into a shulker (anymore).
00:28 Gustavo6046 erlehmann, does the hopper stack dupe work in mcl5?
00:28 erlehmann i hope that helps
00:29 kabou that means updating all items to have a group compostable value and updating mcl_hoppers to know about it
00:29 erlehmann Gustavo6046 i told you it is hard to trigger
00:29 erlehmann Gustavo6046 i am pretty sure it works, have you tried?
00:29 Gustavo6046 erlehmann, no I didn't try, I'm saying ebecause there seems to be code that would make it impossible for hoppers to suck in items already collected by the player
00:29 Gustavo6046 the collection code sets _removed=true on an item entity
00:29 erlehmann well i guess it's a race then
00:29 Gustavo6046 and the hopper code checks if it's set
00:29 Gustavo6046 a race condition?
00:29 erlehmann yes
00:29 erlehmann or was it changed recently?
00:29 Gustavo6046 well, turns out hoppers set the itemstring to ""
00:29 Gustavo6046 and the collection code ALSO checks for that
00:29 Gustavo6046 collection by player that is
00:30 Gustavo6046 but alright, I'll set _removed to true in hopper code too
00:30 erlehmann 1 item 2 hoppers lol
00:30 erlehmann no no no
00:30 erlehmann you need to recreate
00:30 erlehmann check that it works first
00:30 erlehmann do not take my word for it
00:30 erlehmann i have been wrong before!
00:32 Gustavo6046 well, in either case the fact _removed isn't set to true when a hopper collects an item is still concerning
00:32 v-rob joined #minetest
00:32 erlehmann please check first
00:32 Gustavo6046 because in the future, a commit might unwarily trigger a regression which reintroduces the hopper dupe!
00:32 Gustavo6046 so I'll do it either way
00:32 erlehmann before you steal all the items
00:32 erlehmann NOOOO you should test
00:32 erlehmann it was a mistake to ask you to improve the feature
00:33 erlehmann i will never ask you to make a dupe better again!
00:33 erlehmann oh hmm
00:33 erlehmann maybe one
00:33 erlehmann can you improve firedupe?
00:33 Gustavo6046 what in the...
00:33 Gustavo6046 oh is this game broken
00:33 Gustavo6046 I don't want it to be broken anymore
00:33 kabou Gustavo6046 https://minecraft.fandom.com/wiki/Hopper#Container_interactions
00:33 erlehmann you probably didn't even know waterdupe
00:33 erlehmann the best dupe i knew only needed cobble and wood lol
00:34 kabou consider those when refactoring/improving hoppers
00:34 erlehmann hoppers, or shall we call them “dupers”
00:34 Gustavo6046 kabou, well, the current state of the code has it so that sideways hoppers only put items into containers beside them
00:34 Gustavo6046 I think
00:34 Gustavo6046 yeah
00:35 kabou I'm about to fall asleep
00:35 Gustavo6046 aw
00:35 kabou hope to to speak you guys soon again
00:36 Gustavo6046 see you kabou!
00:37 Gustavo6046 erlehmann, it seems from the chest code that double chests have two separate invs, top_inv and bottom_inv
00:37 kabou Gustavo6046 check out https://git.minetest.land/Mineclonia/Mineclonia/pulls/281 if you want to help me think about how to get composters to work with hoppers
00:37 kabou good night everyone!
00:37 Gustavo6046 kabou, erlehmann gave some good ideas, I just think they need investigation
00:37 Gustavo6046 see you! :)
00:37 Gustavo6046 hey, that's Mineclonia, not MCl5
00:38 kabou oh I have a PR for mineclone2 as well
00:38 Gustavo6046 uh, I think mcl2 is kinda dead
00:38 kabou kay27 already merged the PR for mineclone5
00:38 Gustavo6046 I prefer mcl5's development style
00:38 Gustavo6046 ah
00:38 Gustavo6046 neat!
00:39 kabou updates are here: https://git.minetest.land/kabou/MineClone5/src/branch/composters
00:40 kabou anyway, i'm falling over rn
00:40 kabou bye!
00:40 Gustavo6046 aw
00:40 Gustavo6046 cya!
00:40 Gustavo6046 sleep well!
00:40 kabou nice alking to you
00:40 Gustavo6046 same! ^^
00:40 kabou talking
00:43 erlehmann <Gustavo6046> I prefer mcl5's development style
00:43 erlehmann well
00:43 erlehmann kay27 merged kabous hoppers immediately
00:43 erlehmann whereas mcl2 and mcla wait until the submitter is actually finished with the feature lol
00:54 Gustavo6046 well, he could have added WIP: to the title
00:54 Gustavo6046 I did with my changes till I felt like they were good enough
01:00 erlehmann Gustavo6046 i think you misunderstand
01:00 erlehmann https://git.minetest.land/MineClone5/MineClone5/pulls/210
01:00 erlehmann >  WIP: mcl_composters initial commit #210
01:00 ShadowBot https://github.com/minetest/minetest/issues/210 -- Cannot connect to local (stand alone) server "failed to emerge player"
01:01 erlehmann thanks for nothing, shadowbot
01:01 erlehmann Gustavo6046 since you like kay27 development style of moving fast and merging half-finished stuff, i bet you have no issue with this behavior
01:01 erlehmann :P
01:01 erlehmann i am jokings of course
01:04 olliy joined #minetest
01:09 onehittoaster For the past 25 years I have developed software using hand-crafted, (no autoconf bullshit) makefiles.  Today I tried premake (based on lua).  I am seriously considering adopting premake.
01:17 erlehmann onehittoaster try redo
01:18 erlehmann onehittoaster http://news.dieweltistgarnichtso.net/bin/redo-sh.html (thank me later)
01:21 onehittoaster um, no.  bash is fine for shell scripts; I'm not going to use it for a complex build-system with lots of transitive build steps.
01:21 erlehmann i think you are mistaken
01:22 erlehmann onehittoaster first, this has nothing to do with bash
01:22 erlehmann you can, in fact, write your dofiles in lua
01:22 erlehmann if you so desire
01:23 erlehmann second, premake seems to have similar failure modes as cmake.
01:23 erlehmann basically, every build system that claims to generate a complete dependency graph before the build is lying to you
01:23 erlehmann bc it is impossible for the general case
01:24 erlehmann well, forget about it
01:24 onehittoaster If I were only ever going to target Linux, I owuld just use a makefile like I always have.  However, for my next project, I want to retain the ability to build for windows and mac (someday).  cmake looks like a pita to learn.  premake seemed more elegant.
01:24 onehittoaster erlehmann: be thankful that you've never had to use bazel / blaze. :)
01:24 onehittoaster I would assume anyway.
01:26 erlehmann look, there are a bunch of tools that are faster, more reliable, easier to learn and easier to write build scripts for than make or cmake
01:27 erlehmann that i managed in about 400 lines of shell is just because of portability. some people write their build system in go and that makes go a build-dependency of all of their projects.
01:27 erlehmann which i consider impractical to a ridiculous extent
01:28 erlehmann onehittoaster i have a question, do you program in C or C++?
01:30 erlehmann onehittoaster if so, please tell me if premake can solve the problem outlined in this blog post: https://web.archive.org/web/20170326021857/http://news.dieweltistgarnichtso.net/posts/redo-gcc-automatic-dependencies.html
01:30 onehittoaster Mostly C++.  I've not writen straight-up C in a long time.  I wrote an OS kernel in C about 15 years ago.  You could boot it with grub, but I never finished it.
01:31 Gustavo6046 I don't like C++
01:31 onehittoaster erlehmann: I have no idea if premake can handle that, but I suspect not.  However, the problem described in that article is not important to me at this time.
01:32 erlehmann why not?
01:32 erlehmann if your build system does not handle this case, all incremental builds may be wrong
01:33 erlehmann ever recompiled minetest after you changed something in the source and it was for some reason not in the binary until you made a clean rebuild?
01:33 erlehmann this type of thing
01:33 onehittoaster Nope.  I just nuke it and rebuild from scratch.  "-j32" and wait about 1 minute.
01:34 onehittoaster There are only two things that I use that take a long time to build, and I don't recompile them often: firefox and tensorflow.
01:35 erlehmann i have only 2 processors, not 32
01:35 onehittoaster ah.
01:35 erlehmann which is why i am upset with build systems that give wrong output (make, cmake) or are slow (like ninja)
01:35 onehittoaster I only recently acquired 32.  For many years my daily-driver was a core i5 (2.8 GHz, 4 cores) from 2010.
01:36 onehittoaster How often do you update your libc/libstdc++ while concurrently building other projects though?
01:36 erlehmann rarely, but you probably miss the biggest impact
01:36 erlehmann target files depend on build rules
01:37 erlehmann if you change the build rules, a target needs to be rebuilt, right?
01:37 erlehmann (if you disagree here, i'd like to know why)
01:38 onehittoaster I have a personal project that has a dependency like that.  But it only takes 6 minutes to build on my old box, and less than 1 on my new box, so "make clean" was fine for me.  I understand that your concern is not one for me.
01:38 onehittoaster I don't disagree.  I admit that this is a failing of make.
01:38 erlehmann well, if *all* builds you make are clean builds, then you do not have this kind of problem
01:38 erlehmann it is weird though, i usually only see this when ppl to embedded software
01:39 onehittoaster I've sometimes moved special build rules into a shell script, and make that shell script a dependency of the build rule, so that touching the script triggered a rebuild of the other files.
01:39 erlehmann cursed
01:39 onehittoaster but this was mostly about packing assets into a tar file that was then encoded into a .o and statically linked into a binary.
01:39 erlehmann my entire website is built with redo hehe
01:40 erlehmann i have written a tar packing implementation for it to have it build in a reproducible manner
01:40 onehittoaster the binary would use libarchive to extract files from the embedded tar file on the fly (was a built-in http server in a larger C++ program, and the tar file contained the static assets)
01:40 onehittoaster the thing that is annoying me about premake is that I see no easy way to have it emit custom "make TARGET" targets, like "make test".
01:41 onehittoaster If I were to create the makefile directly, that is trivial.  "make test", "make lint", "make clang-format", "make run", etc....
01:41 onehittoaster they just execute shell commands.
01:41 onehittoaster and sometimes check dependencies first.
01:42 onehittoaster premake doesn't seem to have a mechanism to jam stuff like that into the ephemeral makefiles that it creates when I run "premake5 gmake".
01:42 onehittoaster meh.
01:42 erlehmann as i said, you can write your dofiles in lua
01:42 erlehmann wait, doesn't windows have sh nowadays?
01:42 erlehmann my friend has sh i bet
01:43 erlehmann because git
01:43 erlehmann git is half c half shell scripts half black magic
01:43 erlehmann that makes 150% cursed software
01:43 onehittoaster no idea.  I've not ran windows on bare metal in 7 years.  All of the PCs at my home run Linux (Gentoo or Ubuntu)
01:45 onehittoaster I have NT4, W2k, XP and W7 in QEMU images if I need them, but I've not fired those up in years either.
01:45 onehittoaster I've never even seen a live windows 10 system.  ever.  I once saw windows 8 and got ill form it.
01:45 onehittoaster from
01:48 Gustavo6046 what is your goal with using gentoo?
02:00 MTDiscord <savilli> a samurai has no goal, only a path
02:12 onehittoaster Goal with Gentoo?  IDK.  My first distro was slackware (1? kernel was 1.3.20).  I tried redhat but hated it.  In 2004 someone introduced me to gentoo and I just kinda started using it.
02:16 erlehmann https://github.com/minetest/minetest/compare/master...erlehmann:fix-localtime-2?expand=1
02:28 v-rob joined #minetest
02:33 jingkaimori joined #minetest
02:39 JackFrost joined #minetest
02:43 jingkaimori Are there any tile modifier to overlay a texture onto another with position movement like this?
02:50 jingkaimori https://i.bmp.ovh/imgs/2022/02/30e6ab1593e93880.png
02:57 lemonzest joined #minetest
03:01 Gustavo6046 joined #minetest
03:01 MTDiscord <GreenXenith> Probably use combine
03:29 queria^clone joined #minetest
03:32 jingkaimori joined #minetest
03:32 jingkaimori how can I retrieve CGUITTFont from client device?
03:33 queria^clone joined #minetest
03:54 v-rob joined #minetest
04:14 v-rob joined #minetest
04:36 olliy joined #minetest
04:43 RhineDevil joined #minetest
05:00 MTDiscord joined #minetest
05:53 jingkaimori joined #minetest
06:01 riff-IRC joined #minetest
06:10 RhineDevil joined #minetest
06:12 asdflkj_sh joined #minetest
07:02 jvalleroy joined #minetest
07:11 v-rob joined #minetest
07:20 calcul0n joined #minetest
07:20 fling joined #minetest
07:25 v-rob joined #minetest
07:46 sfan5 g_fontengine->getFont(), you can then do a dynamic_cast<> to CGUITTFont*
07:47 sfan5 generally this is only needed if you need a feature that is exclusive to it, IGUIFont contains basic font rendering
08:02 jingkaimori67 joined #minetest
08:03 appguru joined #minetest
08:04 jingkaimori65 joined #minetest
08:04 jingkaimori52 joined #minetest
08:14 jingkaimori joined #minetest
08:22 ___nick___ joined #minetest
08:32 Markow joined #minetest
09:16 jingkaimori joined #minetest
09:26 GNUHacker joined #minetest
10:17 specing joined #minetest
10:18 Noclip[m] joined #minetest
10:50 freshreplicant[m joined #minetest
10:50 gemmaro[m] joined #minetest
10:50 wsor4035 joined #minetest
10:50 queria[m] joined #minetest
10:50 _Zaizen_[m] joined #minetest
10:50 programmerjake joined #minetest
10:50 unexploredtest[m joined #minetest
10:50 zehka[m] joined #minetest
10:50 mister-e[m] joined #minetest
10:50 tochigi joined #minetest
10:50 craigevil[m] joined #minetest
10:51 omichalek[m]1 joined #minetest
10:51 mugli[m] joined #minetest
10:51 Amo[m] joined #minetest
10:54 proller joined #minetest
11:38 mazes_83 joined #minetest
11:52 GNUHacker joined #minetest
11:54 Megaf joined #minetest
12:10 appguru joined #minetest
12:14 GNUHacker joined #minetest
12:22 Fixer joined #minetest
12:40 tech_exorcist joined #minetest
12:57 erle_web joined #minetest
12:58 erle_web i have used callgrind to figure out where the media loading is spending its time. the answer seems to be: if the cache is full, >97% of the time is SHA1.
12:58 Toni[m] joined #minetest
12:58 nogajun[m] joined #minetest
12:59 erle_web which makes sense, as after the hashing you compare and skip the rest.
12:59 runningdroid[m] joined #minetest
13:00 MTDiscord <Warr1024> Seems like it would make sense to use murmurhash or something instead, if that time is concerning.  How much do we expect adversarial input here, and how bad are the negative consequences, anyway?  SHA1 is sort of not secure enough if it is a concern, and not fast enough if it isn't.
13:01 erle_web the time is not concerning
13:01 erle_web there simply is not much optimization potential
13:02 erle_web Warr1024 i have planned to make an adversarial SHA1 example anyway hahaha
13:03 erle_web to figure out what the engine does if i give it two things with the same hash
13:04 MTDiscord <Sublayer plank> how good is murmurhash compared to xxhash in terms of speed and uniqueness?
13:05 GNUHacke_ joined #minetest
13:06 erle_web please don't change the hash function on a whim. you'll invalidate everyone's cache. and who says the other hashes are practically faster? the bottleneck might simply be reading in the bytes!
13:06 lorddavidiii[m] joined #minetest
13:07 erle_web > MMH-3 function belongs not to the class of strong cryptography
13:08 erle_web https://stackoverflow.com/questions/5216736/hashing-murmurhash
13:08 erle_web > I used Murmur hash to hash around 800 000 string values, and this cause many conflicts (collision), that around 17 collision (different strings give the same hash value), is this normal, any one know the quality of murmur hash function
13:08 erle_web lol
13:08 MTDiscord <Warr1024> Oh my god, people could lose their CACHE!
13:08 MTDiscord <Warr1024> You're right, that would be horrible.
13:08 erle_web indeed. i am very smart! :P
13:09 MTDiscord <Sublayer plank> me who has .cache in ramdisk: oh no! anyways...
13:10 erle_web Warr1024 did you ever experiment with texture atlases?
13:10 MTDiscord <Warr1024> murmurhash is an actual hash function, not a cryptographic message digest.  Obviously it shouldn't be used for cryptographic purposes, or anywhere that you expect adversarial input.
13:10 MTDiscord <Warr1024> I haven't messed much with atlases
13:10 MTDiscord <Warr1024> do you mean like using [sheet?
13:10 MTDiscord <Warr1024> or like an internal engine thing?
13:11 erle_web yeah sprite sheets
13:11 definitelya joined #minetest
13:11 MTDiscord <Warr1024> Heh, sublayer plank, I also keep my MT cache (along with many others) on tmpfs :-)
13:11 erle_web minetest is full of adversarial inputs tthough
13:12 erle_web i am better than all of you (except kilbith), because i kept a whole minetest installation in tmpfs!
13:12 erle_web but then the power ran out, so i may not do it again lol
13:12 MTDiscord <Warr1024> I was a bit interested in sheets at one point, but there were a lot of maintainability drawbacks to using them, and I don't see much benefit.
13:13 erle_web well, if you have a shit ton of textures and they are rarely changet it *might* help. but i am not interested as long as it is not automatable.
13:13 MTDiscord <Warr1024> I don't see the point in keeping all of MT in tmpfs because I won't want to routinely clean out most of it...
13:13 erle_web oh it was just some compilation experiment
13:13 erle_web i wanted to ditch it eventually
13:14 GNUHacker joined #minetest
13:14 erle_web i mean i am already too dumb to get a proper crack graphic for a node that has a texture wrapped around itself
13:14 erle_web the crack overlay overlays the entire texture and not the face that is mined
13:14 MTDiscord <Warr1024> I actually copy MT src into tmpfs to compile it, then copy the bin back to disk.  I don't feel like having to clean up obj files and crap :-/
13:14 erle_web which is unfortunate
13:14 erle_web any idea?
13:14 erle_web nice
13:15 MTDiscord <Warr1024> I think using [sheet and making each face a separate UV might be the sanest way to do what you're talking about
13:15 MTDiscord <Warr1024> In general I optimize the way I handle textures for maintainability first, i.e. I prefer to keep textures in a format optimal for me to work on, not necessarily for network transfer, caching, or rendering
13:16 MTDiscord <Warr1024> besides, texture atlases only really benefit caching and network xfer, if MT just chops them up in memory anyway.
13:16 MTDiscord <Warr1024> far as I know you can't have context-specific crack textures either, so making a pre-wrappped version of that probably won't work either.
13:17 MTDiscord <Warr1024> Really in the grand scheme of things, games and mods should by default use simple and compact textures, i.e. 16px only, and higher-res stuff should really be just for texturepacks.  Correspondingly of course we need better texture pack compositing support so they actually work with the way people use mods :-|
13:19 erle_web well in my case the wraparound was for maintainability
13:19 erle_web the mineclonia christmas chests
13:24 MTDiscord <Warr1024> You can still maintain the texture file as a wraparound, e.g. if you want to make it easier to edit the texture.  I think you just use [sheet or whatever to chop it up.  Then of course your UV map needs to use multiple materials to attach each one, which kinda sucks, esp if you've already got it setup the other way...
13:25 erle_web here https://git.minetest.land/Mineclonia/Mineclonia/pulls/212/files
13:25 erle_web these are the textures
13:25 erle_web i should probably use |sheet then
13:25 erle_web [sheet
13:26 erle_web btw, the idea to overlay some noise made the textures much nicer looking
13:27 erle_web and easier to edit
13:27 erle_web looks like this in-game btw: https://git.minetest.land/attachments/5c8a8412-6ae1-41dd-83ab-0e6f3773cd10
13:28 erle_web i did not expect it to *do* anything, but it lead to people spamming chests and snow around christmas hahah
13:31 erle_web kachegrind seems pretty cool
13:34 erle_web btw, callgrind also tells me that the most thing minetest does during mod loading is executing lua code
13:34 erle_web who would have thought!
13:34 erle_web :D
13:36 MTDiscord <Sublayer plank> what a shocker, it executed lua code during mod loading? I would have never known!
13:38 erle_web what i mean is: optimizing lua code is probably going to help more than obsessing about spritesheets
13:39 erle_web try it yourself! http://kcachegrind.sourceforge.net/html/Usage.html
13:41 lemonzest joined #minetest
13:41 erle_web brb recompiling minetest with debug info
13:46 MTDiscord <Warr1024> I don't suppose there's a way to get a combined view of C++ and Lua calls, is there?  Like, to find out where time is being spent between the 2 of them.
13:48 erle_web i have no idea how, but you can see the exposed functions
13:49 erle_web this is pretty cool
13:50 erle_web yeah so i am looking at a callgrind run of minetest executing devtest now.
13:50 erle_web 1fps during it lol
13:51 erle_web according to this, mapgen is much more expensive than everything else
14:01 erle_web Warr1024 this is the view i have right now https://mister-muffin.de/p/diWU.png
14:28 Taoki joined #minetest
14:42 Fixer joined #minetest
14:57 lemonzest joined #minetest
15:07 kamdard joined #minetest
15:43 asdflkj_sh joined #minetest
15:44 kabou joined #minetest
15:58 v-rob joined #minetest
16:08 v-rob joined #minetest
16:13 Yad joined #minetest
16:23 erlehmann joined #minetest
16:24 Hawk777 joined #minetest
16:32 onehittoaster joined #minetest
16:34 calcul0n joined #minetest
16:37 GNUHacker joined #minetest
16:45 tech_exorcist joined #minetest
16:57 erlehmann i think i may indeed be able to speed up media loading with a full cache
16:57 erlehmann without changing the server
16:57 erlehmann i'll have to investigate
16:59 erlehmann nope, forget it
17:02 erlehmann oh, i have something actually
17:08 v-rob joined #minetest
17:17 sparky4 joined #minetest
17:18 sys4 joined #minetest
17:25 erlehmann a blast from the past https://web.archive.org/web/20111012063056/http://test.mine.bz/blog
17:29 GNUHacker joined #minetest
17:31 definitelya_ joined #minetest
17:32 onehittoaster Challange: Code a minetest-like game that runs decently on a 486 dx2 @66 MHz, using VGA at 320x200 256-color mode.  It can run using a dos-extender or on an ancient version of Linux.
17:32 lemonzest joined #minetest
17:32 erlehmann > The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware. It runs playably on a laptop with Intel 945GM graphics.
17:32 onehittoaster doesn't have to be fancy, does not require networking.
17:32 erlehmann https://web.archive.org/web/20111010002614/http://test.mine.bz/
17:32 erlehmann and indeed, i have a laptop with intel 945GM graphics
17:33 erlehmann celeron55 is keeping promises hehehe
17:35 rubenwardy c55 estimates be like "a day"
17:35 Fleckenstein joined #minetest
17:35 erlehmann ; lspci |grep VGA
17:35 erlehmann 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
17:36 erlehmann i have exactly the target hardware. coincidence? :D
17:36 sobkas joined #minetest
17:36 celeron55 erlehmann: nice find, the archived blog
17:37 celeron55 the server that holds that blog is sitting on a chair next to me, one day i'll re-publish it in some way
17:38 celeron55 erlehmann: "fairly old hardware" is a moving target, though
17:38 erlehmann celeron55 with mobile and stuff like reform it's not really
17:39 erlehmann if minetest had blown up to want like 16G RAM minimum it would not run on phones
17:40 erlehmann celeron55 i only found it because on github, my minetest repo still had the url in the description as a link and i was like “oh?”
17:40 erlehmann celeron55 i have used callgrind on minetest. is it true that 75% of mapgen time is light calculation?
17:41 erlehmann or am i reading the output wrong
17:41 erlehmann i thought, after the localtime() stuff i should probably investigate to figure out the structure of minetest
17:41 erlehmann to get free fps in the process
17:41 erlehmann ideally
17:42 adam_mc joined #minetest
17:42 erlehmann i mean, i bet the structure of most programms is while true { if poll() || poll() then poll() } or something;
17:42 rubenwardy 16GB is by no means fairly old hardware
17:43 erlehmann “old” is less important than “affordable”
17:43 v-rob light calculations are pretty bad
17:46 celeron55 light calculations are a recursive system going into 4 bit depth in 3d space
17:46 celeron55 it's naturally expensive
17:48 v-rob It would be worse with colored lighting
17:49 erlehmann celeron55 given that on the GM945 the realtime shadows from the irrlicht demo code work fine, why should they not be used? (i guess there is a reason, bc they are relatively simple to setup)
17:49 v-rob I mean, we should probably be glad light calculations aren't slower than they are
17:50 erlehmann (they also look better than the shadows i get on a thinkpad x390 with shadows feature)
17:50 v-rob Probably because they aren't voxel-based
17:51 Hawk777 I suppose one point is that lighting actually matters for non-visual reasons (e.g. mob spawning, at least I assume some mob mods care about light levels), so the server also needs to know light levels, and the server might not have a GPU at all.
17:52 erlehmann wait, you misunderstand me
17:52 erlehmann i mean why aren't they used. for purely visual reasons.
17:53 Hawk777 Well, if lighting matters for game logic reasons, isn’t it better that what you see and what impacts gameplay are the same thing?
17:53 erlehmann you can look at irrlicht demo 08 for that. smooth, nice shadows, minimum of gpu or cpu activity.
17:53 Hawk777 Rather than “hey it looks really dark over here, but actually nothing can spawn here because according to the server’s lighting model it’s illuminated”?
17:53 celeron55 erlehmann: you are talking about attempting to integrate fixed pipeline shadows with specially generated lighting. nobody wants to do that, nobody understands the black magic to do that (if it's possible), and nobody wants to understand it
17:54 erlehmann Hawk777 minetest recently gained a shadows feature that is different from map light calculation and is purely visual.
17:54 celeron55 erlehmann: shaders have been the way to do stuff in games for about 20 years now
17:54 celeron55 erlehmann: you seriously have to learn and do it yourself if you want it
17:54 Hawk777 Oh. Well I’ll just step out then; I admit I haven’t had time to play in a good few months now.
17:54 celeron55 erlehmann: the will and knowhow to make it does not exist
17:55 erlehmann ok!
17:55 v-rob Just about everything in Irrlicht is doing stuff in a way that's about 20 years old now.
17:55 celeron55 (and i don't know if it's possible at all)
17:55 erlehmann v-rob that doesn't mean it's bad though, if it is performant. but i guess if it's hard to use …
17:56 erlehmann the thing is, on the beefiest machine i know (thinkpad x390), the shader shadows look still noticeably blocky
17:56 v-rob I don't think we use Irrlicht properly enough to even use half of Irrlicht's features. Especially now that hecks removed the half that we can't use anyway :)
17:56 erlehmann s/know/have/
17:57 erlehmann yeah, like the unit tests lol
17:58 erlehmann i'm pretty sure hecks was more about “is this in use” than “could this ever be used” with at least some of the stuff, but i don't think it matters in the long run.
17:59 v-rob In theory, all of Irrlicht will be removed at some point.
17:59 * v-rob waves hand towards the far, far future
17:59 erlehmann doesn't matter if you then can figure out what *approach* is good
18:00 erlehmann bc you can copy that over to whatever you are using then
18:00 v-rob At the very least, I know the Irrlicht GUI will burn when I get there. Bwa ha ha ha!
18:00 v-rob It deserves it.
18:00 erlehmann i agree.
18:00 erlehmann though i wonder, did you ever contribute to irrlicht upstream?
18:00 v-rob Nope
18:01 erlehmann i mean it is still in active development, the dev just rarely makes releases because they are work
18:01 rubenwardy I looked into it, but it's svn and sourceforge. So big nope
18:01 erlehmann haha what
18:01 rubenwardy depends on your definition of active
18:01 erlehmann i mean i even use github just for minetest, although it's probably not as bad as sourceforge
18:01 erlehmann active as in, not dead lol
18:02 v-rob Irrlicht reminds me of Slackware.  Slackware had a release just a few weeks ago, but the previous release was in 2016. And both Irrlicht and Slackware are both ancient.
18:03 jonadab I guess my standards for "ancient" are somewhat warped by my exposure to the NetHack community.
18:04 erlehmann celeron55 i am learning and doing stuff myself. i'll have one test ballon per topic to see if anyone is even interested. i have the devtest nodes that no one wants for “is improving devtest wanted” (current assumption: probably not, i'll have to put it on contentdb), the localtime() thing will be for “are performance fixes wanted”, if i ever get to rendering, i'll consider the shadow stuff. you are correct, i
18:04 erlehmann have to learn it myself!
18:04 v-rob Well, if I'm ever developing 3D stuff for Windows 95, I'll look into Irrlicht.
18:04 erlehmann i mean, not no one. i got one approval!
18:06 RhineDevil^ joined #minetest
18:15 Kimapr joined #minetest
18:35 sparky4 joined #minetest
18:35 Verticen joined #minetest
19:16 olliy1or joined #minetest
19:23 olliy joined #minetest
19:32 Markow joined #minetest
19:56 v-rob joined #minetest
19:59 Gustavo6046 joined #minetest
20:00 Gustavo6046 hello! :o
20:05 definitelya_ 0/
20:14 Gustavo6046 :D
20:15 GNUHacker left #minetest
20:15 erlehmann Gustavo6046 so about the load times
20:15 erlehmann 97% of the time is sha1()
20:16 onehittoaster joined #minetest
20:16 Gustavo6046 o.o
20:16 MTDiscord <Sublayer plank> oh so it is a large contributing factor to long loading times? I thought you said it wasn't...
20:17 onehittoaster joined #minetest
20:17 Gustavo6046 oh my
20:17 erlehmann look
20:17 Gustavo6046 we need a better sha1 algorithm
20:17 erlehmann the reason is because first you compare the hashes
20:17 erlehmann and then you skip EVERYTHING else
20:17 Gustavo6046 or use the hashes more cleverly
20:17 erlehmann if your hash matches
20:17 Gustavo6046 or both
20:17 erlehmann i know a solution
20:17 Gustavo6046 or we could use a heuristic
20:18 Gustavo6046 like a micro-mash, that's just 6 bits long or something, that we use to divide into "buckets"
20:18 erlehmann look i have created a build system, i am pretty much an expert in freshness calculation
20:18 erlehmann oh my stop
20:18 Gustavo6046 :(
20:18 Gustavo6046 is my idea bad?
20:18 Gustavo6046 but ye apologies, go ahead
20:19 erlehmann remember the hashes
20:19 erlehmann maybe they are recalculated too often
20:19 erlehmann i wlll check that right now
20:21 kabou joined #minetest
20:22 MTDiscord <Sublayer plank> what if we switched to a faster non-cryptographic hashing algorithm?
20:22 erlehmann then i will make sure you have collisions
20:23 erlehmann (before someone else does)
20:23 erlehmann look, as far as i can see, the hashes are content-addressing here
20:23 erlehmann so that means you really don't want collisions
20:25 erlehmann i think i found the problem
20:25 erlehmann if i am correct, a *lot* of stuff is hashed when not necessary. if i am incorrect, shame on me.
20:28 erlehmann subplayer plank Gustavo6046 have you looked at how the client checks the hashes?
20:28 erlehmann start with IClientMediaDownloader::tryLoadFromCache
20:28 erlehmann it's kinda obvious where it goes wrong
20:29 Gustavo6046 not yet
20:29 Gustavo6046 and C++ tends to be a pain to work with
20:29 Gustavo6046 compared to, say, plain C, or even Rust
20:29 Gustavo6046 uh what is that "even" doing there
20:30 Pexin don't make me throw perl at you
20:30 Pexin because I won't. it scares me.
20:30 erlehmann look, i am pretty sure you can make IClientMediaDownloader::checkAndLoad a tiny bit smarter
20:34 Gustavo6046 Pexin, right, good point, reading Perl is much worse than C++  xD
20:34 Gustavo6046 erlehmann, yes! I can try
20:35 erlehmann Gustavo6046 ok so first order of business, make it always load cached media without hashing. that's the upper bound. you can't get faster than that. figure out if it speeds up loading the game, if it does not, you do not need to optimize the function.
20:36 erlehmann only once you have figured out if optimizing this function would *actually* speed up the loading you have enough grounds to make it smarter
20:37 erlehmann i believe you can just comment out the parts that hash and check the content
20:37 erlehmann and then build it
20:37 erlehmann Gustavo6046, will you do that? my builds take forever, since cmake sucks
20:37 erlehmann also i am building some other PR right now
20:37 Gustavo6046 I'll try
20:37 Gustavo6046 yeah building is so sloooow
20:37 Gustavo6046 I might have to rely on CI
20:37 Kazeta joined #minetest
20:39 Kazeta Hi
20:39 Gustavo6046 Hello! o/
20:40 Kazeta Any good mods for minetest?
20:40 Talkless joined #minetest
20:40 erlehmann Kazeta be a bit more specific
20:40 erlehmann i can list a bunch of bad mods if you want
20:40 erlehmann i even made some myself!
20:40 Gustavo6046 Absolutely! Start by looking into Technic. Also, keep in mind you don't have to play the default game, Minetest Game, which is more like a demonstration anyways; you can try a more familiar experience with MineClone 5 or Mineclonia, or something completely new with something like NodeCore.
20:41 rubenwardy Kazeta: https://content.minetest.net/
20:41 erlehmann or repixture!
20:41 Kazeta OK
20:41 rubenwardy See Top Mods, and Highest Reviewed
20:43 Gustavo6046 I feel like some of the reviews aren't very thought out
20:46 v-rob joined #minetest
21:04 v-rob joined #minetest
21:27 Yad joined #minetest
21:34 v-rob joined #minetest
21:47 Oksanaa joined #minetest
22:15 proller joined #minetest
22:16 specing_ joined #minetest
22:20 LibreGNU joined #minetest
22:27 MTDiscord <luatic> erlehmann: Is it perhaps verifying cache integrity by rehashing the cached files?
22:38 erlehmann luatic it is rehashing the files on every load as i see it
22:39 erlehmann the correct implementation would be to cache that hash and only recalculate it when the last-modified date changed
22:39 Gustavo6046 joined #minetest
22:40 erlehmann i bet some fun-haters will have lobotomized their file systems and will soon tell me that their file system says every file was created shortly after the moon landing
22:44 v-rob joined #minetest
22:59 Verticen joined #minetest
23:08 Pexin erlehmann: the SPIRIT of the file has Always been part of us.
23:11 v_rob joined #minetest
23:12 Megaf joined #minetest
23:40 RhineDevil^ Gustavo6046: <Gustavo6046> I know it sets a worrying precedent, but I honestly, seriously, non-sarcastically don't know what kind of dystopian future would come from this.
23:40 RhineDevil^ I wholeheartedly agree
23:40 Gustavo6046 I think capitalism is a much bigger, much more all-encompassing reality than data privacy violation, and one we've thoroughly failed to get rid of for centuries already.
23:41 Gustavo6046 The world is depresing, honestly.
23:41 Gustavo6046 I guess that means I am healthy and sane-minded.
23:41 RhineDevil Gustavo6046: My idea about the whole thing is more specific
23:41 RhineDevil I think human nature is both egoistic and collectivist
23:41 Gustavo6046 It's hard to be specific with the whole complexity of society.
23:42 RhineDevil And I think capitalism as we know it is based only on one side of it
23:42 Gustavo6046 I don't think human nature is inherently egoistic, but rather only as a result of the existence of currency.
23:42 RhineDevil Nah it is, but it is also capable of collective thinking
23:42 Gustavo6046 Trying to appeal to egoism and exploit it to encourage collectivism, through financial incentives to collectivist behaviour, is only going to fall short.
23:42 Gustavo6046 Because that turns the collectivist behaviour into the means to an end, rather than the ends themselves.
23:43 Gustavo6046 This psychological phenomenon is well studied, and is also (in part) why school sucks.
23:43 RhineDevil I never talked about financial incentives
23:43 RhineDevil My idea is way bigger
23:43 Gustavo6046 I know, but the idea is generalizable.
23:43 Gustavo6046 That's a tangible example for argument and explanation's sake.;
23:43 RhineDevil Nah depends
23:43 RhineDevil I think the whole idea stands in creating a positive feedback
23:44 RhineDevil If you let people experience a good feedback from their action, they'll slowly adapt to it
23:44 RhineDevil And this can be done in many ways
23:44 RhineDevil That's a general idea, I'll let you digress about what could I mean into this
23:45 RhineDevil *what could it mean into practice
23:45 Pexin there are some who believe that all of human history has been allowed to happen to prove a point: that without guidance, we are selfish short-sighted and self-destructive. and that every iteration of mistakes people keep making over the ages is another attempt to find their path. and it must be allowed to continue until nobody - past, present, heaven or earth, can legitimately point and say, "but but but
23:45 Pexin but they haven't tried THIS yet!"
23:45 Pexin but anyway, hey look, a voxel game!
23:46 RhineDevil Pexin: not getting what your point is, speak clearly
23:46 * Pexin plays with digimal legos
23:46 RhineDevil Gustavo6046: I won't dig deeper than what I said, the enemy listens
23:47 Gustavo6046 RhineDevil, I have spoken a lot of MArxist thought lately
23:48 RhineDevil Gustavo6046: I don't believe in political theory, I believe in political practice
23:48 Gustavo6046 Pexin, I think that human history has happened not to prove a point, because that isn't what creates history. What creates history is usually the ruling class, and the ruling class is usually the few humans who DID happen to be greedy enough to exploit everyone else to begin with.
23:48 RhineDevil Well said
23:49 Gustavo6046 RhineDevil, political practice is impossible without first understanding the underlying gears in motion. And then you realize that these very gears were built to make any political practice that tries to spin against the gears impossible.
23:49 Pexin hows that working out for you
23:49 Pexin s/you/us
23:50 Gustavo6046 Political practice, at least of the kind that actually improves society in a way that makes it more equal and just, is impossible until you change the system. And changing the system is impossible, until you understand it and its shortcomings.
23:50 Gustavo6046 Political theory does not move the world, but it moves people, and it educates them about the world around them, especially if said educatoin comes from people outside the framework of thought that the political system itself restrictively enforces under command of the ruling class.
23:51 RhineDevil Gustavo6046: the gears are explained (partically) by psychology, not by people trying to predict how the future will be
23:51 RhineDevil *partially
23:51 RhineDevil Gustavo6046: it's foolish thinking that the people are or can be educated
23:51 Gustavo6046 Psychology applies at an individual level. But strategy is much more high level than that.
23:51 Gustavo6046 The ruling class is not stupid.
23:52 Gustavo6046 They use strategy.
23:52 RhineDevil Nah they use psychology
23:52 Gustavo6046 Of the masses, yes.
23:52 Gustavo6046 So that they never catch onto the strategy they use.
23:52 Gustavo6046 For instance, they lopside the distribution of emphasis in social issues in order to distract the working classes from the true struggles they should prioritize, the class struggles.
23:53 RhineDevil Now we're talking the same language
23:53 Gustavo6046 They use geopolitical tension as an opportunity to glorify themselves, to hide their unfairly advantaged position under a veil of humanitarianism and progressivism.
23:53 Gustavo6046 Hell, even the Nazis veiled themseleves under humanitarianism and progressivism to mollify their public image, before the end of WW2 and the ensuing revelation of their horrors and their true faces.
23:54 RhineDevil Anyway as I was saying, there are no "gears" in motion. there is an enthropy that can be influenced on a certain extent
23:54 RhineDevil And that's all
23:54 Gustavo6046 Remember that back then, eugenics was a cool thing, and it was considered scientific.
23:54 RhineDevil *to a certain extent
23:54 Gustavo6046 Nowadays science has rejected eugenics, not just as a knee-jerk reaction.
23:55 RhineDevil actually eugenics IS a cool thing, but not that kind of eugenics
23:55 Gustavo6046 wat
23:55 Gustavo6046 you mean like, social Darwinism?
23:55 RhineDevil no
23:55 RhineDevil I mean like genetic engineering
23:56 Gustavo6046 what other kind of eugenics is there then? all I know is passive social Darwinsim (people dying for being stupid) and "active social Darwinism" (people being killed for being different).
23:56 Gustavo6046 the latter is also known as, among other things, racial hygiene, and a lot of other names
23:56 Gustavo6046 some try to downplay it, others are much more sraight to thep oint
23:56 Gustavo6046 the point*
23:56 RhineDevil I know that and I'm not talking about that
23:56 Gustavo6046 I wouldn't call genetic engineering eugenics in the traditional sense :p
23:57 Gustavo6046 Eugnenics was from an era before genes were well understood
23:57 RhineDevil I'm talking about fixing uncurable issues before they're going to happen
23:57 Gustavo6046 There was only a vague understanding of inheritability, based on Mendel's work
23:57 RhineDevil That was the problem
23:57 Gustavo6046 Now that we understand genes, it's not proper to call it eugenics anymore. We have adjusted our ideas away from what was eugenics.
23:57 RhineDevil Everyone from that era had a really vague understanding on how things worked
23:57 Gustavo6046 So please don't call genetic engineering eugenics :P
23:58 Gustavo6046 (Just like you shouldn't call all sorts of Marxist thought Stalinism!)
23:58 Gustavo6046 Anyway, incurable issues?
23:58 RhineDevil Gustavo6046: some would say eliminating certain traits from humanity would be eugenics, but what if these traits were actually harmful?
23:58 Gustavo6046 RhineDevil, yes, but the devil (no pun intended, RhineDevil) is in the details
23:59 RhineDevil What if we could build a better humanity by removing these traits from embryos instead of doing butchery experiments on people?
23:59 Gustavo6046 I completely agree with what you said, but some people can twist the definition of "harmful"
23:59 Gustavo6046 What does it mean for a trait to be harmful? You might think it's pretty unambiguous, it's things that make people's lives worse.
23:59 RhineDevil Of course Gustavo6046, but that's why I say eugenics isn't inherently bad
23:59 Gustavo6046 But what if some people redefine that in a way that appeases to their exclusionist thoughts?

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