There is a lot of incomprehension about blockchains. Misunderstandings about what blockchains are and what they do. And ultimately, misunderstandings about what they are good for.

One example of such a misunderstanding comes from the Youtube channel Extra Credits and their video titled Blockchain Games - Can Blockchain Technology be a Game Mechanic?. According to Extra Credits, “[a blockchain] is a distributed database that is increasingly hard to tamper with.” This description is not false per se, but it is reduced to a set of vague keywords and omits important features. As a result, the description is useless to work with, to design games.

Extra Credits’ idea

Extra Credits presents the following idea: In a massively multiplayer online role-playing game (MMORPG) some events would be recorded. For example, there would be a record of your hero defeating a particularly tough boss, or reaching the very end of a dungeon, or clearing out a whole orc camp. Moreover, equipment involved in these recorded feats would receive a name (say “Bane of Grimmlock” or “The feller of orcs”) and stat bonuses (say “+2 strength” or “×1.5 damage against orcs”).

This idea is good game design. It gives the players a sense of importance, a sense of being able to leave an imprint on the world. It also means that there is a bigger variety of items because a single sword or shield is declined in a myriad of meaningful ways.

In addition, it lets the game evolve its own lore. Items that were used to defeat an event-only, limited-time boss are infused with a sense of history. Imagine if ships in EVE Online gained nicknames when they survived important battles. The ship’s crib sheet (“destroyed 21 ships in the Bloodbath of B-R5RB” and “carried the first supply mission to Ix33”) would cement the player-made lore in the in-game descriptions.

Mismatched impedance

Extra Credits’ idea is good game design, but a bad match for blockchains: it should be implemented, but on a plain, run of the mill, good ol’, buzzword-free database.

Specifically, there are drawbacks to blockchains which would be bad in the context of an MMORPG. One such drawback is that as far as databases go, blockchains have a horrendously high latency. Leading to the following hypothetical scenario: You go fight that tough boss a friend recommended, get some adrenaline rush when your character almost dies, you make it, you shout excitedly with your party over teamspeak, and then nothing for a minute, two minutes, really, just a load of nothing. Six or so minutes later, after you’ve already teleported back to the nearest town, you’ve actually walked away from your computer to take a bathroom break, the moment has definitely passed, you get an in-game notification “your sword is now the Bane of Grimmlock (+2 strength).”

Another drawback is that events recorded recently may be rolled back when there is a branch switch. It is possible to avoid this by multiplying the latency.

Yet another drawback is that not all events that are sent to be recorded in a blockchain are actually recorded.

And most importantly, MMORPGs are heavily centralised. The central server brings multiple players together in the same fictional universe, it enforces rules by keeping together all the data, it synchronises the game of all the players together. The events that Extra Credits wants recorded are generated by the server: the server counts how many hit-points a boss still has, the server subtracts from it the damage that players inflict, the server checks whether it reaches zero. To put it simply, the server is the central authority for what did and did not happen in the virtual world. This centralised architecture is diametrically opposed to the core principle of blockchains.

Blockchains are just a terrible match for MMORPGs.

Looking for a good match

There are games that may benefit from blockchains. But instead of just taking a game idea and saying “well, it requires a database and blockchains are a sort of database aren’t they?”, let’s instead look at the specific features of blockchains and see what kind of game matches these features.

Blockchains are slow
They process only a handful of transactions per seconds and the confirmation of any transaction takes minutes. The actual figures depend on the specific parameters and algorithms of each blockchain, but they are always slower than centralised servers.

Blockchains are decentralised
There are two, often conflated, meanings to the decentralisation. First, the software that supports the blockchain runs on each peer, and each running instance connects to a hundred or so peers to exchange information with. For our game-design use, it means that there is no central authority that dictate what is or is not recorded. The authority is distributed amongst the players. Second, the players (the participants, the nodes, the peers) emit transactions that affect the state recorded by the blockchain.

Blockchains are good at handling scarcity
In a way, blockchains’ handling of scarcity is a counterpoint to the general trend of the internet: Napster and BitTorrent are algorithms that efficiently copy files across large swathes of machines, duplicating files and distributing them. Digitalisation itself (the use of numbers to represent media) is somewhat antithetic to the notion of scarcity: once a piece of music, an image, a video, or whatever else, has been digitalised, it can be copied ad infinitum for little to no cost. Blockchains are a set of technologies that support digital scarcity: they can be used to assign different resources to different owners.

With all these characteristic in mind, we are looking for a game, or a significant component thereof, that

  1. is latency tolerant,
  2. has no central authority to dictate the state,
  3. has the players themselves affect a shared state, and
  4. is scarcity based.

The cards of a TCG

Leaving aside the matter of matches (which I will get back to later), a good match for the characteristics above is Trading Card Games (TCG). This is not surprising considering the original question from Extra Credits: “Can Blockchain Technology be a Game Mechanic?” in combination with the current use of blockchains for trading (virtual coins) and the trading mechanics of TCGs.

In a TCG, the players buy cards to build a personal collection. They can either buy new cards from the publisher or buy second-hand cards from other players. They then build a deck out of their personal collection by selecting cards that work well together. They use these decks to play against each other.

For the purpose of example below, we consider a hypothetical block-chain based TCG: BlockCards™ published by Wizzies of the Blocky Shores™ running on a blockchain called CardCoin™.

Acquiring BlockCards™ cards

As a player, you can buy redeem codes from Wizzies of the Blocky Shores™. You can use these redeem codes to call a distribution smart contract on the CardCoin™ blockchain. The distribution smart contract hashes these codes and compares them to known hashes and, if there is a match, transfers ownership of cards to you. These interactions can be abstracted away by a graphical user interface, freeing the player from having to perform low-level interaction with CardCoin™.

These redeem codes and distribution smart contracts can handle both booster packs and limited edition cards. It is not entirely trivial to handle booster packs because of the need to select cards with some degree of randomness. There are several possible approaches (randomising the redeem code so the player doesn’t know which of the possible non-random booster packs is bought, using an entropy oracle on the network, extracting entropy from previous interactions on the blockchain) the details of which are out of the scope of this article.

Players can also trade cards amongst themselves. To facilitate these transaction, the CardCoin™ blockchain tracks ownership of cards amongst players as well as a coin. This allows card-for-card exchange as well as card-for-coin exchange. Alternatively, some in-game resource cards (e.g., the land cards of Magic: The Gathering, the energy cards of Pokemon Trading Card Game) can be used as a coin-equivalent. (Obvious clever bit of design: the in-game resource is coin.)

A nice possibility for this game is to make trade an integral part of the game. Similarly to how some Pokémon only evolve when they are traded, some BlockCards™ are affected by trade. A card representing a wizard might have some perks, specifically those related to their alchemical lab, reset when traded, as if they had not been able to transport all their equipment when travelling from one player’s camp to another; these perks can be acquired again. A card representing a ranger might gain perks from being traded, as if having travelled from one player’s camp to another had honed its ranger skills.

Introducing new cards

There are two separate aspects to the introduction of new cards: the design of new cards during which Wizzies of the Blocky Shores™ decide what new cards will be available, and the publishing of new cards during which Wizzies of the Blocky Shores™ make the new cards available to the players.

The first aspect is mostly similar to the process that exists outside of any blockchain consideration. There are, however, a few possible variations. For example, the blockchain might guarantee that, for a given metric of card power (say an average of its numerical scores), the power creep is limited to a certain growth rate. In general, game designers try to maintain power creep within a given span, but this can actually be enforced by the code of CardCoin™.

For releasing cards, Wizzies of the Blocky Shores™ publishes new distribution smart contracts. These distribution smart contracts are signed with a set of keys which guarantee their provenance. The blockchain accepts these distribution smart contracts that introduce new cards only when they are signed with the specific set of publisher keys.

In addition to these usual publishing steps, there are other ways that card can be created, making use of blockchain technology. One example is that you can recycle some cards: you can destroy any card to get a fixed amount of coin instead – or swap any card for a fixed number of resource cards. Another example is that cards can be combined: you can craft your own buffed warrior card by permanently combining a warrior card and a magic item card. Another example is to use Cryptokitties-like mechanics to generate new card: use your barracks card, blacksmith card and some coin to obtain an armoured warrior card.

Guaranteed scarcity

The code of CardCoin™ can guarantee some level of scarcity of some cards. For example, Wizzies of the Blocky Shores™ can publish a set of new cards that contain a no-reprint flag. This no-reprint flag renders invalid any future operation that would introduce the same cards.

Another possibility for Wizzies of the Blocky Shores™ is to publish a set of new cards that can only be redeemed during a limited time. The distribution smart contract that handles the redeeming of these cards simply refuses any operation after the redeeming deadline is passed.

Cards used in championships or special events

Because each card is an individual token, the ownership of which is tracked through CardCoin™, cards that have been used during championships, especially to win, can be traded as a rare collector item. (There are details below about playing games and running championships.)

Even better, the cards that are used during special events can be affected by the event. For example, if you play during the Summer Rapid Games Tournament, all the cards of the deck you use during the tournament receive a permanent buff. You can keep using these cards that have been made better by use, or you can trade them for a higher price than the stock version.

Playing with the cards

Whilst it is in theory possible to play card games with arbitrary delays, they are mostly played within short periods of time, each turn taking at most a couple of minutes.

Centralised servers can be used for play whilst the CardCoin™ blockchain is used for buying and trading cards. To help with synchronisation, an escrow smart contract is put in place for each competition: you transfer your competition deck to the smart contract, the central server registers you with the escrowed deck, the escrow smart contract sends you back the cards automatically at the end of the competition.

Fans can run their own play servers and introduce their own escrow smart contracts. Moreover, they can set restrictions and rule variants for their games. For example, their escrow smart contract accepts 30 cards instead of the standard 60 from the official rules.

Benefits form the blockchain

As with any such idea, it is important to look back and ask: Why do I need a blockchain for it? What do I get from using a blockchain for it? Can it be done without a blockchain?

Distribution
The distribution of boosters cards and other is open. Specifically, every player can check what is the algorithm that picks the cards of a booster. And the rules apply equally to all players.

Ownership
Cards that are bought are entirely under the control of their owner.

Second-hand market
The trading of cards follows a set of hard-written rules, but it is open and under the control of the players. In addition, it can be an integral part of the game by adding side-effects to card trades.

Distributed community effort
Players can run their own servers, experiment with alternative rules, organise their own competition.


Appendix: Cryptokitties

Cryptokitties is a blockchain thing in which people buy, sell and breed zoomorphised digital assets. In simpler terms, you can buy a Cryptokitty which is represented visually as a drawing of a cat. Each Cryptokitty is given a different, unique visual representation. You can buy more of them, and you can sell them. You can also breed two Cryptokitties together, thus obtaining a new Cryptokitty which possesses some visual characteristics from each of its parents.

Vox made a video explaining what they are.

Extra Credits, in the video mentioned above, criticises Cryptokitties for being a cash grab and a bad game.

However, Cryptokitties is a bad game in the same way that a slideshow is a bad movie. Maybe the main problem with Cryptokitties is that they pretend to be a game, that they label themselves as a game. A much better point of comparison for Cryptokitties is Beanie Babies: a collectible series of plushes.

Wikipedia gives the following list of factors that contribute to the collectability of Beanie Babies. Matching those factors onto the Cryptokitties is left as an exercise to the reader.

I don’t collect Beanie Babies or Cryptokitties. I don’t really understand why people would pay as much money for either of these specific products. I guess some people enjoy collecting them, looking at them, searching for the specific ones they like, hanging out with people that have the same hobby, etc.

As far as a digital collectible goes, Cryptokitties is alright. They have the breeding gimmick which leverages their digitalness.

But as a game, they are terrible.