Dark Harvest: The technology behind the game


I’m making Dark harvest on my own, but I have a clear vision for this game. I believe indie games don’t need to stay small. Their developer can think big and make the game feel epic. Almost like a AAA game, but with one developer bringing it all together.

How it all began

It all started with the announcement Epic Games made with releasing 12 million dollars' worth of assets from their game Paragon. The moment I saw the assets I immediate envisioned an Action RPG on a scale I never made before.

So, I thought, why not make a game with achievements, social features and saved data in the cloud. That way you can go to another PC and continue your journey. With an in-game store, so I can make the game free but still monetize it if a player really likes the game.

The Start

I realized this wasn't going to be easy, so I went on a mission: to hunt for products that would help me make this game happen.

Choosing an engine was easy. I already had enough experience with Unreal Engine 4 and the assets are licenced locked for it. So that was one thing down.

The next thing that needed to be done was to find out if it was even possible to create the game I had in mind. I started very small, with just one hero (Murdock) and one enemy, to find out whether I could get the basics done.

This first part of the game is still there. It’s the small clearing and ledge where you find the first enemies.

Although it still looks largely the same, it's all in the details.

You can see the changes in other part of the world as well since they now look a lot more stunning.


Into the cloud we go

It was technically possible for me to make the game. Now came the time to get it all working together.

I found two platforms that give indie developers a chance to get their project working without it costing money from the start, Game spark and Playfab.

I looked at both but Game sparks just had a couple of features that I liked that Playfab lacked, or made it more difficult to implement. Play fab lacked out of the box achievements and a social chat system these where the major points for me to use Game sparks over Playfab.

So, I started building the cloud platform and implemented it into the game. Now I just had one hurdle left to take: The Store.

For the store I went with Xsolla, I couldn’t find another store front that had a creative website and no upfront charge. The problem was that Xsolla and Game Sparks don’t have an API connection with each other, so I needed to create one. I used my own webserver for this and created multiple Rest API's on it to support the game.

This is all the data communication that takes place to make the game happen. You see this more often within AAA games, but not in many indie games.

 

Delivering the game without any costs

The big question I needed to solve before releasing the game was how to give the game to players without them having to download the entire game every time. I found an open source launcher called Launchpad. The launcher is nice and compact, but had some issues with delivering this game.

The launcher makes it possible to update only those files that actually changed. This makes it possible for users to only download the things that have been updated is a small file.

So, I modified the launcher to suit my needs and I'm really happy with the result.

I got a free place to deliver and store the game from Transip with a special promotion they did at the time. Because of this I am not worried about the amount of data I would use. So, the game could release at low cost, but with enough potential to supply growth.

Growing one ticket at a time

The whole idea of the backbone has always been being able to grow without finding there are issues later with growing. This shows in the way support tickets are handles.

My choice for a ticket system went with Azure Dev Ops, the choice was pretty easy because it is already the place all the source code for the game is stored. The reason I went with Azure Dev Ops is because it has not upper limit in the amount of data stored in the git repository.

The entire project now is close to 200GB large, with all the assets stored and the changed that I needed to make to the assets makes that this number will likely grow.

What helped me bring a custom-made ticket system is the fact that Azure Dev Ops supports REST services. So, I was able to create my own ticket system on the website and have the servers communicate with each other to make sure a ticket the player makes gets in the Azure Dev Ops ticket system, and when a comment or change on the ticket is made within the Azure Dev Ops ticket, it all goes backwards so the Azure Dev Ops server communicates with the webserver. This makes it possible for the ticket to get updated, a mail to be send and for the user to review the ticket again.

This is all part of the vision of being able to let the game grow without having over 10,000 players and find solutions to problems that I could already have thought of. I am pretty sure that there will be problems on the way but I think I have thought of most of them.

Onwards we go

The game is released in its first version, and the first two updates have been released and the third update being on its way soon. I will be updating the game with more content and more features. All heroes will get special abilities and defensive abilities. More bosses will be added to the game and the game will have six more worlds to explore. But first I want the entire first world and the first story part done. So, the focus of the current release is to make that happen and to bring everyone more and more gameplay with every update.

I am really excited for what's to come and I hope you will join me on the journey to make this game a success.

This is Gideon, he will be a major part of future updates

Get Dark Harvest

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.