Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
ThisQuietReverie
Jul 22, 2004

I am not as I was.

Mikl posted:

It was never fixed? :psyduck:

Granted, I'm not a programmer, but how hard can it be to adjust a variable value with a patch? :psyduck:

Because it doesn't work the way the video claims it does.


Weapon data for the Hiigaran Interceptor:


--===========================================================================
-- 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);


The simplified way to read this without delving into DPS/shots per burst and all that is that the maximum single shot damage of the Hiigaran Interceptor is (damage * penetration) or 37*0.7 (frigates have "medium" armor class, which has no numbers or math associated with it, it is just a name).

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".

Adbot
ADBOT LOVES YOU

ThisQuietReverie
Jul 22, 2004

I am not as I was.

Sindai posted:

I'm having trouble following all the details there. Are you saying the "frigate armor bug" is basically a myth?

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.

ThisQuietReverie
Jul 22, 2004

I am not as I was.

berryjon posted:

Next mission.


Mind if I eat some crow, and toss this into the OP?

There's no crow here dude-a lot of this knowledge actually stemmed from a comment you made (in video or thread, I don't remember) during your Cataclysm play through. I was determined to find this bug you had mentioned to ensure that HW:R did not ship with such a debilitating bug it so in actuality you set all the research into motion (and in doing so made me scrutinize why frigates are so bad). They should see a significant improvement in future HW:R patches.

ThisQuietReverie
Jul 22, 2004

I am not as I was.

berryjon posted:

:narrowedeyes:

You work on Remastered?

Art, so put the knives away unless you have grievances over how it looked.

ThisQuietReverie
Jul 22, 2004

I am not as I was.

Dabir posted:

So, OK, hang on, let me get this totally straight.

An interceptor does 37 damage. It's shooting a frigate which has MediumArmor, so it multiplies the damage by 0.7. And that's actually working as intended? There's no bug there?

Yep. That's an oversimplified slice of the whole, but yeah the math is solid and you can follow the damage all the way through the chain.

ThisQuietReverie
Jul 22, 2004

I am not as I was.

Ilanin posted:

One tends to get the impression with Homeworld 2 that they made all the missions and then strung them together afterwards.

Sorta, what is there is actually just a fraction of a much bigger game that was re-pieced together after the game was canceled and then resumed. So whatever assets existed at the time of cancellation is probably what got used.

Adbot
ADBOT LOVES YOU

ThisQuietReverie
Jul 22, 2004

I am not as I was.

PurpleXVI posted:

One of my impressions from when I played it, we'll see how well it keeps up, was that after roughly, well, roughly the point we're reaching now, a lot of missions have no logical connection. Like Fleet Intel will bring some poo poo up in a cutscene that we've never heard of before and suddenly we're going to a place because of that. Or just otherwise completely spurious logical "connections."

It actually kind of starts out that way even.

If you've ever wondered why the Hiigarans are secretly building a mothership in a debris field out in BFE it's because they were supposed to have been at war for the past two hundred years against the remnants of the Taiidan and the Tobari (Turanic relatives/descendants, this isn't clear) and the plan was to engage the Taiidan and Tobari with pretty much the entirety of the Hiigaran fleet and then hyperspace the Pride into the middle of it and start wrecking poo poo with their new purpose-built warmachine. Halfway there they are pulled out of hyperspace by what they perceive to be mechanical problems with their new mothership but is actually an act of sabotage. The player now has to fight off small skirmishes with the Taiidan and Tobari as the mothership gets back up to speed (essentially a measured tutorial like the start of every Homeworld game). By the time the Pride arrives the battle is over- the Taiidan/Tobari have been wiped and so have all but 1 or 2 Hiigarans who describe a new, third party who hyperspaced in en masse and killed everybody. It ends up being the Vaygr, who have since hyperspaced away and are in the process of sieging Hiigara in order to force a confrontation with the player. Apparently the Pride has a unique hyperspace signature and they want the drive so they're trying to get the player to bring it to them by casually nuking parts of the planet. The Pride ends up helping escaping ships run the Vaygr blockade to where the kiith are regrouping (at a distant place I don't recall). etc, etc.

So without 2 extra races being done, the Taiidan/Tobari are cut, the Vaygr end up attacking the mothership while it is being constructed and instead of escorting escaping Hiigarans you're "staffing up" the mothership instead. It was all connected and it all had a plan, we just get to see bits and pieces of it.

  • Locked thread