View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0026679 | AI War 2 | Gameplay Issue | Mar 9, 2022 1:13 pm | Mar 9, 2022 4:44 pm | |
Reporter | BadgerBadger | Assigned To | Chris_McElligottPark | ||
Status | assigned | Resolution | open | ||
Product Version | 4.002 Macrophage Live! | ||||
Summary | 0026679: MP client issues 4.002 | ||||
Description | The MP client shows building and metal flows, but none of that is happening on the host. Quitting and rejoining the game fixes this. All errors reported are on the client. The host seemed fine and had no errors | ||||
Tags | No tags attached. | ||||
|
|
|
During an ARS hack it looked like the AI response ships were spawning at the edge of the gravity well (far from the ARS) |
|
I'm not sure if this is just coincidence, but these GameCommand errors started turning up after I cranked the game speed up. However, it could just be the fact that we were further into the game and there were more ships. The fact that the errors kept happening after I turned the speed down suggests its a coincidence I've seen a bunch of these errors from a variety of commands (MoveManyToOnePoint, AIHunkerDown, etc). The MoveManyToOnePoints are from a bunch of things; NPCRandomMetalSpot, BaseAICamping, NPCVisit 3/9/2022 11:23:22 AM 4.002 CLIENT DELAYED35 TID27 command.RelatedPoints.Count < 1 in GameCommand_MoveManyToOnePoint! GameCommand Details:MoveManyToOnePoint_NPCVisitTargetOnPlanet RelatedFactionIndex:-1 at System.Environment.get_StackTrace () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00042] in /data/Games/arcengames_aiw-ultra/CodeCrossProject/ArcenUniversal/src/UtilityLibraries/Debug/ArcenDebugging.cs:242 at Arcen.AIW2.External.GameCommand_MoveManyToOnePoint.Execute (Arcen.AIW2.Core.GameCommand command, Arcen.AIW2.Core.ArcenClientOrHostSimContextCore context) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.Core.GameCommand.Execute (Arcen.AIW2.Core.ArcenClientOrHostSimContextCore Context) [0x00061] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/Networking/GameCommand.cs:446 at Arcen.AIW2.Core.World_AIW2.OnClientOrHost_ExecuteGameCommandsThatWereScheduled (Arcen.AIW2.Core.ArcenClientOrHostSimContextCore Context) [0x00197] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/GameState/World_AIW2.cs:4141 at Arcen.AIW2.External.SimPlannerImplementation.ProcessCoreLogicForArbitraryFrameOnMainThread (System.Boolean& stalledWaitingOnConnections, System.Boolean& mayUpdateVisuals, System.String& reasonForNoVisualUpdates) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.Core.Engine_AIW2.<ProcessArbitraryFrameOnMainThread>m__F () [0x00016] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/Engine_AIW2.cs:1502 at Arcen.Universal.ArcenThreading+<RunTaskOnBackgroundThread>c__AnonStorey0.<>m__0 () [0x00035] in /data/Games/arcengames_aiw-ultra/CodeCrossProject/ArcenUniversal/src/UtilityLibraries/ArcenThreading.cs:135 at System.Threading.Tasks.Task.InnerInvoke () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.Execute () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.ExecutionContextCallback (System.Object obj) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task& currentTaskSlot) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.ExecuteEntry (System.Boolean bPreventDoubleExecution) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 |
|
3/9/2022 11:23:41 AM 4.002 CLIENT DELAYED38 TID43 Exception in BaseScenario.DoOnAnyDeathLogic_HostOnly stage 4704 System.NullReferenceException: Object reference not set to an instance of an object at Arcen.AIW2.External.BaseScenario.DoOnAnyDeathLogic_HostOnly_AfterFullDeathOrPartOfStackDeath (System.Boolean IsFromOnlyPartOfStackDying, Arcen.AIW2.Core.GameEntity_Squad entity, Arcen.AIW2.Core.DamageSource Damage, Arcen.AIW2.Core.EntitySystem FiringSystemOrNull, System.Int32 numExtraStacksKilled, Arcen.AIW2.Core.ArcenHostOnlySimContext Context) [0x00655] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at System.Environment.get_StackTrace () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00042] in /data/Games/arcengames_aiw-ultra/CodeCrossProject/ArcenUniversal/src/UtilityLibraries/Debug/ArcenDebugging.cs:242 at Arcen.AIW2.External.BaseScenario.DoOnAnyDeathLogic_HostOnly_AfterFullDeathOrPartOfStackDeath (System.Boolean IsFromOnlyPartOfStackDying, Arcen.AIW2.Core.GameEntity_Squad entity, Arcen.AIW2.Core.DamageSource Damage, Arcen.AIW2.Core.EntitySystem FiringSystemOrNull, System.Int32 numExtraStacksKilled, Arcen.AIW2.Core.ArcenHostOnlySimContext Context) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.Core.GameEntity_Squad.DoOnAnyDeathInCombatLogic_AfterFullDeathOrPartOfStackDeath (System.Boolean IsFromOnlyPartOfStackDying, Arcen.AIW2.Core.DamageSource Damage, Arcen.AIW2.Core.EntitySystem FiringSystemOrNull, System.Int32 numStacksKilled, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context) [0x000c2] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/GameState/GameEntity/GameEntity_Squad.cs:7737 at Arcen.AIW2.Core.GameEntity_Squad.DoOnDeathInCombatLogic_OnlyAferFullStackDeath (Arcen.AIW2.Core.EntitySystem FiringSystemOrNull, Arcen.AIW2.Core.DamageSource Damage, System.Int32 numStacksKilled, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context) [0x0004c] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/GameState/GameEntity/GameEntity_Squad.cs:7697 at Arcen.AIW2.Core.GameEntity_Squad.DoOnDestructionLogic (System.Boolean PreventReversionToNeutral, Arcen.AIW2.Core.DamageSource Damage, Arcen.AIW2.Core.EntitySystem FiringSystemOrNull, System.Boolean wasAlive, System.Int32 numStacksKilled, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context) [0x001f4] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/GameState/GameEntity/GameEntity_Squad.cs:7267 at Arcen.AIW2.Core.GameEntity_Squad.TakeDamageDirectly (System.Int32 DamageAmount, Arcen.AIW2.Core.EntitySystem FiringSystemOrNull, Arcen.AIW2.Core.IShotHitSource ShotSourceThatHitOrNullOnlyUsedForKnockback, Arcen.AIW2.Core.DamageSource Damage, System.Boolean PreventReversionToNeutral, System.Boolean HonorFiniteHitCountAOE, System.Int32 MaxStacksAllowedToKill, System.Int32 CompressedShots, System.Int32 ExtraStacksOfSource, System.Boolean OnlyDamageShieldNotHull, System.Int32& ActualDamageDone, System.Int32& ActualHitEvents, System.Int32& DamageAbortCode, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context, Arcen.Universal.ArcenCharacterBuffer traceBuffer) [0x01597] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/GameState/GameEntity/GameEntity_Squad.cs:6965 at Arcen.AIW2.External.EntitySimLogicImplementation_BaseInfo.DoInternalExtraShotHitLogic (Arcen.AIW2.Core.IShotHitSource ShotHitNeverNull, Arcen.AIW2.Core.EntitySystem OriginSystemForShotOrNull, Arcen.AIW2.Core.GameEntity_Squad ActualTarget, System.Boolean HonorFiniteHitCountAOE, Arcen.Universal.FInt PercentOfTotalAttackPowerForThisHitOutOf100, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context, System.Int32& theoreticalEntitiesHit, System.Int32& actualDamageDone, System.Int32& damageAbortCode, System.Int32 compressedShots, System.Int32& actualCompressedShotsHit, System.Int32& attackPowerAgainstThisTarget, System.Int32& adjustedAttackPower, System.Boolean doShotsAllInstaHit, System.Int32& debugStage, Arcen.Universal.ArcenCharacterBuffer& tracingBuffer, System.Boolean& trace) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.External.EntitySimLogicImplementation_BaseInfo.DoShotHitLogic_Inner (Arcen.AIW2.Core.IShotHitSource ShotHitNeverNull, System.Int32 CompressedShots, Arcen.AIW2.Core.EntitySystem OriginSystemForShotOrNull, Arcen.AIW2.Core.GameEntity_Squad Target, System.Boolean HonorFiniteHitCountAOE, Arcen.Universal.FInt PercentOfTotalAttackPowerForThisHitOutOf100, System.Int32& TotalDamageDealt, System.Int32& ActualCompressedShotsHit, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.External.EntitySimLogicImplementation_BaseInfo.DoShotHitLogic (Arcen.AIW2.Core.IShotHitSource ShotHitNeverNull, System.Int32 CompressedShots, Arcen.AIW2.Core.EntitySystem OriginSystemForShot, Arcen.AIW2.Core.GameEntity_Squad Target, Arcen.AIW2.Core.ArcenSimContextAnyStatus Context) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 |
|
3/9/2022 11:23:59 AM 4.002 CLIENT DELAYED42 TID14 command.RelatedPoints.Count < 1 in GameCommand_MoveManyToOnePoint! GameCommand Details:MoveManyToOnePoint_FireteamEscort RelatedFactionIndex:-1 at System.Environment.get_StackTrace () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00042] in /data/Games/arcengames_aiw-ultra/CodeCrossProject/ArcenUniversal/src/UtilityLibraries/Debug/ArcenDebugging.cs:242 at Arcen.AIW2.External.GameCommand_MoveManyToOnePoint.Execute (Arcen.AIW2.Core.GameCommand command, Arcen.AIW2.Core.ArcenClientOrHostSimContextCore context) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.Core.GameCommand.Execute (Arcen.AIW2.Core.ArcenClientOrHostSimContextCore Context) [0x00061] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/Networking/GameCommand.cs:446 at Arcen.AIW2.Core.World_AIW2.OnClientOrHost_ExecuteGameCommandsThatWereScheduled (Arcen.AIW2.Core.ArcenClientOrHostSimContextCore Context) [0x00197] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/GameState/World_AIW2.cs:4141 at Arcen.AIW2.External.SimPlannerImplementation.ProcessCoreLogicForArbitraryFrameOnMainThread (System.Boolean& stalledWaitingOnConnections, System.Boolean& mayUpdateVisuals, System.String& reasonForNoVisualUpdates) [0x00000] in <d0b5747e9cfc4b94b1db6b83ea940416>:0 at Arcen.AIW2.Core.Engine_AIW2.<ProcessArbitraryFrameOnMainThread>m__F () [0x00016] in /data/Games/arcengames_aiw-ultra/CodeMain/ArcenAIW2Core/src/Logic/Engine_AIW2.cs:1502 at Arcen.Universal.ArcenThreading+<RunTaskOnBackgroundThread>c__AnonStorey0.<>m__0 () [0x00035] in /data/Games/arcengames_aiw-ultra/CodeCrossProject/ArcenUniversal/src/UtilityLibraries/ArcenThreading.cs:135 at System.Threading.Tasks.Task.InnerInvoke () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.Execute () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.ExecutionContextCallback (System.Object obj) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task& currentTaskSlot) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.ExecuteEntry (System.Boolean bPreventDoubleExecution) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0 |
|
3/9/2022 11:26:51 AM 4.002 CLIENT DELAYED79 TID16 Journal oops! Looks like no name or group was specified to log to the journal? (Name: '', optionalGroupID: '') |
|
I ran for about 2 hours and mostly what I saw were these GameCommand errors. About 800 of them. |
|
So all of those are generally gamecommands being corrupt, more than anything else, except for the building flows, the placement of enemy ships during the ARS hack, and the one error in the do on death logic. For the third issue in that list: * Added more code to make absolutely sure that DoOnAnyDeathLogic_HostOnly_AfterFullDeathOrPartOfStackDeath is not ever run on MP clients. Thanks! So that's four issues in total, and three remaining. |
|
Okay, hopefully this knocks out all of the command issues on clients: * Since gamecommands are coming through as scrambled to clients in multiplayer some of the time, but the canary code after them is not being hit, it is very likely that they are being sent in an improper fashion by the host. The host is executing them perfectly, so it must be something that is changing during the actual send, it seems like. With that in mind, I've put extra gating on the host (and on the client just to be extra careful) to make sure that they never overrun themselves in the same method there, since that seems to be the most likely source of this sort of error. If this doesn't work on its own, I can put in some more detailed logging, but after yet another code review, this seems to be the most likely culprit. |
Date Modified | Username | Field | Change |
---|---|---|---|
Mar 9, 2022 1:13 pm | BadgerBadger | New Issue | |
Mar 9, 2022 1:13 pm | BadgerBadger | Status | new => assigned |
Mar 9, 2022 1:13 pm | BadgerBadger | Assigned To | => Chris_McElligottPark |
Mar 9, 2022 1:13 pm | BadgerBadger | File Added: metalFlowsOnClient.jpg | |
Mar 9, 2022 1:13 pm | BadgerBadger | File Added: buildingOnClient.jpg | |
Mar 9, 2022 1:14 pm | BadgerBadger | Description Updated | |
Mar 9, 2022 1:15 pm | BadgerBadger | Note Added: 0065311 | |
Mar 9, 2022 1:23 pm | BadgerBadger | Note Added: 0065312 | |
Mar 9, 2022 1:24 pm | BadgerBadger | Note Added: 0065313 | |
Mar 9, 2022 1:24 pm | BadgerBadger | Note Added: 0065314 | |
Mar 9, 2022 1:25 pm | BadgerBadger | Note Edited: 0065312 | |
Mar 9, 2022 1:27 pm | BadgerBadger | Note Added: 0065316 | |
Mar 9, 2022 1:28 pm | BadgerBadger | Note Edited: 0065312 | |
Mar 9, 2022 1:30 pm | BadgerBadger | Note Edited: 0065312 | |
Mar 9, 2022 1:42 pm | BadgerBadger | Note Added: 0065317 | |
Mar 9, 2022 1:43 pm | BadgerBadger | Note Edited: 0065312 | |
Mar 9, 2022 1:43 pm | BadgerBadger | Note Edited: 0065317 | |
Mar 9, 2022 1:52 pm | BadgerBadger | Description Updated | |
Mar 9, 2022 3:25 pm | Chris_McElligottPark | Note Added: 0065321 | |
Mar 9, 2022 4:44 pm | Chris_McElligottPark | Note Added: 0065322 |