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

Replays and Anti-Cheat #8

Open
AlphaKeks opened this issue Dec 13, 2023 · 2 comments
Open

Replays and Anti-Cheat #8

AlphaKeks opened this issue Dec 13, 2023 · 2 comments
Assignees
Labels
design There are open questions about the design of the change

Comments

@AlphaKeks
Copy link
Collaborator

At some point we will want to verify and store replays sent by servers and then place those runs into their respective *Records table.

How replays will be encoded, or scanned, is not decided yet. We could either implement it as part of the API, which would mean that part of its code would be closed-source. We could solve this by creating a separate, private, repository just for the Anti-Cheat, and include it as a git dependency in cargo. We would then also need a feature flag to disable that dependency and replace its code with dummy implementations accordingly. It sounds more complex than it is, but it would certainly add maintenance overhead to the API.

The alternative is that it's an entirely different service that the API communicates with. It could run independently, be written in another language, etc. This would increase the overall complexity of the system as we would have to account for the replay service being unavailable.

As for storage, we probably want to store them on an S3 Bucket.

@AlphaKeks AlphaKeks added help wanted Extra attention is needed design There are open questions about the design of the change labels Dec 13, 2023
@AlphaKeks AlphaKeks moved this to Todo in CS2KZ Launch Feb 3, 2024
This was referenced Feb 3, 2024
@GameChaos
Copy link

perhaps the API-side anticheat could be a dynamic library (i am most comfortable in C) aka a .dll or .so. i stay far away from anything related to internet stuff though, so idk if that's how it works xd.

@AlphaKeks
Copy link
Collaborator Author

It can be a dynamic library and that's one of the two options I had in mind.

The other possibility would be to make it a Rust library and just add it as a Git dependency (private repo).

Either way we will have to use conditional compilation to make the whole thing work if someone doesn't have access to the Anti-Cheat, but that shouldn't be a big deal.

@AlphaKeks AlphaKeks removed the help wanted Extra attention is needed label Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design There are open questions about the design of the change
Projects
Status: Todo
Development

No branches or pull requests

2 participants