Things are Happening!

Things are Happening

Hello everyone. I have good news about DwarfCorp. In January, we hired three excellent programming contractors. Together, we’ve been making rapid progress on making the game more stable, fun, and efficient. You can keep track of exactly what we’ve been doing on our github issues page.

We started our work with comprehensive playtesting of the game and performance testing of the engine. We found a lot of improvements that could be made to the basic mechanics, dwarf AI and user interface that are already making a world of difference. I cannot exaggerate how thrilled I am to finally have other people untangling the massive codebase and improving it. I wish that I had done this long ago.

Some highlights:

One of our contractors (who formerly worked on the game Terraria) has been making a steady stream of optimizations to the game’s codebase. He has already drastically improved the dwarf task management system and the game’s frustum culling code. He has also found and fixed several critical bugs in the game’s saving/loading system, world generation and AI.

Another has been focusing on the game’s UI, making it more intuitive and, allowing it to behave better with different screen resolutions and massively speeding up its drawing. He has also improved the overall structure of the codebase and repository, catching lots of bugs in the process.

(the old GUI on the left, and the new one on the right at 800x600 resolution)
(the old GUI on the left, and the new one on the right at 800×600 resolution)

Gameplay Enhancements

Our highest priority right now aside from reliability and performance is fun and intuitiveness.

Tale of the Pits

The first thing each of the contractors (and so far every playtester) has tried to do is tell the dwarves to build a giant pit. It used to be that this would completely break the game for two reasons: first, the game would stall because assigning dwarves’ tasks took too long. Second, I had never considered what happens to dwarves while digging vertically (since I usually play the game on a single 2D slice) – the answer is that they tend to fall into the pits and get stuck. When this happens, they are not able to continue working, and become very difficult to select.

So we set about to make it easy to dig pits straight down. This involved improving the task management system, improving dwarf path planning (making them prefer not to fall if they can), and allowing dwarves to climb out of pits in desperate situations. We also made it impossible to accidentally dig a pit by limiting selection to only visible blocks unless the ALT key is pressed. Now, digging pits its quite easy!

(dwarves digging a pit in the desert, revealing a cave entrance)
(dwarves digging a pit in the desert, revealing a cave entrance)

Time Management

We also added a simple time-control button to allow the player to speed up the game to 2 or 3x while dwarves work on tedious tasks. This also involved fixing bugs with the game’s physics engine to allow it to run at faster speeds.

The game speed controller
The game speed controller

 

Better Feedback and Selection

There were also some basic UI issues that made it difficult to select stuff and decide where and how to build things. We greatly improved the selection system using a pixel-perfect GPU selection buffer. We also added basic feedback while building objects and rooms which show you what is going to be built where. Simple improvements like this are slowly making the game much easier to play.

(feedback while building objects)
(feedback while building objects)

 

(feedback while building rooms)
(feedback while building rooms)

New Creatures and Dwarves

And of course, we’ve been adding more creatures and dwarves to the game. Musket dwarves have finally been added. They’re great at shooting down birds and defending against those pesky elves.

(musket dwarves fighting spiders)
(musket dwarves fighting spiders)

We’ve also got mud golems in the game now. They live in caves and throw deadly mud at your dwarves. When killed, they release gems.

(a mud golem fighting dwarves)
(a mud golem fighting dwarves)

We also added chickens – the first step toward animal husbandry in DwarfCorp

(a chicken)
(a chicken)

We also implemented egg-laying, allowing some animals in the world to reproduce. Although tuning their reproduction rate took some tweaking. It turns out that like liquids chickens and their eggs will expand to fill all the available space!

(they might be laying eggs a bit too fast)
(they might be laying eggs a bit too fast)

 

 

Sound

I attended the Global Game Jam at MIT this year, and there met two fantastic sound engineers from the Berkeley College of Music.  We are currently in the process of hashing out a deal to get professional sound/music made for the game for a reasonable fee.

Burn Rate

Now that I’ve had the time to go through a few pay cycles, I can estimate how much longer the money will last. At the current rate, it looks like we will be running out sometime around the end of July or beginning of August. After that, we will have to form a plan of how to continue. For now, we will focus on making DwarfCorp as good of a game as possible with the resources we have available.  I can’t stress enough how great it’s been to work with our contractors – progress has been much faster than ever in the past, and I eagerly wait to see what state the game will be in a few months from now.

 

%d bloggers like this: