Gamification Options?


#1

I was wondering if there were any plans to release gamification tools for HiFi? Some kind of badging and or points system? I think that would be something worth considering


#2

In theory, this can already be done, and there are a few ways you can do this. What makes it tricky is that you have to remember that you cannot rely on account data, as not everyone will be logged in.

So here is just what I would do, if I had to make an approach to the idea.

  1. A new user comes in. We ask if they would like to play, and if yes, generate the basic user authentication data we need, sort of like our own version of the wallet. This data can then be stored in their interface.json, since it’s easy to access (more on this later).
  2. If the user already has an account, we check their basic authentication data that we generated when they agreed to play. We can do this by having the authentication script check in with the entity server script, who has access to a database (localhost only php/mysql in my case, but you do you). If the data is good, we then send over the information we need back to the user (using the same way we made the authentication) along with a ‘session’ ID, which is a secret not stored in storage and only kept in memory. This is so we know if a message is sent over, it came from the server and not another player attempting to screw around.
  3. Updates are simply broadcasted to the respective entity server scripts, which act as an in-between point between the user and the database.

Now, an obvious caveat with the concept is writing to interface.json, since any script can read it (like a browser cookie). In actual practice, you would want to brush up on file i/o handling and write a ‘profile’ file that contains the authentication data, much like the wallet

In fact, if you wanted to, and I’m not sure how this could be done, but a theory you could do is also make users have to buy an item from the marketplace that acts as an ‘account’ for your game. You could then use the blockchain to authenticate not only the user but that they truly are the person of said ‘account.’ The only issue is I have no idea how that would be done, assuming the transaction ID is even available at the moment. This would also mean users needing wallets… which means needing accounts… which is another topic in itself.

Hopefully this gives some inspiration or ideas towards a working concept.


#3

I agree

The downside is that a troll could just “override” the identity token, meaning it would be mutable.

There should be a way to make a user-controllable identity token only they can reset / restore.

Best way would be to bind it to the wallet, while username is just for High FIdelity’s service.