Skip to content

Commit 33a8eff

Browse files
committed
halwiegasjkdlfawegasdfjhwoigekjldfas
1 parent e036b20 commit 33a8eff

File tree

2 files changed

+23
-36
lines changed

2 files changed

+23
-36
lines changed

Notebook.ipynb

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@
33
{
44
"cell_type": "code",
55
"execution_count": null,
6-
"metadata": {
7-
"ExecuteTime": {
8-
"end_time": "2025-08-16T04:33:07.335326Z",
9-
"start_time": "2025-08-16T04:33:04.692050Z"
10-
}
11-
},
6+
"metadata": {},
127
"outputs": [],
138
"source": [
149
"import com.hopskipnfall.*\n",
@@ -60,12 +55,7 @@
6055
{
6156
"cell_type": "code",
6257
"execution_count": null,
63-
"metadata": {
64-
"ExecuteTime": {
65-
"end_time": "2025-08-16T04:34:27.493147Z",
66-
"start_time": "2025-08-16T04:33:07.351490Z"
67-
}
68-
},
58+
"metadata": {},
6959
"outputs": [],
7060
"source": [
7161
"%useLatestDescriptors\n",
@@ -119,19 +109,14 @@
119109
{
120110
"cell_type": "code",
121111
"execution_count": null,
122-
"metadata": {
123-
"ExecuteTime": {
124-
"end_time": "2025-08-16T04:34:29.938788Z",
125-
"start_time": "2025-08-16T04:34:29.586695Z"
126-
}
127-
},
112+
"metadata": {},
128113
"outputs": [],
129114
"source": [
130115
"import org.emulinker.proto.Event.EventTypeCase.*\n",
131116
"import java.io.FileInputStream\n",
132117
"import org.emulinker.proto.GameLog\n",
133118
"\n",
134-
"val log: GameLog = FileInputStream(\"gamelog_1p_1f.bin\").use { GameLog.parseFrom(it.readBytes()) }\n",
119+
"val log: GameLog = FileInputStream(\"gamelog_2p_1f.bin\").use { GameLog.parseFrom(it.readBytes()) }\n",
135120
"val events = log.eventsList\n",
136121
"\n",
137122
"println(\"Game configuration:\")\n",
@@ -148,28 +133,25 @@
148133
{
149134
"cell_type": "code",
150135
"execution_count": null,
151-
"metadata": {
152-
"ExecuteTime": {
153-
"end_time": "2025-08-16T04:34:32.428746Z",
154-
"start_time": "2025-08-16T04:34:32.187285Z"
155-
}
156-
},
136+
"metadata": {},
157137
"outputs": [],
158138
"source": [
159139
"import org.emulinker.proto.Event\n",
160140
"import org.jetbrains.kotlinx.dataframe.api.dataFrameOf\n",
161141
"import org.jetbrains.kotlinx.dataframe.api.toDataFrame\n",
162142
"\n",
163-
"val summaries = events.filter { it.eventTypeCase == LAGSTAT_SUMMARY }\n",
143+
"val summaries = events.filter { it.eventTypeCase == LAGSTAT_SUMMARY && it.lagstatSummary.gameLagMs < 2000 }\n",
164144
"\n",
165145
"val time = column<Long>(\"Timestamp (ns)\")\n",
166146
"val observedLag = column<Double>(\"Observed lag (ms)\")\n",
167147
"val player1Lag = column<Double>(\"Player 1 attributed lag (ms)\")\n",
148+
"val player2Lag = column<Double>(\"Player 2 attributed lag (ms)\")\n",
168149
"\n",
169150
"val df = dataFrameOf(\n",
170151
" time.name() to summaries.map { it.timestampNs },\n",
171152
" observedLag.name() to summaries.map { it.lagstatSummary.gameLagMs },\n",
172-
" player1Lag.name() to summaries.map { it.lagstatSummary.playerAttributedLagsList.single().attributedLagMs }\n",
153+
" player1Lag.name() to summaries.map { it.lagstatSummary.getPlayerAttributedLags(0).attributedLagMs },\n",
154+
" player2Lag.name() to summaries.map { it.lagstatSummary.getPlayerAttributedLags(1).attributedLagMs }\n",
173155
")\n",
174156
"\n",
175157
"df.plot {\n",
@@ -183,8 +165,13 @@
183165
" y(player1Lag)\n",
184166
" color = Color.BLUE\n",
185167
" }\n",
168+
" points {\n",
169+
" y(player2Lag)\n",
170+
" color = Color.RED\n",
171+
" }\n",
186172
" layout {\n",
187173
" title = \"Server-measured lag\"\n",
174+
" subtitle = \"Grey is server, blue is p1, red is p2\"\n",
188175
" }\n",
189176
"}"
190177
]

src/main/proto/lag.proto

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import "google/protobuf/timestamp.proto";
1010

1111
option java_multiple_files = true;
1212

13-
enum PlayerNumber {
13+
enum Player {
1414
// Note: In some languages having multiple enum values with the same
1515
// name causes issues so it's good to prefix with the name.
16-
PLAYER_NUMBER_UNKNOWN = 0;
17-
ONE = 1;
18-
TWO = 2;
19-
THREE = 3;
20-
FOUR = 4;
16+
PLAYER_UNSPECIFIED = 0;
17+
PLAYER_ONE = 1;
18+
PLAYER_TWO = 2;
19+
PLAYER_THREE = 3;
20+
PLAYER_FOUR = 4;
2121
}
2222

2323
message Event {
@@ -28,7 +28,7 @@ message Event {
2828

2929
message GameStart {
3030
message PlayerDetails {
31-
PlayerNumber player_number = 1;
31+
Player player_number = 1;
3232

3333
// User's average ping when they joined the server.
3434
double ping_ms = 2;
@@ -42,7 +42,7 @@ message Event {
4242
}
4343

4444
message ReceivedGameData {
45-
PlayerNumber received_from = 1;
45+
Player received_from = 1;
4646
}
4747

4848
// Server has collected data from all parties for the frame and will
@@ -59,7 +59,7 @@ message Event {
5959
double game_lag_ms = 2;
6060

6161
message PlayerAttributedLag {
62-
PlayerNumber player = 1;
62+
Player player = 1;
6363

6464
// How much of the drift can be reliably attributed to the
6565
// player.

0 commit comments

Comments
 (0)