Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Session Replays #20

Open
2 tasks
Z-Kris opened this issue Aug 8, 2024 · 0 comments
Open
2 tasks

Session Replays #20

Z-Kris opened this issue Aug 8, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@Z-Kris
Copy link
Contributor

Z-Kris commented Aug 8, 2024

A neat addition to the proxy tool is the ability to replay any old binary, allowing people to see exactly what went down. Since this would be happening through the proxy tool itself, it could also transcribe the events on the UI as they are happening, effectively not any different from just logging into the live game.

In order for session replays to work, we need to cross off a few milestones:

  • Ability to download historic cache in full. The proxy tool already supports downloading individual cache files in order for the decoding to successfully take place, but for replays, we need the caches in their entirety. For this, we may need to rework the way the cache downloaders work, as they are currently made to download sequentially, one file at a time - not in batches as we'll need.
  • A simple backend server that allows us to fake the communications with the client. Rather than the proxy communicating with the Old School servers, it would be communicating with the locally-hosted server. This server will feed any JS5 files as well as send packets at the exact intervals as they were originally sent. Any packets that the replay client sends to the server will simply be discarded.

These clients and caches should be downloaded upon selecting a binary to replay, assuming the files don't already exist. Once the download completes, a backend server is launched with the provided JS5 cache, and the client is launched. Fake Jagex Account credentials would be passed into the application, creating a simple "Play now" button, with "Replay" as the name, upon the client loading up.

RuneLite would only be supported for binaries which are currently up to date - this is because of their HTTP API and other similar problems. It would be a challenge to keep historic functional RuneLites around. For any historic binary, the native client will be offered. It is currently unclear how the native client reacts to the reflection checker packet - those may need to be excluded from sending out if it results in crashes.

@Z-Kris Z-Kris added the enhancement New feature or request label Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants