So really good progress over the last few days – I know I’ve said this before, but at the risk of tempting fate: “All the preparatory work I’ve done is now starting to pay off”. WeeSmall is starting to look like the game I want it to be.

A Particle System has been added, based on three classes: Particle, Emitter (which has a collection or Particles) and ParticleSystem (which has a collection of Emitters). This is based off what I learned while writing Ultra LRK; the Emitters give much more control over when and how many particles are generated, and the ParticleSystem provides a nice interface so I can call it to create a new effect when needed without having to muck about looking for the first available Emitter.

The Enemy base class is in, with simple movement and stubs for AI control, based on behavioural characteristics. There’s a small problem with collisions with Slider-based objects, but it’s enough for testing.

Lift control has been added into the main gameplay loop – this is now based on a level having a minimum number of Sliders and Enemies. If either (or both) fall below these levels, an object is assigned to be brought into play after a given number of updates – since both Sliders and Enemies inherit from MovingObject, it’s just a case of working out which one to assign – and the lift control takes over. Once the number of updates has elapsed, the new object is brought into play as soon as a lift is vacant.

The Slider (and Enemy) array have been dumped and replaced with lists – instead of recycling old sliders and enemies, new ones are created whenever required and either spliced into the list at the first gap or tagged onto the end. This works in conjunction with the classes that inherit from Slider and Enemy, allowing easy creation of different Slider and Enemy types.

The two Slider-inheriting classes are under way – Brick and Bomb. Both have a limited lifespan, which decreases over time or when the object impacts another (slight tweak in the Slider class) – the difference is in how they die. Bombs (not yet implemented) will explode and take out everything nearby. Bricks crumble into bits, which was a simple matter of checking their lifespan and if it falls below one, set the Slider status to OutOfPlay and have the ParticleSystem fire a single burst of various sized particles using the brick model.

Considering that these are supposed to be placeholder graphics, I’m already seriously chuffed with how this looks, especially the “brick crumble” effect. The next step (after solving the collision glitches) will be the Bomb class – alpha/additive blend capabilities have been added to the GameObjectComponents as part of the particle system, which makes for some funky effects and getting correct particle to object collisions working (bounce off, die or ignore).

And also – a shiney new (and hopefully less borky) laptop has just arrived…