Today, I just had experienced a game developer’s worst nightmare. Our silly mistake of a spelling error lead to the inflation of our own game’s economy.
A few newcomers needed some admin commands to be able to test the game on the main-place, testing ground wasn’t an option. We have a script that gives players admin if they are a whitelisted member. Upon whitelisting a few userIds, we made a mistake in how evaluate whether they get admin or not. Instead of checking whether their id was valid (==), we accidentally checked for (~=). A mistake that shouldn’t have happened working with such a delicate component of the game, but it happened nonetheless and there’s nothing we can do about it.
Big oopise, however went unchecked for a whole week and only got news of it today (the last day of the week). Therefore we had no choice but to rollback everyone’s data for at least a week. Although backlash was expected, and we got plenty… People were frustrated, we get it but refunds is non-negotiable for obvious reasons.
A suggestion was to read from an endpoint and infer userId and purchase amount, but weren’t sure if it would be accurate and reliable. So we settled with a solution we thought people would be happy with; we reimbursed their progress with a hefty compensation (in-game hard currency), an amount that they realistically wouldn’t have reached playing for a week.
What could we have done better?
nonetheless and that kind of hostility demotivates one to continue working on the game, making us very tempted to give everyone admin and let them roam free to get their data back. 