Undoubtedly the biggest frustration I’ve had working with THREE.js is loading and animating objects modeled in Blender. The tools just aren’t very polished yet and it drives me crazy that so many things work so well but that process is basically broken. I’ve noticed on my older development machine that the created SkinnedMesh objects work differently than on my (somewhat) more powerful machine. Specifically, I get this weird jittering action on loaded gLTF objects whenever the object is any distance at all from the origin. This is a known issue in THREE.js and has to do with matrix transformations being performed in world space instead of local space, but I’ve looked at the code and I get lost immediately. I just don’t understand the animation system as a whole well enough to contribute anything of value. It doesn’t happen on every machine, which makes it all the more frustrating to troubleshoot and makes me wonder what else behaves differently on different platforms. One of the primary advantages of using a browser and WebGL is (I thought) consistency across platforms. It’s still open as a bug in THREE.js, so I’m hopeful that it will get fixed one day, but for now I will just see weird jittery animations sometimes because it isn’t worth the time to try and find a workaround right now.
My next step is to do a little painting of the Penrith terrain, just so it looks a little nicer. Then I’m going to tackle collision detection again. That’s always been a big hangup for me but if this project is ever going to get off the ground I absolutely must have a reliable way for players to collide with and react to objects in the world.