I am starting to build an achievement system. I have been reading other posts about achievements, and finally I decided to post my thoughts.
I have read a good approach would be storing meta-data in the title data and storing player progress in its own read-only data.
So I can use cloud script to make achievements progress checking both data.
I am not using my own game server, but I am trying to avoid client api calls for user data etc.
Also, the matches are up to 8 players. It's a realtime gameplay.
Since my game uses photon for multiplayer, I was thinking to take some more room properties through photon webhooks. I am using shared group data for potential data of the room (game state, the result place - depending on the member amount left in the group...).
I call raise events to remove a member from the shared group, if he has been eliminated, for example...(and updating others result place) and I am also taking the game state from webhooks.
But I think I could jump to the next level taking some more data from room properties, like some statistics for each player, so I can store in the data of the player in the shared group, and update its achievements when the game finishes.
Have I explained correctly?
Is this a crazy idea? Should I manage achievement statistics more locally and send to the server when the game finishes?
I know it is potentially hackeable, even though I could check that the received data have sense.
I think saving data through room properties and update in the cloud script, could be more secure, what do you think?
Any suggestion is very welcome.
Thanks for reading!