Personal Work

This page contains descriptions of the work I do for myself.


Scripting:
I have been using python for my Blender plugin, which incorporates several exporters in one tool. This exports meshes, rigs and animations in my own formats for my engine. I feel it's reasonably polished for what it does. There is some more work to be done, but that must wait for the engine itself to be ready for it. The code (in a rather messy presentation) is here, and here's a screen-shot of it in action:



Programming:
I have been working on my own engine in C++ on and off for some time now. The main purpose is to improve my knowledge and skills and become familiar with the low-level workings of a game engine. Which is why I am trying to use as few external libraries as possible. I have written a ton of code, but perhaps I'm too ambitious as the engine doesn't seem to do very much yet. There's a fair bit going on under the hood; asset management, batch rendering, native multi-part hierarchical objects, CPU-side skeletal animation, LODing, etc.. At some point I decided to try to convert it for the PSP, but halfway through refactoring the graphics and rendering code I lost enthusiasm for the PSP, however this did encourage me to organise all the code in a way that is friendly to multi-platform development. In the future I might try to get it working on Android (I haven't looked into it yet, but it seems android has some C++ support), especially if Sony really does release a PSP phone. Most recently I have been working on GLSL integration, currently it supports simple shaders as well as the fixed pipeline, I'm working on a full forwards renderer which will be followed by more advanced shaders.

Current plans include:
-Pretty shaders. Initially a regular forwards renderer, but later I might consider other options.
-An advanced version of my mesh-splitting system (hopefully I'll be able to offload much of the work to the graphics card, which is why this is on hold for now).
-Better keyboard and controller support.
-A modular time system that can return a "game time" variable that is dependent on position, allowing slightly more advanced time manipulation.
-Sound.
-Convert to the Pandora and/or PSP phone if and when they become available.
-I might develop a simple physics engine just for "fun".
-Cloth, particle systems, and other fun stuff.
-An actual game to go on top of it all.
-A 200-bedroom castle in the sky. Full of unicorns. And dragons.