Hard Light Productions Forums

General FreeSpace => FreeSpace & FreeSpace Open Support => Topic started by: AV8R on June 05, 2021, 08:29:11 pm

Title: Sathanas Now Shoots Through Itself
Post by: AV8R on June 05, 2021, 08:29:11 pm
I was playing one of my self-made missions today (corvette and bomber attack on a Sathanas) and kept wondering why all of my bomber wings were getting destroyed when they never used to (I would typically lose 1 or 2 on medium or hard difficulty, none on easy or very easy). But suddenly all of them are now dying by mission's end.

So I started again and hung back to observe and noticed the bombers being pummeled by beam and flak turrets from the top of the Sathanas (when the entire attack is being staged from the back of the Sathanas - completely out of the line of sight of any of the Sathanas' weapons on the top of the ship's hull). As I watched, each bomber eventually succumbed to the constant barrage of AAA beams and flak shots that were emanating from the top of the ship, right thru its own hull and appearing through its back - ripping apart the bomber wings and making short work of them.

When I created this mission, this certainly wasn't the case then (or I would have did something different to preserve mission balance) and the model hasn't changed since I created the mission. So what happened in either the newest EXE (21.2) or the latest MediaVPs (4.42) that could have caused this?
Title: Re: Sathanas Now Shoots Through Itself
Post by: Asteroth on June 05, 2021, 11:16:02 pm
Note that, by default, ships have no qualms shooting through themselves, the mesh of the ship itself has no influence over where the weapon can shoot, but it shouldn't be able to shoot beyond it's fov, which for many turrets isn't beyond 180 and so shouldn't be able to shoot literally in the opposite direction. I'd be very interested to see if you can replicate this behavior without the MVPs, or at least, get a minimal test mission which clearly produces it.
Title: Re: Sathanas Now Shoots Through Itself
Post by: Trivial Psychic on June 05, 2021, 11:45:10 pm
I believe that through the use of a tbm file you can add the necessary flags to prevent ships from shooting through themselves.
Title: Re: Sathanas Now Shoots Through Itself
Post by: 0rph3u5 on June 06, 2021, 02:21:05 am
Try the attached two tables and say if you notice any improvements - they should not only solve the issue with anti-fighter turrets shooting through the ship but also add some improvement to the entire anti-fighter defense of the Sathanas by limiting how much it pools turrets on targets with the standard armaments. Additionally, it should improve the behavior of the defense shivan cluster missiles outright.

Hidden Text: Contents of the tables and notes • Show
Code: [Select]
#Ship Classes

$Name: SJ Sathanas
+nocreate
$Subsystem: turret01, 2.0, 1.0
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret02, 2.0, 1.0
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret03, 2.0, 1.0
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret04, 2.0, 1.0
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret05, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret06, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret07, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret08, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret09, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret10, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret11, 1.0, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret12, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret13, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret14, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret15, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret16, 0.3, 1.4
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret17, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret18, 0.3, 1.4
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret19, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret20, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret21, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret22, 0.3, 0.4
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret23, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret24, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret25, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret26, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret27, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret28, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret29, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret30, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret31, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret32, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret33, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret34, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret35, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret36, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret37, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret38, 0.3, 1.0
$Default SBanks: ( "Shivan Cluster" )
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret39, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret40, 0.3, 1.0
$Default SBanks: ( "Shivan Cluster" )
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret41, 0.3, 1.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret42, 0.3, 1.4
$Default SBanks: ( "Shivan Cluster" )
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret43, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret44, 0.3, 0.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret45, 0.3, 0.4
$Default SBanks: ( "Shivan Cluster" )
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret46, 0.3, 1.0
$Default SBanks: ( "Shivan Cluster" )
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret47, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret48, 0.3, 1.0
$Max Turrets per Bomb: 1
$Max Turrets per Target: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret49, 0.4, 3.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret50, 0.4, 3.0
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret51, 0.3, 2.0
$Flags: ( "no subsystem targeting" )
$Subsystem: Turret52, 0.9, 1.4
$Max Turrets per Bomb: 1
$Max Turrets per Target: 2
$Flags: ( "no subsystem targeting" "check hull" )
$Subsystem: Turret53, 0.3, 0.4
$Max Turrets per Bomb: 1
$Flags: ( "no subsystem targeting" "check hull" )

#END
Does the following:
- Disables subsystem targeting for all turrets against capital ships
- All turrets with the default weapons other than "BFRed" and "LRed" will respect the ships geometery when picking a target (the main beams may need to fudge that behavior or be unable to fire without being scripted to)
- All turrets with the default weapon "Shivan Turret Laser" will no longer pool fire against bombs (so each turret will target a different bomb), and only 2 turrets at a time will target the same fighter
- All turrets with the default weapon "Standard Flak" and "Long Range Flak" will no longer pool fire against bombs
- All turrets with the default weapon "SAAAf" will no longer pool fire against bombs and fighters
- Switches the Missile turrets to use the "Shivan Cluster" weapon (see additional table)

Disabling turret pooling against bombs improves the performance of bomb interception at range, limiting turret pooling against fighters should help the ship trigger defensive behavior from more attacking fighters.
The side step to the "Shivan Cluster" is just too keep the table below from interferring with a longer list of ships.

Code: [Select]
#Primary Weapons

#END

#Secondary Weapons

$Name: Shivan Cluster
+nocreate
$Flags: ( "smart spawn" )

#END
This will alter to the targeting behavior of the Shivan Cluster when fired from turrets, effectively making sure that it is fired more often.
You will have the check any Lilith, Moloch, Ravana and Lucifer for signs of improved performance if you deploy this table. Their default armaments include "Shivan Cluster".

Note: Probably, with a ship that size, you might want to swap out all the instances of "Shivan turret laser" in the standard armament with a variant that has improved range (by raising the $lifetime of shots) to improve the performance of the defenses further.

[attachment deleted to save space]
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 07:28:20 am
I was playing one of my self-made missions today (corvette and bomber attack on a Sathanas) and kept wondering why all of my bomber wings were getting destroyed when they never used to (I would typically lose 1 or 2 on medium or hard difficulty, none on easy or very easy). But suddenly all of them are now dying by mission's end.

So I started again and hung back to observe and noticed the bombers being pummeled by beam and flak turrets from the top of the Sathanas (when the entire attack is being staged from the back of the Sathanas - completely out of the line of sight of any of the Sathanas' weapons on the top of the ship's hull). But I watched, each bomber eventually succumbed to the constant barrage of AAA beams and flak shots that were emanating from the top of the ship, right thru its own hull and appearing through its back - ripping apart the bomber wings and making short work of them.

When I created this mission, this certainly wasn't the case then (or I would have did something different to preserve mission balance) and the model hasn't changed since I created the mission. So what happened in either the newest EXE (21.2) or the latest MediaVPs (4.42) that could have caused this?

Uh oh
Title: Re: Sathanas Now Shoots Through Itself
Post by: MatthTheGeek on June 06, 2021, 08:13:35 am
The issue is turret FOV on the MVP pof do not respect the retail values (180 everywhere instead of values ranging from 90 to 160).

Currently fixing the MVP pof (that's a _lot_ of turrets), fix should be in the next MVP version. Will paste the pof here as well for those who want to try the fix manually.

EDIT: grab fixed pof here https://drive.google.com/file/d/1ZbkIc8TJLQnmIZ_w-A6jszBKZdZ2jQ3s/view?usp=sharing
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 09:18:41 am
Excellent, thank you Matthman.

I assume an FOV of 180 degrees translates into shooting anywhere in a 360 sphere? Because it's 'degrees off turret normal'? Or is that assumption wrong?
Title: Re: Sathanas Now Shoots Through Itself
Post by: 0rph3u5 on June 06, 2021, 09:36:56 am
The issue is turret FOV on the MVP pof do not respect the retail values (180 everywhere instead of values ranging from 90 to 160).

Can't a tabled solution provide an intermediate fix?

Or is the following only applicable to multiparts?
https://wiki.hard-light.net/index.php/Subsystem#.24Turret_Base_FOV:
Title: Re: Sathanas Now Shoots Through Itself
Post by: AV8R on June 06, 2021, 09:39:57 am
Try the attached two tables and say if you notice any improvements - they should not only solve the issue with anti-fighter turrets shooting through the ship but also add some improvement to the entire anti-fighter defense of the Sathanas by limiting how much it pools turrets on targets with the standard armaments. Additionally, it should improve the behavior of the defense shivan cluster missiles outright.

Thanks, so just put these in a Tables folder under the current MediaVP's\Data folder, correct? (I haven't played with tables in a while).

I'll test this and get back to you.
Title: Re: Sathanas Now Shoots Through Itself
Post by: AV8R on June 06, 2021, 09:44:47 am
The issue is turret FOV on the MVP pof do not respect the retail values (180 everywhere instead of values ranging from 90 to 160).

Currently fixing the MVP pof (that's a _lot_ of turrets), fix should be in the next MVP version. Will paste the pof here as well for those who want to try the fix manually.

This can work too - but where do you store the POF file? Can it be placed in a subfolder under the MediaVP's\Data folder and be usable? Or does a POF file have to be imported in the MediaVP file where the bad model is currently stored (unfortunately, I do not have the modding tools to do this).
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 10:14:16 am
You would put the pof in [mediavps folder]/data/models (create those subfolders if you don't have them) and it will override the one stored in the MediaVPs VP package. This should get the Sath working roughly how it did in retail.

I hope I got that file path right :nervous:
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 10:15:12 am
In general stuff you put in [whatevermod]/data will override whatever's in the VPs for that mod. You don't need to worry about packing up your changed files as VPs.
Title: Re: Sathanas Now Shoots Through Itself
Post by: 0rph3u5 on June 06, 2021, 10:34:52 am
What General Battuta suggested has the potential to make debuging issues with any Mod with MediaVPs dependency more difficult (an altered .pof is harder to spot in the debug log than additional tables).

I wrongly assumed you already had a mod for yourself set up - let me just fetch something.

EDIT: This has a rudimentary step-by-step instruction on how to set up your own mod in Knossos:
https://www.hard-light.net/forums/index.php?topic=97582.msg1909767#msg1909767
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 10:39:23 am
I think you are overcomplicating a simple fix.

AV8R, let us know if that pof restores the old turret behavior. It would be a big relief to know this isn't a code issue.
Title: Re: Sathanas Now Shoots Through Itself
Post by: MatthTheGeek on June 06, 2021, 10:51:42 am
What General Battuta suggested has the potential to make debuging issues with any Mod with MediaVPs dependency more difficult (an altered .pof is harder to spot in the debug log than additional tables).
The current MVP pof is erroneous. That's not up for debate.

Please stop providing innacurate advice to other modders.
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 10:56:49 am
Hey AV8R, out of curiosity, did you make this mission before we had a high-poly fancy Sathanas model? I know you said the model hadn't changed, I just want to clarify that.
Title: Re: Sathanas Now Shoots Through Itself
Post by: AV8R on June 06, 2021, 11:39:35 am
Thanks guys. I've been playing around with FSO for well over 10 years, so I've dabbled in release troubleshooting and other mod bits over the years (not creating mods, just playing - I don't have the time to devote to creating mods).

This mission was simply the first mission I've ever created back in 2015 when I did have some time to mess around with FRED for the first time ever (I had to check the FRED Tutorial forum to see when I made the posts asking for help with FRED since I had no idea what I was doing). The mission turned out well enough (given the paltry amount of time I had to noodle with it), and with enough tweaking over several weeks, it turned out pretty good - good enough for me to post it as a stand-alone mission to download in the Mission Releases forum.

Anyway, to answer your question, whatever Sath model was in the MediaVPs at the beginning of 2015 was the model I created my mission with but the mission simply uses what ever models are in the current MediaVPs (so it is subject to what ever improvements/limitations are part of the currently released models). I know there are ways to import custom assets into missions/mods, but I wouldn't have a clue how to do that. So when I designed my mission, I designed it to use assets already included in the MediaVPs for easy portability.

I just tried Orph3u5's table files and they actually worked - I played thru the mission 3 times and my bombers were no longer being shredded by beam/flak from the top of the Sath anymore.

I'll go ahead and try the model too (I'll remove the table file changes first) to see if it reacts any differently than the table files did. I will put the updated POF file in the Data\Models folder as you instructed and give it a go.

I'll report back shortly. Thanks again.  :yes:
Title: Re: Sathanas Now Shoots Through Itself
Post by: 0rph3u5 on June 06, 2021, 11:40:26 am
Please stop providing innacurate advice to other modders.

It is not inaccurate. Until the corrected .pof is distributed beyond the people who read this topic, if you read the debug log you have to double check which version of the Sathanas is being used. That defeats the purpose of having the debug log as comprehensive collection of all data required to replicate an issue. Particularly, if you there is delay in between the bug being reported and some one responding, which may result in the person responding no longer checking for a response to their report.
Title: Re: Sathanas Now Shoots Through Itself
Post by: AV8R on June 06, 2021, 12:29:29 pm
Ok, the updated Sath model seems to work too. No more stray beam/flak attacks from areas of the ship that are out of line-of-sight.

Now, if my bombers are dying, it's usually due to getting attacked by a Shivan fighter (typical) or, more laughably, it's due to their own carelessness: shooting their own wingmen from behind with a bomb, shooting their own bombs so it blows up in their faces, getting themselves stuck in little nook areas of the Sath and bouncing around until they wreck their hulls, etc. Seems the AI needs to go back to flight school.  :lol:
Title: Re: Sathanas Now Shoots Through Itself
Post by: 0rph3u5 on June 06, 2021, 12:37:26 pm
Addendum to previous:

What I am not saying is that is impossible to spot an altered .pof in a debug log.

It would just show up as something like this:
Code: [Select]
Searching root '[MediaVPs path]/data/models/' ... 1 file which tells you nothing but that there is one file.

The case is different if you give another name and distribute it with table file to override mv_assets_s-shp.tbm, because table files appear in the debug log by name. And of course by its altered name when the engine loads it for a mission.
Title: Re: Sathanas Now Shoots Through Itself
Post by: Iain Baker on June 06, 2021, 05:36:20 pm
sooo... any chance of fixing the Rak so its belly AAA doesn't shoot through itself?
Title: Re: Sathanas Now Shoots Through Itself
Post by: General Battuta on June 06, 2021, 07:19:49 pm
That is technically retail behavior, though you can just add the check-hull flag to the turret (as many mods do).
Title: Re: Sathanas Now Shoots Through Itself
Post by: Nyctaeus on June 06, 2021, 07:29:18 pm
That is technically retail behavior, though you can just add the check-hull flag to the turret (as many mods do).
Ye, pretty much this. Adding flags is up to modders, as we - FSU have to keep retail balance. Actually including retail bugs.

Sometimes retail bugs actually contribute to mission balance. For example, Slaying Ravana and Ravana's SAAA firing through the hull. In the past, FSU actually re-arranged turret setup of the Ravana to cover several blind spots, but our modern policy focuses on maintaining retail consistency. So I reverted retail-like turret setup during conversion of Nyxvana.

Regarding OP, I pushed MTG's fix for Sathanas. The fix will be integrated into next revision of MVPs and shall fix some of aforementioned issues.
Title: Re: Sathanas Now Shoots Through Itself
Post by: Asteroth on June 06, 2021, 11:11:35 pm
Excellent, thank you Matthman.

I assume an FOV of 180 degrees translates into shooting anywhere in a 360 sphere? Because it's 'degrees off turret normal'? Or is that assumption wrong?
I'm not sure if you actually got an answer for this, but for posterity, 180 is a half hemisphere. The value is degrees from one extreme of the cone to the other.