That is not what I am debating. Yes, it is resource intensive, but if you are a studio investing in an MMO, looking to make it long-term… you would think an investment in such systems would make sense for exactly the situation that is occurring right now.
I totally agree, but you always have to weigh up how much data you absolutely need. That AGS would like to log absolutely everything of changes is sure, but that is simply not possible without significantly affecting the performance.
Right now, my hope is that AGS did not roll back because they are working to patch up the problem first, because what would they do otherwise? Shut the game down while they work on it? So, I don’t think them not having roll-back’d already means 100% they will not, so I will hang on to my little belief.
At most, I’d imagine major MMOs record a ledger of “User A generated qty X of item Y”, “User A traded qty X of item Y to user B”, and so on. If you keep that level of record keeping, you can always determine who duped an item by running through the ledger, re-applying all the transactions with additional authentication. It doesn’t require keeping track of every last instance of an item. It allows stacking and splitting. It’s also useful for things like currency - if you have WoW-style copper, silver, and gold, you don’t have to treat 1 gold as the equivalent to 1000 individual copper ID tokens, and don’t have to brainstorm weird item exchange processes that will only further bloat your data and your transaction logic.
AGS certainly have such a system.
But now the problem, the current dupe was to cancel a sellorder and because of “server lag” the “refund” of the items was executed several times due to a bug/bad implementation.
This is an error case, the normal logging then does not work cleanly.
Wouldn’t the refund be logged twice then?
The system should force log on certain actions. As in, you cannot have a refund issued without it being logged, they would be in the same block of code execution. How would this create an issue?