I've neglected my 'simple' project I was writing as a warm up to Manta-X. It's not nice to see old software die, especially one that helped kick me into the Keep it Simple, Stupid mindset and move away from Engine coding. So I decided to excavate it's tomb and cast a necro spell on it... and man I left it in a sorry state.
The scripting component of jsInvaders was completely gutted - without any backups. I felt sure I had a couple of restores but no, I'm left with the task of a total scripting engine rewrite. I needed to do it, of course - but not from scratch. You know that part in Monkey Island where LeChuck was resurrected, had turned green, spat a lot and smelt of decay? That's jsInvaders right now. Time to flex my magic and conjour up a nice scripting interface for the project. I remember why I canned the old version now, the way the scripted motion worked was a little iffy. It was fine if you coded it correctly, but an incorrect script would wreck havoc - chaos, oh yes.
File it under C
It's very likely that I'll be implementing PhysicsFS into jsInvaders at some point, if only because it'll make the modability of the project a whole lot easier. Perhaps GLFW will rear it's pretty face at some point too. Hell, SpiderMonkey is cross platform, so is OpenGL and PhysicsFS - why shouldn't jsInvaders have the same luxury? We'll see...
Scratching with a pen
So now that I'm working on this again, I'll start writing part 2 of the article series. It's annoying in a way as I'm having to create a 'hacky' version of a script interface to cover the basic ground for part 2. The 'real' interface is where it's at - but that's being saved up for part 3 - the minglings of XML and scripts in a DOM style format. I have the project under SVN control now, so rolling back shouldn't be a big deal. Plus I get backups too - regularly.
I have worked on Manta-X for the past few days, but you're not interested in that now are you? I've thrown in some basic frustum culling and 'out of bounds' tests to check if things go off screen. I've thrown in a better movement model which involves setting states to control motions, the ships now bank when turning to the side too.
I didn't like the old engine fire effect. It was a test anyway, but I threw it out - for a start there wouldn't be a flame in space, at least not in the way that was portrayed. I've decided to throw in some Homeworld style engine trails. The fast action nature of the game will mean that there are many small fading trails across space - I reckon it'd look cool - but I'll see when it's implemented.
On with the show.