View Issue Details

IDProjectCategoryLast Update
0026679AI War 2Gameplay IssueMar 9, 2022 4:44 pm
ReporterBadgerBadger Assigned ToChris_McElligottPark  
Status assignedResolutionopen 
Product Version4.002 Macrophage Live! 
Summary0026679: MP client issues 4.002
DescriptionThe 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
TagsNo tags attached.

Activities

BadgerBadger

Mar 9, 2022 1:13 pm

manager  

metalFlowsOnClient.jpg (462,570 bytes)
buildingOnClient.jpg (905,931 bytes)

BadgerBadger

Mar 9, 2022 1:15 pm

manager   ~0065311

During an ARS hack it looked like the AI response ships were spawning at the edge of the gravity well (far from the ARS)

BadgerBadger

Mar 9, 2022 1:23 pm

manager   ~0065312

Last edited: Mar 9, 2022 1:43 pm

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

BadgerBadger

Mar 9, 2022 1:24 pm

manager   ~0065313

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

BadgerBadger

Mar 9, 2022 1:24 pm

manager   ~0065314

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

BadgerBadger

Mar 9, 2022 1:27 pm

manager   ~0065316

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: '')

BadgerBadger

Mar 9, 2022 1:42 pm

manager   ~0065317

Last edited: Mar 9, 2022 1:43 pm

I ran for about 2 hours and mostly what I saw were these GameCommand errors. About 800 of them.

Chris_McElligottPark

Mar 9, 2022 3:25 pm

administrator   ~0065321

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.

Chris_McElligottPark

Mar 9, 2022 4:44 pm

administrator   ~0065322

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.

Issue History

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