Confederation

On-off-lurker finally registering to voice my appreciation for both this project and the Wing Leader tech demo, since both creators seem to be active in the thread! As someone who grew up with the first two Wing Commanders, Privateer, and Armada, this is like a dream come true. 👍

Speaking of dreams, I think my ideal Wing Commander game would have an Armada-like strategic layer, but with a dynamic generator that spits out pilotable/autoresolvable missions similar to WC1/WC2 for when two opposing fleets are present in the same system. Would this kind of thing be within the scope of Confederation, or are you strictly focussing on recreating the 'classic' story-driven experience of the originals?
 
Speaking of dreams, I think my ideal Wing Commander game would have an Armada-like strategic layer, but with a dynamic generator that spits out pilotable/autoresolvable missions similar to WC1/WC2 for when two opposing fleets are present in the same system. Would this kind of thing be within the scope of Confederation, or are you strictly focussing on recreating the 'classic' story-driven experience of the originals?
It's something which I plan to implement gradually in layers, but yes - ultimately some kind of dynamic/strategic campaign system is exactly the sort of thing I'd like to implement. :) The current plan is that the first layers of that will actually be released prior to the WC1 campaign being fully playable; i.e. simple preset or dynamic scenarios to test things out.

Having the WC1 campaign fully playable is the primary goal until it's achieved, but the way we'll get there will be a little bit roundabout because of the nature of the project - e.g. I want to look beyond WC1 and make sure the core systems will scale up into the open world of Privateer.

Right now I'm churning through lots of dull-but-necessary stuff, e.g. polishing up the addon system (essentially a mod manager) which lets you add/overlay content; change the load order etc... Lots of stuff to get through, but good progress is being made!

I'll be releasing two optional addons to begin with, both for WC1 - my widescreen art package which is very nearly complete, and another which fixes the minor errors I've spotted in the WC1 art. Adding Halcyon's missing pips during the first medal presentation frame, removing a rogue pixel in Iceman and Angel's portraits, and changing "Dart" to Hunter, "Joker" to Maniac on their helmets:

hunter-fixed.png
.
maniac-fixed.png


If anyone's aware of any other art hiccups, let me know and I'll try to add fixes for them. :)

Just on the addon system, I've decided to go with a Quake 3 approach, where they're just renamed ZIP files. That should make life as easy as possible for people creating their own addons.
 
That all sounds wonderful and well-organized! I'm still somewhat in disbelief at how this whole project just appeared out of nowhere for me.

One more thought that came up when you mentioned setting up the core systems for easier expansion later on: If you're going to support a strategic layer, it might be a good idea to allow each star on the hyperspace map potentially contain more than just one planet, unlike Armada. Even if that's not how it'll actually be implemented in the beginning, having the code in place to eventually allow some back-and-forth fighting within vital and heavily populated systems seems like it could lead to some really fun gameplay.
 
I'm still somewhat in disbelief at how this whole project just appeared out of nowhere for me.
I've been working on it on-and-off since 2016 or thereabouts, but posting about it (or more the community response) has been a big motivation boost. :)

One more thought that came up when you mentioned setting up the core systems for easier expansion later on: If you're going to support a strategic layer, it might be a good idea to allow each star on the hyperspace map potentially contain more than just one planet, unlike Armada. Even if that's not how it'll actually be implemented in the beginning, having the code in place to eventually allow some back-and-forth fighting within vital and heavily populated systems seems like it could lead to some really fun gameplay.
New game modes, missions, campaigns, art, translations and so on wouldn't have to obey the limits of the original engine, since Confederation isn't based on the original game engine(s) at all; new content isn't stored in the old formats.

Virtually all of Confederation's high-level gameplay and game interface logic is written in AngelScript. All of the scripting is accessible in plain text and moddable via addons. So while I fully intend to work up an expanded gameplay addon (sounds like) more or less in the direction you're describing, it's by design that others can create their own addons to give a totally different experience; or just make minor tweaks to ship stats, whatever!
 
Just thought I'd post a quick progress update, mostly probably-dull semi-technical stuff - sadly some contract work is kicking my butt at the moment, so the 26th is looking kind of dubious... But things are still progressing steadily!

I'm currently knee-deep in the revised audio system, which (amongst other things) I'm hoping will be able to render the OPL2 (Adlib) sound effects and music purely from the original data. Things seem positive, but I'm not finished with it yet. My previous effort involved using some external data to send to the OPL chip emulation code, but it was a little janky and not ideal. MT-32/CM-32L emulation is already re-integrated and working (bring your own ROMs as usual :p).

Another thing I've been working on improving is the texture atlassing, which I'm using to support quite a broad set of GPUs (e.g. most from around 2006 onwards should work, plus weaker embedded/Intel ones). This is quite basic stuff, where you pack multiple textures into a single larger one, so the renderer doesn't have to swap between them while drawing - since as a rule of thumb the more things you can draw in one go (in one "draw call"), the better the performance. Even the most retro graphics can easily bottleneck on a top-of-the-line GPU without taking this sort of thing into account.

Creating atlasses is more often done using dedicated tools and then shipped with the game, but since Confederation loads directly from the original game data I decided to pack the atlasses on the fly. For instance this is the atlas in video RAM while running the OriginFX logo scene:

atlas.png

The generated atlas is different every time a scene starts, since it's assembled with some randomisation involved. On the technical side there's actually a fair bit going on to make this happen efficiently; it uses k-d trees and a genetic algorithm to hone in on an optimal solution, using all CPU cores to do so. It also crops out empty border pixels for each sprite, and pads out the colours to make sure there are no artifacts when rendering; here's the same atlas without the alpha channel:

atlas-noalpha.png

Anyway that's it for now - maybe some of that was interesting to someone out there :D; next update should have some gameplay video(s), if not the first test release.
 
Last edited:
Don't undersell yourself, even this 'technical' stuff is REALLY interesting, especially considering that none of the source material was designed to be picked apart and analyzed on the consumer end like you have been doing!
 
Back
Top