Comment on Please Stop

<- View Parent
DaleGribble88@programming.dev ⁨3⁩ ⁨months⁩ ago

Sure! So some students of mine were working on a multiplayer video game that was started by a different group of students the previous semester. The first group of students made a design choice that, to over-simplify, basically tracked achievements and milestones on the client side and then synchronized those achievements to the server. Players could cheat the system by sending malicious packets of achievements to the server. Some achievements could only be completed by a single person in the game, so this was a big problem for the 2nd group of students to overcome. Faced with the choice of rearchitecting the game to be more authoritative on the server and less resilient to frequent disconnections, which affected some aspects of the game, or creating a logical and verifiable sequence of in-game events on the server side. The students went with the latter, and implemented a Lamport clock using a blockchain to verify the authenticity of the events, and prevent a rogue student from updating the game later to give themself a bonus. Basically, along with needing an authoritative sequence of events that is protected from user interference, it also needed to be protected from developer interference.

It was kinda similar to that situation a few years back of the EVE online developers playing the game and giving their guild members certain bonuses and special in-game items. The solution there was to fire the malicious developers, but I can’t exactly fire an entire class of students from an educational project.

source
Sort:hotnewtop