FINALLY–sorry for the delay in getting this posted. Let’s get started with the latest milestone review video:
These past two weeks have probably been the most demanding I’ve had in a LONG time. I can’t not begin to describe how much work had to be done for proper external port docking.
Of course, I could have cheated a lot of things to make this work pretty simply; but RogSys doesn’t cheat. I looked a lot, obviously, to how docking was handled between the ISS and the shuttle, since the shuttle’s docking port was in the cargo bay. This is very similar to the FireArc, which has dorsal and ventral ports well aft of the pilot’s line of sight. It was pretty obvious I was going to need a HUD display to manage the alignment. So that’s where I began.
Creating the display itself in XAML was pretty straight-forward, as was coding the hooks to drive the indicators. The trick was getting alignment data between two ports that have ANY orientation, and then translating that to the point of view of the pilot so the ship can be flown, basically, from the chosen port’s orientation. I encountered bug after bug trying to get valid translations. I FINALLY got it working though after discovering a minor quirk with the engine. It was easy to handle ONCE I found it . So, good news is that you never have to leave the pilot’s seat to dock, no matter which port you’ve selected, and which station port has been assigned to you.
And that was another thing. It’s been a LONG time since I looked at STC AI code, and turns out it was pretty buggy when managing incoming traffic. I wouldn’t say it was BAD code, but more that I never finished it to the level that was now needed. The STC has to look and make a bunch of checks: do I have a port available? If so, do I have a port that matches ONE of the ports sizes of the incoming ship? What is the incoming ship’s alliance and legal status, etc., etc., etc? Once all that was done, the STC has to communicate what it expects of you (and I’m still not completely done here, but it’s more than good enough for this stage).
Getting the station’s intended port data to the player was another trick. obviously, I couldn’t just say, “use port 3”. You’d have no idea WHERE port three was, what its orientation was, etc. So, I had to add a localizer system. What happens is that each ship is assigned a private frequency that can be used for private conversations (looking ahead to multiplayer obviously). Likewise, if a ship has ports each one is assigned a localizer frequency. So, if you wanted someone to dock with you you’d simply hand them the port’s freq. Needless to say, I had to add a MFD page so you could visually manage YOUR ports.
The other addition required then was an MFD COMMS page so you could dial in freqs into each of your COMMS available channels, which differs from type to type. So, now you can contact STC and announce yourself. They hand you Approach’s freq. You dial in and check in with them, state your intentions, and then stand by. If they have a port ready (or internal bay), they hand you the localizer freq. So set that on a different channel, set it as the active localizer, and then its information is passed off to the NAS computer (Navigation/Auto-pilot System) and comparisons are made there to provide angle deviations and alignment offsets. These are then displayed on the VMS HUD.
By the way, most frequencies are in the v-band (no worries since there’s no atmospherics to get in the way). Although, you can dial in any frequency from the hertz range on up… There will be a reason for this later on…
Of course, damage ANYWHERE along the way can cause bad indications, or none at all. If the COMMS is out you can’t get localizer data. If NAS is out then you don’t get alignment info, etc. If this is the case then you can always call STC and let them know you need help. Chances are they’ll have you stabilize your orientation to them and then send out a tug or shuttle…
There were other things done, too. I completely rebuilt the distant celestial background. I just didn’t like the noisy procedural stuff. It looks a lot better now. I spent some time on the Main Menu–fixed a few bugs there and added some new elements. I added scaling to the sensor display as well as a new mode. You can now “see” contacts either from your nose, or top down. Along the depth axis, the closer an object is the larger the trace icon size. This was a first step to making the sensor page 3D rather than 2D.
Last, but not least, I knocked out a good number of minor bugs that I’ve been putting on the backburner. Honestly, there’s too many changes to mention. I checked–the change log for the last two weeks was the largest since the time of the engine change many months ago. I was really hammering away on all fronts this time
So, now that all this stuff is in and working, I need to spend quality time with the tutorial scripting. That’s my task for the remainder of this week and this weekend, along with some combat/damage stuff.
Next week will be some damage VFX and some other art, and then we should have our first Early-Access release candidate. I’m trying, guys…
With that, I need to put up a build for internal testers, and then I may take a couple hours off before hitting it again