Gateware

     The problem that was plaguing my development was with the integration and use of Gateware. The problem is not a singular issue, as Gateware has caused numerous issues throughout development despite being made specifically for working in game projects. It seems to enjoy fighting with other third party software brought in for support. A fantastic example is FBX, which seems to be a mortal enemy of Gateware, and cannot exist in the same project as Gateware without there being many issues and conflicts between the two. Gateware's math library, while useful, does have its fair share of faults, as it ends up having missing safety checks. During the creation of the animation code, this posed a problem, as the Quaternion SLERP function was missing the safety check for when the inputted quaternions were facing the same direction. This caused a problem where verts in the skinned mesh were all multiplying by a matrix of NaN, and led to a portion of the mesh being totally missing despite the actual verts being fine.

    The fixes to these issues were relatively simple in concept and in practice a bit irritating to build. The first problem's fix was to simply remove FBX from the project entirely, and instead use a custom format for models, animations, and materials. This introduced its own problems as it required the development of a whole set of command line tools (that are still in development now) as well as testing for all of those tools to ensure they were outputting the proper data. The fix to the second problem was to do a manual check for the quaternion orientations through dotting them together. If they dot product was 1, simply LERP to get the location change, otherwise do a normal SLERP. Both of these solutions ended up fixing the problems and allowing the Gateware monster to be appeased for a time. This will allow the project to continue and be built properly without causing more issues in those particular areas *yet*.

Comments

Popular posts from this blog

Adding assets to every enemy -- Owen Meyers

Sphere to AABB collision