Had a weird day hours-wise today, getting up at 11am after going to bed at 8am, then being absolutely bushed by 5pm, sleeping from 8pm till 11pm; after which I worked from 12 till now. I live like some weird and exotic animal, it's a bit disturbing.
I spent the whole night working synchronously between my day job and Onyx and made some good progress in both. The day job was interesting, as optimization always is, but the real fireworks happened in Onyx. Since I'm not sure how much I'm actually allowed/ should discuss about the day job so this becomes an Onyx update post only.
I've spent much of the past few weeks replacing debugging "for now" code with real and proper stuff and it's beginning to show in the flexibility of the engine. So much of the HUD is configurable now that I can successfully remap the display for foreign factions craft and the internal workings are much, much cleaner. I've added a definition class for missile targeting computers and filled out the in-game accesses to it enough that missiles now properly adhere to the restrictions they carry. More and more code is getting placed where it should be, which allows all sorts of new things to work. Most notably missions now have a correct notion of hostile and allied factions and the targeting subsystems of ship weapons computers have a new selection mask to show for it. This (practically) means that now it's possible to target craft based on their relationship to you, as well as adding a minimum Angle of Attack selector and range based selectors. That allows targeting bindings like "ClosestHostile" and "FrontShip" or "FrontAnyTarget" to work properly. That's all very exciting, at least to me, because up until now I've had to select targets by hitting 'T' repeatedly through dozens or even hundreds of targets (all the while praying I didn't click ONE too many times).
The additions also mean that missiles properly lock onto their targets, and in the next hour or so the gui will reflect this properly. Missiles now have characteristics like "aquireRear" and "requiresEngines" to allow targeting computers like thermal recognition to work as described, and the entire system supports firing with locking solutions less than 100%, which means that it's possible to fire guided missiles before fully locked with reduced accuracy.
At the same time, the fixes to the weapons computer class has enabled grouping of weapons into primary and secondary firing lists which means that heavier fighters don't have to fire all weapons all the time.
The game universe has also further expanded and I've done more to fill out the newer races. Story elements move forward as well, and many new ships and weapons have finally received some balancing attention. I've done quite a lot to improve the quality of the models and add attachments like turrets where necessary. Weapons and turrets are now also further refined so it's possible for turrets and even ships to visually show the guns attached to them, just like was possible before for missiles. Quite a lot of work needs to be done on dynamic levels of detail for guns and missiles, though, because the frame rate has taken a massive hit lately.
More information is available on the HUD as well, now, assuming the configuration options are turned on. The targeting overlay will provide you with shield and armour status for the targets as you hit them to give the pilot a better idea of target status.
I've also spent quite a bit of time re-sampling the audio effects and trying to find replacements for illegal files. The additional attention has gone a long way towards improving the audio effects, and I'm much more content with the way things sound now.
On the more frilly side of things, I've spent a few days planning out the cut-scene engine and planning the movies required for the first chapter. It won't be Blizzard quality to say the very least, but what I have planned should be sufficient to tell the story between missions and I'm excited about getting to the coding. Unfortunately, AI is still lagging WAY behind, and now that the missile firing and locking subsystems are written properly I can finally focus on writing the guidance AI's that are needed. Those AI's should provide a new and better platform for basic ship movements. Expanded a bit to reflect pilot skills and perks it should provide a solid foundation for the rest of the AI to be built on top of.
On the management side of things, I've finally built a decent list of game assets and their respective license information. I'm also able to build definition files straight from the master spreadsheets which makes game balancing much much easier.
Anyway, enough ranting. Things are moving forward, much more quickly then is visually apparent. With luck a feature-complete testing release should be on the way in the next few months. Only a year overdue! (NOT duke Nukem forever, damnit!)