View Issue Details

IDProjectCategoryLast Update
0024159AI War 2Bug - GameplayDec 14, 2020 2:37 pm
ReporterBadgerBadger Assigned ToChris_McElligottPark  
Severityminor 
Status resolvedResolutionfixed 
Product Version2.637 Threatfleet Conversion, Chat, And Clickable Planets 
Fixed in Version2.704 MP Notifications And Mapgen 
Summary0024159: Multiplayer notes
DescriptionI actually played some multiplayer! A few notes.

As a client, if I say "Build one turret" sometimes the Build Tab thinks I've built 2 turrets, or 0 turrets. It corrects itself within a second or so (so presumably the client got out of sync and the host corrected it), but it would be nice if it didn't sometimes get confused in this way.

My friend and I are playing shared faction, and the mapgen logic seems confused; it's putting Arks and Golems close to our homeworld. Perhaps the game isn't reseeding things after I deleted my human faction and made myself a controller of my friend's faction?
TagsNo tags attached.

Activities

BadgerBadger

Nov 21, 2020 11:51 pm

manager   ~0059754

Last edited: Nov 22, 2020 12:13 am

By default, opening the Esc menu pauses the game. In multiplayer this isn't desirable; I would open the Esc menu to try to futz with my visual settings and the game would pause for everyone

Chris_McElligottPark

Nov 22, 2020 11:38 am

administrator   ~0059755

The build turret thing is the PKIDs mismatch. It building zero is a surprise, but probably is because your side thought it had a ship cap that was being hit because of the lack of sync. The double turrets case is because yours added one with a bad PKID, then host added one with the correct one, and then the host synced the new one before telling you the old one was needing to die. The other case that happens is something popping out and then moving a short way. All of this is perfectly normal and basically working as intended in terms of the sync code, but the fact that production of any ship is an insta-desync is why the PKID code needs to be redone (or at least layered up). Anyhow, those are all symptoms of one central thing.

The mapgen logic being out of place is very interesting indeed. I would have thought that removing a faction like that should have forced a regeneration of the map, but perhaps it did not for some reason. I'll look into that. I have a lot of mapgen tweaks to make anyhow.

The escape menu thing is something that I had argued against having work that way in single-player just because of how it is annoying in multiplayer. And personally I often want to check out something in stats in the escape menu, but that doesn't mean halt everything. I think I'll make a pair of options for this, for "don't pause when opening escape menu in multiplayer," default on, and "don't pause when opening escape menu in singleplayer," default off.

BadgerBadger

Nov 22, 2020 4:28 pm

manager   ~0059762

The "Quit Game" display shouldn't request that multiplayer clients should save their data

BadgerBadger

Nov 22, 2020 4:38 pm

manager   ~0059763

Hit a number of errors
11/22/2020 2:35:46 PM GameEntity_Squad deserialization error at stage 2500 from serialized version 2.637 loading into new version 2.637, error: System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Arcen.AIW2.Core.EntityOrder.InitializeOrder (Arcen.AIW2.Core.EntityOrderType Type, Arcen.Universal.ArcenPoint RelatedPoint, System.Int32 RelatedEntityID, System.Int16 RelatedPlanetIndex, System.Boolean shouldOverrideBehavior, System.Boolean RefuseToWait, Arcen.AIW2.Core.Ord
erSource Source) [0x00001] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
  at Arcen.AIW2.Core.EntityOrder.DeserializeFrom (Arcen.AIW2.Core.GameEntity_Squad ForSquad, Arcen.Universal.ArcenDeserializationBuffer Buffer) [0x0015b] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
  at Arcen.AIW2.Core.EntityOrderCollection.DeserializeFrom (Arcen.AIW2.Core.GameEntity_Squad ParentEntity, Arcen.Universal.ArcenDeserializationBuffer Buffer) [0x0004e] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
  at Arcen.AIW2.Core.GameEntity_Squad.DeserializedIntoSelf (System.Int32 primaryKeyID, Arcen.AIW2.Core.GameEntityTypeData typeData, Arcen.AIW2.Core.Planet Planet, Arcen.Universal.ArcenDeserializationBuffer Buffer, System.Boolean HideErrors, System.Boolean IsLoadingTemplate, Syst
em.Boolean IsForNetworkSync) [0x000d9] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
11/22/2020 2:35:47 PM Hit exception in strength counting debugCode 200 System.NullReferenceException: Object reference not set to an instance of an object
  at Arcen.AIW2.External.StrengthCounting.DelegateHelper_DoCombatStep_StrengthCounting (Arcen.AIW2.Core.GameEntity_Squad entity) [0x007a2] in <95950b84c65e4af9a63c716a087f813c>:0
11/22/2020 2:35:47 PM GameEntity_Squad deserialization error at stage 2500 from serialized version 2.637 loading into new version 2.637, error: System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Arcen.AIW2.Core.EntityOrder.InitializeOrder (Arcen.AIW2.Core.EntityOrderType Type, Arcen.Universal.ArcenPoint RelatedPoint, System.Int32 RelatedEntityID, System.Int16 RelatedPlanetIndex, System.Boolean shouldOverrideBehavior, System.Boolean RefuseToWait, Arcen.AIW2.Core.Ord
erSource Source) [0x00001] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
  at Arcen.AIW2.Core.EntityOrder.DeserializeFrom (Arcen.AIW2.Core.GameEntity_Squad ForSquad, Arcen.Universal.ArcenDeserializationBuffer Buffer) [0x0015b] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
  at Arcen.AIW2.Core.EntityOrderCollection.DeserializeFrom (Arcen.AIW2.Core.GameEntity_Squad ParentEntity, Arcen.Universal.ArcenDeserializationBuffer Buffer) [0x0004e] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
  at Arcen.AIW2.Core.GameEntity_Squad.DeserializedIntoSelf (System.Int32 primaryKeyID, Arcen.AIW2.Core.GameEntityTypeData typeData, Arcen.AIW2.Core.Planet Planet, Arcen.Universal.ArcenDeserializationBuffer Buffer, System.Boolean HideErrors, System.Boolean IsLoadingTemplate, Syst
em.Boolean IsForNetworkSync) [0x000d9] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
11/22/2020 2:35:48 PM Hit exception in strength counting debugCode 200 System.NullReferenceException: Object reference not set to an instance of an object
  at Arcen.AIW2.External.StrengthCounting.DelegateHelper_DoCombatStep_StrengthCounting (Arcen.AIW2.Core.GameEntity_Squad entity) [0x007a2] in <95950b84c65e4af9a63c716a087f813c>:0
11/22/2020 2:35:49 PM Hit exception in strength counting debugCode 200 System.NullReferenceException: Object reference not set to an instance of an object
  at Arcen.AIW2.External.StrengthCounting.DelegateHelper_DoCombatStep_StrengthCounting (Arcen.AIW2.Core.GameEntity_Squad entity) [0x007a2] in <95950b84c65e4af9a63c716a087f813c>:0
11/22/2020 2:35:49 PM GameEntity_Squad deserialization error at stage 2500 from serialized version 2.637 loading into new version 2.637, error: System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Arcen.AIW2.Core.EntityOrder.InitializeOrder (Arcen.AIW2.Core.EntityOrderType Type, Arcen.Universal.ArcenPoint RelatedPoint, System.Int32 RelatedEntityID, System.Int16 RelatedPlanetIndex, System.Boolean shouldOverrideBehavior, System.Boolean RefuseToWait, Arcen.AIW2.Core.Ord
erSource Source) [0x00001] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
.....
11/22/2020 2:36:03 PM Exception in Client_AcceptDivergenceDataFromHost-DivergencesSection: debugStage: 1100 Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Arcen.Universal.ArcenDeserializationBufferModern.GetNextBit () [0x00001] in <6c3f588b48b547849f1948f5c2492cd5>:0
  at Arcen.Universal.ArcenDeserializationBufferModern.GetBits_InnerHelperUltraEfficient (Arcen.Universal.UltraEfficientStyleData ueStyleData) [0x00077] in <6c3f588b48b547849f1948f5c2492cd5>:0
  at Arcen.Universal.ArcenDeserializationBufferModern.ReadIntUltraEfficient (Arcen.Universal.UltraEfficientStyle UEStyle, System.String FieldNameForErrors) [0x00041] in <6c3f588b48b547849f1948f5c2492cd5>:0
  at AIWar2NetworkSync.Client_AcceptDivergenceDataFromHost (Arcen.Universal.ArcenDeserializationBuffer buffer) [0x002ce] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0
11/22/2020 2:36:05 PM GameEntity_Squad deserialization error at stage 22000 from serialized version 2.637 loading into new version 2.637, error: System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Arcen.Universal.ArcenDeserializationBufferModern.GetNextBit () [0x00001] in <6c3f588b48b547849f1948f5c2492cd5>:0
  at Arcen.Universal.ArcenDeserializationBufferModern.GetBits_InnerHelper32 (Arcen.Universal.ReadStyle RStyle) [0x00056] in <6c3f588b48b547849f1948f5c2492cd5>:0
  at Arcen.Universal.ArcenDeserializationBufferModern.ReadInt32 (Arcen.Universal.ReadStyle RStyle, System.String FieldNameForErrors) [0x0003c] in <6c3f588b48b547849f1948f5c2492cd5>:0
  at Arcen.AIW2.Core.GameEntity_Squad.DeserializedIntoSelf (System.Int32 primaryKeyID, Arcen.AIW2.Core.GameEntityTypeData typeData, Arcen.AIW2.Core.Planet Planet, Arcen.Universal.ArcenDeserializationBuffer Buffer, System.Boolean HideErrors, System.Boolean IsLoadingTemplate, System.Boolean IsForNetworkSync) [0x00e0e] in <12362677eeef453ea1a1d1d8ac2fd4ce>:0

Chris_McElligottPark

Dec 14, 2020 2:20 pm

administrator   ~0059964

Turret thing and errors were fixed a while ago. Mapgen now fixed:

* Upgraded the mapgen logic to work better when there ae multiple human factions, or indeed when there are multiple AI factions.
** When there were multiple AI factions, there were times where lots of planets adjacent to player homeworlds could be set erroneously to mark 3. This no longer happens.
** When there were multiple human factions, then it was letting mark 3 or 4 planets be seeded next to human homeworlds sometimes, but it was also giving a LOT more mark 1 planets than normally are in a single-human-faction game.
*** Now it gives the same number of mark 1 planets for a map size regardless of how many human players there are, and these are distributed randomly next to however human homeworlds there are. Any other planets adjacent to a human homeworld that is beyond the amount allowed by a map will now be mark 2 no matter what.
*** In single-faction games, sometimes there are non-adjacent mark 1 homeworlds, but that will probably not happen anymore.
*** The rest of the planets that are more than 2 hops from human homeworlds will continue to use the logic that they previously did for whether they should be mark 2, 3,or 4.
** The overall result should be something that always makes sense, and it will not favor player factions 1 over any other factions.


Thanks!

Chris_McElligottPark

Dec 14, 2020 2:24 pm

administrator   ~0059965

Quitting in MP:

* In multiplayer games, the clients no longer get any sort of "are you sure?" prompt or ironman autosave or anything when they quit from the game or quit to the main menu. Those are host-side things.

Chris_McElligottPark

Dec 14, 2020 2:37 pm

administrator   ~0059966

The last of your notes:

* "Pause Game When Opening Esc Menu" in the Game part of the settings menu has been split into two parts:
** Pause Game When Opening Esc Menu In SP (default on)
** Pause Game When Opening Esc Menu In MP (default off)
** Additionally, made it so that sub-menus of the escape menu no longer cause the game to be paused when you go into them even if the setting here was disabled (previously that was happening, which was a bug with the SP version of this).

Thanks!

Issue History

Date Modified Username Field Change
Nov 21, 2020 11:48 pm BadgerBadger New Issue
Nov 21, 2020 11:48 pm BadgerBadger Status new => assigned
Nov 21, 2020 11:48 pm BadgerBadger Assigned To => Chris_McElligottPark
Nov 21, 2020 11:51 pm BadgerBadger Note Added: 0059754
Nov 22, 2020 12:13 am BadgerBadger Note Edited: 0059754
Nov 22, 2020 11:38 am Chris_McElligottPark Note Added: 0059755
Nov 22, 2020 4:28 pm BadgerBadger Note Added: 0059762
Nov 22, 2020 4:38 pm BadgerBadger Note Added: 0059763
Dec 14, 2020 2:20 pm Chris_McElligottPark Note Added: 0059964
Dec 14, 2020 2:24 pm Chris_McElligottPark Note Added: 0059965
Dec 14, 2020 2:37 pm Chris_McElligottPark Status assigned => resolved
Dec 14, 2020 2:37 pm Chris_McElligottPark Resolution open => fixed
Dec 14, 2020 2:37 pm Chris_McElligottPark Fixed in Version => 2.704 MP Notifications And Mapgen
Dec 14, 2020 2:37 pm Chris_McElligottPark Note Added: 0059966