View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0022173 | AI War 2 | Bug - Gameplay | Nov 10, 2019 10:50 pm | Nov 14, 2019 4:18 pm | |
Reporter | wm46 | Assigned To | Chris_McElligottPark | ||
Status | resolved | Resolution | fixed | ||
Product Version | 1.007 The Player/AI Arms Race Intensifies | ||||
Fixed in Version | 1.008 Golems And Arks Come Marching In | ||||
Summary | 0022173: Coarse background simulation causes engineers (edit: most ships) to not function properly | ||||
Description | See video: https://youtu.be/5SAYs0IeUOI When coarse simulation is on, it seems like AttackerLogic_Assister does not properly run for un-viewed planets. Engineers will never close the distance to damaged or constructing objects to assist them. Turning coarse simulation off fixes the issue in my simple case of engineers being out of range. I found the bug while typing this up, here's my quick napkin notes I made for myself: Current Sim Cycle = CurrentFrame % 10 -> [0,3] ; R < 3 = 0, R < 6 = 1, R < 8 = 2, else =3 Current BG Step = CurrentFrame % 10 VeryFirstSimStepCalculation ( Current BG Step ) if ( planetIndex % 10 == current BG Step ) ProcessThisSimStep = true deltaTime == nonZero *Entity Logic* if ( ProcessThisSimStep ) ; planetIndex % 10 == currentFrame % 10 DoForEntities( ReevaluateUnitOrders ) *Reevaluate Unit Orders* if (currentSimCycleSlow == EntitySimCycleGroup) Do Logic Reminder: currentSimCycleSlow = currentFrame % 10 --> [0,3] EntitySimCycleGroup = KeyID % 10 --> [0,3] Logic only gets run if: currentFrame % 10 == planetIndex % 10, and currentFrame % 10 --> [0,3] == KeyID % 10 --> [0,3] There's about a 70% chance that the logic will never run for a set of ships on a coarse BG planet, and what had happened to me in my Youtube video is that ALL of my engineers happened to not have their KeyID and PlanetIndex line up ( == no engineer movement, == no passive repairing / constructing ) | ||||
Tags | No tags attached. | ||||
related to | 0022165 | resolved | Chris_McElligottPark | AI ships break command station under forcefield without damaging forcefield |
|
Great bugfinding. |
|
It should be noted, it appears that TargetListPlanning and MetalFlowPlanning do not have any restrictions on which ships have their logic runs per frame group, so as long as the ships were in range of something they'd work just fine. It also seems like the imbalance gives the AI a large buff, since the AI can give direct orders to unviewed planets through their "all in" and "breakthrough" logics on the faction logic threads, while your ships might be dicking around on the corner of the map unable to move into position. Note: Protection logic planning also requires planetIndex % 10 == currentFrame % 10. There was a bug report that a person's command station was destroyed and the shields left intact. This can happen because shield protections get cleared if there's no AI ships on the planet, leading to structures being technically unprotected even though they are under the shield. Then when a wave hits: TargetListPlanning runs since there's no restriction on SimGroups. Then CombatStep runs (no restriction on SimGroups), which calls SystemStep (no restriction on SimGroups), which fires at targets in TargetListPlanning. Then since the planet is coarse: 1) the shots insta hit to save time calculating shot movement, resulting in 2) The shots hit before ProtectionPlanning even runs and shields the command station. This will only happen if the command station is within firing distance of the entrance wormhole (which is always the case for snipers). |
|
Thank you! Fix 1: * Fixed an issue in the ReevaluateUnitOrders code that would sometimes have background-coarse planets not run the logic for their ships at all. Now those ships only use the secondary "SimCycleGroup_Slow" logic if this is on a "tier 1" planet that gets processed every frame. ** The intent of the sim frame processing was to split it out across multiple frames, which works great on those tier 1 planets, but for planets that are already being split across multiple frames it could mean that their ships might not get new orders ever until the player visited the planet. This could greatly nerf engineers, for example. |
|
Thanks! Fix 2: * The forcefield protection planning was being run only intermittently on tier 2 planets, which include player forces that are not being monitored right now. Now it ONLY runs those intermittently on tier 3 planets (no players), and runs them continuously otherwise, so as to never run into cases where enemies could get off a few shots at something of a player that was being protected by a forcefield. |
Date Modified | Username | Field | Change |
---|---|---|---|
Nov 10, 2019 10:50 pm | wm46 | New Issue | |
Nov 10, 2019 10:51 pm | wm46 | Description Updated | |
Nov 10, 2019 11:27 pm | BadgerBadger | Note Added: 0054492 | |
Nov 10, 2019 11:27 pm | BadgerBadger | Assigned To | => Chris_McElligottPark |
Nov 10, 2019 11:27 pm | BadgerBadger | Status | new => assigned |
Nov 10, 2019 11:27 pm | wm46 | Note Added: 0054493 | |
Nov 10, 2019 11:28 pm | wm46 | Relationship added | related to 0022165 |
Nov 14, 2019 4:13 pm | Chris_McElligottPark | Note Added: 0054563 | |
Nov 14, 2019 4:18 pm | Chris_McElligottPark | Status | assigned => resolved |
Nov 14, 2019 4:18 pm | Chris_McElligottPark | Resolution | open => fixed |
Nov 14, 2019 4:18 pm | Chris_McElligottPark | Fixed in Version | => 1.008 Golems And Arks Come Marching In |
Nov 14, 2019 4:18 pm | Chris_McElligottPark | Note Added: 0054565 |