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 |