Once the more gameplay-inclined features I wanted to have implemented by the end of the weekend were finished Saturday afternoon, I thought I'd take a bit of time to improve the overall visuals of Asplode!. Originally, I didn't have a great idea about how I'd get the game's retro-ish look aside from just using basic geometric shapes with edge outlines. A lot of Kenta Cho's games, for example, perform a "luminance" pass on the game at the end of rendering which helps his titles achieve the brighter, neonish color palette in some of his games. Geometry Wars, on the other hand, just chooses some brights along with a surprisingly noticeable bloom filter and entities which consist solely of an outline with no inner-fill. I had originally planned on doing solely a luminance filter akin to Cho's work but, in experimenting with a fairly simplistic bloom filter with a very small blur area, I think I've managed to achieve a pretty decent look. Here is the evolution of that:
Once that was done, I played with the ship movement code a little bit. In the process of doing this, I realized that, for whatever reason, my keyboard imposes a three-keys-at-once limit when using certain characters. For Asplode!'s keyboard input (there will eventually be 360 controller input as well) I'm using WSAD for ship movement and the arrow keys for aiming. I have no idea why this limit is imposed or if it's solely a Microsoft Natural Keyboard issue but, if it's fairly widespread, I'm definitely going to have to make keyboard plus mouse input a viable alternative.
The next graphical feature I worked on was the inevitable particle engine. Rather than using something incredibly fancy that could be reused in future projects -- like I would normally do -- I chose to write a system that was custom-tailored for use in Asplode!. This system uses quad particles which have a base size along with a size magnifier in the opposite direction of the particle velocity to create larger particles depending on their speeds. I am, at the time of writing this entry, still working on this so, for now, here are some work-in-progress images:
And now for a conclusion like Assassin's Creed or The Sopranos would handle it: for the next entry
Ah but the keyboard issue is just a stupid windows-api related thing. I used something else for the keyboard input...GetAsyncKey or something... it fills a table of chars with the state of each individual key, all at once.
You can see if the player just mashed the keyboard with his fist with this :)