Formalized use of frame data logging.

This commit is contained in:
genxium
2022-12-27 10:09:53 +08:00
parent 335e11e925
commit c017aaa7ed
13 changed files with 123 additions and 83 deletions

View File

@@ -425,8 +425,10 @@ func (pR *Room) StartBattle() {
}
pR.StopBattleForSettlement()
Logger.Info(fmt.Sprintf("The `battleMainLoop` for roomId=%v is stopped@renderFrameId=%v, with battleDurationFrames=%v:\n%v", pR.Id, pR.RenderFrameId, pR.BattleDurationFrames, pR.InputsBufferString(false))) // This takes sometime to print
//rdfIdToActuallyUsedInputDump := pR.rdfIdToActuallyUsedInputString()
//os.WriteFile(fmt.Sprintf("room_%d.txt", pR.Id), []byte(rdfIdToActuallyUsedInputDump), 0644) // DEBUG ONLY
if pR.FrameDataLoggingEnabled {
rdfIdToActuallyUsedInputDump := pR.rdfIdToActuallyUsedInputString()
os.WriteFile(fmt.Sprintf("room_%d.txt", pR.Id), []byte(rdfIdToActuallyUsedInputDump), 0644) // DEBUG ONLY
}
pR.onBattleStoppedForSettlement()
}()
@@ -810,6 +812,8 @@ func (pR *Room) OnDismissed() {
pR.GravityX = 0
pR.GravityY = -int32(float64(0.5) * pR.WorldToVirtualGridRatio) // makes all "playerCollider.Y" a multiple of 0.5 in all cases
pR.FrameDataLoggingEnabled = false // [WARNING] DON'T ENABLE ON LONG BATTLE DURATION! It consumes A LOT OF MEMORY!
pR.ChooseStage()
pR.EffectivePlayerCount = 0
@@ -1283,14 +1287,16 @@ func (pR *Room) applyInputFrameDownsyncDynamics(fromRenderFrameId int32, toRende
delayedInputListForPrevRenderFrame = &delayedInputFrameForPrevRenderFrame.InputList
}
actuallyUsedInputClone := make([]uint64, len(*delayedInputList), len(*delayedInputList))
for i, v := range *delayedInputList {
actuallyUsedInputClone[i] = v
}
pR.rdfIdToActuallyUsedInput[currRenderFrame.Id] = &pb.InputFrameDownsync{
InputFrameId: delayedInputFrame.InputFrameId,
InputList: actuallyUsedInputClone,
ConfirmedList: delayedInputFrame.ConfirmedList,
if pR.FrameDataLoggingEnabled {
actuallyUsedInputClone := make([]uint64, len(*delayedInputList), len(*delayedInputList))
for i, v := range *delayedInputList {
actuallyUsedInputClone[i] = v
}
pR.rdfIdToActuallyUsedInput[currRenderFrame.Id] = &pb.InputFrameDownsync{
InputFrameId: delayedInputFrame.InputFrameId,
InputList: actuallyUsedInputClone,
ConfirmedList: delayedInputFrame.ConfirmedList,
}
}
}