Well, been a while since I updated this.
Appropriate though, as I haven't done much in months due to work & health issues.
On the plus side, finally got to the bottom of my health issues and now on the mend - going to take a while but things looking up. Thankfully turns out it wasn't serious, but the knock on effects were worse than the actual problem (as well as masking it).
So, finally picked this up again after a bit of a hiatus, and promptly got lots done.
First off, finished the alien movement routine off - so thats working properly now. Contemplating on whether to add some other types / modes, but Im getting a little bored with this now, and function creep is always a problem. Originally wasn't going to have aliens in the game at all.
Next was the biggie - while trying to bughunt down a couple of particularly persistent issues, I got hacked off enough to say "screw it" and ended up re-writing the entire collision detection routine again, then optimising it.
This has massively simplified things (to the point where the code for collisions has dropped in size by 75% - yeah, my coding is somewhat sloppy during the dev process, but thats a bit much even by my standards), had some beneficial side effects, increased my understanding and caused a few things to break too.
Most of the breakages seem to be in the powerup side of things and should be relatively easy to fix - I'm going through them at the moment to determine what works and what doesn't.
And I finally found the source of a particularly pernicious bug. I was getting a large "lag" or "stutter" when the first block was being destroyed on the first level - and it didnt occur after that. After much headscratching it turns out the problem was down to the sound effects playing for the first time. Even though theyre pre-loaded, it was acting as if they werent loaded into memory. Simple fix, play the sounds at zero volume during game loading - bye bye issue.