Gamechain Final

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

A Proposal For Game Progress Traceability Using

Blockchain

Rafael Cesar Cirico Garcia¹, Luiz Gustavo Xavier²


¹Departamento de Economia e Relações Internacionais (UFSC)
²Departamento de Informática e Estatística (UFSC)

Summary ​This preliminary research was developed as part of the ​Blockchain and
Cryptocurrencies Technologies c​ lass of the second semester of 2019. We focus on
validating both the blockchain technology and the business model in the specific
case of data storage and traceability of information for online gaming players and
platforms for MMORPGs and MUDs. Players face the constant threat of being
hacked or losing their accounts over time, and their character’s progress is
completely lost. In order to prevent that, we propose tracking their constant
progress, and storing it in the blockchain so that it can never be lost, and can be
retrieved overtime.

1. Introduction
Since Bitcoin has hit the spotlight of news, the importance of the usage of ​Blockchain
technology has become an unprecedented worldwide phenomenon. At first, the main solutions
were regarding the usage of tokens as a means of exchange. But now, there are solutions that
promise solving all sorts of world problems, such as tokenizing energy, using blockchain for
IOT, using blockchain or supply chain tracking purposes, among other solutions. Although, the
great question that both academics and businessmen are asking each other right now is whether it
is really necessary to use blockchain technology to solve the many proposed solutions. Our case
here is no different, although we have good arguments and strong reasons to believe that
blockchain can indeed be used to solve the problem we intend to solve by using blockchain.
The central theme of our solution is role-playing games (abbreviated RPG). RPGs are
games in which players assume the roles of characters in a fictional setting. Players take
responsibility for acting out these roles within a narrative, either through literal acting, or through
a process of structured decision-making regarding character development. Actions taken within
many games succeed or fail according to a formal system of rules and guidelines. Also, there are
several types of RPGs, like tabletop role-playing game (TRPG) and live action role-playing
(LARP), which tend to be live (offline); and the ones that are of our primary interest - online -,
multiplayer text-based Multi-user dungeons (MUDs) and massively multiplayer online
role-playing games (MMORPGs). For practical means, we will be testing with MUDs, given
their simplicity. Although, our solution could really well be used for MMORPGs and other types
of online games as well.
The problem we promote to deal with is regarding registering data in the blockchain.
Specifically, we intend to store data from players of MUDs (Multi-user dungeon). In summary,
we intend to collect and store the data retrieved from the players of online RPGs in the
blockchain. The reason why it makes sense to store such information on the blockchain is to
protect user’s progress in the games they play, since hacks and other sort of problems are so
common and usual in online games. Not only that, one may desire to save a track record of their
accomplishments, valuable items and equipments, digital gold, quest history, character builds
;and skills, in a way that even if the character, the account or the server were deleted, the
information would be forever stored in the blockchain, as a guarantee of previous
accomplishments.

Figure 1:​ ​Gamechain​ overview..


In Figure 1 a brief overview of ​Gamechain can be seen. In (1) the player interacts with an
online game client, which after a subscribe event (2) starts to level and progress its character in a
normal behavior (3). After a predefined period of time, the character’s progress is stored on the
blockchain (4), which is certain to be authentic and non-mutable. The player can then retrieve the
character’s progress whenever he needs it (5).

2. Objectives
● Search for solutions in the market that resemble the proposed solution;
● Study the viability of the use of ​Blockchain t​ echnology in the implementation of the idea.
Also, we intend to make a comparative study between the implementation of the
available technologies existing in the market.
● Validate the business model (mainly the problem, the solution and the value proposition),
through the ​Lean Canvas​ methodology;
● Implement a ​minimum viable product ​(MVP);
● Test in practice the MVP;
● Present the results found, and possibly develop the project and transform it into a real
business (startup).

As main prerequisites of our project, we tackle function and non-functional requirements,


organized as follows:
● Functional Requirements​:
○ Allow recording and traceability of character’s progress inside the blockchain
infrastructure;
○ Provide the isolation of state originated by different application clients.
● Non-Functional Requirements​:
○ Elaborate a self-sustainable and non-aggressive business model, that maintains the
viability of our idea without compromising general adoption.
3. Project Justification
In this section we organize our first thoughts regarding the justifications and viability of our
product, sustaining the use of Blockchain technology and business opportunities.

3.1. ​Blockchain
In (Würst and Gervais, 2018) several discussions are shown regarding blockchain usability in
systems design. The authors enumerate a series of key properties that contribute to the use of
distributed ledgers as an alternative to known solutions to distributed systems architectures, like
strong consistency and anonymity. Some fundamental factors are composed into a diagram, as
illustrated in Figure 2. In our work, we analyze the presented diagram exposing our ideas to the
flow-chart, the answers observed are presented below.

Figure 2:​ Blockchain viability diagram. ​Source: ​(Würst and Gervais, 2018)

Do you need to store state? Yes. Since the monitoring of characters progress is the main feature
of our whole idea, a stored state is necessary to record the historical progression.
Are there multiple writers? Yes. We plan on extending this idea to multiple implementation of
online games, not only restricted to MMO-RPG genres. Even considering just this initial group,
there would still be multiple users, considering the vast number of implementations and private
servers of popular games like MUD, Ragnarok and Tibia that exist on the market. Each of them
is considered a potential client.

Can you use an always online TTP? No. TTPs are not popular and well-trusted among private
servers and open-source community.

Are all writers know? Yes. The writes would be known ​a-priori​, since our implementing would
be offered as an optional service.

Is all writers trusted? Definitely not. For the same reason TTPs are not trusted on this
environment, writers would not be trusted considering the fact that they’re already inflicting the
law by running private servers of proprietary games.

Is public verifiability required? Yes. The public audition of characters data is an important factor
to determine the usability and trust in our service. Considering that private servers are constantly
being dropped by legal issues, and new ones are launched every day, the public verifiability
would definitely prove that our service differentiates from any game host provider.

3.2 Business
Given the advent of blockchain technology, it became possible to better technological procedures
that before were either impractical or insufficient. Although, the use of blockchain technology
only shows itself as crucial in cases where its use is justifiable, as presented above. Once its use
is justified, it is also possible to justify the business solution.
The global MMO gaming market was USD 26.9 billion in 2016 and is estimated to reach
USD 44.6 billion by 2022 at a CAGR (Compound Annual Growth Rate) of 8.9% during the
forecasted period. F2P category generates more revenue than its counterpart, P2P owing to its
vast number of subscriptions and revenue generation through other sources (BUSINESSWIRE,
2017).
MMORPGs are played throughout the world. Worldwide revenues for MMORPGs
exceeded half a billion dollars in 2005, and Western revenues exceeded a billion dollars in 2006.
In 2008, the spending on subscription MMORPGs by consumers in North America and Europe
grew to usd 1.4 billion. World of Warcraft, a popular MMORPG, has over 10 million subscribers
as of November 2014. World of Warcraft's total revenue was USD 1.04 billion in 2014. Star
Wars: The Old Republic, released in 2011, became the world's 'Fastest-Growing MMO Ever'
after gaining more than 1 million subscribers within the first three days of its launch
(WIKIPEDIA, 2019).
Considering the current number of players in the 8 biggest MMORPGs of the moment,
not only their growth has been constant, but the summed number of daily active players they
currently have is around 7,873,172.00 (MMO-POPULATION, 2019). The numbers retrieved
from the constantly updated website mmo-population.com is shown on Figure 3.

Figure 3:​ MMOs population ranks. ​Source:​ (MMO-POPULATION, 2019)

So, given the size of the market, it is understandable the necessity of allowing players to
have a way of protecting their accounts through time. The progress in the games cost time and
money for the players. And, it is well-known instability of the games servers, and the constant
hacks suffered by the companies and players. If a player is hacked, or loses his account, or has
his account deleted given he has not paid the monthly subscription over time, the player can save
his progress through the effects of time and the risks of current technologies by basically saving
his personal data in the blockchain. Whenever the player wants to access his account, or use the
saved data to retrieve his past progress, it can be accessed in the blockchain, a technology that
promotes being resilient over the effects of time, given that past data cannot be changed or
destroyed. So, a player’s past progress - which was achieved through time - can be (re)purchased
in the future by proving that he achieved such progress in the past. In a way, our solution allows
one to buy time with money.

4. Implementation
As our first MVP, one of the main ideas regarding implementation is to compose a series of
Smart Contracts r​ unning on top of Ethereum Test-Net (Wood, 2014). Each register operation
would invoke a transaction one of these contracts, keep track of new actions performed by
characters. The periodicity of this register operation results into a pre-defined ​checkpoint
interval​, that represents the most actual state that a characters progress could be
recovered/imported/audited from the blockchain.
As our first game client, we plan on utilizing an open-source MUD — ​Multi-User
Dungeon implementation. This terminal interactive games provide a simple UI from which
player can perform actions, and we believe that this could facilitate the management of a log file
containing character’s actions, that would later be translated as contracts invocations.

4.1. Class diagram


In this section we present some UML diagrams of our idea, providing a visual appeal by
illustrated the application design and implementation. The class diagrams are elaborated using
sol2uml,​ an open-source tool that automatically parses solidity contracts directly generating a
UML class diagram as output on svg format.
Figure 4:​ UML class diagram of implement smart contracts.

● Struct​Record
Holds a reference to the Player’s wallet, in case a game client desires to stipulate some
directly payment methods through ethereum blockchain, and an arbitrary data represented
by the string ​data.​ The use of the first is orthogonal to our platform, being the
application’s (game client) responsibility to demand any extra taxes to player’s wallet if it
judges necessary to business. The last one is a wildcard representation of ​ANY d​ ata that
represents a player progress, which is semantically different depending on the game
platform.

● Struct​Terms
Terms represents arbitrary terms of our contract with the game service. In this example,
TaxA and ​TaxB are represented as integers weights that accounted (multiplied) on certain
transactions directed to our contract. For example, by setting a ​TaxA to 5, we could
represent that our profit margin is 5 percent, so in each ​Log operation we would be
capturing 0,05* ​Gas ​(Log) as a service cost to our wallet. Integers are used to minimize
data allocation, but another type could be studied. This tax payment represents our
passive income to the business maintenance, and thus, it’s susceptible to many changes
over the project development.

● Library​Typos
Libraries are used to store definitions of data structures shared by different contracts. In
our case, ​Typos​ stores the definition of ​Record​ and ​Terms​ structs.

● Contract​App
This contract stores a ​log,​ in the meaning of a ​list of records​, of a certain game client.
The state of a ​Terms struct is also stored to allow the charge of ​passive income,​ as already
discussed.

● Contract​History
History is the main contract of our decentralized application. It provides a simple facade
to allow the subscription (​Subscribe)​ , register (​Log)​ , and unsubscription (​Unsubscribe​) of
clients to our service. The blockchain is public permissioned, but the auditable data is
pseudo-anonymous. A ​retrieve method is provided to ensure that only the player is able
to retrieve its character history, by providing it’s private key. We must emphasize that our
business value resides on the purpose of managing the whole character’s progress of any
game client, providing robustness, authenticity, and public verifiability of data by using
the blockchain technology, and not on the simple information retrieval.

4.2. Sequence Diagram


A sequence diagram is also presented to illustrate the project’s behavior and communication
against the three main actors identified: the player, the game application client, and ​Gamechain​.
Figure 5:​ Sequence diagram.

Each message exchanged between the different actors is listed below:

● Create the account:​ the player creates his account on the game company;

● Subscribe (Address):​ the player subscribes to the Gamechain service, and now he has his
wallet available for him on the blockchain.

● Player progress:​ the progress made by the player is saved in the game company. For
example: (a) player passed a level; (b) player acquired an item (sword); (c) player
acquired money (gold); (d) player completed a quest; (e) player added three friends; (f)
player acquired 1000 points of experience; (g) player finishes his session; etc.

● Log (Record)​: the progress is saved on the blockchain, and is available for access.

● Request of access of information:​ the player requests the access of information saved in
the blockchain.

● RecoverLog (Address)​: the player has access to his stored data on the blockchain
(Gamechain).
References
Wüst, K., & Gervais, A. (2018, June). Do you need a Blockchain?. In ​2018 Crypto Valley
Conference on Blockchain Technology (CVCBT)​ (pp. 45-54). IEEE.

Wood, G. (2014). Ethereum: A secure decentralised generalised transaction ledger. ​Ethereum


project yellow paper,​ ​151(​ 2014), 1-32.

BUSINESSWIRE. Global Massively Multiplayer Online (MMO) Gaming Market - Forecast to


Reach $44.6 Billion by 2022 - Research and Markets. 2017.
<​https://www.businesswire.com/news/home/20171115005641/en/Global-Massively-Multiplayer
-Online-MMO-Gaming-Market​>. Accessed in November 5th of 2019.

WIKIPEDIA. Massively multiplayer online role-playing game. 2019.


<​https://en.wikipedia.org/wiki/Massively_multiplayer_online_role-playing_game​>. Accessed in
November 5th of 2019.

MMO-POPULATION. 2019. <​https://mmo-population.com/​>. ​Accessed in November 5th of


2019.

STATISTA. MMO gaming - Statistics & Facts. 2019..


<​https://www.statista.com/topics/2290/mmo-gaming/​>. Accessed in November 5th of 2019.

Naddison, ​Sol2uml​ open-source tool. Available at: ​https://github.com/naddison36/sol2uml

You might also like