A Dwarf Life

A journey through in app purchase and incremental gameplay.

In here, we are going to talk about in app purchases, designing a free2play game, managing shop in game and the balance between work for hire and IP creation, so let’s sit down, take a deep breath, and relax, it’s going to be a long journey.

But first, what if an AI created the perfect world for our game? With just a few words, the generated image below is not too far away from the island we designed for the game, I let you compare after reading the post.

work for hire or IP creation?

If you are interested only by the design and IAP shops, you can skip directly to Incremental Formula. The most difficult part first, aka the long journey from the idea to the final product: starting as a little game to try in app purchases, we initiated it early summer 2015. Unfortunately, we had to put it on hold by the end of the summer to work on other work for hire projects. And as some of you already know, work for hire is the death for own created IPs: it takes your whole energy and never spare any hour. If you translate this into corporate wording, this mean that passion need to be put aside so you can earn something from your skills, not doing what you want to do but doing what others want. It’s a short term strategy and the right balance between work for hire and IP creation is really hard to get right. In fact, experienced studios either split teams or choose one or the other. So, after the first 3 months of full time work, we could save some time until early 2016 but the game is not ready yet, and we had to pause the whole project for a year to focus on big work for hire projects. It was around that time the company went from 4-5 people to 12-15 people.

One year later… All this time allowed us to learn and create some of our “standard assets” that were going to be shared in all of our projects: the first persistent data system, the migration from the Unibill plugin to Unity IAP, the addition of Unity Ads in 2016, using Unity 5.5 (and now, in 2023, it has been replaced with Level Play by Iron Source).

By the end of the summer 2017, we had a version ready for both Android and iOS, but there were still some nasty bugs to fix and the launch marketing campaign to prepare. All others projects have not been shared yet here, but if you read carefully what is written in this website, you already know that 2017 was pretty heavy for our team and the next 6 months or so would decide of the fate of the studio.

2 years put into the first 3D incremental game of all stores… that never got out. But let’s talk about what we learned and we can share and use for other projects and developers!

Incremental formula

The gameplay of an incremental game is really the idea of having the same unique action from the start repeated indefinitely. The player has to manually make its first action more and more to earn more and more. Luckily for him, this very manual action that he has to do first will be replaced by automated actions with items he will be able to upgrade and upgrade more, and he will also get some other fun items to play with while the game plays by itself.

In this game, you have to earn gold, first by taping directly the goldmine. You can then hire some dwarves to do it for you, then more and more dwarves, then boots, better boots, and pickaxes, better pickaxes, glasses, bags, beds and machines to dig while they rest!

At first, the earnings and speed for miner were calculated by a formula. But it was not good enough, as every game designer knows, the perfect gameplay can not be achieved with a formula: it needs to be tailored by the hand of a designer, or a team of designers. So be it, we create the first sheets to calculate all items parameters: cost, upgrades, availability, quantity, eftc. I can’t share the sheet completely as it would go offscreen, but to give you an idea, the entire village upgrade graph is below (level on X-axis, gold required to upgrade on the Y-axis).

The village is the center of the dwarves journey, so it is tailored to reflect all upgrades the dwarves can get, that is why it gets so expensive quickly: it is the core of all incremental games.

Obviously, we had to do a lot of tests to get it right, but it was more of a mathematic research: how to give the player new items and abilities regularly in time versus having a boring game, including hard currency and soft currency.

To start with, we limited ourselves to the number of items we could create, and estimated how many we had to design with a basic rule: we had to calculate the number of upgrades required per item for the game to be long enough so we could create other ones when the first players would reach that point.

Let’s explain a little bit more how the game is played: as soon as you can hire a dwarf, you can see the little guy going from the village, walking through the forest, reach the goldmine and digging gold. After a certain amount of time, he goes back to the village, brings back the gold and rest for some time. At that time, he starts over again.

The shop and dwarves equipments: bags, boots, pickaxe, glasses.

We ended up having 4 items that each dwarf could equip:

  • boots: walk faster
  • bag: bring more gold each time
  • glasses: increases the chance to get diamonds
  • pickaxe: obviously hard to dig without one!

You have to buy one item per dwarf, so each time you can hire a new dwarf, you have to buy 4 items if you want the full set. Then, each item can be upgraded as in any RPG: we designed between 10 to 15 levels for each items in the first release of the game.

Then, if you want to hire more dwarves, you have to collect enough gold as hiring a dwarf costs more that the previous one, then you encounter another limit: the village. It has a limited amount of beds, and so, of dwarves.

Of course, the village itself can be upgraded, and equipped. It can have better beds so dwarves sleeps better (and less), and you can buy whips so they work even when you are not in the game. Some evolution can be unlocked only if you start a “research project”, that adds up to the list of almost infinite upgrades!

A new research is available! Let’s go see it – No, thanks!

Soft and hard

Nowadays, free2play games can have 7 virtual currencies like Brawl Stars, some of them quite noticeable and some other ones a little hidden, and the trick to use them right is not so easy. But at that time, in 2015-2017, having just one soft currency and one hard currency was pretty usual.

The soft currency is the virtual currency the player can get very easily, very often for almost all actions made in the game and to buy a lot of consommable items.

On the contrary, hard currency is given very sparingly, it’s rare and allows the player to buy premium items, or often a way to speed up a boring process, like building something in clash of clans.

The soft currency of A Dwarf Life is gold: the first action the player has to do is to hit the goldmine to get gold, so it’s pretty obvious that he can get as many as he wants, or at least as we allow him to get. The amount of gold you can mine per tap, per second is limited, but you can upgrade it, if you spend a certain amount of gold. Dwarves can be hired with gold up to certain limit, all other items can be bought and upgraded the same way.

But if you want the game to continue mining when you’re offline, or if you want to buy certain items, or get more gold to buy more items faster, you will have to get diamonds. Diamonds can be found if you are lucky in the goldmine, but it’s very rare. Or you can buy them, with real money. That’s why it’s called hard currency: if you want to get it, it’s hard, it’s hard money.

Shop for village upgrades, beds, whips, and player tap upgrades.

Designing a shop

This is a good one. On first shot, you think it’s easy to add some buttons in a user interface and link it to an in-app purchase. Then you realize that for it to be used, it has to guide the player, you have to manage the absence of network, the animation of the shop so the objects can be updated, and sort it in a way that will be clear for the player.

It took us only 3 times (!) to get a shop that seemed clear for everyone, and I include obviously the beta tester we got outside of our team (user group is not the focus of this post, but that’s an important point to address).

The key items were:

  • first page of the shop has to include at least one item that will change regularly to attract the player to new stuff (ex: if a dwarf says “I need some rest!” you will put the bed upgrade in the first page)
  • always put related items in the same page: what is related to the dwarves are in one page, same goes for the village.
  • the first and everyday items must be in the first opened page: gold, diamonds, dwarves must be there, you have to make space for them.

And also, cherry on the cake: hints targeting specific items are displayed by dwarves or on the dedicated “news” banner on the HUD, and if the player taps on it, it opens the shop with the highlighted item.

When a dward says “I need a new pickaxe” and the player taps on it, the shop open in the first page with this item highlighted.

Right balance

As we saw, it’s a journey with mathematics and management. But in A Dwarf Life, it’s also holidays: when you enter the game, you are welcome by a travelling camera showing you this dream island where you are the only one, you and your dwarves. Oh, and sheeps, and cows, pigs and crabs.

The player can swipe the screen to go from the village to the goldmine, at the opposite side of the island, zoom in and zoom out so he can see the life just going on. We even added a First Person View when the player taps on a dwarf: see the journey as a goldminer!

Here is a gameplay footage of the beginning of the game to give you an idea of the mood, overall. I’m pretty proud of this game, even if it never had the chance to earn us some money, it was a huge step forward for our team: artist, designers and coders learned a lot creating this one.


  • Technical lead: Frédéric Rolland-Porché
  • Art lead: Stéphane Landry
  • 2D/3D artists: Alisson Stirchler, Meghan Martin
  • Game developer: Guillaume Thorel, Jérémy Valéro, Benoit Constantin
  • Web developer: Corentin Martin
  • Sound and music: Game Audio Factory