Ludum Dare 29 — April 25th-28th Weekend — Theme: Beneath the Surface

Event Links: [ MiniLD 50 | Warmup Weekend | Real World Gatherings | Ludum Deals | Wallpaper ]

Back to Browse Entries

gnome fortress

by rfgpfeiffer - Jam Entry

This is a game where you mine down below the surface of the earth. Try to dig up diamonds!

Using Tools

Each of your four starting gnomes has a different tool. The pick can be used to mine, the sickle can be used to harvest, the ladder can be used to climb back up, and the hammer can be used to craft more tools. Press X to pick up a tool (or resource) and C (or C with an arrow key to specify the direction) to use it. Tools wear out over time. Each tool has 100 charges in the beginning. Mining ore or diamonds wears the pick down faster.


In order to craft, pile up the crafting ingredients in one place and use a hammer. If the available ingredients form a valid recipe, they will be transformed into a tool. If there are more raw materials around than you need, crafting will fail. These recipes are possible:



The current food energy level of each gnome is shown at the top of the screen. If the energy level falls below 20, it can not use tools. You can increase energy by eating food (pick up with X, eat with C). A hungry gnome automatically eats any food he finds next to him until he is no longer hungry. The initial energy level should last for five minutes.


You can automate complex tasks by giving a gnome looping instructions. Press R to record an instruction sequence, then give your instructions, then press again to start the sequence. Controlling a gnome again stops the loop. You can switch to other gnomes with J and K while a loop is executed.

How to run the game

There is a tarball for Linux that contains all dependencies except python and pygame, and a .zip for Windows with an .exe file that you just need to double click on.

In order to run this game from source, you need to install python 2.7, pygame, noise 1.2 ( and pyscroll (

On Ubuntu I used:

sudo apt-get install python-pygame
sudo pip install noise
sudo pip install pytmx
sudo pip install git+




python --big

will run the game

Downloads and Links




anbreizh says ...
Apr 28, 2014 @ 8:57pm

I can't run it, it seems I am missing the noise module. Is it an external module or do the github repo is missing a file ?

rfgpfeiffer says ...
Apr 28, 2014 @ 10:03pm

The noise module is installed with pip

Cosmologicon says ...
Apr 29, 2014 @ 12:00am

Thanks for including dependency install instructions for Ubuntu! I also had to run: sudo pip install pytmx

I found the mechanics of the game to be a bit overwhelming. A few things about the interface made it easy to lose track of what was going on, particularly the tiny pixel art and the lack of highlighting as to which gnome was currently selected. I was barely able to coordinate myself enough to dig down a couple squares and harvest a mushroom before my gnomes starved. I can't even imagine getting enough supplies to craft. So, I'm lost but at the same time I'm impressed at everything you were able to work in. I tried recording some actions just to see if it worked and it does. That's pretty cool!

rfgpfeiffer says ...
Apr 29, 2014 @ 6:07am

I have added a --big command line switch so you do not have to strain your eyes on the tiny pixels. I think this counts as "porting" to high DPI screens.

Chinchilla says ...
May 1, 2014 @ 6:22am

The recording feature is very cool, and I'm sure there's a game that could be made just out of that somehow, I like the gnome sprites and the fact that they all have their own jobs. Seems a bit lacking in goals at the minute though.

gre says ...
May 1, 2014 @ 9:33am

Very cool :-)

I may be a bit biased to say this is a very good game, while my entry is pretty close to it :-)

Spaceoff says ...
May 1, 2014 @ 9:38am

It's a cool little engine and crafting system you have. The game does kinda lack a goal/purpose though: you can get to diamonds pretty easily, which I'm guessing are for more durable tools, minecraft style- but you can't really build anything, just seems pure mining.

Zerkruemler says ...
May 1, 2014 @ 10:21am

This is a very cool idea and good implemented, but the Game would need a tutorial to be fun from the beginning.
I read through the instructions several times before I understood what to do. It is also difficult to understand what needs to be done and what the resources are.
Some sounds would also be nice.
Keep on the good work there is a lot of potential for a good game.

pansapiens says ...
May 1, 2014 @ 1:53pm

Just a little over 600 lines of code (not including libraries) ! Sure, there are a lot of little touches that would make this more approachable (I agree gnome highlighting would help, and maybe different coloured hats), but what you've got is pretty cool. I played the OUYA version, worked well. Without reading the instructions here I figured out about half of it (but not how to properly craft or record), then went back and played again knowing what to do.

Tititesouris says ...
May 1, 2014 @ 5:40pm

Another pygame user! Pro tip for next time, most people don't want to install python/pygame, but you can freeze the .py file to an executable, look for infos about the module cx_freeze. (works for python 3.3, not 3.4 yet)
As for the game, it's alright, good ideas, but I got tired fairly quick to always switch and the very slow progress, maybe using the mouse for controls would have been better.

Almost says ...
May 2, 2014 @ 7:51pm

The window is detected as unresponsive while it is generating the map, it could probably do it a bit at a time (generate an n x n block and then if elapsed time is large, wait for another update frame) so that my computer doesn't ask me if I want to close it.

Almost says ...
May 2, 2014 @ 8:08pm

I also don't fall when I walk into walls, it just sort of leaves me hanging. I thought that my tools would break when the timer reached 0, but now I assume that is hunger since it went up when I ate a mushroom. However, it is 0 for one guy and he doesn't look dead. (I guess he can't use his tool though)

Dropped resources are stacked on the same spot, so the difference in one and three wood is invisible (I also didn't realize for a while that I could pick stuff up other than tools)

It would help a lot if the status information for the selected dwarf was highlighted.

I saw some instructions in game so didn't bother to read the description here after reading crafting recipes, so I missed out on the recording controls. The game is very tedious without recording. Even with recording, if I automate a guy digging and a guy placing ladders, I still have to bring the other tools over or collect the resources manually.

The concept is cool, but the current interface/implementation is a bit awkward.

Almost says ...
May 2, 2014 @ 8:10pm

Since I seem to be commenting a lot, it would be nice to save recordings as presets (R to begin recording, 1 to save it as preset 1, then later I press 1 and it plays it)
Then I could make a dig or walk or whatever presets I want.

kunzbe says ...
May 2, 2014 @ 8:53pm

Looks neat, and when I read about the loop mechanicsm and the teamwork aspect, I was really excited, but ... I can't use the tools :( 'Press C+ direction', what i'm doing wrong ? Is this a bug?

mortus says ...
May 4, 2014 @ 3:19pm

Wow, that's a great concept! First thing I did was to send my pickaxe gnome down below in a series of zig-zag tunnels. By the time I was able to catch up with him with my ladder gnome, he already used up his pickaxe and was stuck down below, eventually with 0 food. I managed to feed him and other gnomes but the problem is I have no iron now to craft a pickaxe. Would be nice if there were a way to craft a pickaxe without actually having one. Although maybe that would be not enough hardcore. Will play more for sure, I love the looping mechanics!

ohsqueezy says ...
May 4, 2014 @ 4:56pm

In love with your tiny sprites and underground mushroom world. My wish is for every action to have a visual cue, so I can swap, craft and record effectively.

Jason Lay says ...
May 13, 2014 @ 1:27am

Pretty deep crafting system. Can't believe this was done so quickly. Good job!

udo says ...
May 15, 2014 @ 2:49pm

Installing pygame on OS X was kinda painful, but this game is a neat idea. You should totally flesh it out into a post-LD version!

You must sign in to comment.

IMPORTANT NOTE: If you want to place in the final results, you NEED votes. The easiest way to get votes is by rating other games. Judging lasts for 3 weeks following the end of Ludum Dare. For best effect, rate 20 games as soon as possible. Rating more games is encouraged.


TEAMS: Teams entering the Jam should pick a single representative to submit your game, or create a team specific account you can share. We currently do not support Team Voting, but sharing an account and together playing and rating games is acceptable.

NOT LOGGED IN?: If you get a message about not being logged in, even though you are, it’s because your web browser cached the non-logged in page. You can fix this by either refreshing your cache or clearing your cache. CTRL+F5 in many browsers. Chrome is a bit more work. Press F12 to enable Developer Mode, then you can right click on the refresh button and select “Empty Cache and Hard Reload”. This option is unavailable if you are not in Developer Mode.

PORTS: Ports to other platforms can be done after the deadline. That said, the sooner you finish your port, the sooner people can play your game, improving your chances of placing in the final results. For best results, provide a Web version of your game, or a Windows version with no dependencies. Also be sure to rate about 20 games to improve your visibility.

MY GAME DOESN’T SHOW UP: If you can’t find your game, it’s usually because the URL to your downloads are missing ‘http://‘. Fix your URLs ( and you will show up.

MY GAME CRASHES, IS UNBEATABLE, OR I MADE A TYPO: We allow you to fix crash or win condition bugs after the deadline (in a sense, like “porting” to support more players). We also allow “typo” bugs. I.e. A true that should have been a false, a word that should have been a different word, very tiny changes that you would have caught if you had more sleep. We leave this open to interpretation, but generally speaking your game should be identical to the game you submitted. No new features, just things you messed up last minute. Typos.

[cache: storing page]