Our 6th project at The Game Assembly was a 3D action-RPG, inspired by Diablo. I worked with text, animations, navmesh and improved on the particle system.
I was responsible for loading the navmesh into the game and creating an interface for it. The interface contained a function for finding a path between two world positions, and another one for raycasting against the navmesh. This was then used by the other programmers to implement the movement for the player and the AI.
For the pathfinding, I first used an A* algorithm to find the triangles that formed the path. The resulting nodes were then processed with a simple funnel algorithm to smoothen the path, which was then returned as an array of positions.
I added animation support to our engine, which included loading the animations and using them in our render pipeline. I also implemented animation blending and allowing weapons to be attached to specific bones.
I used FreeType to load fonts and generated textures for them using DirectX. I implemented rendering functions for both world space texts and screen space texts.