Archive for May, 2009

Possibly wonky decision

Friday, May 15th, 2009

i’ve been thinking quite a bit about how the Blast Engine works. At the moment, attack patterns are literally a single “move”, meaning that they contain X and Y positions, angle and speed of movement to initialise things, then speed of rotation, speed of movement and destination speed along with an optional timer that keeps those extra values from taking effect immediately.

That timer (and to a degree the speed destination) are key players; the Vinculum engine supports multiple move commands (up to thirty two, although there’s nothing using more than half that) but Blast Engine can already replicate almost everything Vinc does with it’s single delayed command. And that “almost” is what has been bugging me…

Thing is, i’ve been giving this quite a bit of thought and apart from memory considerations (which shouldn’t be an issue if the tests i did earlier are anything to go by) there’s nothing stopping a similar logic being applied to the firing system!

Bullets, bullets everywhere

Saturday, May 9th, 2009

i’ve just given the Blast Engine a multi-speed firing mode; previously, the “Aim” firing command threw a single bullet in the player’s direction and the “Aim-V” chucked a V of five their way, now “Aim-M” will launch four bullets directly at the player but with different movement speeds so they begin as a cluster and spread out. The straight shot firing modes are now Aim, Aim-V and Aim-M to take direct shots at the player, Forward, Forward-V and Forward-M to shoot whichever way the nasty is moving, Backward, Backward-V and Backward-M to fire in the opposite direction to movement. On top of that are Cross and Star, which launch four and eight bullets respectively with aiming based on the current angle of the nasty and Ring chucks out 24 bullets in, obviously, a ring.

Here’s Cross producing a pretty pattern on the left, whilst the new Cross-M gets busy on the right:

The new Star-M firing option on the right, compared to it's more sedate Star counterpart!

The new firing option on the right, compared to it's more sedate counterpart!

The observant will notice that the status characters have changed, the code now processes text itself (using the Vinculum character set for now) rather than relying on BlitzMax to do it.

It’s a blast blast blast!

Monday, May 4th, 2009

The BlitzMax OOP engine has… erm, grown. It’s now nicknamed Blast Engine (because project folders need names more than anything) and, despite being a single command engine at the moment, can lob a frighteningly complex array of nasties about the place! Rings of nasties, bosses that zoom on, decellerate and sit there, spinning and spitting out bullets, randomly placed popcorn… all possible and for the boss type nasties the game can be told to wait until all aliens have been destroyed before continuing!

There’s even some nice cosmetic details so nasties and player both have muzzle flashes when they fire, bullets spin majestically as they tumble through space and the bigger nasties have larger explosions based on the size of their collision area. Here’s a still screenshot of the code running in windowed mode:

Blast Engine - preview 1

Blast Engine - preview 1

After i’ve experimented a bit more to see where the restrictions are, tidied up the code a little (there’s a naughty little array in there that i might convert to a linked list if it seems more efficient) and generally fiddled with the thing, the next step will be to see if the nasties can be given a series of movement commands as with the Vinculum engine; if that works i want to add a similar system for firing patterns, essentially meaning the engine on it’s own can handle relatively complex boss battles!