I've also implemented a set of linear algebra utilities for my game. I've got basic support for vectors, matrices, quaternions, euler rotations, and axis-angles in pure C code. I was using array types but I decided to drop that in favour of structs. I lose the ability to iterate, but I gain the ability to do simple assignments, return results from functions, and better const casting. I also get named attributes, so I can say euler.yaw instead of euler.
I also wrote a text input wrapper for my binary streaming system to make it easier to read lines of text. I integrated it into my MD5 loader, but I've left the BDF loader alone for now since its already a bit buggy.
I moved ahead a bit with some Lua scripting integration, although I have yet to have running scripts. I still need to implement a lua script loader. The loader will probably want to run the Lua bytecode compiler on textual scripts, returning script resources as simple chunks of binary LUA bytecode. It'd be cool to use Microsoft's CLI or some sort of standard bytecode because then I wouldn't be restricted to any specific scripting language. But that'd be a lot of work and would take way too much time.
Right now I'm working on a mesh rendering function. For now it'll just take a mesh and a material and render them statically, but I hope to extend it sometime during this long weekend to take transform information and render transformed meshes. The transform information will be constructed from a skeleton and an animation.