I'm interested in the conceptual (programming language agnostic problem) process of sending a game object to another player of the game in exchange for another game object without a face-to-face online presence of both parties. This should be done so that in theory in game exploitation of inherent bugs of the trading system would not be possible to dupe items or steal items from another player. In this case I am not considering cheaters, (I strictly define cheating as manipulating of in game RAM/saves and NOT exploitation of programming/inherent bugs/flaws) only the ability of users to dupe or steal items from strictly within the game itself.
Possible method idea to solve this:
- Player 1 (P1) and (P2) meet out of game to arrange a trade of in game loot and come to an agreement amongst themselves.
- Both players go in game to set up the trade by giving their item "to the game" to hold and remain inaccessible for the duration of the trade. In exchange they are given a procedurally generated alphanumeric encryption code (such as pokemon mystery dungeon or similar) specific to themselves and the other player's name and ID number (similar to the mainstream pokemon games)
- Both players share their codes with each other and enter the opposite code into their game.
- a confirmation screen appears for both players showing the other player's offer. if a player accepts the offer they are given another code to give to the other person.
- Both players enter in the other's confirmation code to their game and both players receive their item in game.
- not sure but may additionally need both players enter in a thank you code to truly confirm both players got their items, but I think that is covered by the confirmation code because if P1 confirms and gets P2's confirm then that means P2 confirmed also. And likewise if P2 confirmed and received P1's confirm then P1 confirmed.
But as I think of it, if P1 accepts and P2 accepts and P1 gives the code but then P2 does not, then P2 is able to get his desired item at the cost of his item and P2 is now a scammer to P1 because P1 was denied his new item, (it vanished) It would cause players to incrementally trade items of lesser worth because they wouldn't stand for losing that great loot they couldn't use but would still be valuable; wasting people's time and discouraging trade. Also a thank you code would add time to the process and not cause any added security. I actually think this is a real world problem of agreements, trading goods, and trust that requires synchronous trade. I think this cannot be solved in a game any more so than in real life. Correct me if I am wrong.