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