Minetest logo

IRC log for #minetest, 2022-07-28

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

All times shown according to UTC.

Time Nick Message
00:40 muurkha XMPP was designed for a desktop world that no longer exists
00:41 muurkha where you would use the same computer all the time, not two laptops, three cellphones, and a smartwatch, none of which is always online
00:42 muurkha (you could make the same argument about IRC)
00:43 muurkha erle: I think it's important to avoid *being* a crank, but I don't care about what I *sound* like if nobody is reading what I write anyway!  you are a rare exception
00:43 muurkha (but I'm guessing that you haven't read much of Dercuano eitehr)
01:05 Trifton joined #minetest
01:05 sys4 joined #minetest
01:09 Warr1024 TheLounge, at least for those of us who can self-host, goes a very long way toward making IRC not locked in a "desktop-only" kind of world.  But it also really takes a lot of emphasis off of the underlying protocol, so XMPP or Matrix could be used in the same way, but then they seem to offer less above IRC anyway.
01:11 muurkha yeah
01:12 muurkha IRC has some problems like netsplits, inability to correlate responses with requests, and silent message truncation
01:14 Trifton joined #minetest
01:14 muurkha but basically I think the problem is that IRC and XMPP (MUC) are trying to solve the application-layer packet multicast problem, while things like Slack and Matrix are trying to solve the appendable-immutable-log problem
01:14 muurkha and the latter is a better fit to the chat application in a multidevice intermittently-connected world
01:15 Warr1024 People have successfully fixed a lot of IRC's flaws multiple times, but each time they create a new unique mess :-D
01:17 muurkha haha, indeed
01:18 erle muurkha i haven't read much of your stuff, given how much it is, but i plan on doing that more. and i think you are underestimating how many people read stuff, but the vast majority of people never even give feedback.
01:18 muurkha it's possible
01:19 erle in particular, if you publish software that is doing its job perfectly, you almost never get positive feedback.
01:20 erle not sure if you do that
01:20 erle but it's a good example
01:20 Pexin but what if html message board
01:20 erle the thing is, “perfect” needs a really small scope. the kind of thing that can be done.
01:24 erle muurkha i agree that the ”appending-immutable-log” problem fits a multi-device chat world better, but i doubt slack is solving any problems better. you can see that in the failure modes. for example, i have noticed that slack could deliver a message not at all or 3 times when you have a really spotty connection. that's a problem that is already solved a lot of times over (e.g. with in-lockstep-counters, message receipts etc.)
01:24 Verticen joined #minetest
01:25 erle every other modern chat system has exactly-once-or-not-at-all delivery
01:26 muurkha normally called "at-most-once"
01:27 muurkha yeah, slack is buggy as hell and I hate it a lot
01:27 erle “Gajim is a mess with performance issues”, yes, i think they have their own very idiosyncrasic text rendering widget that craps out at inopportune moments even if it does not have to. i manually confirmed that it is definitely possible to have a gtk text widget with tens of thousands of lines which does not hang.
01:28 muurkha for now.  pango is a large amount of code with unpredictable performance
01:28 erle slack failure modes remind me a lot of icq
01:29 Izaya I was blaming disk access and the fact that all the chat logs are stored in a database, honestly
01:29 erle i am not sure if that was pango-related but i vaguely remember that a previous gajim version had this “fun” bug that it would just request ever larger bitmaps if you scrolled back
01:31 erle Izaya i was also thinking that, but it does not seem to be the case that it's super stupid about that. on a freshly started gajim, you can scroll everything just fine. but leave it running for some time and it will lag.
01:32 erle also gajim could extremely lag if you had a connection that has high packet loss, which hints to me that some things are synchronous when they definitely did not need to be
01:32 erle muurkha the problem with the immutable log is of course that you can't read it on a the metaphorical potato device
01:33 erle not in theoretical, but in practical terms
01:34 erle <Izaya> Gajim is also skipping the whole standards thing of late. Very frustrating.
01:34 erle Izaya, please explain
01:34 muurkha erle: why cant you?
01:35 muurkha *can't
01:36 erle because any matrix client that offers the same or a similar feature set as say, the gajim or dino xmpp clients seems to have about as much or higher minimum requirements as minetest.
01:36 MTDiscord <Benrob0329> It's worth noting that IRCv3 continues to fix IRC's shortcomings, slowly but surely
01:36 erle in what ways? also, how can i use it?
01:37 MTDiscord <Benrob0329> You likely already are
01:37 Izaya erle, their "spaces" implementation has ignored attempts to actually standardise a mechanism for Matrix-style workspaces in favour of a nonstandard implementation using PEP nodes
01:37 erle “you like ghost stories? you are in one”
01:37 erle what's a workspace?
01:37 Izaya think discord guilds
01:37 erle what's a guild?
01:37 MTDiscord <Benrob0329> See, IRCv3 is where things like the modern SASL connections and capability negotiation come from
01:38 Izaya a collection of channels, basically
01:38 erle i tried to sign up to discord and it lagged my computer to death *in the signup process*
01:38 MTDiscord <Benrob0329> But they're also working on lots of other stuff too
01:38 muurkha erle: oh, you don't know about gomuks?
01:38 Izaya erle, ah, similar boat to me; I've never used it myself
01:39 erle muurkha i do not.
01:39 muurkha it's a matrix client
01:39 MTDiscord <Benrob0329> I'd make a Portal 2 reference, but erle's computer is too potato to even witness it's existence.
01:39 erle as if
01:39 erle i bet i have portal 2 music somewhere
01:39 Izaya basically the idea is that someone can make a collection of channels (or theoretically other types of multi-user things, like drawing boards and voice rooms) and have them tied together so you can invite someone to the "whole" thing and then they can see all of them and they're organised together
01:39 MTDiscord <Benrob0329> The soundtrack is definitely worth having
01:40 Izaya instead gajim has a thing where it looks like that's what's going on but it's actually just a worse mechanism than a categorised contact list because contacts can only be in one "workspace"
01:40 Izaya (and the workspaces are only seen by gajim)
01:40 erle muurkha this does not seem to have inline images though?
01:40 MTDiscord <Benrob0329> A modern IRC client remains on my ever growing project list, right after I find a stack I like to work in
01:41 Izaya a Good XMPP client is on my list, right after writing my own OS for it to run on >.>
01:41 MTDiscord <Benrob0329> Yeah I feel that
01:41 erle well obviously you can get by, so it can't be that important?
01:42 MTDiscord <Benrob0329> Engineers want to reinvent the world
01:42 MTDiscord <Benrob0329> Smart engineers only reinvent what they get paid for
01:42 muurkha erle: it renders inline images as ascii art
01:42 MTDiscord <Benrob0329> Smarter engineers reinvent it anyways and figure out how to charge for it afterwards
01:42 muurkha Izaya: what kind of OS would you like to write?
01:42 erle muurkha impressive, but not sufficient. anyways, how much minimum RAM usage?
01:43 Izaya current idea involves lifting a lot of ideas from lisp machines but for a language that isn't lisp
01:43 muurkha erle: about 14MB
01:43 muurkha Izaya: which lispm ideas do you like?
01:43 Izaya maybe including some sort of network device transparency like plan9 manages
01:44 muurkha do you think the 9P protocol is a better design than HTTP?
01:44 erle Izaya, you like ii?
01:44 Izaya I like the idea of basically everything in the system being inspectable as structured data, which can be manipulated by the user (or software acting at their discretion)
01:45 erle muurkha i'll immediately change my opinion about matrix in terms of implementability and claim the opposite. then again, can you tell me why the other clients are lagfests on hardware that can run firefox, play fullscreen video and minetest etc.?
01:45 muurkha erle: electron
01:45 muurkha what is ii?
01:45 erle ah, so you saying the reason that matrix clients are bad is that they are developed by hipsters using hipster tech!
01:46 erle ii is an irc client that exports a filesystem hierarchie i think
01:46 erle i used to use it
01:46 erle https://tools.suckless.org/ii/
01:46 erle > ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc directory tree with server, channel and nick name directories. In every directory a FIFO in file and a normal out file is created.
01:46 Izaya For remote filesystem access 9p is pretty great, much more flexible than HTTP while remaining simple, but realistically, HTTP isn't "just" remote file access. As a system for RPC, both are suboptimal.
01:46 erle ii is a fantastic tool to create minimum-effort irc bots in 10 lines of shell or so
01:48 muurkha erle: ooh nice
01:48 muurkha Izaya: I guess sometimes RPC is convenient?
01:48 erle i did not think it wolud ever become relevant, but this is how i used ii: http://news.dieweltistgarnichtso.net/bin/iid http://news.dieweltistgarnichtso.net/bin/iif http://news.dieweltistgarnichtso.net/bin/tailcat
01:49 erle i have not found another use for tailcat since, but i bet someone finds some
01:50 muurkha heh, I was going to say "too bad I don't know rc", but actually it's easy to read
01:50 erle i use rc as the default shell because it is basically ”sh, but what if the warts were fixed”
01:50 erle it is the standard shell of plan 9 (and unix 10?)
01:51 erle i have written stuff in rc and then translated it to sh (for portability), because it is so much nicer, just by changing a few things
01:51 erle there exists a plan 9 paper about shell design that explains how rc ended up with these choices
01:51 muurkha Izaya: sounds like some interesting directions to explore!  I hope to hear about your progress soon :)
01:52 muurkha yeah, I read it, erle, but that was last millennium ;)
01:52 erle the most important changes are probably “only one way of quoting” and “instead of implicit split, you always need to explicitly split”
01:52 erle but in day-to-day-life the most useful has been the more accessible redirection syntax
01:53 erle https://doc.cat-v.org/plan_9/4th_edition/papers/rc
01:53 muurkha yeah, I think those are definitely important
01:53 muurkha I was super enthusiastic about plan9 in 01996
01:53 muurkha at that time some guy from cisco told me they were using it as a dev environment
01:54 erle putting a 0 in front of a number that is not octal trips me up
01:54 muurkha heh, me too
01:54 erle is that intended?
01:54 muurkha yes
01:54 erle hehe
01:54 erle then continue on, intent matters
01:54 muurkha they were having a hard time sourcing new PCs with supported graphic cards
01:55 erle well now you have stuff like the MNT reform 2
01:55 muurkha also you can just run it in emulation
01:55 muurkha if they'd chosen oberon they wouldn't have had that problem ;)
01:56 erle i figured something out relating to my attention deficit some time ago, i have a much easier time using interfaces, programming lanugages and data structures that do not require much hidden state. i assume the reason is that my working memory seems to be very low in contrast to other people.
01:57 erle this also means that in code review i flagged things that were working, but not obviously working.
01:58 erle a coworker in security does not have this issue, but his philosophy is “it is not good enough to make something that is secure, it needs to be obviously secure”
01:59 erle and given the difficulties of explaining design decisions to implementors i agree
01:59 erle anyway, i think hidden state is the enemy of a good UX
01:59 erle everything that could affect a users decision needs to be accessible, maybe even visible
02:02 erle muurkha, my favourite bit of rc code is this quine http://news.dieweltistgarnichtso.net/bin/quine.rc
02:03 est31 joined #minetest
02:03 YuGiOhJCJ joined #minetest
02:03 fling joined #minetest
02:05 erle muurkha, btw http://contemporary-home-computing.org/turing-complete-user/
02:06 erle do you have musings on that line of reasoning?
02:06 erle it seems like the kind of thing i could find in your writings
02:06 erle but i do not know what to seaarch for
02:08 YuGiOhJCJ joined #minetest
02:14 muurkha flagging things that are working but not obviously so seems like a good thing
02:15 muurkha this essay sounds interesting
02:18 muurkha I haven't read it yet but it seems like if I had written it I might have tagged it with https://dercuano.github.io/topics/hci.html https://dercuano.github.io/topics/independence.html https://dercuano.github.io/topics/history.html https://dercuano.github.io/topics/politics.html https://dercuano.github.io/topics/utopias.html https://dercuano.github.io/topics/decentralization.html
02:18 muurkha https://dercuano.github.io/topics/free-software.html
02:18 sys4 joined #minetest
02:36 YuGiOhJCJ joined #minetest
03:01 YuGiOhJCJ joined #minetest
03:05 YuGiOhJCJ joined #minetest
03:15 erle muurkha olia lialina is more a UX person though
03:15 erle i'll look at the tags
03:20 erle random idea i came up with when a friend asked me about how to implement colored beam light changes using glass …
03:20 erle if you want to do RGB mixing (which people expect) and you give all channels the same bit width (which i think is making a lot of things easier), you can calculate the number of nodes needed n for the number of bits for each color channel b the following way:
03:20 erle b = log2(n * 256) / 3
03:20 erle i am very sleepy, so not sure if that correct, but the integer solutions to that are:
03:20 erle 2 nodes with 256 palette colors, resulting in 3 bit color channels
03:20 erle 16 nodes with 256 palette colors, resulting in 4 bit color channels
03:20 erle 128 nodes with 256 palette colors, resulting in 5 bit color channels
03:21 erle you can use the A1R5G5B5 support of my tga_encoder mod to generate the palettes
03:22 erle and 5 bit per color channel looks close enough to believable if you have no gradients or so
03:22 erle (no banding issues)
03:27 muurkha nodes?
03:27 erle nodes, in minetest, cubes of 1m³
03:27 muurkha oh, minetest nodes!
03:27 muurkha clearly I am offtopicking far too much
03:27 erle well, minetest has hardware coloring
03:27 erle or rather, palette, colormap support
03:28 muurkha so like cyan magenta and yellow nodes and you put them in front of each other?
03:28 erle yeah i am thinking of what the minimal demo mod would be
03:28 erle i do not believe anyone has done 5 bit color channel mixing before, but i am not sure
03:29 erle i have a solution in search of a problem hehe
03:29 erle a common hipster dev story
03:29 erle magic color nodes
03:29 erle it does, in fact solve the problem my friend posed
03:29 erle but she is not going to implement it and i am also not
03:30 erle which is: consider you have a node that represents a beam that goes through colored glass
03:30 erle how do you implement color changes in the beams without registering a node for each color
03:38 erle https://en.wikipedia.org/wiki/Color_gel
03:57 orwell96 joined #minetest
04:00 MTDiscord joined #minetest
04:07 fling_ joined #minetest
04:09 est_ joined #minetest
04:15 sys4 joined #minetest
04:33 orwell96 joined #minetest
05:20 sys4 joined #minetest
05:27 muurkha erle: maybe also https://dercuano.github.io/topics/ubicomp.html
05:45 calcul0n joined #minetest
05:47 est31 joined #minetest
06:15 est31 joined #minetest
06:26 Verticen joined #minetest
06:48 cranezhou joined #minetest
06:49 lemonzest joined #minetest
07:26 YuGiOhJCJ joined #minetest
07:30 erle joined #minetest
07:30 TomTom joined #minetest
07:38 est31 joined #minetest
07:51 orwell96 joined #minetest
08:49 frostsnow joined #minetest
09:00 specing_ joined #minetest
09:13 est31 joined #minetest
09:43 Talkless joined #minetest
10:32 appguru joined #minetest
10:37 erle appguru have you found the thing that introduced the regression for the automove?
10:48 definitelya joined #minetest
11:10 frostsnow joined #minetest
11:32 Alias joined #minetest
11:53 erle schwarzwald[m] muurkha how are build flags usually represented? i tend to use files, because otherwise it is not obvious to users what has changed. but i know that stuff like cmake uses environment variables – which makes the question “how to rebuild the target in exactly the same way” a question of “can i remember which command i used to build it?”.
12:18 orwell96 joined #minetest
12:22 fling joined #minetest
12:22 olliy joined #minetest
12:23 est31 joined #minetest
12:37 Taoki joined #minetest
12:50 MTDiscord <luatic> erle: yes, and I commented on the issue
13:15 est31 joined #minetest
13:18 fling joined #minetest
13:51 Kilroy joined #minetest
14:16 schwarzwald[m] <erle> "schwarzwald muurkha how are..." <- By build flags do you mean the compiler flags or the build options?
14:16 schwarzwald[m] I'll assume you mean the build options. They're usually passed to cmake as `-DSOME_OPTION=ON` when you invoke it. A good build design will be such that you either know you want an option to be different than the default, or you don't have to specify it.
14:17 schwarzwald[m] Basically if you always have to specify options there's a problem. Options should be the exception, not the norm.
14:17 schwarzwald[m] In most cases the goto-solution should be to specify no options at all, and it should build in a desirable way.
14:18 schwarzwald[m] Only exception I've made in my build is that I don't default CMAKE_BUILD_TYPE to anything, because I don't yet think it's wise to default that.
14:26 appguru joined #minetest
14:27 erle schwarzwald[m] everything. compiler flags are build options.
14:27 schwarzwald[m] Compiler flags should be passed in `-DCMAKE_CXX_FLAGS=".."`
14:28 schwarzwald[m] Any flag required to build something should be a target property in the build; you shouldn't have to specify it.
14:28 erle schwarzwald[m] an especially hilarious example is that IrrlichtMT (and possibly irrlicht upstream) will build your static library if you give it -DBUILD_SHARED_LIBS=OFF and “make lib/Linux/libIrrlichtMt.a” simply does not work unless you give that option
14:28 erle and maybe not even then
14:29 schwarzwald[m] That's because there won't be a libIrrlichtMt.a target.
14:29 erle but that seems so absolutely bizarre. after all, this is just a target that is not built by default – its build rules should still be emitted!
14:29 erle schwarzwald[m] elaborate please
14:30 schwarzwald[m] CMake actually generates only 1 library target, and it will be either shared or static depending on that option.
14:30 schwarzwald[m] No static library target exists at all if you don't tell it not to build shared.
14:30 erle compiler flags are in my branch in src/CXXFLAGS. that way, if you change them, you can see what you changed.
14:30 schwarzwald[m] It's quite possible to set it up to do both, of course, but we didn't.
14:31 erle well, i maintain that it is an impractical idea to not emit build rules for a non-default target. or does it have to be that way because cmake will implicitly tell the step 2 build system to build all targets?
14:32 erle impractical because then you need to configure the build again if you want that target
14:32 schwarzwald[m] I read an interesting point by Bjarne Stroustrup last night, who said that he wouldn't compare other languages to C++ in his book on how he made C++, because it's almost impossible to fairly compare languages to each other, and even people who take on the incredibly momentuous task forget things about programmer culture, different versions of the languages, etc. because they don't know the tool as well.
14:33 erle oh, i know a good example of this
14:33 schwarzwald[m] I think this applies to a lesser extent here. You can't fairly argue about the intricacies and correctness of a build system that you aren't deeply familiar with.
14:35 erle that is why i ask you things
14:35 erle https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html
14:35 erle it does not load
14:35 erle https://web.archive.org/web/20090509144523/http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html
14:35 schwarzwald[m] erle: I'm not nearly familiar enough with how CMake works to be qualified to answer most of them.
14:35 erle ) 1972 - Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix.
14:36 schwarzwald[m] erle: Love the title. ^^
14:36 erle > 1983 - Bjarne Stroustrup bolts everything he's ever heard of onto C to create C++. The resulting language is so complex that programs must be sent to the future to be compiled by the Skynet artificial intelligence. Build times suffer. Skynet's motives for performing the service remain unclear but spokespeople from the future say "there is nothing to be concerned about, baby," in an Austrian accented monotones. There is some
14:36 erle speculation that Skynet is nothing more than a pretentious buffer overrun.
14:36 erle > 1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.
14:36 schwarzwald[m] lol
14:37 erle i think the best part about the invention of perl is the part where larry wall is the only person who has won the international obfuscated C contest twice (as far as i know)
14:37 schwarzwald[m] I have a new favourite programming quote, from Bjarne Stroustrup. He said that C++ makes it harder to shoot yourself in the foot (than C does), but when you do it blows your whole leg off.
14:38 erle so he obviously has an award-winning talent for letting the cat walk across the keyboard and compiling the results
14:39 erle the quote about the prophet is also a joke i think about his devotion
14:39 erle https://en.wikipedia.org/wiki/Larry_Wall
14:39 erle >  Wall and his wife were studying linguistics with the intention of finding an unwritten language, perhaps in Africa, and creating a writing system for it. They would then use this new writing system to translate various texts into the language, among them the Bible.
14:39 erle > He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".
14:40 schwarzwald[m] That sounds amazing. Did they succeed in doing translations? :O
14:40 erle nope got canceled
14:41 erle ”due to health reasons”
14:41 schwarzwald[m] That's too bad.
14:41 erle anyway, i think that joke post is deeper than one might think at first glance
14:42 erle btw, guns that shot forwards and backwards simultaneously existed for a short while. instead of a revolver drum, there is also the possibility to put a disk the way that the bullets are oriented outside.
14:42 erle so shooting forwards and backwards at the same time was a possible accident in them
14:43 erle i forgot its name, but it sounds hilariously unsafe
14:43 schwarzwald[m] Anyway, to get back on topic, let me check the cache for my CXX_FLAGS.
14:43 erle yeah, how do you do that?
14:43 erle in my case, it is a file that i read
14:44 schwarzwald[m] //Flags used by the CXX compiler during all build types.
14:44 schwarzwald[m] CMAKE_CXX_FLAGS:STRING=-march=native
14:44 schwarzwald[m] Same here.
14:44 schwarzwald[m] I don't usually open the file though (although this time I did), because it's quicker to use `grep`.
14:44 erle oh yeah, could be this one https://en.wikipedia.org/wiki/File:Lewis_Gun_(derivated).jpg
14:44 erle not sure
14:44 erle maybe that one is safe
14:45 erle i think the one i remember was way stupider
14:45 schwarzwald[m] `grep "CXX_FLAGS" build/CMakeCache.txt`
14:47 schwarzwald[m] Any flags people are going to use repeatedly in certain circumstances might be wise to apply automatically.
14:47 schwarzwald[m] For example I'm thinking I should check whether it's a Debug build and set up the Clang sanitizers or something if it is.
14:47 schwarzwald[m] (Also assuming Clang is the compiler. xD)
14:47 schwarzwald[m] (Can set different sanitizers if it's GCC.)
14:48 erle which also means a dependency on the compiler symlink for c++ ;)
14:48 schwarzwald[m] CMake handles compiler detection internally.
14:50 * schwarzwald[m] sent a cmake code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/fc06c03f489aa6527724a74b42858d859f47bf73
14:50 schwarzwald[m] This is how I set warning flags for example.
14:50 schwarzwald[m] The compiler detection process is most likely documented, but I haven't read through that documentation.
14:51 schwarzwald[m] no-c++90-compat? Oof, that should be no-c++98-compat.
15:14 fling joined #minetest
15:28 est31 joined #minetest
15:38 Arya[verncc][m] lmfao
15:38 Arya[verncc][m] i have 69 perpetual notifications
15:41 erle Arya[verncc][m] perpetual?
15:41 Arya[verncc][m] matrix was glitching
15:41 Arya[verncc][m] (bad protocol)
15:41 Warr10244 joined #minetest
15:43 erle muurkha do you think the fact that the vast majority of matrix clients is written using element reflects the state of the dev community or that it is simply a child of its times?
15:57 proller joined #minetest
16:16 fling_ joined #minetest
16:17 est31 joined #minetest
16:40 skunky3 joined #minetest
16:43 skunky3 heya, if i use texture modifiers on nodes like multiply, crack, overlay etc, will the server just send the required textures for it and the string, or does it create the image serverside and send it?
16:44 rubenwardy it's created client-side
16:44 sfan5 all textures are transferred to the client at load time and the rest happens there
16:44 skunky3 great, thanks a lot for the info!
17:08 sfan5 anyone have a link to that formspec editor thing
17:08 sfan5 on the web
17:09 sfan5 the formulas from the api docs don't seem to work for converting to real coordinates
17:10 sfan5 so much easier to recreate the layout from scratch
17:10 skunky3 btw, im guessing biome colour blending still doesnt really exist in any way?
17:11 sfan5 you mean like this? https://i.stack.imgur.com/hcejG.jpg
17:12 sfan5 if yes then that's up to mods to do, it's possible with the engine features
17:12 skunky3 yeahh, it would be nice to have optionally
17:12 erle skunky3 just as a warning, some people go way overboard with texture modifiers to create very detailed textures. in the case that you actually intend to create textures pixel-by-pixel dynamically on the server, you can use either minetest.encode_png() or tga_encoder, depending on your use case – minetest.encode_png() will only do RGBA textures, tga_encoder can do paletted images and other stuff but is not suitable for large images.
17:13 erle skunky3 if you want biome colors, mineclone2 contains an implementation of differently colored dirt with grass.
17:14 erle skunky3 you basically have to usea paletted node, then adjust the param2 (that gives the palette index) per biome on placement in both the mapgen and manual placement or grass spreading or so.
17:15 erle the screenshot you got shown is probably exactly that
17:16 erle also, before you inevitably ask: i am not aware of any way to do this for flowing water.
17:17 erle i was told that water nodes use the param2 for other important stuff (direction?) and you can not color them, but i have not verified that.
17:19 skunky3 yeah, i thought of those ways, but seems to not be able to do in block blending, was just curious if it was possible, can live without it tho
17:19 erle what do you mean with in-block bending?
17:19 erle blending
17:20 skunky3 the colour slowly blending between colours even on a single block
17:20 skunky3 like a gradiant
17:21 erle this is technically achievable, but i have never seen it being done. i also do not think it is useful.
17:21 erle however, i can help you if you want to implement it.
17:22 erle i suggest to calculate the number of different gradients you would need for your use case first though
17:23 skunky3 unsure yet since im more on the beginning stages of my ideas
17:23 erle my intial assumption is that for each color-pair you would want 8 gradients.
17:24 erle so for one black and one white node there are 8 nodes, simply imagine a black node surrounded by white nodes or vice versa
17:25 erle for example, for six base colors you want to blend, i think it is 6! = 120 transitions. times 8 gradient directions.
17:26 erle that is 960. so you can not achieve it with a single colormapped node.
17:26 erle oh, it is 5!
17:26 erle sorry
17:27 erle i think you can blend 5 colors, like that because then you only need 192 palette entries
17:27 skunky3 yeah i could imagine it going quite off the charts with the amount of nodes
17:27 erle well, each node can have 255 different palette colors
17:27 erle 256?
17:27 erle 8 bit param2 yes
17:28 erle so technically, i'd say you start with 8 different gradient nodes, then colorize them in differently
17:28 skunky3 im guessing that its not possible to overwrite the shaders of blocks btw?
17:29 erle i have no idea. i do not think it makes sense to solve it on that level anyway.
17:29 erle it will look ugly no matter you try
17:30 erle a better idea is to change the node color gradually
17:30 erle instead of having a gradient over the node
17:31 erle incidentally, i calculated last night that you can actually use 128 nodes with 256 palette colors each, resulting in 5 bit color channels for R, G, B
17:31 erle this is evidently not too much
17:32 erle epmirically, as long as you do it right, players can't distinguish 15 bit RGB from 24 bit RGB (with 8 bit per channel) anyway
17:33 skunky3 i would personally try to mess around on that level since im more well versed with shader code then lua minetest stuff, but might have a better solution anyway like ya said there
17:33 erle the fundamental problem with any color blending thing is that the smallest solution i found that makes sense requires 2 nodes.
17:33 erle any smaller solution is the one we already have
17:33 erle i.e. the mineclone2 solution
17:34 erle skunky3 if you are well versed with shader code, can you tell me how to programmatically find the amount of instructions shader code gets compiled into?
17:34 erle it depends on the GPU, i know that. but i could only find a tool that reports this for the mali GPU.
17:34 erle which i do not use
17:36 erle it is relevant to me because as far as i can tell there are a lot of underpowered openGL ES 2.0 GPUs which can do shaders, but not with minetest, because minetests shaders are too big. if it was only a few shaders or these could be reduced to fit, lower-spec devices might get shader fun.
17:37 skunky3 not really sure, and i said im more well versed with it then lua, not that im very well versed with them in general :p
17:37 erle for example, the mali 400 GPU is OGLES spec-compliant, but can't do it. the intel GM9xx i use can do shaders, but exceeding the instruction count by even one instruction makes rendering performance drop from realtime to less-than-1-fps.
17:37 erle apparently the hardware simply trips over itself when you do that
17:38 erle well, if you find a way, please tell
17:38 erle i already found that the shader compiler for my hardware unrolls all loops lol
17:39 erle so i do not have high hopes
17:46 erle skunky3 it can help to cut your problem down to size. for example, you might not even want to blend between each biome color, because some biomes can not occur next to each other.
17:47 skunky3 i already have some other ideas so ill do that before that
17:47 erle tell
17:49 erle i just mean, imagine you have 16 biome colors. if you need at most 30 transitions of 8 gradients each between them, you can fit that in a single node.
17:49 sys4 joined #minetest
17:49 erle so if they are, for example, on a height gradient, it may just work out
17:52 FreeFull joined #minetest
17:57 bwarden joined #minetest
18:09 erle skunky3, did you see this? https://content.minetest.net/packages/pauldpickell/colorbrewer/
18:11 skunky3 no i havent, tho ill try to do my own thing later
18:18 Thermoriax Hmm, I'd heard shadows amd better lighting got added, but I don't see it...is there a setting somewhere I missed?
18:20 erle Thermoriax games must enable it. you must also enable it.
18:20 erle Thermoriax look at the lower right corner in the graphics section, make sure you have shaders active.
18:23 Thermoriax hmm, they are...though the public server I was on may not have, let me whip up a local world to see
18:24 ROllerozxa dev versions of MTG has support for it, I don't know if any other games do yet
18:25 Thermoriax ah, I thought it had been merged at 5.5
18:25 erle i bet there is a mod on cdb that activates it
18:26 ROllerozxa heh, https://content.minetest.net/packages/ROllerozxa/enable_shadows/
18:26 erle the fundamental issue with games gaving to activate it is that a bunch of games contain a bunch of things where shadows are undesired
18:26 erle for example, if you had shadows in a shooter game (like ctf) i think you might be able to see enemies around corners, is that right rubenwardy?
18:26 ROllerozxa Thermoriax: it was merged during 5.5.0-dev but was disabled during the 5.5 stable release. they're in 5.6.0-dev again now and the upcoming 5.6.0 release but they're opt-in and controllable by the game
18:27 Thermoriax ah, off to find dev builds then
18:27 erle what system are you on?
18:27 Thermoriax win10
18:28 ROllerozxa https://forum.minetest.net/viewtopic.php?f=42&amp;t=1523&amp;p=412369#p412369
18:28 Thermoriax at least until MS annoys me enough to switch entirely to xubuntu. :)
18:28 erle at the point where they do that you will have more difficulties to switch ig
18:29 ROllerozxa also for some reason 5.6.0-rc1 doesn't have binaries available yet... been a week now
18:29 muurkha erle: some of both
18:29 erle muurkha sorry, what was that a response to?
18:30 erle Thermoriax you should take great care that you do not end up with a device that you can not install GNU/Linux on anymore.
18:31 Thermoriax we should probably take this to offtopic if there is one
18:31 muurkha erle: make also has make variables which are sort of like environment variables
18:33 muurkha erle: state of world or dev community
18:36 erle muurkha i should probably do something like “env |redo-ifchange” then haha
18:36 erle well only for the relevant variables
18:40 erle muurkha can you point me to an overview of tracing methods? the strace method is actually competitive (i can build faster than cmake if using PCH and apenwarr do), but i am interested in different approaches.
18:40 erle or just mention them if there are not many
18:41 erle a friend suggested a FUSE approach, i have thought about inotify, but for both i have not seen any implementations
18:41 erle (in the context of build systems)
18:42 muurkha there's FUSE, and Vesta implemented its own NFS server
18:42 erle oh yes i forgot about that
18:43 erle how does vesta map the filesystem calls to a build rule?
18:43 erle namespaces?
18:45 vampirefrog joined #minetest
18:47 TomTom joined #minetest
18:47 sfan5 to answer my own question from earlier: the formspec editor is at https://luk3yx.gitlab.io/minetest-formspec-editor/ and I could have trivially googled for it
18:52 muurkha the build rule sets up the namespace to run the build step in
19:11 appguru joined #minetest
19:22 vampirefrog joined #minetest
19:27 sparky4 joined #minetest
19:41 dabbill joined #minetest
19:53 est31 joined #minetest
20:01 olliy joined #minetest
20:22 proller joined #minetest
20:29 cynthiune joined #minetest
20:36 cynthiune1 joined #minetest
20:59 YuGiOhJCJ joined #minetest
21:00 specing_ joined #minetest
21:10 MTDiscord <MisterE> Does anyone feel like playing blockbomber in 2 hrs? I'm hoping we can get a team of 5 ppl or more
21:30 Verticen joined #minetest
21:41 YuGiOhJCJ joined #minetest
21:42 sys4 joined #minetest
21:50 Alias joined #minetest
22:19 YuGiOhJCJ joined #minetest
22:34 panwolfram joined #minetest
23:14 cynthiune joined #minetest
23:14 cynthiune2 joined #minetest
23:21 bodiccea_ joined #minetest
23:36 MTDiscord <MisterE> playing blockbomber, come join!
23:37 MTDiscord <MisterE> - Address: bb1.blockbomber.org - Port: 30001
23:41 cynthiune2 joined #minetest
23:52 cynthiune1 joined #minetest
23:53 Lesha_Vel joined #minetest
23:58 fluxionary hm. you can use mod_storage before all the mods are loaded, right?
23:58 fluxionary (apropos nothing)
23:59 rubenwardy yeah, you need to get a reference during your mod's load time, and you can use it immediately

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