The Let's Play Archive

Homeworld 2

by berryjon

Thanks! We like it too.Why not check out some similar LPs from our recommendations?
What would you like to tag this LP as?
Tag

Original Thread: Let's Play Homeworld 2: Frigate Lost

If you liked this LP, you might also like Exile: Escape from the Pit by berryjon, Mech Commander by berryjon and Exile 2: Crystal Souls by berryjon

Introduction

Hello, and welcome to Homeworld 2.



What is Homeworld 2?

Homeworld 2 is the last game in the Homeworld series (at least until we get Homeworld: Shipbreakers). You can view my LPs of Homeworld here, and Homeworld: Cataclysm here. Knowing the plot of the first helps with this game, but Cataclysm's story-line and factions are not needed for this game.

Like it's predecessors, Homeworld 2 is a 3-D Real Time Strategy game. In this, you can move your ships around in all six cardinal directions, and can fight in the same. You build your persistent fleet over the course of the game to respond to the threats presented to you, and shepherding your forces becomes a viable... option.....

I'm sorry, this game is flawed.

Massively so.

The original concept for Homeworld 2 was a grand and epic story centering around a series of conflicts called "The Dust Wars". This would have included truly colossal battles, and set-pieces so large that you would fight around them, if not so large they were levels unto themselves.

Then bad things happened to Relic, and they were forced to scrap their designs and force out the game you are about to watch me play within a year, using the assets that were already in place. You can see this a lot in the heights to which this game reaches, but the consistent failures are just a reminder of what could have been.

This isn't to say that Homeworld 2 is a bad game, it just suffers from rushed development and could really have used another year or two cooking.

As I play the game, I will explain some of the problems in the game engine, highlighting where things go wrong and how they do so.

I cannot recommend reading the Homeworld 2 Manual as a lot of the great lore that should have been there as per the previous games was instead placed into the Prima Strategy guide – which I haven't been able to locate online.

I hear there's a Remastered Version! Why aren't you playing that?

While Homeworld and Homeworld 2 did receive an HD remake from Gearbox, I found that game to have no significant changes from Homeworld 2 to justify LPing that version of the game, especially when I have already done the original and Cataclysm as they were originally published.

That is not to say I won't do the Remastered versions sometime in the future, but I want to show you this game as it was first presented, with it's highs and lows, rather than reject this game in favor of new-and-shiny.

So, how will the LP be done?

Like my previous LPs, this one will be a subtitled VLP. I will edit out the empty spaces in later videos, and will try to keep each individual mission down to under 30 minutes as best I can. The combat pacing in this game has improved, but there are still stretches of boredom that cool off the player between objectives.

I will be doing post-production group commentary over the multiplayer skirmish videos in the future, which will show off both the Hiigaran and Vaygar fleets and a few of the nifty toys that appear in MP format.

Homeworld 2 still has an active modding community!

It does, and while I considered playing a few of them for this LP, I eventually scuttled that idea as I was getting burned out at the end, and none of the mods were 'recordable', by either being incomplete, or by being too long. As in 2 hour Skirmishes long.

What does “Frigate Lost” mean, and why did you put it in the title of the LP?

I'll explain in mission 3.

Videos


Campaign

Skirmish

Information

So, after Mission 3, I was informed by one of the members of the thread, "ThisQuietReverie" that the information I had about Frigates was incorrect. TQR worked on Homeworld: Remastered as an Artist, but he still had access to the raw files involved, and provided corrected information.

To begin with, I would like to present how I was informed damage and armor worked in HW2.

First, every unit has two values assigned to them; being ARMOR and HP. Armor acted as damage reduction from all attacks, while HP was the health of the unit, and once it was gone, the unit was destroyed. My concern was that for all Frigates, the value of the Armor was effectively "1", which might as well be "0"for the scale of numbers being used, and thus Frigates would be destroyed far quicker than they should be.

Secondly, all ships had data tables for their weapons which indicated how they would perform in combat. To give a couple examples, I will create whole-cloth an interpretation of certain weapons utilized by ships. These are not official tables or numbers, merely creations to demonstrate tendency.

quote:

FLAKCANON
Type: Kinetic_Flak
GlobalDamage: 50
TargetClass_Fighter: Damage * 4.0; Accuracy 115%
TargetClass_Corvette: Damage * 2.0; Accuracy 85%
TargetClass_Frigate: Damage * 1.0; Accuracy 60%
TargetClass_Capital: Damage * 0.5; Accuracy 50%

In this example, the Flak Canon would have a certain baseline damage that would be applied to all ships after modifiers for class or size, with accuracy to better reinforce how ships are better against certain classes than others.

TQR pointed out that this is not how it works. He extracted the data for the Hiigaran Interceptor, and provided it as follows:

quote:

--===========================================================================
-- Purpose : Lua definition file for Homeworld Ship.
-- Contains loading information and flight dynamics information (among other things?)
--
-- Copyright Relic Entertainment, Inc. All rights reserved.
--===========================================================================
StartWeaponConfig(NewWeaponType,"Gimble","Bullet","Kinetic_Rapid","Normal", 2200,1600,0,0,0,0,1,1,0,0.6,1.3,0.8,0,0,0,0,0.1,"Normal",0,0,0);
AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",37,37,"");
setPenetration(NewWeaponType,5,1,{MediumArmour=0.70},{PlanetKillerArmour=0},{SubSystemArmour=3},{ResArmour=0.6});
setAccuracy(NewWeaponType,1,{Fighter=0.13},{Corvette=0.3},{munition=0.2},{Frigate=0.6,damage=1},{SmallCapitalShip=0.6,damage=1},{BigCapitalShip=0.6,damage=1},{ResourceLarge=0.6,damage=1});
setAngles(NewWeaponType,25,0,0,0,0);

Simplified without accounting for Damage per Second (DPS) or Shorts Per Burst (SPB) is that the maximum damage an Interceptor can do to a Frigate is (Damage * Penetration) or 37 * 0.7. The "0.7" comes from Frigates being assigned "MediumArmor" - which has no inherent value in numbers or math assigned to it. The game checks to see if the target has a listed Armor type, then performs multiplication accordingly.

TheQuaintReverie posted:

What berryjon purports is that the ",damage=1"in the "setAccuracy" section (Frigate=0.6,damage=1) "sets the frigate armor to 1 and causes all weapons to do full damage against them". This would be 100% true IF the ",damage=1" flag was set in the setPenetration section.

Relic generated weapon files from an Excel sheet. Through either bug or last minute design regret the Excel file exports the ",damage=1" flag into the setAccuracy section instead of setPenetration. We'll never know if it was intentional or if they even realized.

This is actually super easy to verify yourself. Change the Hiigaran Interceptor weapon to:

--===========================================================================
-- Purpose : Lua definition file for Homeworld Ship.
-- Contains loading information and flight dynamics information (among other things?)
--
-- Copyright Relic Entertainment, Inc. All rights reserved.
--===========================================================================
StartWeaponConfig(NewWeaponType,"Gimble","Bullet","Kinetic_Rapid","Normal", 2200,1600,0,0,0,0,1,1,0,0.6,1.3,0.8,0,0,0,0,0.1,"Normal",0,0,0);
AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",20000,20000,"");
setPenetration(NewWeaponType,5,1,{MediumArmour=0.01});
setAccuracy(NewWeaponType,1,{Frigate=0.6,damage=1});
setAngles(NewWeaponType,25,0,0,0,0);

And a single interceptor will do 200 damage a shot to a Frigate (240 actually since most frigates have 1.2 damage multiplier applied to them in their .ship files).

where

--===========================================================================
-- Purpose : Lua definition file for Homeworld Ship.
-- Contains loading information and flight dynamics information (among other things?)
--
-- Copyright Relic Entertainment, Inc. All rights reserved.
--===========================================================================
StartWeaponConfig(NewWeaponType,"Gimble","Bullet","Kinetic_Rapid","Normal", 2200,1600,0,0,0,0,1,1,0,0.6,1.3,0.8,0,0,0,0,0.1,"Normal",0,0,0);
AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",20000,20000,"");
setPenetration(NewWeaponType,5,1,{MediumArmour=0.01,damage=1});
setAccuracy(NewWeaponType,1,{Frigate=0.6});
setAngles(NewWeaponType,25,0,0,0,0);

or even

--===========================================================================
-- Purpose : Lua definition file for Homeworld Ship.
-- Contains loading information and flight dynamics information (among other things?)
--
-- Copyright Relic Entertainment, Inc. All rights reserved.
--===========================================================================
StartWeaponConfig(NewWeaponType,"Gimble","Bullet","Kinetic_Rapid","Normal", 2200,1600,0,0,0,0,1,1,0,0.6,1.3,0.8,0,0,0,0,0.1,"Normal",0,0,0);
AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",20000,20000,"");
setPenetration(NewWeaponType,5,1,{MediumArmour=0.01,damage=1});
setAccuracy(NewWeaponType,1,{Frigate=0.6,damage=1});
setAngles(NewWeaponType,25,0,0,0,0);

will kill a frigate in a single shot because the ",damage=1" has been moved into the section where the code actually looks for that flag. Frigates are pretty crappy because they effectively have 20% less health than listed (due to taking 1.2 damage from the side and rear) and because they are invariably the highest on the targeting priority list of other ships. And their counters are roughly 3 times the cost, and have roughly 5 times the health and antifrigate damage.

But it's not due to this "bug".

What can also be gleaned from that bit of information is that Frigates take 120% damage from anything not directly to the front, and for some reason the AI will target them above all other classes of ships, bringing disparate firepower to bear on them.

TQR added something else when his first example wasn't clear for some people:

quote:

Yeah, sorry if that was obtuse.

There is no such thing as armor class having a value. As far as Homeworld is concerned "MediumArmour" is just a name to compare against.

in my example:

--===========================================================================
-- Purpose : Lua definition file for Homeworld Ship.
-- Contains loading information and flight dynamics information (among other things?)
--
-- Copyright Relic Entertainment, Inc. All rights reserved.
--===========================================================================
StartWeaponConfig(NewWeaponType,"Gimble","Bullet","Kinetic_Rapid","Normal", 2200,1600,0,0,0,0,1,1,0,0.6,1.3,0.8,0,0,0,0,0.1,"Normal",0,0,0);
AddWeaponResult(NewWeaponType,"Hit","DamageHealth","Target",20000,20000,"");
setPenetration(NewWeaponType,5,1,{MediumArmour=0.01});
setAccuracy(NewWeaponType,1,{Frigate=0.6,damage=1});
setAngles(NewWeaponType,25,0,0,0,0);

the single shot damage is 20,000 and the penetration value against MediumArmour (Frigates have "MediumArmour") is 0.01 then a bullet striking any ship with MediumArmour would do 20000x.01 or 200 for each hit.

The ",damage=1" flag essentially means "bypass the penetration multiplier". so:

setPenetration(NewWeaponType,5,1,{MediumArmour=0.01,damage=1});

AND

setPenetration(NewWeaponType,5,1,{MediumArmour=1.0});

give the exact same result- a 20000 damage hit. If you are confused because you are asking yourself "What is the point? Why would I ever not just have the multiplier = 1.0?" then you are not crazy, this is legitimately a confusing decision on Relic's part. Regardless, it doesn't work because it is in the wrong place. There was never a bug that made frigates fragile but there was a bug that made them not as fragile as they were "intended". (well somebody intended at some point, I guess. I mean there is code to bypass the penetration and somebody took the time to try and increase the damage done against frigates and larger ships, they just didn't succeed at it).

In Homeworld 2, Armor is Health so setting armor to "1" is the equivalent to setting a ships health to "1" which would be pretty obvious. Frigates die when you look at them sideways but they aren't quite "1" health fragile. You could change all instances of "MediumArmour" with "12feetofsteel" in the weapons and set all frigates to have the armorclass of "12feetofsteel" and as long as you defined "12feetofsteel" in familylist.lua it would work and you would see frigates taking the same amount of damage.
Archive Index