Technology

Is a Decentralized Video Game Possible?

This is probably going to be the single most confusing article I will ever write.

Ben Stokman
OneTwentyEight Blog

--

Listen to the audio version

Recently, there has been interest throughout the Internet of decentralized technology like Bitcoin and Etherium; and I was wondering if the same type of decentralization can be implemented in a video game.

What is Decentralization?

Decentralization is the quality of a system not having any single party having divine control over the system, or being able to cause it to fail.

Structure

I will design the game off of a Blockchain format. Blockchains are very efficient, do not require trust, and are insusceptible to latency errors.

Listed Servers

Most video games with multiplayer compatibility have some way of listing community servers, but how can players find games if nobody can own a list of where to find those games? My solution to this was to have a server browser, where the server IPs are listed on all the nodes, much like how the transactions of a cryptocurrency are stored on all nodes of a Blockchain. If players come across a node that constantly has different IP lists than all the others, the players can ignore, and report, that node.

Engine

Due to the fact that people will inevitably reprogram the game to be in a better engine (or version), there needs to be guidelines on how the game environment is processed. There must be zero bugs in the code for people to update the game engine. Bugs in the game, like missing map borders, are okay. If there is a single bug in in the code, games with different versions of the game on the client may not be processed correctly in parallel to the server, or vice versa; while bugs in the game will not. To fix this, very specific and lucrative guidelines must be drawn, including the smallest of details like how to round.

Trading

In order to have a decentralized trading system, there must be a blockchain. A Blockchain, in order for each node to stay in sync, and not have to process every single transaction, must have mining. Mining (not the underground type) is taking a data set, modifying it a little bit, and performing a math problem on it to perform some function, whether verifying transactions, or mining the next block. Even with a combined hash rate of 3 million trillion hashes per second, the target takes around 5 minutes to reach, and the mining costs a lot to the miners. The miner who mined the block receives a reward based off a set formula. The rewards are generated out of thin air, and added to the Blockchain’s market cap. The transaction mining, however, is taken out of the account of whoever sent the transaction.

Total estimated hash rate of the Bitcoin Blockchain

Both types of mining require the use of decimal places at some point; the block mining deteriorates over time to discourage people as computers get faster, and the transaction fees are much, much smaller than the transaction itself. No matter what, the mining rewards cannot be an item, because items are not splitable. To fix this, the universal currencies must be a number accounted with an account, and must be reasonably splitable so that the transaction fees will be small enough for a small transaction.

The high processing power required for mining will lead to people joining up into large groups to cut down costs; if there were only a few groups that controlled everything, the system will not be decentralized enough, and will lead to a few big companies completely deciding the future of the game.

If the incentives to mine are set high enough, people will not need to collate together. However, this arises another problem, if the mining rewards are set too high, inflation will be too high as well. This seems like a paradox, however, there is a fix for this: difficulty.

If the market cap is high, a large reward will not inflate the value too much; though the market cap must be distributed amongst many players; or otherwise, the previously large reward will seem like nothing in the hands of the few. There needs to be a system to account for both the amount of wealth in each account, and the cost of mining. If the reward of mining, and the difficulty of mining was based of the size of the block, the reward would even themselves out.

When a Blockchain starts off with usually a few people using it; the size of the blocks are smaller than they would be if more people are using it because there are less transactions.

Generally, when there are less people using the Blockchain, there are less people mining it. If the difficulty was proportional to the size, the processing power required would be less with less people using the system, and therefore mining it.

However, there does not need to be an increase in the mining rewards, because as more people use it, and the total amount of processing power is required, there are more people mining, and there is more processing power required per miner. However, as more people use the system, the value of the mining reward increases proportionately, along with the difficulty; and therefore, the incentive will still be enough, whilst eliminating all of the problems.

Updates and Patches

In a video game, every weapon, player, prop, and behavior of everything needs a list of attributes for everyone, players and servers alike, to follow. From time to time, these attributes need to be tweaked a bit for the balancing or functionality of the game. But to allow anyone to make a change to an attribute whenever they want would be anarchy; somehow, the nodes of the game will have to be able to vote on a way to change these attributes while still not going too fast as to outdated the servers when they just updated. I will come back to this after I address the next issue.

When a node is presenting a new block of transactions, the node will also add a little file detailing the changes it wants to make. After a certain number of blocks, the Blockchain will take the most occurring suggestion, and apply that in an update. This will allow for changes, while still allowing the majority of the community (which is usually the part of the community that wants the best for the game, and are more likely to spend more money on mining machines) to make the decisions for the path of the game.

However, taking each suggestion as its own is not a good idea. Sometimes, if there are two ways to change something that requires multiple suggestions, what results may be something that does not work. There is a necessity for grouping of suggestions into one main suggestion. For example, a suggestions concerning a weapon will automatically be grouped together.

As an example, take three competing changes to a weapon. Change A adds +10% damage, +30% health on wielder, and -25% firing speed. Change B adds +25% health on wielder, +30% damage invulnerability, and -50% movement speed on the wielder. Change C adds +10% damage, +25% health, and -50% movement speed on the wielder. When the results come in. Change A got a total of 385 votes, Change B got 365, and change C got 274 votes. If the Blockchain used the mode of each individual change, the final result for the weapon would be +10% damage, and -50% moving speed on the wielder. While all three of the competing changes might be balanced weapons, the final product could be worse off than the original. If the Blockchain used the mode of each general change, change A would win out.

Application & Uses

Programing this game will take a long time, and will probably not be worth the trouble, as the party who programs it cannot recive any money for their work, and therefore might not want to program it. However, decentralizing a game will allow for the community, and not the game developers, to choose the future for the game.

--

--