So this week has been about getting two things sorted. The weapon systems, and X-Box optimization. The first has been a lot of fun and there's a new screen shot in the image section showing some of the new weapons and the first draft of our new weapon HUD. The second has been somewhat less exciting, the reasons for this are explained below.
Players will be able to pick one of the four races (more about those in a later update), and this in turn gives them access to a wide range of weapons and accessories which they can pick and choose from to equip their ship using the mounting points provided. As players progress they will unlock upgrades and additional weapons and accessories, with each race having its own unique weapon styles, advantages and disadvantages.
The rebirth missile super weapon has been a whole ton of fun to create as it fires a powerful heat seeking rocket which upon exploding spawns another two of the same and this cycle continues. Its pretty easy to use this weapon to take out an entire wave of 50+ enemies, hence why it's been given super weapon status and a 3 minute cool down. It also helps that it looks cool too.
Other weapons that have now been properly configured include both laser cannons (single shot and dual rapid fire), machine gun, 6 shot salvo rocket, heat seeking missiles, standard rockets and the debris cannon (basically similar to the Unreal Tournament flak cannon).
Part of this weeks code update was to add the player weapon selection HUD. The main thing we wanted to convey was magazine ammo and reload times for at least 3 weapons simultaneously (most weapon load outs won't surpass 3 weapons). As such we have gone for a "weapon wheel" design which allows us to clearly see which weapon we have currently selected and its reload and ammo status. This design also allows very quickly to see what the previously selected and next weapons reload statuses are. All that really remains to do with this design is to replace the placeholder weapon icons, and redesign/render the HUD itself with some fancy animations/effects.
A very important part of making this engine was to make it capable of supporting X-Box and PCs of various specs with the ability to scale the games quality accordingly. Sounds a pretty simple task, but unfortunately the spec of the X-Box means things that run well even on a low-mid spec PC can run like a pig on the console. This doesn't mean the X-Box is bad, as it's really not. What it means is that some things have to be done differently for the console and sometimes compromises have to be made.
The particle system has been the first victim of "recoding and optimization". The level of complexity in the particle system meant that a lot of the effects we had created were simply too much on the console when 50 enemies simultaneously spawned. Because of this we created a particle recorder which allows us to generate animations from the particle system. The end result is some of the effects now use prerecorded sequences and the X-Box now happily runs at 60fps once again.
On a side note I have spent a lot of time this week refining the timing system to ensure the game would run at the same speed regardless of the frame rate. Normally this takes no time and is built into the engine from the outset, however it took me a few hours to realize I had to use my own custom timers as Microsoft's version of a millisecond was nowhere near an actual millisecond and this was causing all sorts of issues grrrrrr!
This week has been slower than previous weeks due to the optimization troubles. We have however now got a very robust engine capable of delivering a solid 60fps on both platforms. We also now have a lot of weapons in place and the game is starting to take shape as something more playable.
Over the next week we will be looking at refining the weapon system by adding accessories and additional weapon types. Maybe this coming week will be totally about design and less about compromising for the sake of cross platform compatibility!