Minetest logo

IRC log for #minetest-dev, 2022-03-25

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

All times shown according to UTC.

Time Nick Message
00:40 MTDiscord <Hugues Ross> Yes, this was a good call to check. There are some weird behaviors in here, for now I'm withdrawing my approval until the relevant values are handled properly
00:41 MTDiscord <Hugues Ross> Special mention goes to minetest.string_to_area, which sometimes allows ~nan and sometimes doesn't, depending on what position in the vector it is
00:43 MTDiscord <Hugues Ross> Anyway, thanks again for the suggestion. I've been a little out of it for the past week or two, hopefully things clear themselves up soon
00:44 erle Hugues Ross happy to help!
00:57 AliasAlreadyTake joined #minetest-dev
01:06 MTDiscord <jordan4ibanez> What if it's the windows kernel task scheduler itself causing problems for minetest on windows?
01:24 erle jordan4ibanez what kind of problems would be connected to that?
01:28 v-rob joined #minetest-dev
03:28 queria joined #minetest-dev
03:32 v-rob joined #minetest-dev
03:34 queria joined #minetest-dev
04:00 MTDiscord joined #minetest-dev
04:39 olliy joined #minetest-dev
05:35 v-rob joined #minetest-dev
06:25 MTDiscord joined #minetest-dev
06:32 MTDiscord joined #minetest-dev
06:36 v-rob joined #minetest-dev
06:53 calcul0n joined #minetest-dev
07:23 v-rob joined #minetest-dev
09:04 sfan5 > core.parse_relative_number will parse them though, so if some mod uses that function … possible boom!
09:04 sfan5 the function should be made private, mods aren't supposed to use it
10:09 erle sfan5 i strongly disagree.
10:09 erle given that there are already functions like /setblock that could benefit
10:10 erle or, for example, structure placement functions
10:10 erle i would *love* to have a function that enables me to place some structure 10 nodes in x+ direction from me or so
10:10 sfan5 what does this have to do with the engine?
10:11 erle it's a convenience function. why should it be reimplemented?
10:11 erle also, just to make it clear, people are generally bad at parsing
10:11 erle a bunch of mods reimplementing it leads to worse code and probably incompatbile too
10:14 sfan5 putting it into the API puts it under the guarantees of compatibility which can be an obstruction to future changes
10:14 erle sfan5 in mineclonia, there are the following commands that could benefit from it: lightning setblock spawnentity/summon setblock
10:14 erle all of those take a position and could be more useful if they took a relative position
10:14 erle i imagine a lot of mods gave commands that take positions
10:15 erle so it makes sense to me to offer them a way to unify parsing for relative positions
10:17 erle sfan5 you are 100% correct about that publicly exporting a function prevents changing it. but in this case, the scope is so small that it is possible to get it right the first time – i.e. define a grammar for it, thenr make it accept that grammar (and only that).
10:18 sfan5 so for what reason should the engine do this, again?
10:24 erle to prevent mod authors from writing bullshit code when they face the same problem
10:24 erle i have seen the same issue with durability calculations already
10:25 erle everyone implements it, but everyone except wuzzy implemented it wrong
10:25 erle giving an error that is as small as 1 or as big as 32000 or so
10:26 erle if the engine just had exposed a function to calculate the number of uses a tool had, this could have been avoided – or at least fixed, because the engine calculation *was* wrong and is now right thanks to the “bresenham's axe” algorithm that wuzzy built.
10:26 erle so now mods that have some “remaining uses” display are still wrong, unless i am misinformed.
10:27 erle as i said before, parsing is hard – as evidenced by me finding parser bugs in builtin commands btw.
10:28 erle i much prefer if a problem is solved in the engine than if 1000 monkeys reinvent the wheel on 1000 typewriters, but their weel is rectangular
10:29 sfan5 durability calculation is an implementation detail of the engine that mods have to deal with, relative positions are not
10:30 sfan5 if you want the engine to set a standard every mod is supposed to use (though a bit late for that) then that's okay, but should it?
10:31 HuguesRoss4 joined #minetest-dev
10:31 erle kinda, yes
10:31 erle also regardless of how much i moan about minetest API woes, the review work is *much* better than what most mods get
10:32 erle so there is a much higher chance to get it right in the first place
10:32 sfan5 and if yes that begs the question why this and not a million other things, e.g. builtin has time parsing, command line flags and probably a bunch of other things that are potentially useful
10:33 sfan5 s/$/ to mods/
10:33 erle given the amount of bugs i have seen in custom commands i doubt it would be a *bad* thing to at least make the things that are used for builtin commands bulletproof enough so they can be exported
10:34 erle also, why this? because this is the issue currently at hand. i see potential. this function can literally be made perfect, as in: never needs to change in an incompatible way – since the scope is so small.
10:35 erle also there has been a long-standing desire in mcl2 to have this kind of parsing, but they never got to it
10:35 erle as far as i know
10:35 erle it's relatively low effort for high gains. i can add some adversarial tests if that is desired.
10:36 erle to make sure it won't blow up if some griefer with a grudge uses the chat console and types in the first thing that comes to mind
10:37 sfan5 that argument also works in reverse: if it's so low effort why hasn't the game you keep mentioning managed to implement it themselves?
10:38 erle i may have failed at conveying the argument in a proper way. let me try again.
10:38 sfan5 no you have not, I am just annoyed you keep mentioning "look, mcl2 can use it!!!" at every opportunity
10:38 erle a single game needs to start at zero for their parsing code. whereas the PR already here has very low *additional* effort.
10:39 erle because the majority of the work is already done. it is almost finished.
10:39 erle also the payoff for a single mod or game is that maybe 4 or 5 commands can use this typically.
10:40 erle the pay off for minetest having this in the API is everyone being able to use player-relative positions for commands that previously only took absolute positions, with a simple change.
10:40 erle so the effort/reward calculation is, as i see it, massively skewed in terms of having it in the API.
10:41 erle even without the “joe random coder will fuck it up if asked to parse a relative position”
10:42 erle the answer to “why hasn't the game managed to implement it themselves” is “i think someone started doing a general command parsing overhaul and it stalled because they bit off more than they chose”. it's certainly not a huge task. it's just a task and there are others.
10:42 erle chose → could chew
10:42 erle i am really getting worse at languaging, sorry
10:43 erle sfan5 if “could anyone use this API” is not an argument, then what is? maybe you could make it clear what exactly would convince you or has convinced you in the past.
10:46 erle and i keep bringing up mcl2 because a) i know stuff about it b) it's popular c) it's a good example of how people invent their own stuff if the engine does not provide it, sometimes badly
10:51 erle sfan5 ultimately, i think that the minetest API should be influenced by the needs of mods and by architectural decisions that try to limit the amount of bugs in mod code under the assumptions that mod devs will do the minimum effort to get something to work.
10:51 erle maybe you have different ideas regarding that
12:07 Fixer joined #minetest-dev
12:41 proller joined #minetest-dev
13:06 proller joined #minetest-dev
13:12 proller joined #minetest-dev
13:55 Fixer_ joined #minetest-dev
14:56 v-rob joined #minetest-dev
15:12 v-rob joined #minetest-dev
16:09 v-rob joined #minetest-dev
16:32 v-rob joined #minetest-dev
16:51 appguru joined #minetest-dev
18:25 v-rob joined #minetest-dev
18:52 v-rob joined #minetest-dev
19:07 Pexin As a matter of future-proofing, if relative numbers will be solidified as part of the API, I still feel ~ will be confusing. since in lua it's "not", and elsewhere it's "roughly"
19:07 Pexin @ = "at" = "current", allowing @+100 @-100, feels much more logical to me
19:07 Pexin I understand this has been in the queue for way too long, and nobody wants to think about it anymore, but.. there it is
19:15 MTDiscord <luatic> @ sounds like a decent suggestion to me
19:41 v-rob joined #minetest-dev
19:59 erle Pexin, you keep saying that, but ~X ~Y ~Z has been used in minecraft for over 10 years. the reason people do not agree with you is not that “nobody wants to think about it anymore”, but because the most popular voxel game using relative coordinate notation uses a tilde.
19:59 erle well, you can correct me on the 10 years, i may be wrong here. but it is a long time.
20:00 erle also, if you want to bikeshed it, why not use Δ ?
20:00 erle ~ in location has a lot of meanings. some GIS systems use it to mean “degrees”.
20:02 erle pexin luatic the problem with @ is that ultimately you can construct at least *two* notations for relative coordinates that take the current location as the origin. the first one being ~x ~y ~z, the second one being ^x ^y ^z.
20:03 erle where ^ would apply the rotation of the player for the relative coordinates
20:04 erle i.e. “/summon zombie ^ ^ ^1” would summon a zombie 1 node-width in front of the user
20:05 erle or behind? i do not know lol
20:07 erle regardless, what i'm saying is: there is another application doing the exact same thing in a voxel world. deviating from it because “it is more logical” creates friction. and about the meaning of tilde … there is like soooo much if you start leaving the context of “what could it mean in a voxel game user command?”.
20:07 Pexin are we minecraft?
20:07 Pexin also does minecraft use lua?
20:08 erle not at all, but which character to choose is essentially arbitrary. so the easiest choice is to just go for what a lot of people know. it reduces friction.
20:09 Pexin is the assumption that most people are coming from minecraft?
20:09 erle i think you misunderstand me. i do not even play minecraft and the ~x ~y ~z notation got to me via cultural osmosis.
20:12 erle also the argument “tilde will be confusing” is absolute bollocks. tilde can mean a lot of things *outside of voxel game input commands*, like “approximately” (in english language), “not” (in lua), “user home directory” (in unix and URLs), nasalization (IPA), range (~3 can mean “up to three” in some cultures), sarcasm mark (japanese?), equivalence (math) …
20:12 erle you could argue against an exclamation mark or a dot or so on the same grounds
20:12 Pexin uguu~
20:12 erle meaning is context dependent
20:12 erle hehe
20:12 erle Pexin, you get what i mean ^^
20:12 * Pexin forks super kawaii minetest version
20:14 erle Pexin do you know any other notations in computer games in general that are different than ~x ~y ~z and ^x ^y ^z though?
20:15 sfan5 if you don't have negative numbers the +relx +rely +relz notation seems obvious
20:16 erle ex falso quod libet
20:18 erle (we do have negative numbers)
20:23 erle the thing is, if i use a search engine with terms like “tilde coordinates” or “teleport relative coordinates” or “player relative coordinates” or “chat command relative coordinates” i always get about a page full of stuff using the tilde notation of ~x ~y ~z.
20:23 erle even without mentioning minecraft or minetest at all
20:24 sfan5 "if i use a search engine with terms like “tilde coordinates” [...] i always get about a page full of stuff using the tilde notation" 🤔
20:24 erle you got me there lol
20:24 sfan5 not really, it's a smartass comment just like yours five minutes ago
20:26 Pexin first result for "relative coord notation" https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-LT/files/GUID-F64F8008-E1C0-49CC-A268-A6B8C6E9B566-htm.html
20:26 sfan5 maybe you're ... yeah https://0x0.st/oqzr.png
20:28 erle oof. again, it's about context. autoCAD is definitely less like minetest than minecraft is.
20:28 Pexin maybe also remember google biases its results based on your browser history
20:28 sfan5 there's another CAD thing in the results also using @, something that uses 'r' as a prefix, minecraft on the second page
20:28 Pexin no idea if that's relevant here
20:28 sfan5 and this thing which is apparently different https://www.minecraftforum.net/forums/minecraft-java-edition/redstone-discussion-and/commands-command-blocks-and/2927164-local-coordinates-aka-caret-notation
20:29 sfan5 erle: look if your point is "minetest should look like minecraft" just say so and everyone can decide whether they agree instantly
20:29 sfan5 you saying you don't even play minecraft is not at all convincing by the way since you can't shut up about mcl2 which just so happens to be a clone
20:29 sfan5 s/look/work/
20:30 erle but mcl2 does not support the ~ notation afaik
20:30 sfan5 that's irrelevant
20:30 sfan5 mcl2 sets the expectation that everything should work like minecraft and you seem to have internalized this
20:31 erle uh, part of why mcla was forked was because of disagreement. i have a history of making fun of the “everything should be exactly like minecraft” crowd!
20:32 sfan5 ok
20:33 erle in this case the principle i am following is “there is a widely known notation in the context of voxel game chat commands, not deviating from it reduces friction, as the intention is exactly the same”
20:33 erle if minetest was a CAD application, i might argue for using @ btw
20:34 * Pexin ponders a MT mod to create/export 3D printer schems
20:34 v-rob joined #minetest-dev
20:40 erle sfan5 FYI the caret notation is rotating the coordinate system based on the users view direction. without it, you can not express stuff like “1 node left of me”.
20:40 erle (as “left” is user-relative)
20:40 HuguesRoss4 joined #minetest-dev
20:40 erle it's interesting, but very niche
20:42 erle by the way, including a forwards-compatible relative coords parser in the API also opens up a way to use caret notation later for player commands without mods having to update their code.
20:42 erle (that is, if they use the function)
20:43 appguru joined #minetest-dev
20:43 Pexin what about when (when, not if) full yaw/pitch/roll rotation is included?
20:43 Pexin MT v7.0.0
20:44 erle nice idea
20:44 Pexin ooh and relative gravity, and <other far-future addition>
20:44 * Pexin stops now..  >_>
21:12 MTDiscord <exe_virus> someday I plan to have a PR for server sent client side physics, so all that is possiible, but not for a long time, sadly....
21:15 erle exe_virus gravitational direction would be pretty easy though. or what do you mean?
21:16 erle if it is about client-side prediction i want again point out that you can solve this in a delarative fashion using some kind of path syntax
21:45 v-rob joined #minetest-dev
22:01 GoodClover joined #minetest-dev
22:06 v-rob joined #minetest-dev
22:06 proller joined #minetest-dev
22:07 MTDiscord <GoodClover> I prefer tilde purely because it looks nicer than @. /teleport @1 @2 @3 looks cluttered IMO
22:08 MTDiscord <GoodClover> The CAD notation seems to prefix the whole vector with the @, not the individual components, so that doesn't apply so much
22:09 MTDiscord <GoodClover> opinions are cheap though :P
22:11 erle btw, in minecraft @ actually means the origin for the relative calculations if i am not mistaken
22:11 erle so that you can have coordinates relative to something else than the current player
22:11 erle which is useful for microcontrollers / command blocks
22:43 \ (@ indicates a target selector like @a, @e, @s, etc. ot necessarily the origin of the command)
22:43 \ s/ot/not/
22:44 erle oh sorry then!
23:30 Alias joined #minetest-dev
23:32 panwolfram joined #minetest-dev

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