This was a third year university project. The brief was to write a scripted game engine with a particle system, and multiple levels.
I hope to put Linux and Win32 versions here soon.
The base system simply provided a Lua interface for 'components' (loaded in via shared objects / dlls). There were only a few components written for the game: one that provided GLUT functionality; one that offered particles; and one that was concerned with sprites. The components could provide 'items', which were essentially objects derived from a pure virtual base class, and could offer any functionality desired. For instance, particle emitters were provided as items.
The game itself was completely Lua scripted, using its techniques for object orientation to make life a little easier.