You're totally right — it doesn't make sense for every DApp to run on the mainchain.
There's an inherent tradeoff between performance and decentralization. The major blockchains like Ethereum focus on decentralization above all else, because it's extremely important for a cryptocurrency where there's a real financial incentive for someone to attack the network. Performance is important, but shouldn't come at the cost of decentralization. There's a ton of smart people working on scaling Ethereum, and they will scale, but not to the level required to run WoW and Twitter simultaneously on the mainnet.
Which is why we think scalability will be achieved through sidechains. A sidechain can play by its own set of rules. Something like an online game or community on the scale of Hacker News needs to optimize for realtime performance, but can make reasonable tradeoffs for security — on a blockchain data integrity is already ensured by cryptographic signing, and you can't "double-spend" a comment or post, so there's little financial incentive to attack the sidechain to delete a historic comment.
I'd say the motivation for learning to build blockchain-based games now is because the infrastructure for this tech is coming very soon. We're in the process of building out one game as a demo to showcase Loom Network, and are talking to a couple other game studios who want to build games on our platform.
Things like CryptoKitties may just be a novelty right now, but they're paving the way for new types of game economies that that we've never seen before.
One of the CryptoZombies creators here. This comment is spot-on.
In the realm of gaming, digital ownership of in-game assets is one area we're really excited about. Economies have already sprung up in many online games around selling items for real-world cash. With something like ERC721 tokens on Ethereum, you would truly own your items outside of the company's web server. No one could take them away from you, the items could be provably scarce, and you would have full control over selling or trading them on decentralized marketplaces (in a secure way).
Or take collectible card games like Magic the Gathering — these types of games are an ideal fit for the blockchain for the same reasons as above — rare, collectible, and tradable assets with a real-world value.
You could even have multiple games or apps that read the same crypto assets. This means you could build a new game, but use the assets of an existing game with a large user-base. You would be able to tap into a large community of players who could instantly jump into your game world with their existing characters. This lends itself to some really interesting new possibilities — imagine a World of Warcraft type game, where players were playing in the towns and worlds created by players of a totally different MineCraft or Sim-City-like game. Two sets of players playing entirely different games, but they could be playing in the same game-world where their actions have real effects on the other game through decentralized shared data.
As you mentioned, there are currently serious limitations for how much can be done on-chain. Our solution to this scalability problem is have DApps run on their own sidechains. So the in-game tradable assets would be hosted on Ethereum, while the heavy game logic and the rest of the client would live on a sidechain. This way the entire game would be running on a blockchain instead of only a small part on chain and the rest on a centralized server.
One of the huge benefits of a game running on its own blockchain is forkability. There have been plenty of examples in games where the developers released a change that nerfs a favorite character or spell, or the creators shut down the server entirely and stop supporting it.
If the game were running on its own blockchain, the users running nodes could reject the software update and hard fork. They could continue running on a legacy version of the client indefinitely, so long as there were still nodes running it. Basically the entirety of the game data is stored on the sidechain, so both sets of nodes could go their separate ways and play the version of the game they prefer. And no one could shut down the game server as long as there were nodes willing to support it.
CryptoZombies is just intended as an intro to building apps on Ethereum to get more developers in the space. Up until now the focus on blockchains has been on financial apps, but we think the potential is much bigger than that. We're betting on games being one of the first areas to bring blockchain tech to the mainstream, and we hope CryptoZombies inspires developers to get onboard!
The hackers still have their assets as Ethereum Classic. The fact that ETC lives on is a testament to how nobody could 'take away' what is listed as theirs on the blockchain.
But I don't buy this argument for video games. Most of the game code ought to live outside of the blockchain and that non-blockchain code/art would be difficult to reproduce let alone subject to copyright claims or closed source.
Another random video game thought: Would item storage on blockchain mean that every player could see the inventory of every other player?
The "no secrets on the blockchain" aspect has already played out in subtly interesting ways in Cryptokitties. I have a tool that lets me see in a moment whether a given account has gained or lost money, and how much, and how much they were willing to spend. The marketplace is a completely open book, with real time sales data and a full history. You can't breed kitties in secret in pursuit of a particular breed. You can't (easily) buy out all of a given trait on the marketplace to create a false sense of high demand. And yes, you can see the entire kitty inventory of any other CK player.
That's based on one current implementation of a gaming DApp.
It's worth noting that you can achieve semi-privacy through either on-chain/off-chain hybrids, as well as some other emerging efforts.
One example I've been playing around with is to use the multi-address approach:
In your database each "player" consists of multiple addresses each which are OR-multi-sig wallets, for various inventory elements and stats.
When they log in via a system like metamask, their main wallet (PlayerID) is unlocking an account which in your games database (off-chain) ties together another set of "master wallets" together with you've given the player private keys for - for each item, or each set of X items, in the players inventory you are setting up a new smart contract that is a OR-multi-sig wallet.
For this wallet, which holds the item, there are two possible signatories the first being the game's main contract, so that the game can add/remove items from players based on game events, and then one of the players private keys.
While you'd likely need a custom fork of metamask to handle the multi-key environment, you've made a system where:
* Player's inventory cannot be know from one private address.
* Player's retain full control over the items.
* Player's have private key access to the items in case the service goes down.
* You store player data off-chain, but in a way that your service is not crucial to the game.
* Player assets can be traded off-game without updating the game service.
* Data about individual items is still public, and does not need to be obscured, oraclized or stored off chain.
The current blocker isn't any specific blockchain technology, but just having a good multi-key management UI for users.
Brilliant. Definitely interested to see how this space evolves! Metamask is a great first step to helping bring wallets to the masses in the web browser, and it continues to improve, but it certainly isn't what a mainstream web wallet extension will look like in a couple years.
The DAO fork happened in what was effectively Ethereum's early beta phase, when the community was very small, and there was next to no activity on the blockchain. A hard fork right now would be far more disruptive due to the amount of activity taking place on it, and would face from more opposition to a much large community.
Every participant has the choice to stick to the old protocol or use the new one. Or use both.
If I create a Bitcoin fork tonight and somebody buys 0.1 Bitcoin from me in the forked chain, what's wrong about that? The price of Bitcoin my forked chain would obviously be another matter.
Just took a look at your app for the first time. While I already know Solidity, I just wanted to say good job on making the subject approachable. It's hard to break concepts down and you guys did a really good job of it. You should be proud of your accomplishments.
You guys did such a good job on this - I wish you would launch CryptoZombies as an actual game. There needs to be a consumptive use for CryptoKitties to help with the over-supply.
There's an inherent tradeoff between performance and decentralization. The major blockchains like Ethereum focus on decentralization above all else, because it's extremely important for a cryptocurrency where there's a real financial incentive for someone to attack the network. Performance is important, but shouldn't come at the cost of decentralization. There's a ton of smart people working on scaling Ethereum, and they will scale, but not to the level required to run WoW and Twitter simultaneously on the mainnet.
Which is why we think scalability will be achieved through sidechains. A sidechain can play by its own set of rules. Something like an online game or community on the scale of Hacker News needs to optimize for realtime performance, but can make reasonable tradeoffs for security — on a blockchain data integrity is already ensured by cryptographic signing, and you can't "double-spend" a comment or post, so there's little financial incentive to attack the sidechain to delete a historic comment.
I'd say the motivation for learning to build blockchain-based games now is because the infrastructure for this tech is coming very soon. We're in the process of building out one game as a demo to showcase Loom Network, and are talking to a couple other game studios who want to build games on our platform.
Things like CryptoKitties may just be a novelty right now, but they're paving the way for new types of game economies that that we've never seen before.