This summer, I implemented script support with my component framework. Basically this means that I can now define new components in script. This is very powerful, since I can create new game logic while the game is running. Unfortunately the robust-gate that sits between C++ and Lua does have some overhead, since it has to make sure the data it gets from Lua is correct before pushing it to C++ classes/functions. Optimizations in C++ components, like holding a direct reference to properties it needs, can't really be done either, because I wanted a stateless component system on the Lua side. This allows me to reload scripts without worrying about corrupting state, but you have to ask the C++ side of the component for the data, and this has a bit of overhead... Still, it's a great way to prototype gameplay, if not using it in the final release. At that point, the components could always be moved into C++ components. Then again, I haven't profiled this yet or tested it in a larger game... maybe the overhead isn't so bad that you can't use it for a real game...
Together with the XML system for defining objects, that I presented in my last post, I've ended up with a truly data-driven framework which is great for rapid prototyping of games! I'm working on a couple of example apps and have moved the component system code onto google code, and will post more about this at a later point. I plan on having some very simple examples + a more advanced, functional mud example in this code-base. I'll write up a longer post about this later.
On the project side, we've had a project on visualizing a scalar-field water simulation using marching cubes. I used the xml and script approach to objects and component definitions in this project, and it worked great! The visualization isn't exactly spectacular:
But it works :P
This termine, we're doing another volumetric rendering project, plus a special effects project where we're using ERBS (Expo-Rational B-Splines).
I must admit, I miss the tower defense project! It's so much more fun making a game than optimizing volume rendering algorithms and trying to understand complex math formulas... ugh! Oh well, next semester will be all about the Master Thesis! Hopefully I will be able to find something exciting to work on! ...yeah, I haven't chosen my thesis yet, but I definitely want it to be more related to game programming than pure visualization! We'll see!