Hellcat cockpit in the WC2 style

Make sure you unzip the files into the Gamedat folder, that should do it.
Thanks, that did the trick. I think those files existed in the root of the install folder because that is where I had backed them up to when I installed the fralthra and kamekh add-on.
 
Some more quick info on full-angled ships:

After playing a bit with the Ayer's Rock ship file, i came to the conclusion that i needed to dig into SO2. I just couldn't get Ayer's Rock to rotate properly in WCA for some reason, but when firing up the penultimate SO2 mission, 'lo and behold, the ship rotates as expected. Interestingly, if i replace the Ayer's Rock ship file with another ship within SO2, it stops rotating properly as well, exact same behavior as WCA.

So, i poked around the SO2 EXE a bit. Sure enough, it seems there are a couple of points where the game logic takes the ship number into consideration. There goes the theory that a couple flags on the stats chunk was enough to configure the game to use a full set of image angles. The flag i found out seems to trigger the "quarter-angle" option used by most starbases, which is not particularly useful for our purposes anyway.

So, to summarize:

- Asymmetric ships are possible, but only using the SO2 EXE.
- Even with the SO2 EXE, some EXE hacking is going to be necessary to make the game handle the new "full-angled" asymmetic ships properly.

(Also, i'll probably disassemble the KS SO2 EXE and see if it also supports the same Ayer's Rock rotation... some small details were lost in the KS port of WC1 / WC2, so i think it'd useful to confirm if this tweak made it to the KS EXE)

I'm probably going to tweak my script to produce two ship files instead of one: one with 37 images, and another with 62. Most of the work the script does is common to both variants anyway, and changing the script to handle two sets of image "tiles" instead of one should be pretty simple. This way we'll be able to keep testing things easily in WCA, while having the necessary data to start experimenting with the SO2 EXE :)

Also, doing some progress on the engine encoding, hopefully i'll have more news soon!
 
So, i poked around the SO2 EXE a bit. Sure enough, it seems there are a couple of points where the game logic takes the ship number into consideration. There goes the theory that a couple flags on the stats chunk was enough to configure the game to use a full set of image angles. The flag i found out seems to trigger the "quarter-angle" option used by most starbases, which is not particularly useful for our purposes anyway.
Hardcoded - the bastards. It's funny how they put in so much effort to make the game expandable and independent of the executable, and still ended up spoiling it with the hardcoding of details. I mean, I understand perfectly how this happens - expansion packs are always a bit like last-minute homework at school, the kind that you copy from a friend five minutes before class. You take shortcuts, make mistakes, and generally rush things just to be finished fast enough, and to at least give the illusion that you did everything yourself properly :).

On a sidenote, this is one of those things that I took from Wing Commander into my professional career as a designer. When programmers tell me they can do something directly in the code, I go crazy :). I've never worked on a game that ultimately doesn't have something hard-coded - heck, even world-class engine technologies like Unreal still end up having game-specific details in the executable. Probably Unity is the only engine designed specifically to avoid this, because their business model has been based right from the start on not selling the source code to most of their customers. It'll be very interesting to see how Star Citizen fares in this regard - at the end of the day, Cry Engine ain't all it's cracked up to be either, trust me.

In any case, if I had a dollar for every time I asked the programmers, "well, hang on, I know it's only used in this one instance, but couldn't you put that into a script file, just in case we do want to use it elsewhere later?"... I'd be at least fifty dollars richer :).
 
Yep, I get the feeling it's like that everywhere. In every job i've been in (curiously not game-related... but hey that's a good thing, it means my hobbies are different enough from my day job that it doesn't feel like "work" ;) ) things follow more or less the same pattern: everything is dynamic and configurable via script / DB config... until unrealistic deadlines are imposed, people start coming in during the weekends in order to meet them, and ultimately end up rushing and cutting corners just to get it over with.

(then you pay it in full later, when you have to revisit some of the hacks that were put together under pressure, in order to give the product the customization capabilities, and even the robustness, that it should have had in the first place...)

Anyway, managed to dig a bit more into the SO2 EXE :) (warning: relatively long post ahead)

It seems the game internally treats the fake-3D models as 62-angle objects, but then according to object type / number maps these images into a smaller subset. Translating a few EXE bytes into more friendly objects with a quick script, you can sum it to the following cases:

- X-axis symmetric objects. This covers the vast majority of the objects in WC2. Basically the game reuses the same images in reverse order for a given rotation set, and maps the 62 angles into 37 images:

Code:
ship =
{
  bottom = 0
  angles =

      1    2    3    4    5    6    7    6    5    4    3    2
    14  13  12  11  10    9    8    9  10  11  12  13
    15  16  17  18  19  20  21  20  19  18  17  16
    28  27  26  25  24  23  22  23  24  25  26  27
    29  30  31  32  33  34  35  34  33  32  31  30

  top =  36
}

- X/Y-axis symmetric objects. These were puzzling at first, since i couldn't think of any ship that had this kind of symmetry. But, sure enough, there are objects that are symmetic on both X and Y axes: missiles! Here the game maps the 62 angles into 22 images:

Code:
ship =
{
  bottom = 0
  angles =

      1    2    3    4    5    6    7    6    5    4    3    2
    14  13  12  11  10    9    8    9  10  11  12  13
    15  16  17  18  19  20  21  20  19  18  17  16
    14  13  12  11  10    9    8    9  10  11  12  13
      1    2    3    4    5    6    7    6    5    4    3    2

  top = 0
}

Great, makes sense!

- Then come the space stations, which use alternate 3 images for each rotation set. This option maps the 62 angles into 17 images:

Code:
ship =
{
  bottom = 0
  angles =

      1    2    3    1    3    2    1    2    3    1    3    2
      4    5    6    4    6    5    4    5    6    4    6    5
      7    8    9    7    9    8    7    8    9    7    9    8
    10  11  12  10  12  11  10  11  12  10  12  11
    13  14  15  13  15  14  13  14  15  13  15  14

  top =  16
}

- Then comes Ayer's Rock, which maps 1-to-1 each of the 62 angles, just shuffling them around a bit:

Code:
ship =
{
  bottom = 0
  angles =

    12  11  10    9    8    7    6    5    4    3    2    1
    24  23  22  21  20  19  18  17  16  15  14  13
    36  35  34  33  32  31  30  29  28  27  26  25
    48  47  46  45  44  43  42  41  40  39  38  37
    60  59  58  57  56  55  54  53  52  51  50  49

  top =  61
}

Of course, these days the latter option is the only one that really would make any sense... but back in 1993, where each floppy is 1.44Mb and you don't want to spend 250kb per ship file, you would definitely want to explore symmetry in order to remove redundant information.

Anyway, very interesting stuff! :D

With this information i'll be able to start improving my script in order to support asymmetric ships :)
 
Some more updates on this front :)

I managed to modify my scripts to output either 37 or 62 sprite ships. The OpenGL 3d to 2d converter outputs a image matrix with the full 62 sprites, but the second stage converter can now take a subset of these sprites and output a regular 37-sprite ship file for WCA, or a 62-sprite ship for SO2. This is good, it means that i'll be able to quickly generate a new ship file for testing on WCA, while at the same time have the necessary data to start running some tests on SO2, in order to enable asymmetric ship support for ships other than Ayer's Rock (i'll probably try to isolate the necessary changes into a COM file that will launch the main SO2 EXE... we'll see).

With this in mind, i started converting another ship: the WC4 Dralthi :D

Besides being an iconic WC ship, it has asymmetric aspects (pilot and weapons pod), which makes it a great test subject. Also, it's asymmetry is subtle enough at low resolutions that it shouldn't spoil the fun of playing with it in WCA, without asymmetry support.

As a bonus: since I had to rework my scripts to support this new approach... i decided it was time to try something else: increased resolution sprites. While my OpenGL generator used to generate 160x120 "tiles", i decided to add support for changing the size of these. For the Dralthi, these were increased to 320x240, which should make the ship hold up better when near the camera. As expected, however, the increase in resolution resulted in a larger ship in-game, which means the sprite scale factor will have to be tweaked. I haven't done this yet, which means the Dralthi in the screenshots below looks larger than it should. Other than that, the game seems to handle the new file just fine, even though it's around ~400kb (but with some RLE optimizations, the size should come down a bit).

Anyway, here are a few screenshots of the work-in-progress Dralthi. Enjoy :)
(of course, comments / suggestions are always welcome)

dralthiTest1.png
dralthiTest2.png
dralthiTest3.png
dralthiTest4.png
 
That's really great stuff! Just one thing, though - for the Dralthi, you should be using the WCP model instead. I believe the four Dralthi from Armada, WC3, WC4 and WCP are all based on the same high-poly model, but the low-poly model was created again for each new game with a little more detail. The WCP Dralthi is thus simply the best Dralthi there is (other than the Arena Dralthi, I suppose).
 
I think the real benefit of the higher-res sprites would be not so much for the fighters but the capships. No more flying into a wall of pixels when you get close - exciting!
 
Thanks for all the comments guys!

Quarto, that's a good point indeed, thanks! I'll try to put together a WCP mesh loader soon and plug it into the current converter. The higher poly-count should definitely help :)

Death Angel, exactly, higher-res sprites are going to be particularly useful for capships and starbases, that's where i expect to really be pushing the limits of ship size (i still suspect the game has a hard-limit on 64kb per sprite, which i haven't hit yet, but might become a limiting factor as i try to encode more and more detail).

In general, I'm expecting the ability to encode higher-res sprites, coupled with the capability to support full-angled ship files, should allow us to import some tricky objects properly. For example, the Bluepoint-type station from WC4, the comm relay station, Kilrathi Starbases from WC3/WC4/WCP… There's lot of capships and starbases in the various games that i could picture being part of a WC2 mission!

Also, any thoughts regarding the Dralthi stats? I didn't really gave it much thought at this point yet, although (sticking to standard WC2 guns) i feel tempted to give it a 2 Laser + 1 Particle cannon combination, and maybe an HR/IR missile combo. Extending the available set of guns to the WCA ones, we could maybe use a Particle / Photon combo too... Things are still pretty much in the air on this front though, so any suggestions are welcome :)
 
2 Laser / 1 Particle sounds good--enough to be a credible threat but not enough to overpower the Hellcat. The longer range of the Dralthi's guns then would be a counterpoint to the Hellcat's slightly heavier guns and shields/armor, meaning that a Hellcat would be exposing itself to a couple of seconds of being shot at while unable to shoot back during each approach from outside of gun range.
 
Also, any thoughts regarding the Dralthi stats? I didn't really gave it much thought at this point yet, although (sticking to standard WC2 guns) i feel tempted to give it a 2 Laser + 1 Particle cannon combination, and maybe an HR/IR missile combo. Extending the available set of guns to the WCA ones, we could maybe use a Particle / Photon combo too... Things are still pretty much in the air on this front though, so any suggestions are welcome :)
Hmm... what, oh what to do with the Dralthi? That is a good question :).

I suppose there are two options to consider here:
- This new Dralthi can be simply an earlier variant of the Dralthi Mk. IV. We see the Dralthi Mk. IV with revised stats both in WC4 and WCP, so there's nothing wrong with this approach.
- But... hang on? What about the Armada Dralthi (Mk. III?), which is much closer in the timeframe to Academy? This is obviously a completely different line of Dralthi - the Mk. IV is a medium fighter, the Mk. III is a fast scout.

So, first, the Dralthi Mk IV. The idea with this set of stats is to produce a fighter that will form a bridge between the Drakhri and the WC3 Dralthi. We can basically imagine that this new Dralthi is being introduced to replace the old Drakhri - and it will then gradually be improved up to the WC3 version.

Dralthi Mk. IV:
Speed: 430 / 1100
(just like WC3)
Shield Recharge Rate: 5 (better than Drakhri, comparable to Sartha)
Acceleration Rate: 3 (same as Drakhri)
Y/P/R: 75/85/75 (like with the Hellcat, we assume the changes between WC2 and WC3 resulted in a drop in manoeuvrability; the Dralthi is thus better than the old Drakhri, but inferior to the Jrathek )
Shields (Fore/Aft): 6.5/6.5 (hardly any better than the Drakhri - this is a new ship, but it's the Kilrathi, they want to produce these in massive numbers, so no sophisticated new generator here)
Armour (Fore/Aft/Flanks): 8/8/6 (these happen to be the WC3 values divided by ten, but that's coincidal - the general idea here is simply to make the Dralthi a visible improvement over the Drakhri, so that it doesn't wind up just being a slightly different Drakhri)
Missiles: 4 DF/ 1 Chaff pod (in WC2, neither the Drakhri nor the Sartha used anything other than DFs - clearly, there's no technological barrier preventing them from using HS or IR missiles, which leads me to believe that this is simply current Kilrathi doctrine)
Guns: 1 Particle / 2 Lasers (WC3's meson blaster is near-identical to the laser, so this is simply logical)

Now, the Dralthi Mk. III - the Armada Dralthi. This is an entirely different beast. The process I went through here is pretty similar to what I did with the Arrow in Standoff - I basically took the Armada equivalent, and tried to imagine how it would look with an older shield generator and plain durasteel armour instead of plasteel. Unlike WC3, where we can sort of assume that ships have a similar physical thickness of armour as WC2, just using a far superior alloy, in Armada it is clear that plasteel was used to reduce mass - so, Armada ships have much thinner armour than WC2 (and much smaller mass), and wind up with better stats only because plasteel is ten times better than durasteel. I actually like the idea that having thinner armour is the main reason Armada fighters can be so fast. Of course, this would beg the question of how it is that the Wraith and the Jrathek can drop ten tons' worth of armour between Academy and Armada, and not end up any faster. The answer would be: well, in Academy we see simulations of the Wraith and Jrathek, we don't know how either of these prototypes actually turned out in practice - for all we know, it ultimately turned out that these speeds were unattainable until the durasteel armour was dropped and replaced with plasteel. Anyway, so...

Dralthi Mk. III:
Speed: 750 / 2000
(just like Armada)
Shield Recharge Rate: 3 (whoa! Way better than any other WC2 fighter... but actually still inferior to the Armada stats, if I'm reading them correctly)
Acceleration Rate: 4 (approximately like Armada)
Y/P/R: 50/60/70 (just like Armada)
Shields (Fore/Aft): 5/5 (no better than the Sartha)
Armour (Fore/Aft/Flanks): 3/3/3 (paper-thin, inferior even to the Sartha - this is a pure recon ship, that's why it's so fast. Fortunately, in Armada, the 3 cm of durasteel will be replaced with 1.5 cm of plasteel, giving the equivalent of a whopping 15 cm of durasteel)
Missiles: 2 DF (just like Armada)
Guns: 2 Lasers (just like Armada)

So, that's the two options to choose from. Heck, you could even include both of them :). Of course, in that case, the Armada Dralthi should probably be converted directly from the Armada model (the textures are vastly different, the Armada model has a very characteristic look).
 
Last edited:
(...)Of course, this would beg the question of how it is that the Wraith and the Jrathek can drop ten tons' worth of armour between Academy and Armada, and not end up any faster. The answer would be: well, in Academy we see simulations of the Wraith and Jrathek, we don't know how either of these prototypes actually turned out in practice - for all we know, it ultimately turned out that these speeds were unattainable until the durasteel armour was dropped and replaced with plasteel. (...)

Just to nitpick but as far as I recall, the Jrathek did end up faster: 500 kps in Academy, 595 kps in Armada. Also I think the afterburner speeds are higher for both the Wraith and the Jrathek (not so sure about this though). As far as the Wraith is concerned: it didn't get faster (except for AB speed maybe) but it mounts six more missiles and one chaff pod more.
 
Just to nitpick but as far as I recall, the Jrathek did end up faster: 500 kps in Academy, 595 kps in Armada. Also I think the afterburner speeds are higher for both the Wraith and the Jrathek (not so sure about this though). As far as the Wraith is concerned: it didn't get faster (except for AB speed maybe) but it mounts six more missiles and one chaff pod more.
Hey, nitpick all you like - and feel free to comment on the stats I proposed as well! :)

Yeah, now that you mention it, that's correct on both counts - the Jrathek gained 100 kps for max speed, and 200 kps for max AB speed. The Wraith's speed and AB speed are unchanged, but as you say, it has six more missiles - that's not a small amount. The only thing you recall incorrectly is the chaff pods, the Wraith has two in both cases, so no increase in that regard.

I have to say, the WC2-Armada-WC3 transition is definitely one of the most fascinating topics for speculation that we still have left. It's just such a big unknown - did the people at Origin simply make a big mess, coming up with new stats willy-nilly? To what degree were these changes inspired by Privateer? We'll never know the answers to the production-side questions, and in a way, this frees us up to come up with creative ways to bridge the gaps between these games. What exactly do we see in Armada - is it a transition period between WC2 and WC3, or is it a kind of side-branch where all we see are special spec ops ships? For example, it could be that the use of plasteel (and in such small thicknesses, as if there was no advantage to be gained from higher armour strenght) was made necessary by jump capabilities: Armada is the only example where ships seem to be able to jump an infinite number of times without refuelling.

I do still have a couple of ideas for WC mods that I wish I could realise, even though realistically - I almost certainly never will. One such concept would be for a mod that specifically straddles the transition - where we see the changes during the game, where we find ourselves flying with durasteel-armoured ships against plasteel or tungsten-armoured opponents, and so on. After all, every WC game seems to be set in a "stable" period of ship design - the only time we ever see anything revolutionary is when a super-ship (the Dragon, the Excalibur) comes into view. And even then, the revolutionary features (autoaim, infinite afterburners) are erased in the next game. Even Privateer failed to take advantage of its own technological concepts - why do we not hear about Confed upgrading their fighters with better armour? Why do we not see pirates upgrading their Talons (or, for that matter, occasionally switching to Demons or Orions?). There were so many possibilities...
 
I also noticed that the Jrathek in Armada is larger than the one in Academy. (20m in Academy and 35m in Armada).

Isn't finding contradictions, discussing and explaining them (with retcons) fun? :)
 
I also noticed that the Jrathek in Armada is larger than the one in Academy. (20m in Academy and 35m in Armada).

Isn't finding contradictions, discussing and explaining them (with retcons) fun? :)
Ah... no, you're just seeing things. They're both the same size, now change the subject or I'll change it for you ;).

Seriously, I can accept a 20km dreadnought, that's fine. But the Armada ships being up to 20 metres bigger than their counterparts in other games - that's one of those things I'd rather completely ignore. I mean, come on - the Gladius is about three times as wide as it is long. And it is 36 metres long, making it about 100 metres wide. A one man fighter! The Lexington, from which the Gladius operates, is 725 metres long, and probably about 150 metres wide. I suppose a couple of Gladii will fit comfortably in the hangar bay... if the carrier doesn't carry any other ships.
 
Hey, nitpick all you like - and feel free to comment on the stats I proposed as well! :)

Gladly. The problem for me is - I only know the stats from the manuals or what you can directly see in the game, I don't know the real in-game stats for acceleration, shield recharge, shield/armour strength and manoeuvrability (though I've always wanted to explore them, especially the real stats for WC1 and 2 (and Academy) guns).

As I already said, 1 Particle and 2 Laser cannons feel right to me. It puts the Dralthi still behind the Rapier (and all heavier ships) in terms of firepower and works well compared to the loadouts of the WC3 and WCP Dralthi IV. I favour 2 HS and 2 IR as missile loadout because that's a blend of the WC3 and WCP loadout. True, the Drakhri and Sartha only carry DF missiles but they are particulary crappy Kilrathi fighters. Neither in WC1 nor in WC3 are DF missiles so prevalent on Kilrathi fighters, especially not in Dralthis that - with the exception of the Armada and Priv Dralthi always carried at least some guided missiles. Since Academy is probably set sometime in 2667, it's not that much closer to Armada than to WC3 (both Armada and WC3 are set in 2669, no?), so I'd give it 2 HS/2 IR or at least 2 DF / 2 IR. Not more than 1 chaff pod, Kilrathi never seem to carry many decoys.

I shy away from taking suggestions from the Armada Dralthi. As you pointed out, the Armada ships are extremely odd compared to the other WC games. Also since the textures were based on the WC3/4/P Dralthi, I found taking the stats from there to be more natural.

The only thing you recall incorrectly is the chaff pods, the Wraith has two in both cases, so no increase in that regard.

See, I thought the Armada Wraith had three but that's probably only because that's what listed in the manual.


I have to say, the WC2-Armada-WC3 transition is definitely one of the most fascinating topics for speculation that we still have left. It's just such a big unknown - did the people at Origin simply make a big mess, coming up with new stats willy-nilly? To what degree were these changes inspired by Privateer? We'll never know the answers to the production-side questions, and in a way, this frees us up to come up with creative ways to bridge the gaps between these games. What exactly do we see in Armada - is it a transition period between WC2 and WC3, or is it a kind of side-branch where all we see are special spec ops ships? For example, it could be that the use of plasteel (and in such small thicknesses, as if there was no advantage to be gained from higher armour strenght) was made necessary by jump capabilities: Armada is the only example where ships seem to be able to jump an infinite number of times without refuelling.

It always bothered me a bit that they put Blair for 10 years out of the picture then WC2 takes place over the course of 2 years without feeling that way - whereas WC 1 and SM both took place within 1 year and then the timeframe of 2667-2669 is incredibly overloaded with the false armistice, Armada, WC3 and Privateer, all vastly different. I like the explanation of the use of stronger/thinner armour plating a lot - still, it always seemed odd. Especially Aramda feels more like a "side branch" to me.

I do still have a couple of ideas for WC mods that I wish I could realise, even though realistically - I almost certainly never will. One such concept would be for a mod that specifically straddles the transition - where we see the changes during the game, where we find ourselves flying with durasteel-armoured ships against plasteel or tungsten-armoured opponents, and so on.

That would be awesome. Something missed as well in WC4.
 
Back
Top