HW1/HW2 - Code/Engine changes discussion

Howdy everyone! As was sorta mentioned in previous posts (from @scole, @Burly) - we’ve been working on changes for balance, but also back-end code changes to facilitate larger edits to ship and simulation behavior.

Well, I have some bad news, and some good news, I think. I’m going to cover what we were attempting to do, the results/issues - and then what we’re thinking will work going forward.

Early Thinking

First - when looking at what the HW2 engine did with HW1 units that was most difficult to script-update, we found that the code-level distinction between ‘Squadrons’ and ‘Strike-groups’ was at the core of most issues. In the HW2 engine Squadrons can be forced to act (mostly) as a single object in terms of movement/pathing/engagement. A Squadron can be a single ship (most units, especially HW1), or a group (the more attack-oriented HW2 units). When placing Squadrons into Strike-groups the game would drive them as a unified whole only up until an engagement was reached - at which point they break off. This is normal for HW2 - but quite unlike HW1.

After much digging we settled on the approach of overlaying Strike-groups with a ‘virtual’ Squadron - since they coordinate as a group and can be configured to stick together. But… this really didn’t go well. The code and systems it defines are just much, much too layered to effectively do this (I banged my head against this wall for nearly 2 weeks). I can go into plenty of details about why - though people without access to the code won’t get much benefit from any additional information.

So, I think 2 weeks of effort with little to show can be termed ‘the bad news’.

Present Thinking

This week we’ve been talking more about how to accomplish some of our goals (a more HW1-like experience for HW1 races, less problematic cross-race balancing, more effective AI use of races) - and one approach has been chosen for more investigation. And we think it’s ‘the good news’.

Squadrons in HW2 work pretty well. They act generally like HW1 ‘Formations’ when of the same units and physical layout (not exactly, no, but close). The trouble is that HW1 units are single-build, and HW2 units are group-build - and neither has the flexibility to modify their Squadron ‘affinity’. So what if, instead of hacking at Strike-groups, we made Squadrons more flexible? Here’s the plan:

  • Remove Squadron heal (when you take 1 Ship into a docking and out comes X fully-healed units) - if X units go into a dock, X fully-healed units come out, no more, no less.
  • Allow Ships to leave a Squadron. When selecting a Squadron and choose the ‘leave formation’ icon, the ships become single units.
  • HW1 units gain HW2-like multi-ship builds by default: The same class of ship in HW2 that builds in multiples will build in HW1 as multiples. Since they can leave Squadrons, you can easily revert to the ‘old’ single-ship approach.
  • Forming a Strike-group becomes content aware:
    – A Strike-group will instead form a Squadron when possible.
    – ‘Possible’ means ships of the same type, and a Formation that Squadron supports.
    – If you form a Strike-group from many types of units, you get the HW2 Strike-group behavior (loosely coordinated single ships)
    – If you form a Strike-group from Squadron-eligible units, you get a Squadron; with all of the ‘coordinated’ behavior that implies - more like HW1 acted.
    – This allows for ‘mega Squadrons’ of things like Bombers, Interceptors, etc. 50+ units, all moving and working together, adjusting formation, etc.
  • A Strike-group formed of Squadrons (including multi-ship types) would break them into single ships and use them more like HW1 layouts - aka a bunch of ‘delta’ multi-ship Squadrons with some other units placed into a wall Strike-group will form a wall - not a wall with deltas dangling off it. When that Strike-group is broken, you’d have to re-form your multi-ship Squadrons again.
    – During development we may add an ‘auto break’ command that takes a mixed-use Strike-group and breaks it into a number of single-ship and multi-ship Squadrons as best is possible for you.

Your Turn!

We very much want to hear what people think of these ideas - issues, benefits, related ideas, etc. Talk to us… :smile:


That’s a bunch to mull over still, but I wanted to be the first just to say thanks.

1 Like

Mull sir, mull - and when you’ve mulled your ideas into a fragrant and flavorful brew - share with the rest of us :wink:

This seems very interesting! So essentially the ‘docking micro’ playstyle would be gone? I think I would need to actually play with it to see how I would like the new style. I appreciate the difficulty in doing all this, so thanks for that!

edit: And I shall mull as well! And discuss it with my mates :smiley:

Definitely appreciating the effort you guys are putting in and I’m loving the outside the box thinking vibe. Gets me super excited :smiley:

I am absolutely elated at the prospect of a squadron system rework! Like many forumers, I absolutely hated the way squadrons worked in Homeworld 2 and this fix sounds almost perfect.

Will we be able to create mixed ship squadrons, eg light heavy and multigun corvettes in a squadron, or assault and ion frigs in a squad, or will it be limited to one ship type per squadron? If possible, squadrons being based on ship class (Fighter corv frig etc) rather than on ship type would be preferable.

The problem is that what you’re describing (mixed-use Squadrons) is handled in HW2 engine with Strike-groups (which have the issues we’re all aware of by now). Single-unit type sets (Squadrons) allow the input data (.ship files) to work ‘as-is’ without any major edits. The ships know how they should act, their various properties, etc. If a ‘Squadron’ was really an alias for many types, how does code internally that thinks in Squadrons know which ship data to use/prefer? What attacks/maneuvers/properties are the ‘right’ ones? That’s why mixed-groups are Strike-groups - because there’s logic in those to get the right info out of the set. This was a big reason why the first plan of attack wasn’t workable - too many ‘single type’ logic blocks couldn’t be applied to ‘mixed type’ collections without breaking Squadrons.

The problem of course being different ships in th same class have different flight profiles, vastly so in some cases. I can only see it working if all ships take on the characteristics of the slowest and least maneuverable of all the ships you have selected, if that is even possible.

A total rework of HW2 strike craft will be needed or they will bleed RUs like there’s no tomorrow. It’s currently (loosely) balanced around those ‘free’ reinforcements.

EDIT: Got ninjaed by BitVenom, :stuck_out_tongue:

I am excited to try this out.

You did! BUT - I appreciate that you can see the same issues. We’re talking about this before doing it to look for other holes or troubles. As well, ideas to tweak or massage this work before we start it are useful - they may shift the focus. The end result is really important to all of us. We take the task of getting a great cross-game balance (and getting MP out of beta) very, very seriously. Plenty of assertions that we don’t care or have abandoned the project have been made (here and elsewhere) - which couldn’t be less true.

Would that Replace the current single ship build option or would it be an either or thing ? I’m thinking when you need to add just one’s and two’s to replace losses for example.

How do you think these overall changes will impact on some of the more problematic formations like sphere ?


Will the official GBX balance mod showcase the new squadron mechanics?

1 Like

I don’t think we’ve locked how it would work - the default builds would mirror those of HW2 types (sets of 5/6/7/etc) - because that has positive impacts on how the AI evaluates the work it does too (it thinks in terms of HW2 cost/yield). But certainly a key modified or UI option to single build would be possible even if we didn’t put that in right away (lots to do for this one).

Some formations are just problematic. Sphere is the most obvious. I think we’d tackle refinements to that one (in particular) a bit later, after these changes were refined and locked. I don’t want to ignore it - but we have to stage our edits to not confuse the results of each editing pass. I hope when we’re all happy, Sphere is one of the things that everyone is happy to have seen positive edits for.

1 Like

If Homeworld 1 fighters and corvettes are built in squadrons, then that doesn’t mean they JUST come out like Homeworld 2 ships, it means something else, too.

You LOSE THE ABILITY to build just one ship. So my questoin is, how important is that to gameplay? Is it tactically advantageous to be able to build just one, two, or three ships instead of an entire squadron?

1 Like

This will be prproblematic. By saying all this we can assume that there won’t be a possibility of fixing corvette behaviour and even if that was done the current proposal would mean that formations such as wall will not be working at all - of course assuming that support frigates will be able to heal corvettes without leaching to them.

Also using sphere formation wouldn’t make any sense. The whole process of making our own formations will just differ on which I find more appealing to my eyes when my fighters are flying around or standing by. Because nothing will change with combat if I understood corcorrectly.

Since neither of issues would work it’s better for hw1 races to just build squadrons and leave it as this. Not worth the time and effort for something that will never work as intended.


No, not necessarily - see my response to jim1…

Would this change affect the way that things like setting Sphere formation then issuing an attack command causes a sphere to be formed next to the target, rather than putting the sphere of attackers around the target (similar for guard commands)?

There are many issues we can talk about. But you use the word ‘assume’ far too much - please don’t ‘assume’ anything. This post is about one set of changes and issues. Other issues will likely exist and be addressed - no need to view this conversation as somehow invalidating other adjustments. Indeed that is not the case.

Thank you for your ‘no confidence’ vote - I look forward to working to make the game perform/act better in spite of your cynicism. You could help by making constructive suggestions towards the topic at hand instead of dismissing the effort outright.


We’re not talking about other mechanics/behaviors - which isn’t to say we aren’t also going to address those. This is just the current topic and set of changes we want to gauge the impact of.