I'm on the verge of getting the betting system working in my game and I need to get it done so it can be tested live.
User beware, the game will be very easy to cheat at because choices will be transparent on the blockchain. Therefore you should only bet against someone that you trust not to cheat. On this same note, only people who know how to scan JSON info on the blockchain will be able to do this so most people here won't be able to. Surely there are also some people you'd trust not to cheat you out of 0.01 SBD. :D
The process of obscuring the chosen skill will effectively double the lag time of the game. This is significant because it takes up to 3 seconds to post an operation and around 6 seconds for full nodes to broadcast that information in block form.
I plan on eventually implementing a security where you first post your choice in SHA256 hash form using a temporary password (nonce). It will look like gibberish.
Example:
14069429150ABCBF244C4C2FB2C4C46A49C93CA9457263ECD9EBB176DE3A58BB
Then, after both players have made their decision (or maybe just the first person to choose) the password will be revealed. For example, if you chose 'skill3' with a password of 'random1234567890' the client would hash
'skill3random1234567890'
into
'F2CA8B67E384311724AEE9805AB93649933E170FDDED2CEB286A853C448222C2'
Then, after your opponent has done the same thing the temporary passwords are revealed and the choices will be verified. I think this will be a pretty effective way to stop people from cheating but still run fully decentralized on the blockchain. I'll have to setup a way to seed temporary passwords using random numbers. This way you can use the same seed password for multiple swings in game rather than having to come up with a new password after every single action.
There's going to be quite a bit of lag involved here because of how inefficient blockchain tech is. However, I plan on getting around this annoyance to allowing multiple games to be played at the same time. Doesn't matter if a game takes 5 minutes if you can play 10 at a time.
Honestly, this is the ultimate goal, because I want to show that an inefficient decentralized app running directly on the blockchain will take up a lot of resources and make credits more scarce. This is exactly what Steem needs for people to realize that powering up even a small amount of coins (say 50-100) is a big deal. It's practically impossible for a million people to power up even 100 coins.
Hopefully games like this can become the CryptoKitties of Steem. Ideally, RC costs would skyrocket and everyone would be incentivized to power up a little bit. This, in turn, would dry up the liquidity that's been pushing the market down; Wishful thinking indeed.
Pentaskill
Oh right... I changed the name of the project from Block, Paper, Scissors to Pentaskill. This is a play on 'Pentakill' from League of Legends (meaning you killed all 5 players on the other team within a short timespan). I think this is a fitting name for various reasons (5 skills) and is a bit less clunky than Block, Paper, Scissors or Five Point Combat.
Wish me luck!
This development has taken much longer than I thought it would (as programming always does). However, Hopefully by decentralizing the development and ownership of the frontend my game will inspire other content creators to jump on board and make their own version of the game using my backend. One can hope.
Return from Still working on my game. to edicted's Web3 Blog