The bad news is, i've missed this week end's deadline. There are a various amount of reasons for that, the main one being that i found 2 major bugs ( one in OpenAL, one in the networking ) and each required half a day to fix.
The good news is, the prototype is starting to look rather nice, or at least that's my opinion. My goal ( at least from a gameplay's point of view ) with it is to recreate the ambiance and fights of the old Lucasart game series based on Star Wars, X-Wing and Tie-Fighter. Of course, there is Newtonian physics, so it's not the same, but it's quite similar.
I've added 3D sounds and musics. For this, i used a generic interface ( ISound ) and its implementation in OpenAL ( IOpenALSound ). At the beginning i thought it'd be a 2 hours work, especially since i used OpenAL in the past ( but for smaller projects ). Unfortunately, i discovered the hard way that it was not as easy as i thought, and lost half a day on it.
The problem with OpenAL ( and my mistake for assuming it was ) is that it's not such a high-level library. I was expecting it to feed hundreds of 3D sound sources, and the library would automatically, based on the relative volume of each source, select the N closest to match what the hardware ( sound card ) is able to mix. Unfortunately, OpenAL doesn't do that for you, so after creating more than 60 sources, i started to get weird OpenAL errors, and it was impossible to create more sources. In the end, i had to implement an algorithm that scans all the virtual sound sources and map / remap them automatically to N pre-allocated "real" sources. Doesn't it sound like a lot of fun ?
I've added CutterJohn's frigate into the prototype, and played with many physical parameters, like its mass / inertia. This is a really nice ship. Very hard to control, but also very powerful ( it has MKII turrets ) and strong. But an easy target. I'm not sure if it's going to be a popular choice in game, as without assistance ( other players to defend it or to distract the turrets ), it's quickly dead.
JoeB sent in some updates for the battleship ( with better hardpoint placements, and updates in the hangar ). He also made a mine with a MKI hardpoint. In the prototype, this mine will explode when a ship comes close to it, or fire at a distance. I've yet to implement the explosions and shockwave effects..
I've finally implemented the teams concepts, so now each ship is given a team ( and mines are in the "neutral" team ). Each team knows its battleship, and a battleship won't attach you if you're in its team.
As far as networking goes, i've implement smooth interpolation for the turrets orientation, and interpolation for the orientation of ships. I think there's still a bug in that code since sometimes objects ( on the client side ) start to spin like mad, but hopefully i can easily fix it.
I've implemented the concept of "spawn zones" for each battleship, so that when a player enters in game, his ship is spawned on a docking pad inside the hangar of the battleship. Handling bounding boxes from world space back and forth to battleship's space.. lots of fun ( or lack there of.. ).
Betelgeuze did some minor work on the H.U.D that Starbrow had started. It's not perfect, but for the moment it'll do the job. The H.U.D. is the main thing to finish right now. I'm displaying a small "info" window on the bottom-right of the screen, that will contain a 3D view of the entity you've selected. You can scroll all the entities by pressed the "T" key. If you are targetted yourself, you get a back / mirror view of what's behind your ship, if the camera is in first person mode. It was easy to implement and it's quite nice..
Finally, i've fixed a bug in the network protocol. I won't enter into details, but i lost a couple hours today, and it was due to a packet that arrived out-of-order, but was not "remembered", so when another copy of that packet arrived, it was delivered again. Two messages for the price of one.. that was not expected, making the client crash.
The release date for the prototype is now Sunday 7th May, at 3 PM GMT. Unless a major accident happens, this should be the last delay, as a week should be plenty enough to implement the last features and "polish" everything. Get ready!