I own an RPG multiplayer game written in Java, where players can fight each other in the game.
Recently I planned to invent a new feature, where the last 15 seconds of your fight and the "knockout" will be saved and a gif will be created of the fight's ending and automatically uploaded and can be linked to your account and viewed on the game's website gallery.
Strategy I planned to use:
- Server sends a start-recording packet to the client to start recording the graphics buffer
- Client will clear the buffer and only keep the latest 15 seconds (X frames) of the current fight.
- When the fight ends, server sends stop-recording packet, this packet will contain a pre-signed URL generated by the server in which the client will use to upload the gif that the client will create in this step. the presigned URL will have the user's ID encoded so that way it is linked, and a record will be created in the database aswell on the presign or on upload callback.
Might use AWS S3 as my storage.
What is the issue?
People can reverse-engineer my client, and can basically start fights and upload any gifs that they would want to, pornographic and unrelated content.
Is there a way, besides image-processing to solve this issue?