Minetest logo

IRC log for #minetest-dev, 2021-10-19

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

All times shown according to UTC.

Time Nick Message
00:07 proller joined #minetest-dev
00:07 MTDiscord <Bastrabun> Not that it hasn't been requested and shot down already multiple times
00:10 MTDiscord <Bastrabun> But if, I'd love to see it happen 🙂
00:21 v-rob To actually make sending the screen size useful, you'd also have to know about font dimensions, really, which is difficult from a technical standpoint
00:22 v-rob I can see DPI and aspect ratio being useful without anything else, but screen size really needs font dimensions to be useful
00:23 MTDiscord <josiah_wi> Barging in to let you all know, I'm still looking for a second approval on my IRRLICHTMT_BUILD_DIR PR. Barging back out.
00:23 MTDiscord <Jonathon> you should link it
00:23 proller joined #minetest-dev
00:24 MTDiscord <josiah_wi> #11656
00:24 ShadowBot https://github.com/minetest/minetest/issues/11656 -- Add variable to use existing IrrlichtMt build by JosiahWI
00:26 v-rob It wouldn't be very nice to expose that info anyway because it would be expecting modders to take into account screen size, DPI, GUI scaling factor, and font dimensions.
00:26 v-rob I guess DPI + GUI scaling could be abstracted into some sort of abstract pixel, but that'd probably make people unhappy still.
00:27 MTDiscord <Jordach> no
00:27 MTDiscord <Jordach> just give us the full information
00:28 MTDiscord <Jordach> we can already do lots with screen percentages
00:28 MTDiscord <Jordach> knowing exactly the size of the screen would allow us to provide properly shaped formspecs for even stranger devices
00:28 MTDiscord <Jordach> let mods actually handle the problem rather than shoehorning a completely fucking terrible solution to the problem
00:28 MTDiscord <Jordach> are you developing a game or game engine
00:29 MTDiscord <GreenXenith> >expecting modders to take into account screen size, DPI, GUI scaling factor, and font dimensions
00:29 MTDiscord <GreenXenith> that is literally what modders want
00:30 MTDiscord <Jonathon> ^
00:30 MTDiscord <Jordach> or better yet, we could build fully working games with the HUD API given the screen information
00:30 MTDiscord <Jordach> see https://content.minetest.net/packages/luk3yx/prang/ for more details
00:32 MTDiscord <Jordach> hell how can we even dare call minetest a game engine let alone it lacks the usual facilities to even create the most minimal of 2D or even 3D games
00:36 MTDiscord <Jordach> hell why are we even debating the need of this
00:36 MTDiscord <Jordach> browsers send it without question to relative javascript APIs and there's no issue there
00:37 MTDiscord <Jordach> but god forbid it makes lives easier for mod/game devs
00:37 v-rob But browsers mainly use CSS for layouting.
00:37 MTDiscord <Jordach> get a load of web 1.0 over here
00:40 v-rob To actually make it easy for game devs, we'd have sizers built into the GUI. I feel split because the right way to do it is to make sizers actually built into the GUI, but formspecs have no such thing. However, I don't want modders being forced to do manual absolute positioning calculations be the norm.
00:42 v-rob In other words, I don't want to set the workarounds in concrete and make them the solution
00:43 MTDiscord <Jordach> just leave it to mod developers to build their own libraries around the problem
00:43 v-rob Yeah, I know
00:43 MTDiscord <Jordach> stop dictating what mod/game devs need because without absolute control and precision i may as well write it in god forbid, unreal
00:43 v-rob I just want the engine to be doing it so the modders don't have to. Ugh
00:44 MTDiscord <Jordach> you need to stop handholding people, the faster they get the stick rather than the carrot the better
00:44 MTDiscord <Jordach> as much as i dislike saying this, the hypertext formspec element is far more useful than any of the existing versionings has ever done
00:45 MTDiscord <Hugues Ross> I think you may be running into the difference between "don't have to" and "are unable to". Having simpler solutions doesn't preclude exposing information for custom lower-level solutions
00:45 MTDiscord <Hugues Ross> In fact, I think having both is ideal
00:45 MTDiscord <Jonathon> ^this
00:46 v-rob I mean, that does make sense
00:46 v-rob There is, of course, the technical aspect as well
00:46 v-rob Fonts are particularly problematic
00:46 MTDiscord <Jordach> boxing users and ostensibly the developers you're trying to attract with a limited viewpoint is extremely bad for business
00:47 MTDiscord <Jordach> if a mod begins to require engine changes to do any form of heavy lifting it's automatically a failure
00:47 MTDiscord <Jonathon> vrob: dont box yourself into not given x because of y, y can always be done later, but x can be used without y in multiple ways typically
00:49 MTDiscord <Jordach> we're complaining simply because we see a very major problem in why it's a very bad idea
00:49 MTDiscord <Jordach> let them have cake, and eat it, too
00:50 v-rob OK then, presume we are planning on adding client info then. Sending window sizes is easy (it changes rarely, so a callback is possible, like `minetest.register_on_window_resize`), as is DPI and GUI scaling. How could one get font info then?
00:51 MTDiscord <Jordach> pretty sure calculating pt based on DPI is super simple
00:52 MTDiscord <Jordach> most character glyphs range from about a 1:1.5 to 1:2.5 ratio
00:52 rubenwardy If the window changes screens, the DPI may change
00:52 rubenwardy And the window size may change at any time
00:52 rubenwardy So that's something you'd need to take into account
00:52 v-rob That would be the idea of a callback, not a static field
00:52 MTDiscord <Jordach> system dpi != monitor display size
00:53 rubenwardy DPI is per screen
00:53 MTDiscord <Jordach> maybe per screen but even 1440p (WQHD) is 97dpi
00:53 MTDiscord <Jordach> 96*
00:53 v-rob Some laptops nowadays are preeeeety high DPI, even if external screens connected to them are not.
00:54 MTDiscord <Jordach> DPI is only a measurement of how far is a physical inch
00:54 MTDiscord <Jordach> if anything depending on a user configurable value in minetest.conf is very dumb
00:55 v-rob Still, a callback would mitigate the issue. Or, `player:get_window_info()` where the client sends window info to the server whenever it changes. It's not really insurmountable at all.
00:55 MTDiscord <Jordach> saying that we need a major talk about networking
00:56 MTDiscord <Jordach> serious business discussion going forwards because it's a total fucking mess
00:56 rubenwardy It doesn't really solve this particular issue though, as there's no good way to find out how big text will be
00:56 MTDiscord <Jordach> considering the default font we use is a practical known quantity that shouldn't be difficult
00:56 rubenwardy It would help, along with touchscreen info, with switching between touch friendly and desktop UIs
00:57 v-rob I don't know anything about the networking code, but it would just be a client->server message whenever screen info changes, and the server stores that info
00:57 MTDiscord <Jordach> basically for any feature that communicates either way you spend one packet of 255 afaik
00:57 MTDiscord <Jordach> 255 total unique enums
00:57 v-rob Fonts, though, are completely unreliable. Font height is probably easy enough to calculate, but there's no way in the world to query the font width
00:58 v-rob E.g. a hypertext is nigh impossible from the server without it
00:58 MTDiscord <Jordach> instead of complaining about fonts just give us the option to use a bounding box
00:58 MTDiscord <Jordach> defined the exact same way for positioning we do now
00:59 v-rob Although, servers should 100% not implement their own hypertexts. I don't care how much we should give to the modders, they will never support Unicode properly.
00:59 erlehmann <Jordach> just give us the full information
00:59 v-rob I know we don't (yet), but modders never will.
00:59 erlehmann Jordach great then i can finally get servers who will exclude me based on screen size
00:59 erlehmann and i have to make a hacked client
00:59 erlehmann to access them
00:59 MTDiscord <Jordach> it's more the operator won't care
00:59 MTDiscord <Jordach> https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam
00:59 MTDiscord <Jordach> see this?
01:00 erlehmann LVDS1 connected primary 1400x1050+0+0 (normal left inverted right x axis y axis) 290mm x 210mm
01:00 MTDiscord <Jordach> if you click primary display resolution, it'll show you the exact percentage of the many millions of steam users
01:00 erlehmann oh you are THAT kind of person
01:00 MTDiscord <Jordach> 1400x1050 sounds exactly like a 19:10 display
01:01 erlehmann uh what
01:01 erlehmann it's 4:3
01:01 erlehmann approx
01:01 MTDiscord <Jordach> point is we can gather aspect from calcuating w/h so it's not an issue
01:02 erlehmann like how do you even get to 16:10
01:02 MTDiscord <Jordach> because it's one of those wack resolutions
01:02 erlehmann i think you fail at division forever
01:03 erlehmann ; printf '4 k 1400 1050 / p 4 3 / p' |dc
01:03 erlehmann 1.3333
01:03 erlehmann 1.3333
01:03 erlehmann all clear? :D
01:03 MTDiscord <Jordach> i've got no problem with 4:3, 16:10 or the wack as fuck mobile users
01:03 tekakutli joined #minetest-dev
01:04 erlehmann Jordach i have done CSS layouts that worked for mobile and desktop and the most important lesson i have learned is it is a bad idea to give the server too much control
01:04 erlehmann what is good is to have constraint-based layout and breakpoints
01:04 erlehmann but what is bad is sending exact resolution etc.
01:04 MTDiscord <Jordach> it's not our job to police everything a user does like some kind of stasi
01:05 MTDiscord <Jordach> we leave that to the mod/game dev to taste
01:05 erlehmann no no it is about API design
01:05 erlehmann good API design makes entire classes of fuckups impossible
01:05 MTDiscord <Jordach> canvas.js and Phaser; two notable things hard depend on that
01:05 erlehmann for example, user agents. bad API design.
01:05 erlehmann you can see it bc clients start to lie.
01:05 erlehmann content negotiation? good API design. no reason to lie.
01:06 erlehmann minetest ideally should not repeat problems the web has
01:07 MTDiscord <Jordach> the real problem is not allowing regular users to make an absolute mess on their own
01:07 MTDiscord <Jordach> giving them a free out is extremely bad
01:08 erlehmann Jordach actually pretty much everyone i have seen who uses javascript on websites to do layout or animation instead of CSS or SVG is getting it horribly wrong
01:08 v-rob If we're criticizing API design, formspecs are about the worst possible API ever in the history of GUIs
01:08 erlehmann v-rob yeah but you can make them worse
01:08 MTDiscord <Jordach> see every MTG fork that aims to fix it and ends up becoming some amalgam of forum mods
01:09 erlehmann i am actually pretty happy that the engine devs do not give in to clowns who want the server to send every detail about the client to the server
01:09 erlehmann i mean who want the client to send it
01:09 erlehmann it is a great show of foresight
01:09 MTDiscord <Jordach> so then why the hell are you using any browser
01:09 MTDiscord <Jordach> it does that by default
01:09 MTDiscord <Jordach> hell even your regular desktop does this with apps and it's DE
01:10 erlehmann i am a hypocrite, society is broken and yet i participate in it!
01:10 erlehmann actually, no. wayland does not allow a bunch of things.
01:10 erlehmann that you can do with X11
01:10 erlehmann and it follows from their API design that you can not do them anymore in wayland
01:11 erlehmann i think an app window can, for example, not absolutely position itself
01:11 erlehmann (i may be wrong on this, can't test it right now)
01:12 erlehmann Jordach i believe one has to talk about what you want to achieve. CSS-like constraint based layout is actually a good way to not send data to the server.
01:12 MTDiscord <Jordach> a window should only choose positions where it's most logical to place it (ie where the mouse pointer resides on a screen, or predefined display)
01:12 MTDiscord <Jordach> CSS works until you find yourself arguing with how shit it truly is
01:12 MTDiscord <Jordach> there's a reason adobe flash isn't dead
01:12 erlehmann i use tiled window managers and object to any windows that place themselves
01:12 MTDiscord <Jordach> because every major game uses it as a HUD
01:12 erlehmann flash is deader than dead tbh
01:13 MTDiscord <Jordach> flash maybe dead but the schema it gave is why most games use it
01:13 MTDiscord <Jordach> https://en.wikipedia.org/wiki/Scaleform_GFx
01:14 erlehmann jordach for some reason *every* person who argued how shitty CSS was was unable to understand the cascade or sibling selectors or other basic stuff. and actually most of them admit it after a short while.
01:14 erlehmann and it is not bc it is complicated too
01:14 erlehmann they are unable because they chose to
01:14 erlehmann i have made complex interfaces in CSS only
01:14 MTDiscord <Jordach> CSS may not be complicated but the assigned box method is absolute ass
01:15 erlehmann but if you want flash-like stuff, use svg, honestly
01:15 erlehmann dvd menus use it i think
01:15 v-rob @media screen and (max-width: 1000px) { * { display: none !important; } #haha { display: block !important; } } (HTML: <p id="haha">Your screen is too small"</p>) <<<< Yeah, CSS can *definitely* discriminate against you based on screen size.
01:15 MTDiscord <Jordach> something like that is upto the mod/game devs taste
01:15 MTDiscord <Jordach> doing any of that would invite it, sent or not
01:16 erlehmann v-rob it can, of course. but since the client interprets it, you can work around it easier using user stylesheets.
01:16 v-rob But you were just saying that you don't want to workaround it.
01:16 erlehmann yeah so you should not give any way to access raw pixls
01:16 erlehmann rather have landscape/portrait or touch/pointer paradigms
01:16 erlehmann but in a way that one size fits all
01:17 erlehmann i believe one of the best examples for this is GNU emacs. if you do some graphical stuff with it, it will just work in the GTK interface and also in your terminal.
01:17 erlehmann no additional work required
01:17 erlehmann like, i don't know, if you make some elisp that highlights all occurrences of the letter “e”
01:17 MTDiscord <Jordach> if you want to make it just work let mod developers do as they please
01:18 MTDiscord <Jordach> forcing them into a shitty little box that you defined is extremely hostile
01:18 erlehmann actually not
01:18 erlehmann having well-designed APIs and languages makes systems much more powerful in the end
01:18 erlehmann have you read the langsec stuff?
01:19 v-rob erlehmann: I WANT these good APIs you speak of. But they're impossible for formspecs, and the new GUI, even if I worked on it right now every day, it would still take a long time to finish coding, testing, reviewing, and bugfixing it, even in the best case scenario. So modders are stuck with nothing in the meantime.
01:19 erlehmann basically, you need to find out what the complexity of your problem is and then use an approach of exactly that complexity, not more complex (bc then it gets unmaintainable) and not less (but if it is a bit less, you can always add to it later)
01:20 erlehmann v-rob every solution will take a long time. fast, cheap, good – choose max. 2
01:20 v-rob Alternatively, do fast and cheap right now while we work on fast and good.
01:21 erlehmann cheap in this case includes maintainability though
01:21 MTDiscord <Jordach> this is exactly why i suggested just one release a year with the rest of it being bug fixes for up and coming
01:21 erlehmann if you make a too powerful interface, you can never take it away
01:21 v-rob Note: I'm not yet advocating for sending screen size, I still don't know if I support it or am against it yet. I still remain unconvinced either way.
01:21 MTDiscord <Jordach> please see the implementation of PRANG! on CDB
01:22 MTDiscord <Jordach> it's all done with raw HUD API
01:22 erlehmann also if you have a shitty API that is easy to understand or use it will crowd out almost every API that is a bit better
01:22 MTDiscord <Jordach> having known window borders would make it less frustrating
01:24 MTDiscord <Jordach> keeping it simple is far better than the alternatives#
01:24 erlehmann Jordach i think a good web example is the <select> elements in browsers. you can't style them well, but they will always be a reasonably good input field for the platform the user is on.
01:24 v-rob It is 100% possible to limit this feature to formspecs only, so unless you want to use formspecs over the new GUI when it comes, you couldn't use the feature. (And no, no one wants to use formspecs, ever)
01:24 erlehmann like it will be a drop down on one platform, a modal on another, a tab-completion text field on the third etc.
01:25 erlehmann v-rob Jordach which libraries do you think do GUI in minetest the best? i wanna check them out
01:25 MTDiscord <Jordach> no clue
01:25 MTDiscord <Jordach> i build my own tools because using anything else leads to massive dependancy usage for next to no benefit
01:25 erlehmann well
01:26 erlehmann there are at least 2 kinds of those users
01:26 MTDiscord <Jordach> i keep it super simple with an explicit focus
01:26 erlehmann i am the kind that builds their own tools because existing tools suck for the purpose
01:27 erlehmann like busybox tar, it does not make bit-exact reproducible tarballs. but my tar implementation is <100 LOC of bourne shell.
01:27 erlehmann i only wrote it after understanding how exactly the busybox tar sucks though
01:27 MTDiscord <Jordach> a lot of the ideas are depending on having lots of backend complexity for absolutely no reason
01:28 erlehmann oh yeah i think backend complexity is bad
01:28 erlehmann some mod devs jump through shitty hoops
01:28 MTDiscord <Jordach> this is my point
01:28 erlehmann to make everything eXaCtLy LiKe MiNeCrAfT for example ;)
01:28 MTDiscord <Jordach> giving us user/system configured DPI, screen x,y would effectively solve all the problems
01:29 erlehmann their code sucks
01:29 erlehmann how
01:29 MTDiscord <Jordach> we know mcl sucks
01:29 MTDiscord <Jordach> if you listen closely you can hear the sound of a hoover sucking out all forms of hope from the maintainers
01:30 erlehmann yeah but it is a good showcase on to how much lengths ppl go for example why particle spawners did not do what the devs wanted (which is being worked on i think)
01:30 erlehmann Jordach so if you have user/system configured DPI, screen x,y … what would the backend do?
01:30 erlehmann send different formspec based on that?
01:31 erlehmann <Jordach> stop dictating what mod/game devs need because without absolute control and precision i may as well write it in god forbid, unreal
01:31 MTDiscord <Jordach> basically it's up to the mod/game serving the content to find the most optimal way of showing things
01:32 erlehmann this is the attitude i fear btw
01:32 MTDiscord <Jordach> we're in an open source community with practically 100% open source content
01:32 erlehmann well that is basically like “build everything in javascrap”
01:32 erlehmann look people SUCK at UX
01:32 MTDiscord <Jordach> people suck at UX because they never have to handle it
01:32 erlehmann if you give them more opportunities, they will suck more. you probably not.
01:32 MTDiscord <Jordach> give them the damn stick
01:32 erlehmann but others.
01:33 erlehmann uh i'll take html <select> or <video> over every custom-designed form element or video player any day of the week
01:33 MTDiscord <Jordach> at the end of the day it's up to the lua developer to choose what works best
01:34 erlehmann i think you are optimistic because you are talented
01:34 MTDiscord <Jordach> the client doesn't need to know the specifics of how it works
01:34 erlehmann and then ofc you hate being boxed in
01:34 MTDiscord <Jordach> the client is a very dumb renderer
01:34 erlehmann but it is possible to make APIs that make the right usage easier than the wrong usage, it is just damn hard
01:35 MTDiscord <Jordach> making it any smarter risks having mods become visually or impaired between versions
01:35 erlehmann oh yeah hmm
01:35 MTDiscord <Jordach> it's an extreme level of risk
01:35 MTDiscord <Jordach> keeping it simple by forcing the developer to choose at the risk of being beaten by the stick
01:35 erlehmann every client improvement i have seen in formspec territory btw was CSM based
01:35 v-rob So, either "dang hard" with screen size or "impossible" without
01:35 v-rob Lovely options
01:35 MTDiscord <Jordach> rather than giving them a carrot everytime
01:35 MTDiscord <Jordach> you can already get "screen size"
01:36 erlehmann how actually?
01:36 MTDiscord <Jordach> per pixel offsets already exist for hud elems
01:36 MTDiscord <Jordach> note that i said, per pixel, not per DPI
01:36 MTDiscord <Jordach> with some experimenting you can find it
01:37 MTDiscord <Jordach> by having a very large square texture with a simple crosshair drawn
01:37 erlehmann do you need user assistance?
01:37 MTDiscord <Jordach> yes
01:37 MTDiscord <Jordach> and depending on DPI that may not be visible
01:37 erlehmann what is “per DPI”?
01:37 MTDiscord <Jordach> ie devices with a sub 7 inch display
01:38 MTDiscord <Jordach> where it becomes near impossible to pick individual pixels out
01:38 erlehmann oh
01:38 MTDiscord <Jordach> if i know where the hard limits are, rather than the relative positions are
01:39 erlehmann oh btw
01:39 erlehmann > a vector-graphic based font system that uses a single texture to dynamically cache glyphs on demand
01:39 MTDiscord <Jordach> it's much easier to relatively place hud elems
01:39 erlehmann this is so funny, it always breaks down if you use unicode
01:39 erlehmann (as in, it is almost a memory leak)
01:39 MTDiscord <Jordach> unicode is a major mistake
01:39 erlehmann at least in other libraries i have seen
01:39 erlehmann what why
01:40 MTDiscord <Jordach> the kind of thing that increasingly becomes overblown to the point it's painful to support each revision
01:41 erlehmann uh
01:41 erlehmann well
01:41 MTDiscord <Jordach> and our currently bundled font doesn't even handle script like fonts
01:41 erlehmann it kinda works
01:41 erlehmann bundle unifont
01:41 MTDiscord <Jordach> kek
01:41 MTDiscord <Jordach> it's either all of the bloat or none of it by delimiting to ascii
01:41 erlehmann look i am using unifont almost everywhere
01:42 erlehmann and if you use it in a ttf engine
01:42 erlehmann then you can have all the sweet sweet unicode fun
01:42 erlehmann with a pixel font!
01:43 MTDiscord <Jordach> here's what makes having known display sizes useful, a test case would be implementing the bouncing DVD logo
01:43 MTDiscord <Jordach> you can also do bounds testing should you know image dimensions, with a basic aabb test
01:44 erlehmann i am pretty sure i can implement that in both css and svg without knowing the absolute screen size … ?
01:44 erlehmann i mean svg is basically flash-like
01:44 erlehmann but without the bad parts
01:45 erlehmann (exploits)
02:16 MTDiscord <Jordach> i think the problem is you're shit scared of something being used to discriminate except for the fact it's needed to guarantee that xyz works properly on the game side
02:17 MTDiscord <Jordach> don't be scared of doing things to make life better
02:22 erlehmann Jordach i used to take part in web standards discussions in the past. also i have some experiences from my job regarding bad and good API design. that is why i am afraid. ultimately, my opinion does not count much, what counts is what is implemented, i just want ppl to be aware of the tradeoffs.
02:22 MTDiscord <Jordach> if you're going to do it manually, you're probably already aware of the problems you're likely to encounter
02:23 erlehmann you seem to think the risk is negligible, i have a different view based on different experiences
02:23 MTDiscord <Jonathon> you seem to want to keep modders in a black box for supior vaporware designs
02:24 erlehmann like i have made interfaces that worked well on small mobile screens and big screens, by following constraints i would best explain as “try to make a visual composition that would work both as a landcape poster and as a portrait postcard”
02:24 MTDiscord <Jonathon> good for you, that doesnt solve minetest issues
02:25 MTDiscord <Jordach> you would be doing that manually as part of it anyway
02:25 erlehmann i am very well aware that most people are actually unable to work well with constraint-based layouts
02:25 erlehmann that is why i asked how popular existing libraries do it
02:26 erlehmann i have literally no idea what to do that is both usable and maintainable
02:26 erlehmann (from a formspec POV)
02:26 erlehmann Jonathon how do you do formspecs to make them portable? just keep them small?
02:26 MTDiscord <Jordach> formspecs should be consigned to the void
02:27 MTDiscord <Jordach> not keep them small but rather just as smaller individual pieces much like i3 (WM)
02:27 MTDiscord <Jordach> at least with smaller pieces re-arranging to fit is much less ass
02:27 erlehmann i guess we all agree on that. just don't let hecks rip out the formspecs, otherwise we get a ton of regressions followed by “that was never supported anyway”. ;)
02:27 erlehmann oh yes i3 and sway do it *very* well
02:28 MTDiscord <Jordach> formspecs are pretty much i3 DE to begin wtih
02:28 queria^clone joined #minetest-dev
02:28 MTDiscord <Jordach> just on a more expanded scale
02:28 erlehmann well they are not very good at making me think about them like that
02:28 MTDiscord <Jordach> we already have container[]
02:29 erlehmann i'd *love* to help improve formspecs
02:29 erlehmann it is so tedious
02:29 MTDiscord <Jordach> to fix formspecs you'd have to look at the most common actions of a formspec
02:29 MTDiscord <Jordach> what are games and mods trying to achieve most
02:30 erlehmann inventory shenanigans, button-pressing state changes (turning on/off), hypertext
02:30 erlehmann did i miss anythig major with that?
02:30 MTDiscord <Jordach> hypertext practically solves all the UI problems
02:30 erlehmann uh why do you think that?
02:31 MTDiscord <Jordach> because i've been so far been able to implement a somewhat functional state machine with them
02:31 erlehmann sorry i can't really follow here
02:31 erlehmann pls elaborate?
02:31 erlehmann what kind of state machine?
02:32 MTDiscord <Jordach> i can click through a limitless amount of known dialogue entries
02:32 MTDiscord <Jordach> or have it as a tree that locks off other choices given user inputs
02:33 erlehmann ah
02:33 erlehmann minetest text adventure made by jordach when
02:33 erlehmann or dialog trees RPG style
02:33 queria^clone joined #minetest-dev
02:35 MTDiscord <Jordach> a lot of the engine flaws are paved over by MTG doing all the work for modders that depend on it
02:36 MTDiscord <Jordach> the moment you stop using MTG you find there's a whole lot more choice
02:37 erlehmann i kinda hate mtg
02:37 MTDiscord <Jonathon> who doesnt hate it?
02:38 MTDiscord <Jordach> BfA was an experiment to prove if minetest could handle much more demanding game types on the engine
02:38 MTDiscord <Jordach> to take it any further requires me to have near gigabit upload
02:38 MTDiscord <Jordach> or completely reinvent the network stack
02:39 erlehmann why though
02:39 erlehmann honestly, quake etc. did not have to do that
02:39 MTDiscord <Jordach> because minetest is extremely network inefficient
02:39 MTDiscord <Jordach> quake didn't need to because it had access to local client side entities that ran local code
02:39 erlehmann is it bc of stuff like every entity in range spamming its updates?
02:39 MTDiscord <Jordach> which means i don't have to send entity updates
02:40 erlehmann could you give me a link for the current version so i can look at it again?
02:40 erlehmann i liked the dynamics
02:40 erlehmann and i want to figure out what makes the most traffic
02:40 MTDiscord <Jordach> https://github.com/Dumpster-Studios/BattleForArkhos
02:40 erlehmann you might remember, cora & me did a lot of analyzing regarding that
02:41 erlehmann i still thing that minetest should emit a warning and not resend redundant packets if they were sent over a reliable channel
02:41 erlehmann think
02:41 erlehmann i sleep soon
02:41 MTDiscord <Jordach> i already do that for HUD
02:41 erlehmann thx
02:41 erlehmann we do too
02:41 MTDiscord <Jordach> i manually track last updates
02:41 MTDiscord <Jordach> entities are a bit more uh
02:41 MTDiscord <Jordach> special
02:42 erlehmann i wish we would do it for entities
02:42 MTDiscord <Jordach> i mean i already know the state before and after
02:42 MTDiscord <Jordach> so it's not exactly farfetched an idea
02:42 MTDiscord <Jordach> but because of server_step being cranked to 30hz, that means 30 lua steps per second
02:42 MTDiscord <Jordach> which means huge network load
02:42 erlehmann that can't possibly end well
02:43 erlehmann but hey, on the other hand, finally something that has more traffic than mcl2 :D
02:43 MTDiscord <Jordach> do you want a shooter where hitreg takes over 0.25s to register
02:43 erlehmann it will be good for my engine studies
02:43 MTDiscord <Jordach> or do you want it within 0.03s
02:43 erlehmann like to figure out empirically what minetest is bad at
02:43 erlehmann especially on the hardware i have
02:44 MTDiscord <Jordach> also if you crank the shotguns pellets, minetest won't even crash at the thought of ~10k entities being spawned at once
02:44 erlehmann by which i mean old thinkpad and new reform laptop
02:44 MTDiscord <Jordach> render thread will nosedive
02:44 MTDiscord <Jordach> but the lua thread soldiers on
02:44 erlehmann ha
02:45 erlehmann honestly i think making shotgun shells entities and not particles is wrong
02:45 MTDiscord <Jordach> fun tip
02:45 MTDiscord <Jordach> those are cosmetic
02:45 erlehmann but i may have played too many emulated retro games recently
02:45 MTDiscord <Jordach> everything outside of rockets etc are raycast
02:46 erlehmann mode 7 gang reports in
02:48 MTDiscord <Jordach> a handful of critical entities like the player head, arms and body do indeed track previous states
02:49 MTDiscord <Jordach> however because these are critical to gameplay, they're properly handled
02:49 MTDiscord <Jordach> more cosmetic ones are less cared for
02:49 MTDiscord <Jordach> (and probably are the problem)
02:50 erlehmann i see
02:50 erlehmann well, every ornament is a crime
02:51 MTDiscord <Jordach> i prioritise visual clarity
02:51 MTDiscord <Jordach> which means the bells and whistles are needed
02:52 erlehmann what i mean is
02:52 Extex joined #minetest-dev
02:52 erlehmann an ornament, a specific style, is usually not visual clarity
02:52 erlehmann once you have reached a point where no stylistic changes will improve user experience, you have transcended the ornamental phase
02:52 erlehmann for everything you display will have a use
02:53 erlehmann i guess if someone manages that in minetest, it may be you
02:53 erlehmann oh way, nodecore exists hehe
02:57 v-rob joined #minetest-dev
03:45 specing_ joined #minetest-dev
04:00 MTDiscord joined #minetest-dev
06:10 v-rob joined #minetest-dev
07:54 ivanbu joined #minetest-dev
08:05 hendursa1 joined #minetest-dev
09:13 Fixer joined #minetest-dev
09:14 MTDiscord <IhrFussel> Does Minetest already support 16:10 well btw? Cause the upcoming handheld device "Steam Deck" will have that aspect ratio and depending on how popular it will become I could see many people using it for Minetest in the future
09:19 sfan5 I'm sure it works just as well as 16:9
09:47 MTDiscord <MNH48> Steam Deck runs SteamOS 3.0 by default, which is based on Arch Linux; and it runs the normal KDE Plasma DE
09:47 MTDiscord <MNH48> probably the question is more on, if Minetest run correctly in 16:10 on KDE Plasma, as afaik the windowing / fullscreen is handled by the DE
09:57 appguru joined #minetest-dev
10:32 calcul0n_ joined #minetest-dev
11:00 Taoki joined #minetest-dev
11:26 erlehmann platform powkiddy Q90, anyone of you ever built minetest for that?
11:31 MTDiscord <Sublayer plank> powkiddy q90?
11:37 erlehmann a china arm based console for about 30 monies
11:37 erlehmann comes with a ton of emulators, but also quake and stuff
11:37 erlehmann so i thought, maybe …
11:47 erlehmann https://obscurehandhelds.com/2019/12/the-powkiddy-q90-looks-like-a-switch-lite-mini/
12:26 olliy joined #minetest-dev
12:45 MTDiscord <IhrFussel> The Steam Deck has well over 110,000 preorders though so it could be a big mainstream hit
12:46 erlehmann i don't get how some ppl focus on how much stuff steam or something else has
12:46 erlehmann almost as if software development was a popularity contest
12:46 erlehmann (i get the idea about that more ppl will be running arch though)
12:47 proller joined #minetest-dev
12:48 MTDiscord <Sublayer plank> yummy arch
12:48 MTDiscord <Sublayer plank> anyways I'm pretty sure 16:10 is close enough to 16:9 to look decent
12:49 MTDiscord <IhrFussel> Isn't that how for example console releases are prioritised? The more people have it the higher the device is on the list (usually)
12:54 erlehmann IhrFussel all console releases of free software i have seen have been prioritized by “who puts in the effort” and none of the ppl who port stuff i have seen posting “oh it is so popular”, it was mostly that they had it laying around
12:55 erlehmann IhrFussel our experiences may be different though, what are you referring to?
12:56 MTDiscord <IhrFussel> Nevermind then, I was only thinking of commercial products not open source
12:58 erlehmann if you'd optimize minetest for whatever the steam survey says, in half a year it would only run on contemporary gaming systems
12:58 erlehmann you'd lose a bunch of mod devs that way
12:58 erlehmann which is interesting, bc no one ever notices that kind of thing
13:02 MTDiscord <Sublayer plank> are you still salty over the new opengl 2.0+ renderer that hecks was going to implement
13:06 erlehmann i actually think hecks is careless and reckless in everything. if it was implemented properly (i.e. with easily switchable backends) i would have no issue, but if i recall correctly, hecks hinted that the abstraction will be cut in a way that will make switchable backends hard.
13:07 erlehmann i mean the whole “lets rip stuff out of irrlicht instead of improving it” story is evidence for a “my use case is most important, unless anyone complains” approach (and if you want to be cynical, every complaint is a fringe opinion and the feature was never officially supported anyway)
13:08 erlehmann not the way *that* it is done, but *how*
13:08 pgimeno oh my, could you please stop flaming?
13:08 erlehmann i was asked if i am still salty, ig i should have said yes?
13:08 MTDiscord <exe_virus> Interesting viewpoint, I will say it's hard to make MT generically plug into a backend
13:09 MTDiscord <exe_virus> Because all the backends are different
13:09 MTDiscord <exe_virus> But, we can do it
13:09 erlehmann minetest definitely does not use irrlicht like other ppl do, so the change is inevitable ig
13:09 erlehmann or like other projects do
13:09 MTDiscord <Sublayer plank> there's a difference between making minetest only run on RTX graphics cards and intel i9 processors, and raising the minimum requirements slightly in order to bring improvements to everyone above those minimum requirements
13:10 MTDiscord <exe_virus> Oh very true. Definitely the goal should be to get to a legitimate ogl 2 pipeline
13:10 MTDiscord <exe_virus> Nothing more is really needed for the next ten years.
13:11 MTDiscord <exe_virus> In 2030, we can move on to ogl 3 or something
13:11 MTDiscord <exe_virus> Cause right now we're on a mediocre ogl 1 pipeline haha
13:11 erlehmann sublayer plank, it is usually not necessary to raise minimum requirements if rendering is correctly abstracted.
13:12 MTDiscord <exe_virus> Mostly true, I'm sure there would be wonky specifics
13:12 erlehmann like if minetest would be rendered to a terminal or 3d output device it should not matter
13:12 MTDiscord <exe_virus> Not a big deal either way. And also that's a rather large project so I cannot speak or complain about the progress being made
13:13 erlehmann oh i think it is legitimate to complain if something that used to work perfectly stops working
13:13 MTDiscord <exe_virus> Instead I'll keep working on the webp PR, and keep improving my MT status/skills to eventually be a minor core dev
13:14 pgimeno it may be legitimate to complain, but not to bully
13:14 erlehmann pgimeno, am i bullying if i point out lies?
13:15 pgimeno if you accuse people of misbehaving because they don't do what you want them to do, you're effectively bullying
13:16 erlehmann i think it is not bullying to point out that ppl justify changes with stuff they think is obvious but have not benchmarked (hardware with ogl <2.0 not existing, new reforms having good OGLES support – i still get less frames than an old thinkpad, RLE encoded TGA files being better than PNG for very small pixel art)
13:16 pgimeno you have complained, your complaints have been heard, now let the devs take the decision instead of hogging the chat for flaming constantly
13:16 erlehmann but i wish to point out that i think the behaviour is the issue, not the person
13:16 erlehmann ok!
13:17 pgimeno I said it once and I'll repeat it, you're hindering development, not helping it
13:18 erlehmann something else, do extensive reviews by me make it more likely that stuff gets approved my coredevs? i only reported bugs when it was clear to me that my reviews do not really count
13:18 erlehmann by coredevs, sorry
13:19 erlehmann i.e. if anyone wants me to do reviews (mostly i am interested in wuzzy stuff), i'd like to have at least a vague promise that putting in the amount of time a proper review can take does something
13:20 erlehmann also does anyone maybe want to do pair programming (in a stream with screensharing) on the ub issues i reported?
13:23 erlehmann pgimeno, i'll make a PR so i am helping development ok
13:23 pgimeno thanks
13:46 hendursaga joined #minetest-dev
14:02 rubenwardy IhrFussel: reservations, not preorders
14:04 rubenwardy it's necessary to raise minimum requirements to keep maintenance costs low
14:08 rubenwardy (the difference being that it's only $5 to reserve, and you can get the money back if you decide not to get one closer to the time)
14:43 MTDiscord <Jordach> erlehmann: consider the following, the steamdeck is a regular PC with a controller bolted on
14:44 MTDiscord <Jordach> a lot of people are construing it as locked down, despite the fact valve mentions you can install whatever, including windows on it
14:45 rubenwardy I love Steam and Valve - they've gained my respect for being open despite having a monopoly, and also improving Linux support
14:45 rubenwardy well, "love" is a strong word
14:45 rubenwardy but you get what I mean
14:46 MTDiscord <Jordach> valve is only a monopoly because nobody else went to the lengths to build everything in properly
14:46 rubenwardy yeah
14:46 MTDiscord <Jordach> or go out of their way to ensure support
14:46 rubenwardy even now, Epic are trying to use exclusives to gain market rather than a better client. Not that I've tried EGS, as they don't support Linux
14:47 MTDiscord <Jordach> i refuse to even touch EGS outside of an actual hardware cosole
14:53 v-rob joined #minetest-dev
14:55 Fixer joined #minetest-dev
14:55 rubenwardy also, just noticed this is -dev not #minetest. Definitely more of a #minetest discussion
15:09 hendursaga joined #minetest-dev
15:45 specing_ joined #minetest-dev
15:56 Extex joined #minetest-dev
17:09 fluxionary joined #minetest-dev
17:55 v-rob joined #minetest-dev
18:21 sfan5 rubenwardy: did you get the android build working yesterday?
18:21 sfan5 I can try too if it doesn't work
18:21 rubenwardy works locally
18:21 rubenwardy gcc/clang still broken in CI
18:23 sfan5 you can ignore that
18:26 v-rob joined #minetest-dev
18:32 rubenwardy minetest/src/network/connection.cpp:1210:16: error: call to member function 'push_back' is ambiguous
18:32 rubenwardy after applying the two networking fixes
18:37 sfan5 I see src/server.cpp:1307:32: error: call to member function 'push_back' is ambiguous in CI output
18:38 sfan5 not that it makes any more sense
18:38 rubenwardy yeah, I think it just got there first
18:40 sfan5 you accidentally added a duplicate build/android/native/jni/Android.mk btw
18:43 sfan5 ah
18:43 sfan5 try backporting these: https://github.com/minetest/minetest/commit/f0bad0e2badbb7d4777aac7de1b50239bca4010a#diff-a87e3d649206e1295277fb509f8fba4b8120314187adeb82e30af2dca7c90482
18:44 sfan5 (just the container.h should be enough)
19:24 behalebabo joined #minetest-dev
19:24 proller joined #minetest-dev
19:37 v-rob joined #minetest-dev
19:55 v-rob joined #minetest-dev
20:02 v-rob joined #minetest-dev
20:11 proller joined #minetest-dev
20:22 Fixer_ joined #minetest-dev
20:29 v-rob joined #minetest-dev
20:56 Fixer joined #minetest-dev
21:06 v-rob joined #minetest-dev
21:10 rubenwardy joined #minetest-dev
21:22 proller joined #minetest-dev
22:12 Extex joined #minetest-dev
22:34 erlehmann sfan5 rubenwardy do you have scripts to bisect regressions?
22:34 rubenwardy Git bisect
22:35 erlehmann or rather, better question: for each revision, how do i build the canonical minetest binary, assuming an empty working directory?
22:36 erlehmann i can not automate git bisect without that information (and it is not cmake && make)
22:36 rubenwardy I don't get it
22:37 rubenwardy The way to bisect is to use git bisect, and then make each time
22:37 erlehmann i want to give a script to git bisect that builds minetest for each revision
22:37 erlehmann the problem is that i found issues with the make based thing
22:37 erlehmann so i need to build from zero
22:37 rubenwardy With irrlicht this is more complicated, as there's no link to which version is needed
22:37 rubenwardy Issues?
22:37 erlehmann but the irrlicht thing kinda throws a wrench
22:39 erlehmann yes, the actual dependency tree is somehow underspecified, i.e. it is possible that you get a binary not corresponding to the source code. the only thing that masks it seems to be the make behaviour that always rebuilds a lot of superfluous things if you check out a git branch.
22:39 erlehmann so i fixed the latter and ran into the former
22:40 erlehmann so if you check out git commits often you are likely to only rarely encounter it
22:40 erlehmann but you will not know if you do, which makes it funny (no one will ever know that it happens unless they strace their build system)
22:41 erlehmann regardless, i got the impression that with the new irrlicht thing minetest and irrlichtmt dependency is also underspecified
22:41 erlehmann i.e. some versions of minetest work with some versions of irrlichtmt
22:42 erlehmann but is there a canonical list of the working combinations?
22:42 erlehmann should i go by date?
22:43 erlehmann rubenwardy, i must admit that so far i have been trying irrlichtmt versions until one worked
22:43 erlehmann starting from the newest
22:45 erlehmann btw, i have not investigated if the make/git interaction fully masks the underspecified dependencies, in theory it should not be able to do that 100%
22:47 rubenwardy when bisecting, you do want to have the same dependencies in possible
22:47 rubenwardy as you want to find the bug in the MT code
23:02 erlehmann joined #minetest-dev
23:04 v-rob joined #minetest-dev
23:05 MTDiscord <exe_virus> Are formspecs inside Mt or irrlicht?
23:06 rubenwardy MT
23:06 rubenwardy formspecs are in MT and they use the Irrlicht GUI API
23:10 erlehmann is u64 the same as uint64_t?
23:11 erlehmann context, i am debugging this https://github.com/minetest/minetest/issues/11631
23:13 rubenwardy probably effectively
23:13 rubenwardy uint64_t was added in c++11, Irrlicht is C++03  (and so was MT originally)
23:13 rubenwardy so IRrlicht has its own uint64_t type
23:14 erlehmann thx
23:15 Alias2 joined #minetest-dev
23:19 rubenwardy update: I'm unable to generate signed APKs in the latest android studio \o/
23:24 MTDiscord <josiah_wi> erlehmann, if you describe some of the CMake dependency bugs at some point, I may be able to work on them.
23:30 proller joined #minetest-dev
23:35 erlehmann jjosiah_wi what kind of info do you need, a repro case?
23:35 MTDiscord <josiah_wi> Yeah that would be awesome.
23:44 erlehmann hard to find due to the nature of the thing
23:45 erlehmann i can prove ofc that such a case must exist and construct one from that, but it will not be realistic
23:46 jonadab joined #minetest-dev
23:46 erlehmann josiah_wi is it possible to make cmake spit out a dot dependency graph, similar to redo-dot?
23:46 erlehmann that would help me find a real case of this
23:47 MTDiscord <josiah_wi> I believe so, but I haven't done it. Man page should tell.
23:48 MTDiscord <josiah_wi> I think it uses graphviz or no.
23:48 MTDiscord <josiah_wi> or something*
23:50 erlehmann anyone here have an ARM computer?

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