Tuesday, 15 August 2017

Article: Indie Dev describes the rewards and pitfalls of running an online multiplayer game with cryptocurrency integration

Editor’s
note:

The
following is an article by @CryptoDatabase about
his experiences creating and running online games that support
cryptocurrencies, the lessons he's learned along the way, and advice for indie devs planning to make similar games.

The
article below is quite a long read, but
very interesting, and basically essential reading for anyone thinking of making
their own online game that features cryptocurrency either as in-game currency
or as a supported currency for players to earn / spend / trade with.

Developing and running your own cryptocurrency game is
exciting and can be a new adventure, especially if you’re just starting out.
You have to be careful though as this path can be treacherous and full of
obstacles. I first started working on games and other crypto related sites back
in 2013, and though a lot of things have changed since then I still get the
enjoyment of creating things that other people use. Here is the story of how I
got started, and what I have faced on my adventure with creating crypto games.

I got started with cryptocurrencies back in 2012; then in
2013 someone gave me my first crypto, FeatherCoin. At this time I had already
been developing and working on websites for a while - though they weren't the
best, and looking back today it amazes me on how much progress I have made. The
first major website I created was cryptodatabase.net, which I created
as an alternative place to find information on as many coins as I could find
and insert into it. From there I branched out and created my first game called Dragon Knights of Valeria.

One of my previous jobs was with a game company, where I
was responsible for managing in-game moderators and the in-game support chat
which was run through the mods directly. Through my job there I had 24/7 direct
access to their company’s support team, as well as the developers for their
games. I helped test new games that they were working on, and provided feedback
in regards to how players may view certain features or aspects. This helped me
learn what players want or expect with games as I had to watch and interact
with the players directly to get their views, and it is one of the main reasons
why I have been able to develop my own games successfully. I learned how
players interact with each other, what they expect from game developers, how
they respond to certain types of updates, as well as what players really want
from the games they play.

The games I managed for them brought them a lot of money
in a short time, but the games ultimately died off after a couple months. The
games themselves were fun and addictive and the support was excellent from the
mods, but the developers didn't listen to what the players wanted, nor did they
listen to me entirely when I gave them advice based on what I saw from their
players. They focused more on what would make them more money in the short term,
and ignored the long term aspects. This caused their player base to steadily
dwindle until the games were no longer profitable.

This taught me a valuable lesson, one that I still use
today and one that has served me well. I learned that one of the key things for
success and game longevity relies on the dev team interacting directly with the
players and getting to know them. Players are more apt to stick with a game and
interact with it if they are able to pass their ideas and suggestions on
directly and get a real response, compared to sending in a support ticket
somewhere and receiving a copy/paste response from a support agent.

It’s common practice to reply to support/ideas/suggestions
this way in major game companies. They provide a cookie cutter response, pass
it on to the devs, and then the devs will eventually give them a response.
These responses are usually based on whether it would make them more money or
not, small suggestions are often overlooked and players often wait days or
weeks just to hear back. Players want to know that they are being heard and
taken seriously; if they feel abandoned, or that their views aren't being
considered at all, they will give up and leave after a short time.

My first game, Dragon
Knights of Valeria, was a browser-based MMORPG styled after the old school
games from the early to mid 2000s. Players travelled the Valerian World killing
monsters, completing quests, and much more. Its original purpose was to help
promote my Crypto Database website but it quickly grew to be more active and
popular. Starting out I used the experience I had gained from working for the
game company, interacting with players throughout the day and listening to what
they wanted, how they played, and what they were interested in. From there DKV
grew into a game full of new features and aspects that were based almost entirely
on players’ suggestions and what they wanted to see.

Almost every day new updates were coming out or small
tweaks to current features were made based on feedback. This was great and all
went according to plan until I learned another, more valuable lesson. Managing
games and knowing what players wanted was only part of what it takes to run a
successful game. I had learned
how to manage and operate a game, but I had not learned how their backend
operated.

By this time DKV was a year old and had grown so massive
on the back end that I had problems with my hosting provider being able to keep
up with what the code required. To combat this I had started working on a newer
version of the game, one that was much more efficient and used less resources.
This version became known as Dragon
Knights of Valeria 2 (DKV2). It all seemed to be going well until my host
finally got tired of my server using so many resources and they suspended its
operation once again. This forced me to release the unfinished version before
it was ready in order to avoid a large loss of players.

The new version was able to run from the same server for
a little bit until I ran into the same problem as I had with DKV. My host
suspended me again and I had no choice but to upgrade my server and run the
game from a VPS which could handle the resource usage of the game. I had never
used a VPS and to this day I am still not familiar with how it all works, as I
was used to CPanel hosting for years. My host migrated my sites for me, and due
to some complications they had on their end I ended up getting a newer admin
panel that wasn't normally included, which helped me out a lot and allowed DKV2
to come back online much faster.

At this point I had learned how to manage a game and its
players as well as what is required in order to run one server wise, but there
was something else I had also had to learn that was equally important. That was
how to create and run an in game economy based on real currencies. I had to
find a way to stabilize what was going out to match what was coming in as well
as plan ahead for the future and any updates that may come that modified
current plans. This required a lot of patience and time, as each new
modification or tweak to the system didn't provide immediate results and often
led to further modifications.

Finding the equilibrium with the game economy took well over
a year; many things required changes and tweaks in order to get it all working
smoothly. If you are working on your own game or want to work on one then one
of my suggestions would be to focus on this aspect - a balanced game economy
can lead to far greater things.

DKV2 did great for another year until I learned some more
hard lessons. I had a backup system in place that made copies of my databases
every hour and emailed them to 2 separate email addresses, one to my private
email server and another to a public server. I thought I was safe as I had a
constant stream of backups coming in but I had failed to insure that the
backups I had were complete. DKV2 had grown so much that my server was unable
to provide full backups of the databases and game code files.

The end of DKV2 came with the crash of my server. This
crash deleted everything, all of the server software and files were gone. I
thought I was okay as I had my backup system, but when I attempted to re-upload
the game I found out fast that I couldn't. The database backups were only able
to compress just over 3 million records, which left out several tables at the
end of the backup. The game code backups were also massive, over 16gb in size
and it suffered the same fate as the database backups.

I lost over 2 years of work on DKV and DKV2 as well as 4+
years of work on my other websites because I failed to check my backups. I
can't stress enough how important it is to create backups of your games and
websites as often as possible, storing them on a USB drive in case of failure
will help keep it safe. The loss of my work temporarily killed my
enjoyment of developing stuff. I didn't see any point in continuing if it could
all just be lost in the blink of an eye. My journey didn't end there though; in
the immediate days following the fall of DKV2 I received many messages asking
me to continue with the project and create a new game. I didn't feel like going
through that again at first, but the messages kept coming in.

Within a week I had started working on a new game, one
that was more up to date but still followed the same concept as DKV2. This new
game is called Dragon Knights of Valeria 2: Universe
and it continues the story from where DKV2 left off, but far in the future. Its
main game mechanic is similar to DKV2 in that the main object of the game is to
travel around the Universe fighting enemies for rewards. It is also set up to
pay players for playing as DKV2 was.

DKV2:U went through months of beta testing before it was
released; beta testers were a great help in uncovering bugs and providing
suggestions. Once all of the bugs were sorted out and the game was running
without issues it was launched and promoted in the news with the help of BitcoinPRBuzz.

Since its release it has received over 60 new updates,
some of which were previous uncompleted plans and some were suggestions from
players. New suggestions come in all the time though as players advance in the
game and get new ideas of what they would like to see added. Sharing these with
me and suggesting its addition doesn't mean it will be added into the game
immediately or at all, they usually depend on how it will affect the game and
how realistic it would be to code it into the game. Most suggestions that are
posted end up being modified or party incorporated into something else so in a
way they are added in.

The launch of Dragon
Knights of Valeria 2: Universe hasn't been without its problems though. On
July 16, 2017 I received an email from a hacker claiming to have gained access
to the server and proceeded to download a copy of the game and databases. They
demanded I pay them $200 in BTC by a certain date or they would release the
source code and databases and deface my websites. I then took some security
precautions, sent out a mass mail to users letting them know of the hacking,
searched through the games code to locate how they managed to gain access to it
and then I removed it.

When dealing with anything having to do with money or
finances people will try to get in and take what they can. In this case I only
lost the privacy of my code and databases as I store the games coins and my own
on separate systems contained at my house. The hackers were not able to take
any money and instead turned to asking for it, which was refused. I had offered
to hire them to do security testing for me but they refused and insisted on
trying to blackmail me. In turn, I contacted the sources of their illegal
ventures as well as the local authorities in those countries.

If I were to sum all of the above up into a warning, it
would be simple. Be careful and keep up to date backups of your websites code and
databases, plan ahead into the future and keep a balanced game. If you
use 3rd party code be sure to check everything and familiarize yourself with
their work; the smallest thing can let a hacker get into your system and
destroy your work.

Listening to what players have to say about your game is
one of the most important things you can do. If they are unhappy with a feature talk with them and
see what you can do to improve it or change it. As a game developer you have to
keep in mind that a game is nothing if nobody wants to play it. Financially,
happy players spend more money where players who are upset are most likely not
going to spend any money and if they do only in small amounts.

I think this about sums up my experience developing indie
style crypto games, if my experience helps you with your game then please share
it with your friends.