One of my final semester units at UWA is Game Design & Multimedia. The engine used for this course is NeoAxis, which is a sort of franken-framework built in a lab out of parts of opensource code.
For instance, it uses the formidable OGRE for rendering.
There are two things (so far!) that bug me about NeoAxis.
The first thing is the documentation. It is pathetically incomplete. It is extremely annoying to be looking stuff up in the help file (only supplied in the useless CHM format), only to find a blank page. And even when you do find something more substantial, it’s apparently translated from Russian (really, I’m not kidding) and has a lovely Engrish feel to it. Naturally this is unhelpful.
The second, much smaller gripe, is the coding style. Ostensibly NeoAxis games are meant to be written in C#. However the sourcecode that we are basing our project on is riddled with C/C++ idioms. The most obvious of these is the
if(!someFunction()) error_handler(); idiom, which is scattered liberally throughout the code. I guess try/catch was a bridge too far for most of the code.