[MOD] Miscellaneous IZ Combat Tweaks
Moderators: Scripting / Modding Moderators, Moderators for English X Forum
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
Ship-to-ship movement looks good now. Still playing with Scoob's save, and his Fulmekron pretty much single-handedly wiped out the Reiver invasion fleet in Crimson Rocks. @Scoob: Boris Mason, Aylin Weamond, and Ban Kellar deserve medals. Just when the Reiver fleet's down to a fighter wing led by a Domelch, a PMC invasion fleet jumps in. Looks like it'll take a while still before I get around to station wrecking.
-
- Posts: 11184
- Joined: Thu, 27. Feb 03, 22:28
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
Found the problem. Update coming up. Want to test more to make sure.BlackRain wrote:The thing is, the modules which it doesn't seem to destroy do get damaged. The modules were down to under 20% but they wouldn't finish them. So I don't know if they were attacking them but stopped or maybe it was just splash damage, not sure
@Scoob, thanks for the useful save! Starting to miss my game, though.
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
23.August 2015 - Miscellaneous IZ Combat Tweaks updated to v0.36
Single tweak to make MICT ships deal more effectively with stations.
If you ever find yourself in a situation where stations in X:R could be destroyed, MICT ships would now more effectively do that.
Needed a single tiny tweak. Was so tiny, it's funny.
Single tweak to make MICT ships deal more effectively with stations.
If you ever find yourself in a situation where stations in X:R could be destroyed, MICT ships would now more effectively do that.
Needed a single tiny tweak. Was so tiny, it's funny.
-
- Moderator (Script&Mod)
- Posts: 7465
- Joined: Mon, 15. Dec 03, 18:53
Were you able to test this on an outpost?w.evans wrote:23.August 2015 - Miscellaneous IZ Combat Tweaks updated to v0.36
Single tweak to make MICT ships deal more effectively with stations.
If you ever find yourself in a situation where stations in X:R could be destroyed, MICT ships would now more effectively do that.
Needed a single tiny tweak. Was so tiny, it's funny.
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
-
- Moderator (Script&Mod)
- Posts: 7465
- Joined: Mon, 15. Dec 03, 18:53
I definitely noticed different behavior and they were doing pretty well until the Zoltek reactor got low on HP. They completely stopped attacking it. I don't understand why. They destroyed everything else. Also, I noticed at one point when one of the capital ships was still firing plasma bullets, the bullets were missing. It was like it was trying to shoot but couldn't lock on or something. Then they all stopped. Maybe there is something wrong with that part of the station but I can't figure out what. OOZ it gets destroyed fine and if IZ, player can just destroy that part but it is annoying hehew.evans wrote:Yup.BlackRain wrote:Were you able to test this on an outpost?
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
Dunno. I tested it with Scoob's save and CWIR. Took down the Reiver outpost in Unmet Promise. Then again, with a somewhat reinforced group, the Reiver stations in, can't remember the name of the zone, but it was the left-most zone in Barren Heart that had an outpost and two or three way stations. The problem was that the vanilla fight script was only assigning targets over 100 meters, so it was missing what I assume to be modules smaller than that. Simply removed that limitation, and it should now scan all of a station's modules and surface elements, and sets those as targets for turret fire. Worked fine in both tests. Can't remember the exact figure, but, if I remember correctly, initial test with new code detected 71 modules and surface elements present in an outpost. With the vanilla code, was a much smaller number, and would occasionally find nothing, which is when they stop firing.BlackRain wrote:I definitely noticed different behavior and they were doing pretty well until the Zoltek reactor got low on HP. They completely stopped attacking it. I don't understand why. They destroyed everything else. Also, I noticed at one point when one of the capital ships was still firing plasma bullets, the bullets were missing. It was like it was trying to shoot but couldn't lock on or something. Then they all stopped. Maybe there is something wrong with that part of the station but I can't figure out what. OOZ it gets destroyed fine and if IZ, player can just destroy that part but it is annoying hehe
edit: possibility is that the defence officer couldn't get line of sight with a remaining module.
-
- Posts: 486
- Joined: Thu, 22. Aug 13, 17:12
Hi w.evans,
Sorry but I don't like your new thresholds ! I often get some ships jumping for nothing when attacking...
Last example : Taranis jumping to attack Taranis. Distance to target 7290, optimal : 2160-7200...
=> Fighting time lost, fuel lost...
Again this leads to interrupted fight.
Not to mention when you get a squad with 4 capitals assigned to 1 leader (in my case) : they all try to jump, they often don't get in a good spot because of maybe collision / room available. In this scenario (2 taranis + 2 scaldis heavy platform assigned to 1 arawn) I get 1 taranis (fighting alone) shields to 20% (and escaping, this worked fine) while the ennemy taranis kept his shield higher than 90% all the time.
Please don't make ships jump/boost if they are 10-11km or less than target...
BTW I still notice ships are not firing all their weapons if they can't aim a surface element.
Sorry but I don't like your new thresholds ! I often get some ships jumping for nothing when attacking...
Last example : Taranis jumping to attack Taranis. Distance to target 7290, optimal : 2160-7200...
=> Fighting time lost, fuel lost...
Again this leads to interrupted fight.
Not to mention when you get a squad with 4 capitals assigned to 1 leader (in my case) : they all try to jump, they often don't get in a good spot because of maybe collision / room available. In this scenario (2 taranis + 2 scaldis heavy platform assigned to 1 arawn) I get 1 taranis (fighting alone) shields to 20% (and escaping, this worked fine) while the ennemy taranis kept his shield higher than 90% all the time.
Please don't make ships jump/boost if they are 10-11km or less than target...
BTW I still notice ships are not firing all their weapons if they can't aim a surface element.
-
- Posts: 11184
- Joined: Thu, 27. Feb 03, 22:28
Well, my usual Filmekron and Taranis combo just decimated a Reiver Outpost very quickly and efficiently. Most impressive.
Both ships boosted into the Zone, jumped close to the target station and started hammering it right away. The Fulmekron retreated once, but rejoined the fight just in time to finish off the last module.
Note: The Radar and linking "tube" got blown up first, leaving just the main part. I did notice at one point my Fulmekron was totally missing this remaining part, where it had been hitting it perfectly moments earlier. However, this only occurred when this module was already about to blow - i.e. the little warning lights had been deployed - up until that point it was great.
I also had a fight with my Fulmekron vs. a Xenon I with two escort K's. All the Xenon ships had already been damaged by a station, but the Fulmekron boosted in close to the first K, pounded it dead, then boosted to the second K before pounding that dead too. It then jumped to near the Xenon I, boosted a short distance and (taking a little longer) killed that too.
So, this is HUGELY improved behaviour for my Fulmekron vs. both Stations and other Capital ships. My Taranis's behaviour - which already seemed pretty good - remains unchanged.
Re: Saquavin's post. I do sometimes think a boost to target rather than a jump to target might have been a better option. However, in my recent fights the ship (Fulmekron) would have wasted far more time turning to face the target then boosting. I guess the manoeuvrability of the ship in quest is very relevant to the boost/jump to behaviour. I.e. if the estimated time for the ship to turn then boost to the target is more than the jump count down then jumping is the better choice.
Edit: I attacked another Outpost with the same ship combo. This time my ships stopped firing while the main module was still alive. They are now flying around not shooting at all. Will continue to monitor.
Scoob.
Both ships boosted into the Zone, jumped close to the target station and started hammering it right away. The Fulmekron retreated once, but rejoined the fight just in time to finish off the last module.
Note: The Radar and linking "tube" got blown up first, leaving just the main part. I did notice at one point my Fulmekron was totally missing this remaining part, where it had been hitting it perfectly moments earlier. However, this only occurred when this module was already about to blow - i.e. the little warning lights had been deployed - up until that point it was great.
I also had a fight with my Fulmekron vs. a Xenon I with two escort K's. All the Xenon ships had already been damaged by a station, but the Fulmekron boosted in close to the first K, pounded it dead, then boosted to the second K before pounding that dead too. It then jumped to near the Xenon I, boosted a short distance and (taking a little longer) killed that too.
So, this is HUGELY improved behaviour for my Fulmekron vs. both Stations and other Capital ships. My Taranis's behaviour - which already seemed pretty good - remains unchanged.
Re: Saquavin's post. I do sometimes think a boost to target rather than a jump to target might have been a better option. However, in my recent fights the ship (Fulmekron) would have wasted far more time turning to face the target then boosting. I guess the manoeuvrability of the ship in quest is very relevant to the boost/jump to behaviour. I.e. if the estimated time for the ship to turn then boost to the target is more than the jump count down then jumping is the better choice.
Edit: I attacked another Outpost with the same ship combo. This time my ships stopped firing while the main module was still alive. They are now flying around not shooting at all. Will continue to monitor.
Scoob.
Last edited by Scoob on Sun, 23. Aug 15, 21:20, edited 1 time in total.
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
Keep in mind that it doesn't just take distance along a single line into account. In the above example, it doesn't have to just move 90 meters to get into distance. If it did, it would most certainly have used conventional engines. Rather, since captains don't even consider a jump unless they have to traverse more than 10,000 meters, your ship's captain probably decided that the best place to be is somewhere on the opposite side of the ship. This is most likely because that's the weakest side of his/her opponent's ship.Saquavin wrote:Taranis jumping to attack Taranis. Distance to target 7290, optimal : 2160-7200...
Most recent threshold changes, indeed all of the movement changes over the past month or so, have been going toward less jumping/boosting in general, while making smarter decisions about where to jump/boost to. For example, the movement algorithm uses four distance targets:
minimum and maximum distances from which the ship can hit its target without risking collision (MinAimDist and MaxAimDist) - these trigger when the ship decides that it has to change position.
minimum and maximum distances that the ship will want to achieve (MinJumpDist and MaxJumpDist) - these define where the ship will want to jump/boost/move to.
These used to be set to the same distances, with Min/MaxJumpDist only differing according to the captain's skill. So, for example, a ship will decide to jump/boost/move after a target is beyond maximum weapons range, and will plot a course to a point in space with max distance also at max weapons range (if the captain is good!). Problem there is that if the captain decided to go to asolute max weapon range, and the target moved in the opposite direction in the time that the ship needed to get to that point, target would again already be out of range by the time the ship gets there.
In the last round of changes, Min/MaxAimDist are broader than Min/MaxJumpDist, so a captain (again, a good one) will always plot a course to somewhere well within the distance it needs before it decides to jump/boost/move again.
I didn't explain that very well, so a concrete example:
Say a ship has a maximum distance of 10km. It is at 12km relative to its target, so can't hit it.
The captain will plot a course to place the ship within 8km of the target, on the target's weakest side, with the ship's strongest side facing it.
If the target doesn't move much, then that ship should be content to stay more or less in the same place until the target is gone.
If distance to that point is greater than 10km, it will jump.
If distance to point is greater than 15km, AND the ship can't jump, it will boost.
Otherwise, it will use conventional engines.
That's why I thought that Xenons needed an AI upgrade. A MICT Xenon I can decimate a small MICT fleet all by its lonesome. Glad you're enjoying it!Scoob wrote:I also had a fight with my Fulmekron vs. a Xenon I with two escort K's. All the Xenon ships had already been damaged by a station, but the Fulmekron boosted in close to the first K, pounded it dead, then boosted to the second K before pounding that dead too. It then jumped to near the Xenon I, boosted a short distance and (taking a little longer) killed that too.
Possible that the station was already gone, but that there was a delay before the graphical model disappeared. Not familiar with Rubini's station-destroying code, though, so not sure.Scoob wrote: I did notice at one point my Fulmekron was totally missing this remaining part, where it had been hitting it perfectly moments earlier. However, this only occurred when this module was already about to blow - i.e. the little warning lights had been deployed - up until that point it was great.
edit:
Jumping is always more efficient, in my opinion, since it lands with guns already trained on target. With boost, ship has to turn to where it's going, boost (which takes the least amount of time in the sequence), then turn again to bring guns to bear. For shorter distances, using conventional engines is even faster.Scoob wrote: I.e. if the estimated time for the ship to turn then boost to the target is more than the jump count down then jumping is the better choice.
edit 2:
Likely, the turrets don't have line of sight on an inner module because of all of the crud around it. Haven't found a way to get a captain to detect wrecks around a working station yet. Workaround could be to get the captain to withdraw, then attack again to change the angle.Scoob wrote:Edit: I attacked another Outpost with the same ship combo. This time my ships stopped firing while the main module was still alive. They are now flying around not shooting at all. Will continue to monitor.
Last edited by w.evans on Sun, 23. Aug 15, 21:26, edited 1 time in total.
-
- Posts: 11184
- Joined: Thu, 27. Feb 03, 22:28
Interestingly, RoC Fighters in the Zone were engaging the module just fine...mostly just firing missiles though. Either way, it was easy enough to finish the station off.w.evans wrote: Likely, the turrets don't have line of sight on an inner module because of all of the crud around it. Haven't found a way to get a captain to detect wrecks around a working station yet. Workaround could be to get the captain to withdraw, then attack again to change the angle.
Scoob.
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
I'll take a look at vanilla fighter movement. Something there might be useful in this case, thanks!Scoob wrote:RoC Fighters in the Zone were engaging the module just fine.
I think they fly relative to modules and surface elements rather than relative to ship hulls and stations. Worried that this might get capital ships tangled up in station architecture, but might be worth a try.
-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
I like the fighter script. Found this beauty:
Looks for working shield generators, jump drive, weapons, or engines. If it doesn't find any, looks for destructible components (like CWIR station modules). If it doesn't find any, targets the hull. Wish I had thought to look in here before I started.
edit: had capships flying relative to surface elements, and the engine did not like that one bit. Likely because of how fast surface elements were getting destroyed. Capships were having to switch targets several times a second, sometimes, and fps was down to a crawl. Trying something else.
Code: Select all
<do_if value="not @$component.isoperational">
<find_object_component name="$component" object="$bigtarget" class="[class.shieldgenerator, class.jumpdrive, class.weapon, class.engine]" functional="true" surfaceelement="true" />
<do_if value="not $component">
<find_object_component name="$component" object="$bigtarget" class="class.destructible" functional="true" indestructible="false" />
<do_if value="not $component">
<set_value name="$component" exact="$bigtarget" />
</do_if>
</do_if>
</do_if>
edit: had capships flying relative to surface elements, and the engine did not like that one bit. Likely because of how fast surface elements were getting destroyed. Capships were having to switch targets several times a second, sometimes, and fps was down to a crawl. Trying something else.
-
- Posts: 11184
- Joined: Thu, 27. Feb 03, 22:28
Interesting. Yeah, a cap ship can decimate a surface element group fairly quickly.w.evans wrote:I like the fighter script. Found this beauty:Looks for working shield generators, jump drive, weapons, or engines. If it doesn't find any, looks for destructible components (like CWIR station modules). If it doesn't find any, targets the hull. Wish I had thought to look in here before I started.Code: Select all
<do_if value="not @$component.isoperational"> <find_object_component name="$component" object="$bigtarget" class="[class.shieldgenerator, class.jumpdrive, class.weapon, class.engine]" functional="true" surfaceelement="true" /> <do_if value="not $component"> <find_object_component name="$component" object="$bigtarget" class="class.destructible" functional="true" indestructible="false" /> <do_if value="not $component"> <set_value name="$component" exact="$bigtarget" /> </do_if> </do_if> </do_if>
edit: had capships flying relative to surface elements, and the engine did not like that one bit. Likely because of how fast surface elements were getting destroyed. Capships were having to switch targets several times a second, sometimes, and fps was down to a crawl. Trying something else.
Scoob.
-
- Posts: 486
- Joined: Thu, 22. Aug 13, 17:12
I understand your point, but this is not what I'm expecting for an efficient and eye candy fight.
Let me explain my favorite behaviour.
Conventional capital ships (everything but balor/sucellus).
Fight behaviour
Conventional ships are all barely designed to fire from every sides, and up/down. There are for sure small differences, but I think it's negligeable.
But, logically as they are not sphere designed (unlike Marauder), they can use the maximum turrets when showing one of their side.
Moreover, keep in mind capital ships are used to fight another capital ship, or a station. You never order a capital to attack a tiny fighter, do you ?
This said, I think a capital ship must to engage the target by showing its side, like a naval fight.
Getting/keeping range
I don't know the exact range, so let's say HIT/MA=3.5km, PLASMA/MA=7km, JET/LR=8km. I will not take into account other turrets, I think those 3 are the main and more used ones.
The optimal range should be something like 6km from the target
But how to get to this optimal point ?
Attack (approach) :
- if less than 12km, fly to 6km
- if more than 12km, boost to 6km
- if more than 20km, jump to 6km
Attack (keep range to avoid ramming) :
- fly. Never boost nor jump
Escape :
- Jump at 20km from target. If jump drive not available, boost at 20km from target
Micro-boost seems to work perfectly in your last version, no more weird behaviour, or infinite boost. I get to a point I would like to don't have any jumpdrive when a big fight start.
Special ships (balor, sucellus)
Fight behaviour
Those ships are obviously designed to show their frontside to the ennemy, using their "main canon" : missiles, IHC, HIVI...
Getting/keeping range
Again I don't know exact ranges, but for those special weapons lets say it's something like 10km
The optimal range should be something like 10km from the target. This allow ships to use their main weapons, and let them in safe zone, out of range of other weapons.
Attack (approach) :
- if less than 15km, fly to 10km
- if more than 15km, boost to 10km
- if more than 25km, jump to 10km
Others, unchanged from conventional.
For me, jump while in combat is terrible (unless it's an escape move).
Moreover, I understand you make the moves more or less accurate with the captain skills, but this often leads to totally absurd moves even a child won't order.
Let me know what do you think
Let me explain my favorite behaviour.
Conventional capital ships (everything but balor/sucellus).
Fight behaviour
Conventional ships are all barely designed to fire from every sides, and up/down. There are for sure small differences, but I think it's negligeable.
But, logically as they are not sphere designed (unlike Marauder), they can use the maximum turrets when showing one of their side.
Moreover, keep in mind capital ships are used to fight another capital ship, or a station. You never order a capital to attack a tiny fighter, do you ?
This said, I think a capital ship must to engage the target by showing its side, like a naval fight.
Getting/keeping range
I don't know the exact range, so let's say HIT/MA=3.5km, PLASMA/MA=7km, JET/LR=8km. I will not take into account other turrets, I think those 3 are the main and more used ones.
The optimal range should be something like 6km from the target
But how to get to this optimal point ?
Attack (approach) :
- if less than 12km, fly to 6km
- if more than 12km, boost to 6km
- if more than 20km, jump to 6km
Attack (keep range to avoid ramming) :
- fly. Never boost nor jump
Escape :
- Jump at 20km from target. If jump drive not available, boost at 20km from target
Micro-boost seems to work perfectly in your last version, no more weird behaviour, or infinite boost. I get to a point I would like to don't have any jumpdrive when a big fight start.
Special ships (balor, sucellus)
Fight behaviour
Those ships are obviously designed to show their frontside to the ennemy, using their "main canon" : missiles, IHC, HIVI...
Getting/keeping range
Again I don't know exact ranges, but for those special weapons lets say it's something like 10km
The optimal range should be something like 10km from the target. This allow ships to use their main weapons, and let them in safe zone, out of range of other weapons.
Attack (approach) :
- if less than 15km, fly to 10km
- if more than 15km, boost to 10km
- if more than 25km, jump to 10km
Others, unchanged from conventional.
For me, jump while in combat is terrible (unless it's an escape move).
Moreover, I understand you make the moves more or less accurate with the captain skills, but this often leads to totally absurd moves even a child won't order.
Let me know what do you think

-
- Posts: 2963
- Joined: Tue, 18. Nov 14, 16:23
They do. They look at which side they can do the most damage from, and orient that side to the target.Saquavin wrote:This said, I think a capital ship must to engage the target by showing its side, like a naval fight.
It's sort of like that. With those weapon ranges, the captain of a ship with all three weapons systems will decide to move if the ship is less than 2.4km, or more than 8km away from the target.Saquavin wrote:Getting/keeping range
I don't know the exact range, so let's say HIT/MA=3.5km, PLASMA/MA=7km, JET/LR=8km. I will not take into account other turrets, I think those 3 are the main and more used ones.
The optimal range should be something like 6km from the target
But how to get to this optimal point ?
Attack (approach) :
- if less than 12km, fly to 6km
- if more than 12km, boost to 6km
- if more than 20km, jump to 6km
Attack (keep range to avoid ramming) :
- fly. Never boost nor jump
Escape :
- Jump at 20km from target. If jump drive not available, boost at 20km from target
If the captain decides to move, it finds a point in space:
- where a target can do the least damage,
- and that is between 4 km and 6.4km away from the target.
If the destination point is more than 10km away, it will jump.
If it can't jump, and the point is more than 15km away, it will boost.
If less than 10km (15km if can't jump), or the ship can't jump and can't boost, it will fly there.
Note that distance to destination is what is relevant in choosing how to get there, not distance to target. This is because the destination point can be any point in a sphere around the target. The farthest the ship can possibly decide to travel, assuming that the decision to move is made exactly when the target moves out of range is (using your ranges):
8km (max range) + 6.4km (MaxJumpDist) = 14.4km
That is, from one edge to close to the other edge of the sphere. In an actual battle, probably less.
While it is moving there, the ship is not in optimal battle conditions: it's most damaging side is not oriented to the target, and it is not facing the target's least damaging side. So they will want to get this sub-optimal part of the engagement over as soon as possible, and get back to optimal conditions as fast as possible.
Hence, jump if possible. If not possible, boost. If both not possible, or the distance to be traversed is less than 10km (this is itself not a trivial distance in game terms) use normal engines.
Weren't you the person who complained before that boost wasn't working so well? Glad you like how it's working now. But nope, not removing jump.Saquavin wrote:Micro-boost seems to work perfectly in your last version, no more weird behaviour, or infinite boost. I get to a point I would like to don't have any jumpdrive when a big fight start.
Although if you really want to disable tactical jumps, you could go in
\aiscripts\MICT.move.attack.object.capital.xml
and replace:
<set_value name="$MICT_JumpActive" exact="true"/>
with
<set_value name="$MICT_JumpActive" exact="false"/>
To disable boost, go in the same file, and replace:
<set_value name="$MICT_BoostActive" exact="true"/>
with
<set_value name="$MICT_BoostActive" exact="false"/>
Only one line each.
EDIT: about crew skill affecting accuracy of maneouvers: ever played Kerbal Space Program without MechJeb? Astrogation is HARD!
.......
@ALL, I think I managed to sort of improve ship vs station maneouvering. Still isn't perfect. It'll make sure that they stay within range of a station's modules, but still won't assure line of sight. There's also a tendency to get snarled up in a station's architecture sometimes. Not releasing this for now, at least until I clear up the problem with navigating a station's architecture. This was against one of Rubini's and BlackRain's outposts. Shudder to think what it would be like against the bigger stations.
EDIT: I think I found the problem with ships getting snarled in station architecture. Escape distance is tied to what the captain thinks is the maximum weapons range of the target. Station modules don't have weapons, so their maximum range is, of course, zero. Code's ready, but want to test a bit to make sure that it didn't screw anything else up. Will be busy the next couple of days, though, so probably won't be able to push it out before Wednesday. Besides, it's Sunday night. None of you should be playing!
-
- Moderator (English)
- Posts: 8074
- Joined: Tue, 30. Mar 04, 12:28