DwarfCorp from Completely Fair Games is a single player tycoon/strategy game for PC. In the game, the player manages a corporate colony of dwarves. The dwarves must mine resources, build structures, and contend with the natives to survive.
If you're a developer/programmer and have the technical chops to compile C# code on Windows, continue reading. Otherwise, if you just want to play the game, buy the game on Steam or itch.io. ~You can also try a build on our releases page (above), but these builds will not be updated after the weekend of September 23rd, 2017~.
If you're a developer on Linux and Mac, it may be possible to build the game without too much fuss using Mono, provided you have a content package that was first built on Windows. One of our contributors has a solution for this.
The project is financed directly through sales on Steam and itch.io. Since September 2017, all proceeds from sales go directly to our contracted developers.
To develop DwarfCorp, you need the following libraries.
We dont' officially support developing the game on anything other than a Windows machine at the moment. The game is developed using XNA/FNA using the XNA content project, which only supports a windows development environment. That said, the game can be cross compiled for windows/mac using FNA, but only in windows in a Visual Studio environment. Why XNA? Because it was cool when the project started (late 2011/early 2012).
If you're a developer on Linux and Mac, it may be possible to build the game without too much fuss using Mono, provided you have a content package that was first built on Windows. One of our contributors has a solution for this.
To build and run in the game on a windows PC, you must do the following:
We started developing DwarfCorp in 2012. Back then, XNA was still a supported library in Visual Studio 2010. Ever since then, support has been dropped. So if you want to compile the game in say, Visual Studio 2017 Community, you will need to install the hacked up "MXA". This is a version of XNA that is hacked together to work on newer versions of Windows. We have included this in a folder called "MXA" under the root of our repository. Open that zip file, and install the dependencies one by one (there are 5 in the zip folder).
Note that in 2017, the MXA project seems to have disappeared itself. Newer versions of Visual Studio (2017 and higher) don't seem to work with it. Luckily, there is another hack that you can apply to MXA to get it working with Visual Studio 2017 here:
Note that we have included those hacks in our wiki here: https://github.com/CompletelyFairGames/dwarfcorp/wiki/Installing-MXA-Hacks
Original source is here.
These hacks will install Microsoft.Build.Framework.dll
into the global assembly cache (GAC
). Since the GAC
is no longer used to install Visual Studio dependencies, any upgrade you make to visual studio will break all of your projects after applying this hack. To resolve this issue, you must completely uninstall and reinstall visual studio instead of upgrading it, and then reapply the MXA hacks to get DwarfCorp compiling.
Once you have Visual Studio and XNA (or MXA) installed, you're ready to compile DwarfCorp.
DwarfCorp.sln
in Visual StudioDwarfCorpXNA
and set it as a StartUp
projectXNA
binaries to the DwarfCorpXNA
project. LibNoise
projectDwarfCorpXNA
build mode to Release
or Debug
DwarfCorpXNA
There are several projects under the main folder:
The game is released under a modified MIT licensing agreement. That means all source code is free to use, modify and distribute. However, we have explicitly disallowed modification and redistribution of the following game content (which remains proprietary):
No forks, binary redistributions, or other redistributions of this repository may include the proprietary game content. It is up to the redistributor to provide their own game content. "Source code" may also include raw text files, JSON library files, and XML configuration files (which are not considered proprietary "game content").
It's complicated. If you have a question about the licensing, raise an issue on the repository.