-
Couldn't load subscription status.
- Fork 0
Open
Open
Copy link
Labels
enhancementNew feature or requestNew feature or request
Description
Overview
Implement the following features with a focus on extreme performance and efficiency, as these operations will be invoked up to 600 times per second. All code must minimize memory allocations and avoid unnecessary overhead.
1. High-Performance Frame Processing
- Implement code to take a
sessionResponseDataanduserBonesResponse(both as[]byte), parse them intogameapi.SessionResponse{}andgameapi.UserBonesResponse{}. - Build a new
LobbySessionStateFrameusing these parsed objects, determining all appropriate events. - The implementation must be able to reference the previous frame to accurately detect and emit events.
- The parsing and event detection must be extremely efficient and optimized for high-frequency invocation.
2. Streaming Codecs
- Zstd Codec: Implement a streaming codec that writes the HEADER and one or more
LobbySessionStateFrameobjects to a Zstd-compressed.nevrcapfile on disk. - WebSocket Codec: Implement a streaming codec that connects to a WebSocket server and streams
LobbySessionStateFrameobjects. Add toggles to choose whether to send session data, user bones as raw bytes, or to unmarshal and detect events (generating and sendingLobbySessionStateFrame). - EchoReplay Codec: Implement a streaming codec that writes a
.echoreplayfile (zip format) to disk.
3. File Conversion Utilities
- Write a function to process a
.echoreplayfile into a.nevrcapfile. - Write a function to process a
.nevrcapfile into a.echoreplayfile.
4. Acceptance and Benchmark Tests
- Provide acceptance tests for the
.echoreplayfile processors (external format compatibility). - Provide a benchmark for uncompressed
.echoreplay➔ uncompressed.nevrcapprocessing performance. - Provide a benchmark comparing
.echoreplayvs.nevrcapfile size.
5. BENCHMARKS.md and Automation
- Create a
BENCHMARKS.mdto capture the latest benchmark values. - Implement a script to run all benchmarks and automatically update
BENCHMARKS.md.
Acceptance Criteria:
- All codecs and utilities are implemented and tested for performance.
- Benchmarks and acceptance tests are present and automated.
- BENCHMARKS.md is created and kept up to date via script.
- Code is suitable for high-frequency, low-latency processing scenarios.
Copilot
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request