- 
                Notifications
    You must be signed in to change notification settings 
- 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