Skip to content

Commit 39de396

Browse files
authored
show buffer health average in log (#144)
1 parent 6b48aab commit 39de396

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

internal/gameServer/server.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,13 @@ func (g *GameServer) ManageBuffer() {
119119
g.GameDataMutex.Lock() // BufferHealth can be modified by processUDP in a different thread
120120
for i := range 4 {
121121
if g.GameData.CountLag[i] == 0 {
122-
playerBufferHealth, err := g.bufferHealthAverage(i)
122+
var err error
123+
g.GameData.BufferHealthAverage[i], err = g.bufferHealthAverage(i)
123124
if err == nil {
124125
activePlayers = true
125126
}
126-
if playerBufferHealth > bufferHealth {
127-
bufferHealth = playerBufferHealth
127+
if g.GameData.BufferHealthAverage[i] > bufferHealth {
128+
bufferHealth = g.GameData.BufferHealthAverage[i]
128129
}
129130
}
130131
g.GameData.BufferHealth[i].Purge()
@@ -156,7 +157,7 @@ func (g *GameServer) ManagePlayers() {
156157
_, ok := g.Registrations[i]
157158
if ok {
158159
if g.GameData.PlayerAlive[i] {
159-
g.Logger.Info("player status", "player", i, "regID", g.Registrations[i].RegID, "bufferSize", g.GameData.BufferSize, "countLag", g.GameData.CountLag[i], "address", g.GameData.PlayerAddresses[i])
160+
g.Logger.Info("player status", "player", i, "regID", g.Registrations[i].RegID, "bufferHealthAverage", g.GameData.BufferHealthAverage[i], "bufferSize", g.GameData.BufferSize, "countLag", g.GameData.CountLag[i], "address", g.GameData.PlayerAddresses[i])
160161
playersActive = true
161162
} else {
162163
g.Logger.Info("player disconnected UDP", "player", i, "regID", g.Registrations[i].RegID, "address", g.GameData.PlayerAddresses[i])

internal/gameServer/udp.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@ type InputData struct {
1919
}
2020

2121
type GameData struct {
22-
SyncValues *lru.Cache[uint32, []byte]
23-
PlayerAddresses [4]*net.UDPAddr
24-
BufferSize uint32
25-
BufferHealth [4]*lru.Cache[uint32, byte]
26-
Inputs [4]*lru.Cache[uint32, InputData]
27-
PendingInput [4]InputData
28-
CountLag [4]uint32
29-
sendBuffer []byte
30-
recvBuffer []byte
31-
PlayerAlive [4]bool
32-
LeadCount uint32
33-
Status byte
22+
SyncValues *lru.Cache[uint32, []byte]
23+
PlayerAddresses [4]*net.UDPAddr
24+
BufferSize uint32
25+
BufferHealth [4]*lru.Cache[uint32, byte]
26+
BufferHealthAverage [4]float32
27+
Inputs [4]*lru.Cache[uint32, InputData]
28+
PendingInput [4]InputData
29+
CountLag [4]uint32
30+
sendBuffer []byte
31+
recvBuffer []byte
32+
PlayerAlive [4]bool
33+
LeadCount uint32
34+
Status byte
3435
}
3536

3637
const (
@@ -46,7 +47,6 @@ const (
4647
DisconnectTimeoutS = 30
4748
NoRegID = 255
4849
InputDataMax int = 60 * 60 // One minute of input data
49-
BufferHealthMax = 10
5050
CS4 = 32
5151
)
5252

@@ -213,7 +213,7 @@ func (g *GameServer) createUDPServer() error {
213213
g.GameData.BufferSize = 3
214214
for i := range 4 {
215215
g.GameData.Inputs[i], _ = lru.New[uint32, InputData](InputDataMax)
216-
g.GameData.BufferHealth[i], _ = lru.New[uint32, byte](BufferHealthMax)
216+
g.GameData.BufferHealth[i], _ = lru.New[uint32, byte](InputDataMax)
217217
}
218218
g.GameData.SyncValues, _ = lru.New[uint32, []byte](100) // Store up to 100 sync values
219219
g.GameData.sendBuffer = make([]byte, 508)

0 commit comments

Comments
 (0)