Skip to content

Commit ab49b92

Browse files
committed
feat: add sync elements debugging codes
1 parent c16334b commit ab49b92

5 files changed

Lines changed: 35 additions & 26 deletions

File tree

Scripts/GameApi/LiteNetLibElement.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public int ElementId
9696
get { return _elementId; }
9797
}
9898

99-
public string logTagName;
99+
public string logTagName = null;
100100
public virtual string LogTag
101101
{
102102
get
@@ -123,6 +123,8 @@ public virtual string LogTag
123123
}
124124
}
125125

126+
public bool isDebug = false;
127+
126128
public LiteNetLibElementInfo GetInfo()
127129
{
128130
return new LiteNetLibElementInfo()

Scripts/GameApi/LiteNetLibGameManager.cs

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,7 +1207,8 @@ protected LiteNetLibIdentity SpawnPlayer(long connectionId, int hashAssetId)
12071207
#region Game State Syncing
12081208
private void WriteSyncElement(NetDataWriter writer, LiteNetLibSyncElement syncElement)
12091209
{
1210-
writer.PutPackedUInt(Tick);
1210+
uint tick = Tick;
1211+
writer.PutPackedUInt(tick);
12111212
writer.PutPackedUInt(syncElement.ObjectId);
12121213
writer.PutPackedInt(syncElement.ElementId);
12131214
if (safeGameStatePacket)
@@ -1218,7 +1219,7 @@ private void WriteSyncElement(NetDataWriter writer, LiteNetLibSyncElement syncEl
12181219
writer.Put(dataLength);
12191220
int posAfterWriteDataLen = writer.Length;
12201221
// Write sync data
1221-
syncElement.WriteSyncData(false, writer);
1222+
syncElement.WriteSyncData(false, tick, false, writer);
12221223
dataLength = writer.Length - posAfterWriteDataLen;
12231224
// Put data length
12241225
int posAfterWriteData = writer.Length;
@@ -1228,7 +1229,7 @@ private void WriteSyncElement(NetDataWriter writer, LiteNetLibSyncElement syncEl
12281229
}
12291230
else
12301231
{
1231-
syncElement.WriteSyncData(false, writer);
1232+
syncElement.WriteSyncData(false, tick, false, writer);
12321233
}
12331234
}
12341235

@@ -1248,7 +1249,7 @@ private bool ReadSyncElement(NetDataReader reader)
12481249
{
12491250
try
12501251
{
1251-
element.ReadSyncData(tick, false, reader);
1252+
element.ReadSyncData(false, tick, false, reader);
12521253
}
12531254
catch
12541255
{
@@ -1270,7 +1271,7 @@ private bool ReadSyncElement(NetDataReader reader)
12701271
{
12711272
try
12721273
{
1273-
element.ReadSyncData(tick, false, reader);
1274+
element.ReadSyncData(false, tick, false, reader);
12741275
}
12751276
catch
12761277
{
@@ -1289,7 +1290,8 @@ private bool ReadSyncElement(NetDataReader reader)
12891290

12901291
private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer player, Dictionary<uint, GameStateSyncData> syncingStatesByObjectIds)
12911292
{
1292-
writer.PutPackedUInt(Tick);
1293+
uint tick = Tick;
1294+
writer.PutPackedUInt(tick);
12931295
// Reserve position for state length
12941296
int posBeforeWriteStateCount = writer.Length;
12951297
int stateCount = 0;
@@ -1308,7 +1310,7 @@ private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer play
13081310
if (Assets.TryGetSpawnedObject(objectId, out identity) && identity != null && identity.transform != null)
13091311
{
13101312
writer.Put(GameStateSyncData.STATE_TYPE_SPAWN);
1311-
WriteSpawnGameState(writer, player, identity, syncingStatesByObjectId.Value);
1313+
WriteSpawnGameState(writer, player, identity, syncingStatesByObjectId.Value, tick);
13121314
// TODO: Move this to somewhere else
13131315
if (player.ConnectionId == ClientConnectionId)
13141316
{
@@ -1323,7 +1325,7 @@ private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer play
13231325
if (Assets.TryGetSpawnedObject(objectId, out identity) && identity != null && identity.transform != null)
13241326
{
13251327
writer.Put(GameStateSyncData.STATE_TYPE_SYNC);
1326-
WriteSyncGameState(writer, objectId, syncingStatesByObjectId.Value);
1328+
WriteSyncGameState(writer, objectId, syncingStatesByObjectId.Value, tick);
13271329
++stateCount;
13281330
}
13291331
break;
@@ -1353,7 +1355,8 @@ private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer play
13531355

13541356
private int WriteGameStateFromClient(NetDataWriter writer, byte syncChannelId, Dictionary<uint, GameStateSyncData> syncingStatesByObjectIds)
13551357
{
1356-
writer.PutPackedUInt(Tick);
1358+
uint tick = Tick;
1359+
writer.PutPackedUInt(tick);
13571360
// Reserve position for state length
13581361
int posBeforeWriteStateCount = writer.Length;
13591362
int stateCount = 0;
@@ -1367,7 +1370,7 @@ private int WriteGameStateFromClient(NetDataWriter writer, byte syncChannelId, D
13671370
switch (syncingStatesByObjectId.Value.StateType)
13681371
{
13691372
case GameStateSyncData.STATE_TYPE_SYNC:
1370-
WriteSyncGameState(writer, objectId, syncingStatesByObjectId.Value);
1373+
WriteSyncGameState(writer, objectId, syncingStatesByObjectId.Value, tick);
13711374
++stateCount;
13721375
break;
13731376
}
@@ -1417,7 +1420,7 @@ private void ReadGameStateFromClient(NetDataReader reader)
14171420
}
14181421
}
14191422

1420-
private void WriteSpawnGameState(NetDataWriter writer, LiteNetLibPlayer player, LiteNetLibIdentity identity, GameStateSyncData syncData)
1423+
private void WriteSpawnGameState(NetDataWriter writer, LiteNetLibPlayer player, LiteNetLibIdentity identity, GameStateSyncData syncData, uint tick)
14211424
{
14221425
writer.Put(identity.IsSceneObject);
14231426
if (identity.IsSceneObject)
@@ -1439,7 +1442,7 @@ private void WriteSpawnGameState(NetDataWriter writer, LiteNetLibPlayer player,
14391442
continue;
14401443
syncData.SyncElements.Add(syncElement);
14411444
}
1442-
WriteSyncElements(writer, syncData.SyncElements, true);
1445+
WriteSyncElements(writer, syncData.SyncElements, tick, true);
14431446
syncData.SyncElements.Clear();
14441447
}
14451448

@@ -1494,10 +1497,10 @@ private bool ReadSpawnGameState(NetDataReader reader, uint tick)
14941497
return false;
14951498
}
14961499

1497-
private void WriteSyncGameState(NetDataWriter writer, uint objectId, GameStateSyncData syncData)
1500+
private void WriteSyncGameState(NetDataWriter writer, uint objectId, GameStateSyncData syncData, uint tick)
14981501
{
14991502
writer.PutPackedUInt(objectId);
1500-
WriteSyncElements(writer, syncData.SyncElements, false);
1503+
WriteSyncElements(writer, syncData.SyncElements, tick, false);
15011504
syncData.SyncElements.Clear();
15021505
}
15031506

@@ -1523,7 +1526,7 @@ private bool ReadDestroyGameState(NetDataReader reader)
15231526
return true;
15241527
}
15251528

1526-
private void WriteSyncElements(NetDataWriter writer, ICollection<LiteNetLibSyncElement> elements, bool initial)
1529+
private void WriteSyncElements(NetDataWriter writer, ICollection<LiteNetLibSyncElement> elements, uint tick, bool initial)
15271530
{
15281531
writer.PutPackedInt(elements.Count);
15291532
if (elements.Count == 0)
@@ -1540,7 +1543,7 @@ private void WriteSyncElements(NetDataWriter writer, ICollection<LiteNetLibSyncE
15401543
writer.Put(dataLength);
15411544
int posAfterWriteDataLen = writer.Length;
15421545
// Write sync data
1543-
syncElement.WriteSyncData(initial, writer);
1546+
syncElement.WriteSyncData(true, tick, initial, writer);
15441547
dataLength = writer.Length - posAfterWriteDataLen;
15451548
// Put data length
15461549
int posAfterWriteData = writer.Length;
@@ -1550,7 +1553,7 @@ private void WriteSyncElements(NetDataWriter writer, ICollection<LiteNetLibSyncE
15501553
}
15511554
else
15521555
{
1553-
syncElement.WriteSyncData(initial, writer);
1556+
syncElement.WriteSyncData(true, tick, initial, writer);
15541557
}
15551558
}
15561559
}
@@ -1572,7 +1575,7 @@ private bool ReadSyncElements(NetDataReader reader, LiteNetLibIdentity identity,
15721575
{
15731576
try
15741577
{
1575-
element.ReadSyncData(tick, initial, reader);
1578+
element.ReadSyncData(true, tick, initial, reader);
15761579
}
15771580
catch
15781581
{
@@ -1594,7 +1597,7 @@ private bool ReadSyncElements(NetDataReader reader, LiteNetLibIdentity identity,
15941597
{
15951598
try
15961599
{
1597-
element.ReadSyncData(tick, initial, reader);
1600+
element.ReadSyncData(true, tick, initial, reader);
15981601
}
15991602
catch
16001603
{

Scripts/GameApi/LiteNetLibSyncElement.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ internal virtual bool WillSyncFromOwnerClientUnreliably(uint tick)
4141
}
4242

4343
internal abstract void Reset();
44-
internal abstract void WriteSyncData(bool initial, NetDataWriter writer);
45-
internal abstract void ReadSyncData(uint tick, bool initial, NetDataReader reader);
44+
internal abstract void WriteSyncData(bool isState, uint tick, bool initial, NetDataWriter writer);
45+
internal abstract void ReadSyncData(bool isState, uint tick, bool initial, NetDataReader reader);
4646

4747
public void RegisterUpdating()
4848
{

Scripts/GameApi/LiteNetLibSyncField.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,14 @@ internal override sealed void Setup(LiteNetLibBehaviour behaviour, int elementId
161161
}
162162
}
163163

164-
internal override void WriteSyncData(bool initial, NetDataWriter writer)
164+
internal override void WriteSyncData(bool isState, uint tick, bool initial, NetDataWriter writer)
165165
{
166+
if (isDebug)
167+
Logging.Log(LogTag, $"Write sync data, syncMode {syncMode}, connectionId {ConnectionId}, isOwnerClient {IsOwnerClient}, objectId {ObjectId}, isState {isState}, tick {tick}, initial {initial}, value {GetValue()}");
166168
SerializeValue(writer);
167169
}
168170

169-
internal override void ReadSyncData(uint tick, bool initial, NetDataReader reader)
171+
internal override void ReadSyncData(bool isState, uint tick, bool initial, NetDataReader reader)
170172
{
171173
object oldValue = GetValue();
172174
DeserializeValue(reader);
@@ -177,6 +179,8 @@ internal override void ReadSyncData(uint tick, bool initial, NetDataReader reade
177179
return;
178180
}
179181
_latestReceiveTick = tick;
182+
if (isDebug)
183+
Logging.Log(LogTag, $"Read sync data, syncMode {syncMode}, connectionId {ConnectionId}, isOwnerClient {IsOwnerClient}, objectId {ObjectId}, isState {isState}, tick {tick}, initial {initial}, oldValue {oldValue}, newValue {GetValue()}");
180184
OnChange(initial, oldValue, GetValue());
181185
if (syncMode == LiteNetLibSyncFieldMode.ClientMulticast && IsServer)
182186
ValueChangedState(true);

Scripts/GameApi/LiteNetLibSyncList.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ private void RemoveDirtyOperations(List<OperationEntry> operationEntries, int in
313313
}
314314
}
315315

316-
internal override void WriteSyncData(bool initial, NetDataWriter writer)
316+
internal override void WriteSyncData(bool isState, uint tick, bool initial, NetDataWriter writer)
317317
{
318318
if (initial)
319319
{
@@ -338,7 +338,7 @@ internal override void WriteSyncData(bool initial, NetDataWriter writer)
338338
}
339339
}
340340

341-
internal override void ReadSyncData(uint tick, bool initial, NetDataReader reader)
341+
internal override void ReadSyncData(bool isState, uint tick, bool initial, NetDataReader reader)
342342
{
343343
if (initial)
344344
{

0 commit comments

Comments
 (0)