Time Nick Message
01:02 LandarVargan Same issue on 5.9-dev. I don't see the walls of peer addition/deletion though, or anything that looks out of place in a way that suggests an obvious problem
01:06 LandarVargan Lots of `con(4/1)RE-SENDING timed-out RELIABLE to ###.###.###.###(t/o=0.352): count=<1-8>, channel=0, seqnum=65506` and `con(4/1)WARNING: ACKed packet not in outgoing queue seqnum=65500`
01:07 LandarVargan The log file is 326MB, on second thought maybe Minetest is just fumbling that
01:10 LandarVargan debug_log_size_max is set to 10 IIRC, but that only applies on restart from what I can tell
03:18 LandarVargan Nope, just went down again in less than 30 minutes after I set the log level to action
06:43 MTDiscord how we would we feel about
06:44 MTDiscord purging euler angles from irrlicht and everything else
07:27 MTDiscord Why would you want to do that?
07:28 Mantar yeah, for what purpose? euler angles are generally useful for 3d stuff, and I can't imagine it's a huge hairy block of spaghetti code that touches everything
07:38 MTDiscord To replace them with quaternions. Less distortion at certain angles, less gimbal lock. And it reduces the number of representations of rotations from 3 to 1 (currently euler angles are used in both radians and degree form, in addition to quaternions)
07:39 MTDiscord And it is computationally easier to compose quaternions
07:55 MTDiscord Yeah but how is it for the average Joe mod dev? Maybe instead of degrees that should be totally scrapped and it should be locked into euler
07:57 MTDiscord Degrees and radians mixed into the same api can be heckin confusing, what I meant was radians only
07:58 Mantar personally I find radians annoying to deal with, but conversion is super easy so it's not a big deal
07:58 MTDiscord quaternions are just so much better. you can multiply, rotate, and convert to a matrix without needing to call a trig function
08:00 Mantar quaternions are nice, yeah
08:00 Mantar but is that a reason to remove euler angles?
08:00 MTDiscord Yeah but you need the starting point, something that the average moe can understand, perhaps if it used SIMD under the hood this would be less of an issue?
08:00 MTDiscord it's a reason to keep the internal representation quaternions, and only convert euler angles for the api maybe
08:01 MTDiscord right now the internal representation of rotation for all scene nodes is euler angles in degrees
08:01 MTDiscord Alright paradust, you're scaring me
08:01 MTDiscord Nah I'm just kidding, yeah it's pretty bad
08:02 MTDiscord That because of b3d I'm guessing?
08:02 MTDiscord Or maybe it was rooted deeper than that
08:03 MTDiscord i dunno. irrlicht shrug
10:07 pgimeno I'd love to abolish Euler angles from the internal representation and only offer them for mod APIs
10:08 pgimeno it might solve one or two problems with animations too
10:11 pgimeno I believe one of the problems with animations had to do with gimbal lock
10:13 pgimeno in doing so, care must be taken due to Minetest's left-handed coordinate system, though
10:17 pgimeno https://irrlicht.sourceforge.io/forum/viewtopic.php?p=272097#p272097
12:18 rubenwardy Yeah I agree, we should use transformation matrices
12:25 Desour we could encode 90° directions and rotations in integers, and so make them easier to handle and probably cheaper: https://github.com/Desour/minetest/tree/rotnums_cpp
12:27 Desour (^ RotNums are incomplete as of now)
12:32 rubenwardy *matrices or quaternions. Matrices seem a bit more common in game engines
13:17 pgimeno quaternions are like an abbreviated form of a rotation + scaling matrix, but the scaling is not very comfortable to work with so in practice they are used only for rotation, with normalized quaternions
13:17 pgimeno irrlicht has separate scaling and rotation though, so that's OK
13:18 pgimeno the only drawback is that it's one more FP number to store per scene node
13:35 Desour why is there a `project(minetest)` call in src/CMakeLists.txt and CMakeLists.txt?
13:43 nrz Desour sounds to be an historical mistake 🙂
13:44 MTDiscord That sounds pretty harsh; I don't think Desour was a mistake at all.
13:47 Desour unlike war
13:47 MTDiscord War was a mistake, but r1024 was on purpose.
14:06 MTDiscord yes yes yes quaternions everywhere
14:25 MTDiscord *yes yes yes 1, quaternions everywhere
14:26 MTDiscord For transforms, I think TRS (translation vector, rotation quaternion, scale vector) is more modder-friendly than translation matrices (and would also map better to what we currently have).
14:49 MTDiscord transformation matrices*
14:56 rubenwardy We want to use something consistent in the engine and can provide whatever API we want on top of that
14:57 rubenwardy transformation matrices make it much easier to apply all the operations when working in a scene node hierarchy
15:02 MTDiscord pgimeno: when you rotate a vector q by a quaternion p, you're actually computing the conjugate p q p^(-1), so the scale goes away anyway
15:55 pgimeno paradust: no it doesn't, it is squared
15:55 pgimeno @paradust ^
15:56 MTDiscord ?
15:56 pgimeno hold on, let me check to be sure
15:58 pgimeno yes, what I mean is that the vector's length gets multiplied by the square of the norm of the quaternion
15:59 pgimeno hence why it's not comfortable to work with for scaling
16:00 MTDiscord any scaling is the result of the equation's denominator being omitted because it is assuming to be a unit quaternion
16:01 MTDiscord it's not part of the quaternion structure itself
16:02 pgimeno when multiplying a quaternion by its conjugate, you don't get a normalized quaternion, you get one with the squared norm - the conjugate does not cancel the norm
16:02 MTDiscord yes it does, because if the quaternion p has length d, then p^(-1) has length 1/d
16:02 pgimeno noooo
16:03 pgimeno the conjugate has the same norm as the original quaternion
16:03 MTDiscord inverse not conjugate
16:03 MTDiscord ok we're using different notation, I always meant inverse
16:04 pgimeno ok but to rotate a vector you need to multiply by the conjugate, not the inverse
16:04 MTDiscord conjugation in group theory uses the inverse
16:04 MTDiscord if you have unit quaternions, they are the same thing
16:04 pgimeno the conjugate of a+bi+cj+dk is a-bi-cj-dk and both have the same norm
16:05 MTDiscord you know the trick where you compute 1/(a+bi) by multipling numerator and denomator by (a-bi) to get (a-bi)/(a^2 + b^2)
16:05 MTDiscord the same thing works for quaternions
16:05 MTDiscord the inverse (a - bi - cj - dk)/(a^2 + b^2 + c^2 + d^2)
16:05 pgimeno yes, if you have unit quaternions - that's why I said that they're usually used for rotation only and in normalized form, because using them for scaling is uncomfortable
16:06 pgimeno to rotate a vector you do q times v times q's conjugate, that's not the inverse
16:07 pgimeno so if q's norm is not 1, you're multiplying the vector's length by the quaternion's norm squared
16:07 MTDiscord this is how it is implemented for convenience, but what i'm saying is, the mathematics behind quaternions always uses the inverse
16:08 MTDiscord despite the unfortunate conflict in terminology, "conjugation" as a math operation always uses the inverse, not the conjugate
16:08 pgimeno ok
16:08 MTDiscord https://en.wikipedia.org/wiki/Conjugacy_class
16:09 pgimeno anyway we're in agreement, even if possible, it's not very practical to use quaternions for scaling too
16:10 MTDiscord yea there's really no reason to
18:58 grorp merging #14071 in 10 min
18:58 ShadowBot https://github.com/minetest/minetest/issues/14071 -- Move hard coded minimap to builtin by cx384
19:07 ROllerozxa has anyone tested translation support on real windows? (mingw codepaths)
19:07 ROllerozxa I'm very confused, I tested translations in my own build from master (built with MSYS2 CLANG64) and they don't work, neither detecting from system or setting manually. I also tried the official 5.8.0 build and it doesn't work there either (in fact I went as far back as 5.5.0 and it doesn't work)
19:07 ROllerozxa to make things weirder the official builds have functional translation support on wine! so did I mess something up with my windows install (wouldn't be surprised if so) or can anyone else reproduce?
19:11 ROllerozxa um
19:11 MTDiscord Spanish works for me with the official builds, you do need to restart the game though
19:11 ROllerozxa it just started working again, no idea what happened to my windows
19:13 grorp merging done.
19:13 ROllerozxa yeah I'm aware you need to restart, it just wasn't working no matter what I tried but obviously it magically went away when I asked in IRC. please disregard me 8)
20:26 LandarVargan In case people missed my last message, these are still my best guesses as to culprit logs: `con(4/1)RE-SENDING timed-out RELIABLE to ###.###.###.###(t/o=0.352): count=<1-8>, channel=0, seqnum=65506` and `con(4/1)WARNING: ACKed packet not in outgoing queue seqnum=65500`
22:04 LandarVargan Sometimes if I grep the IP for the above log entries I won't see anything but those entries. As if no player with that IP ever joined the game. This is the case across every crash log I have, and the logs go back to when the server started
22:21 LandarVargan The server profiler still works after the server hangs, here's the output: https://pastebin.com/ZnvejYxk