Do you see potential in blockchain games?

Started by
10 comments, last by hplus0603 4 years, 5 months ago

Blockchain-based games pros & cons with respect to traditional ones

Pros: 

- the in-game assets you purchase are actually yours. This means you can use/sell them outside of the game. You can trade them with other players or people outside of the game even on cryptocurrency exchanges, or you can import the asset from other games, and more. Conversely, in-game assets in traditional games can only be used inside a particular game. ( For more info about this type of game asset, google for "NFTs , non-fungible tokens" )

- no central servers, usually this type of games work in P2P and are open source, so they are censorship-resistant, long-lasting and with no server costs for the dev team

Cons: 

- since data is persisted forever on the blockchain, someone has to pay for that storage. Every single action a player makes , is data that must be saved to the blockchain. AFAIK all blockchain games require to pay a mining fee for every single move, and this IMO is asking a player too much.

It is going to cost a lot of money compared to a traditional game, considering that each "save" operation to the blockchain is a transaction, and as such it is going to cost at least $0.001 in crypto fees, depending on the particular blockchain the game runs on. I think currently BCH is the cheapest one among those that have a DApp ecosystem , and its transaction fees are slightly below one penny.

Let's make an optimistic estimate: a player makes at most 1000 moves every hour, which correspond to 1000 transactions to be saved to the blockchain. That is at least $1 per hour of play. Isn't that too much? 

Oh.. and if we want the dev team to monetize a few bucks, the player is supposed to pay even more, by purchasing some in-game item.

Traditional games are cheaper, WoW for example costs a $15 monthly subscription to play, which is way cheaper considering how many dozens of hours you are going to play in a month. And with $15 the company is already monetizing.

Let me know your toughts, especially about the costs comparison from a player POV.

Thanks

Advertisement

IOTA could be solution for yours cons, transactions there are free. Games on IOTA tangle (blockchain) would mitigate transaction fees, however there are still pretty big issues with computing power to make transactions on any blockchain.

For example of simple blockchain game see iota tic-tac-toe github

I do see potential in dApp based games, assuming of course that blockchain sticks around long enough to make them a success.

It's a different form of serverless cloud computing really. You could, for example, get centralised serverless compute using AWS Lambda and storage with AWS S3 or DynamoDB, but blockchain lets you go *de*centralised for if you didn't fancy paying a private corp like Amazon/Microsoft/Google.

As far as fees go, it really depends on the technology selected. What you describe is a Ethereum-style approach where the users pay gas fees. Whereas on, say, EOS the developers front the fees by staking their tokens for bandwidth to their smart contract, so the app is free for users. Whether there are fees, how much those fees are and who pays them varies from blockchain to blockchain.

Another factor is whether every move actually goes into the blockchain at all, using state-channels you can settle multi-step transactions off-chain with the smart contract acting as escrow and only commit to the blockchain once the channel is eventually closed. This could mean (e.g.) only 1 transaction per session (rather than 1 per move).

12 hours ago, oskycek said:

IOTA could be solution for yours cons, transactions there are free. Games on IOTA tangle (blockchain) would mitigate transaction fees, however there are still pretty big issues with computing power to make transactions on any blockchain.

For example of simple blockchain game see iota tic-tac-toe github

Right, i did not think about computing power. The game is going to compute heavy math to form a tx every second.

That would be a big issue for real-time action games. That's why IMO all blockchain games now are turn-based , like card games, collectibles, turn-based puzzles/rpgs/fighting/board games etc.

Do you think that issue is there only for mobile , or desktop games as well ?

12 hours ago, dmatter said:

I do see potential in dApp based games, assuming of course that blockchain sticks around long enough to make them a success.

It's a different form of serverless cloud computing really. You could, for example, get centralised serverless compute using AWS Lambda and storage with AWS S3 or DynamoDB, but blockchain lets you go *de*centralised for if you didn't fancy paying a private corp like Amazon/Microsoft/Google.

As far as fees go, it really depends on the technology selected. What you describe is a Ethereum-style approach where the users pay gas fees. Whereas on, say, EOS the developers front the fees by staking their tokens for bandwidth to their smart contract, so the app is free for users. Whether there are fees, how much those fees are and who pays them varies from blockchain to blockchain.

Another factor is whether every move actually goes into the blockchain at all, using state-channels you can settle multi-step transactions off-chain with the smart contract acting as escrow and only commit to the blockchain once the channel is eventually closed. This could mean (e.g.) only 1 transaction per session (rather than 1 per move).

 

I will look into that EOS staking mechanism, thanks.

About state-channels, do you mean temporary data held in the mempool before "committing" it to the blockchain?

So that the game clients update the state of the game in their mempool for a while, say for N moves/updates. And when N moves have been made, they "commit" to the blockchain only the resulting state of the past N updates, in order to persist a "checkpoint" of the game state, not to persist every single move.

That would save data size and mitigate the mining costs a lot, but i see a couple of problems here

- it would be impossible to see a Replay of the past game sessions, since the blockchain has not all the required data : all moves should be saved for that, because it is not possible to derive a set of moves from the final result of them

- who pays the fee for each commit? If the client writes every single move to the blockchain, he is clearly going to pay the fee for his updates. But when an update is the combined result of the moves from many players, who is going to pay?

13 hours ago, Nerdeveloper said:

since data is persisted forever on the blockchain, someone has to pay for that storage. Every single action a player makes , is data that must be saved to the blockchain. AFAIK all blockchain games require to pay a mining fee for every single move, and this IMO is asking a player too much.

We're using Phantasma chain for out game. Like other PoS networks, their economy is based on 'staking' your coins (basically locking them up for a period of time) and this is used instead of computationally expensive mining. As such, the network is a lot cheaper to run, and the amount of transactions you can perform per second is relative to the amount of coins that you hold. If you hold enough coins, your transactions are basically free. 

You can also either set things up so users have to pay for their own transactions, or so the dapp developer covers the transaction costs.

Storage for smart contract state is also tied to your staked coins. If you buy and stake enough tokens (a one time cost) you get a certain amount of permanent storage within the network (which is only erased if you unstake your coins).

13 hours ago, Nerdeveloper said:

Pros

One of the reasons this hasn't taken off IMHO is that these are mostly pro-consumer things, whereas maintaining tight control is better for a big game corporation that wants to maximize profits... As such, I think you'll see smaller games forging the path here before you see Call of Duty, etc using distributed economies.

As for more pros/cons - you can make the game license itself an NFT, so players can resell their digital games (as is your right in the EU). 

As for cons though... Asking users to protect a private key is scary, as users make mistakes. If they disclose their private key to hackers, all their stuff can be stolen and this theft can't be undone. This means you're unable to provide any customer service here...

On the plus side, being unable to provide customer service means you don't have to provide customer service ?

To avoid the whole private key security issue, you may actually want to develop a secure server that uses traditional passwords and 2FA and stores private keys (in a HW module that prevents their theft) on behalf of users for a better UX...

26 minutes ago, Nerdeveloper said:

it would be impossible to see a Replay of the past game sessions, since the blockchain has not all the required data : all moves should be saved for that

We had a big discussion about this in the discord this week ?

If your game is deterministic, you can include a replay file of a realtime (non blockchain) game session as part of a transaction, and a smart contract could validate that this replay file is legitimate before allowing the results from that gameplay session to be committed to the chain.

That allows your game-state to exist as a distributed, secure database, but also for non-blockchain real-time game servers to handle all the fine grained logic, and to have fewer, large transactions.

You can also have this replay verification step be performed "off chain" and then get the results of that determination into the smart contract via use of an "Oracle node" in the network.

 

As for monetizing - instead of representing game items as NFTs, you can also store them in some internal format within a smart contract instead, which prevents players trading them. You can then charge players a "withdrawal fee" to remove the item from the smart contract and convert it into an NFT (allowing the player to trade it). If you're doing 2FA, that's probably also a good point to place a security check to prevent theft ?

Alternatively,.some networks allow an NFT to be marked as non-tradable, and you could charge a fee in your game when players want to convert it into a tradable NFT. You could use either of these to also gain some income on 2nd hand sales if you were representing your game itself as an NFT.

@Hodgman DPos actually eliminates the costs, but i don't really like it being a centralized solution, because it somewhat defeats the purpose of blockchain and cryptocurrencies. Your dev team's node is the only one that can write the transactions, or fail to do so ( it refuses to do so or it gets shut down) , so it is like a central server. 

However, i understand that for real-time games, hybrid solutions like that are necessary for the time being, since the costs would be too high with PoW mining algorithms.

Most of the issues mentioned can be mitigated with periodic hard forks. Prove your account was hacked? Remove the hacker's stuff VIA hard fork and restore it to the owner. Transaction "log" getting too large? Hard fork a new one and transfer final state over without record.

 

I'm a big fan of the UE4 eth plugin as well

Pros: 

Quote

- the in-game assets you purchase are actually yours.

what ties you to a particular asset? I get that the blockchain entries wont change, but how do you own a given blockchain entry? What if someone else claims it's theirs?

Quote

or you can import the asset from other games, and more. Conversely, in-game assets in traditional games can only be used inside a particular game. ( For more info about this type of game asset, google for "NFTs , non-fungible tokens" )

Wouldnt you need to code support for this? Just like traditional games? Could I load the skin for my assault rifle into my chess simulator with no additional code? what would it even look like


 

 

16 hours ago, Nerdeveloper said:

Your dev team's node is the only one that can write the transactions, or fail to do so

That's not how proof of stake / dpos works -- From a high level view, it doesn't massively change the way that transactions are added to the chain from the typical POW systems (the "miner" is just chosen differently).

i.e. Typically your dev team only runs test nodes on a private test network so that you've got full authority to pull fake money out of thin air for testing purposes.
The actual decentralized blockchain network has it's own nodes that can each take on the responsibility of processing transactions (POW = a miner solves a hash puzzle, POS = a miner wagers money that their transaction validation is correct - and anyone who can show their validation was fraudulent can claim that wager). If any of those nodes fails and drops out of the network, other nodes can take on the responsibility for them... With DPOS there's a smaller number of "elected" nodes that can fill these roles rather than it being a free-for-all, but those elected nodes are still interchangeable in the case of failure, and don't have to be affiliated with any particular app.

2 hours ago, ConorH said:

what ties you to a particular asset? I get that the blockchain entries wont change, but how do you own a given blockchain entry? What if someone else claims it's theirs?

The assets belong to a wallet. You can prove that you're the owner of a wallet by signing something (anything) with that wallet's private key. To "log in" to a game using a wallet as your ID, the game sends you a random string as a challenge, you sign it using your private key and send it back, then the game can check whether your response is legit by using that wallet's public key.

10 hours ago, conq said:

Most of the issues mentioned can be mitigated with periodic hard forks.

If your network allows one user to perform hard forks unilaterally, on demand... then it may as well be a centralized system under that user's control.

2 hours ago, ConorH said:

Wouldnt you need to code support for this? Just like traditional games? Could I load the skin for my assault rifle into my chess simulator with no additional code?

Yeah for the items to have an effect in your game you need logic for it. e.g. you can piggyback off a popular game by implementing support for that game's items to do something in your game.

However, you can display an inventory list, show marketplace listings (auction house, etc) without coding specific support for each game/item.

This topic is closed to new replies.

Advertisement