StarTrader.io: A blockchain game.
--
When one uses a blockchain to host the services of an online game; transactions become actions and for this reason, the scope of a game that a blockchain could host becomes subject to the action processing times of the underlying blockchain and its decentralised network.
I’ve been pondering on the concept of games since a young age, scrawling crude designs on paper with crayon as young as I can remember, often sending those pieces of A4 paper to game publisher postal addresses that I could find on the back of the video games boxes which my parents supplied for Christmas or birthdays .. of course to the reception of polite templated responses from administration staff. Often I am unsure if my ideas or designs have come far since those crude crayon scrawlings.
With the advent of blockchain becoming a mainstream interest, many people have jumped on somewhat of a bandwagon to decentralise everything one could imagine using a blockchain for. In many instances, a blockchain proves to be non-viable due to its overheads which only pay to some benefit where decentralisation is paramount.
When it comes to creating a video game that uses a blockchain, real-time action games are not an option, a regular blockchain used for a payments system processes transactions at around ~4 per second, and the confirmation time of each transaction can be ten minutes in an ideal world to an hour or more in a realistic world. This means that any game that is solely hosted on a blockchain must be turn-based, this gives us genres such as that of many board games that primarily revolve around a turn-based strategy.
With this in mind, I set out in an attempt to create a simple and yet somewhat compelling game concept to apply in such decentralised blockchain technology. Simple as not to over encumber myself, and also so that new players can grasp the concept with some haste. Although no doubt, what starts simple often grows into some complexity over time.
It’s worth noting that since 2009 the landscape of “cryptocurrencies” has diversified into what one would consider different consensus mechanisms which are primarily used to secure the decentralised blockchain technology from double-spend attacks; this would be where one attempts to invalidate a previous transaction with another in quick succession, in the application of a game this would be akin to a player invaliding a prior action, or game move, with another more recent one in an attempt to falsify the outcome of the game to show they had won — when the opponent player would be left unable to verify what is now merely a personal account of a dishonest sequence of events having taken place.
This landscape divides primarily into Proof-of-Work (POW) and Proof-of-Stake (POS). For this document I will only be regarding POW as the viable option and that such a video game would be exclusively forked from the Bitcoin-Core code base, that is to say, the decentralised blockchain technology that the game utilises would be based on that of Bitcoin.
When some of the first blockchain games came to fruition they were primarily focused on tradeable or collectible assets, which makes sense when one considers the main interest of those who used blockchains as payment systems. Most notably is CryptoKitties which was released on the Ethereum blockchain utilising its smart contracts platform.
So with this in mind, I set out to expand on what CryptoKitties had started. I wanted to create a platform of tradeable and collectible assets which not only would users create themselves but assets that are in full 3D, not just static 2D; but most importantly I wanted to combine all this with some basic strategical trading-Esque game activity. So I set out to chip this rough idea out of code and sweat.
It may be a simple idea in essence but execution is never without problems and allowing users to upload custom created assets troubled me the most — particularly on a technology that lacks much in the sense of censorship and in an age where the internet trolling or ‘edgy behaviour’ is prolific. I am concerned that people would abuse this functionality to upload material of a questionable nature. I was able to minimize the impact of this risk by disallowing the use of 3D textures over the simpler vertex colours — although initially, this was more of an artistic preference than intended as a harm reduction method. The problem is, with a blockchain, you have to accept that anyone can post anything, and if you allow users the space to upload more than just a short few bytes you do also risk the chance that a malicious actor will submit the kind of content that would instantly make anyone holding a copy of the blockchain (which is every user playing the game) subject to the legality of the content submitted by such actor. I don’t think there is any simple answer to the problem other than to of course cast new actions of specific upload sizes to a vote before they are processed into the final blockchain. One could rely on AI detection technologies, but they would be large, complex, of questionable accuracy, and demanding of compute resources — something that is already in large demand by the decentralised blockchain network.
But pressing on, the idea was bound around the seams of a social experiment, one problem that had been plaguing decentralised currencies such as Bitcoin was that of atomic swaps, exchanges, and escrows; the concept that there was some protection when trading a digital currency for another digital currency or real-world asset. I could have built a server-operated escrow into the game so that when users exchange assets in the game it would be a fair 1:1 exchange agreed upon between the two parties — although I found this too bland, I wanted to have some fun, do something new or unusual, test the waters so to speak; and so I decided that the game would be based around the concept of gifting one another, but in such a way that would penalise the reputation of those who gifted back less than others — I wanted a game where people created assets that they were not afraid of losing but also, happy to trade at some high frequency knowing there might be a loss factor involved. Giving with the hope of receiving back some percentage that made it worthwhile, which these margins are what most tertiary business are based on right?
This reputation system is simple, that if I Bob were to gift Alice ‘1 Sheep’ then I Bob would go up one reputation point and Alice would go down by one. For Alice to counterbalance her reputation back up one point she would need to gift me back an asset of some nature. A neutral reputation would be a perfect world, where everyone who had been gifted also gifts back and that those who give more than they receive are rated with a higher positive reputation than those who take without giving.
But here is the twist, Assets are made up of three different Elements which vary in rarity, users can create an element of a specific name and quantity but once the element has been created — it can never be recreated again, its supply is forever limited to the quantity it was created at — but also anyone can dissemble assets they hold, breaking them back down into the fundamental elements they were created from, which could in turn be reused in the creation of new Assets.
Only Assets can be traded, whereas Elements cannot, so to obtain Elements created by other users the Assets created that contain these Elements must be dissembled. Similarly to Elements, Assets are created unique and to a limited supply, so whereas Elements will always have the same circulating supply, Assets will decrease in supply over time as they are dissembled by other users and as such increase in rarity. It is these Assets that are represented by a 3D avatar.
Elements hold the intrinsic value, as it’s the Elements that cost game credits to produce, which in turn cost VFC to convert into game credits. As where Assets only require Elements to be infused with them to be created. Elements vary in minting cost based on the character length of their name, so a shorter name will mean a higher minimum supply and higher minting cost.
It’s this rarity of Assets and Elements, combined with the reputation-based gifting system akin to trading which makes up the entire game concept.
The hope is that these game assets created, uploaded, and traded by the players will accumulate some subjective value based on rarity; and that in a similar way to how real-world trade currently works on services such as eBay players will feel some security in exchanging these assets without the overwhelming desire for a third party method of exchange or escrow.
We all know that when we purchase a product on eBay there is a chance we will never receive what we have ordered, often we take this for granted due to the vast array of protective services in place to mitigate such occurrences, primarily the first port-of-call being the eBay seller reputation system, and subsequently, the centralised services eBay or postal couriers offer as a means to ensure your lost orders or packages. Although in a decentralised system we openly choose to waiver this latter insurance that would have once been provided by the centralised institutions for the trade-off of decentralisation particularly in the case of digital assets which make no use of the traditional postal systems.
The game concept describe here is currently in a playable prototype stage, which although is not hosted on a decentralised platform currently; if it gains the necessary traction it is of my full intention to further develop this concept on-top of the Bitcoin-Core codebase.
If you would like to see this playable social experiment first hand, you can do so over at StarTrader.io and remember, don’t be a Star Gazer, be a Star Trader!