Dungeon Mercenary

Dungeon Mercenary is a dungeon crawler game where levels are randomly generated, meaning you never get to play the same game twice. For the moment, it is in ASCII art: there are no graphics: a wall is displayed '#', the player is displayed '@', a goblin is displayed 'g', etc. Don't run away: your imagination will do the job. Once you're accustomed (and believe me, it's quick!), you'll enjoy it as much as a graphical game; because hey we did not stop reading books when movies were invented!

Dungeon Mercenary is designed to be easily understandable but hard to master, as you'll need to die a few times before being able to reach the dungeon's middle depths. To beat the dungeon, you'll need to learn when it is wise to dash to flee, when you should try a special attack to try slithing a monster's throat in one turn, how to lure monsters into traps, etc. Then, only the bravest mercenaries will succeed in winning the game… Good luck!

  • Desktop version (Windows): download the game at the bottom of this page. Extract it and launch DungeonMercenary.exe.
  • Desktop version (Mac, Linux): download the game at the bottom of this page. If you don't have it (but it's likely you do), install the Java Runtime Environment (JRE) for your platform and you'll be ready to execute the game by double clicking on the file dm-16-12-14.jar (or right-click on it, Open with Java Runtime Environment; or issue java -jar dm-16-12-14.jar in a terminal).

How to play:

  • You start at the dungeon's depth 1. The goal is to travel all the way down to depth 14 and exit via the arch there.
  • To move: use the arrow keys or the vim keys (hjkl and yubn), or click where you want to go.
  • To interact with an item, click on its icon in the inventory (on the screen's right); or toggle the inventory: press 'i'; or click on the 'Inventory' label.
  • To drop an item, either go through the inventory (press 'i') and select the item; or press 'd' to open the drop menu.
  • To zoom in/out: press '+' or '-'
  • To perform a dash move: press Shift while moving
  • To perform a special attack: press Alt while attacking. If you wield only one weapon or has only one weapon with a special attack (dagger, falchion, small axe, or sword); pressing any Alt key works. If you wield two weapons with special attacks, right Alt triggers the special attack of the weapon in your right hand, left Alt triggers the special attack of the weapon in your left hand.
  • To push/pull one or more barrels: press Ctrl while moving. Use them to block monsters, create traps, etc.
  • In the inventory and other menus, entries are bound to key shortcuts: the character with a different color. You can also click on entries or type Enter. You can always return to the previous menu by selecting Cancel or pressing Backspace (or the mouse Previous button, if any). You can also change the current entry using arrows (including Page Down/Page Up) and use Tab to cycle through entries.
  • When throwing an item, move the cursor with the move keys (arrows or vim keys) or the mouse. To perform the throw, press Enter or the mouse's left click. Pressing Escape or Backspace or the mouse's right button (or pressing the Cancel Throw button at the top) will cancel the throw.
  • To open the main menu while in-game: scroll down or up, or press Backsspace, or press Escape (desktop only for the latter).
  • To wait a turn: press 'z' or Numpad 5.
  • To explore the map around you: click and drag

Changes in last release on December 14th, 2016:

  • New features: terrain and maps
    • Added a new kind of terrain: pits (aka depths in Brogue). Added flying monsters (see below) with that. And handled that things thrown down pits will appear in the next level.
    • Added a new kind of wall: bookshelves, that can hold items, like level 1's rack. I'm tagging bookshelves as walls, as they are impassable.
    • Added a new kind of terrain: benchs, that are passable, but where every move consumes two turns.
    • Added a new kind of special rooms: throne rooms, that contain red carpet, bookshelves, chests, and a goblin king or queen; as well as a variety of goblins. Throne rooms can be abandoned, in which case they contain no items (empty bookshelves, empty chests) and red carpet is partly missing.
    • Added three special levels: the goblin bridge, the wizard's office, and the dragons' den.
    • Added 4 new depths, 3 of which with a new forest color-theme (that's where you'll find the brand new ogres and trolls (see below)).
  • New features: monsters (by the order in which they appear in depths)
    • Added a neutral monster at depth 1: a ghost that wanders for eternity above the dungeon's pits.
    • Added the chaos fairy, a support flying spellcaster. Its spells are healing, teleportation, slowness, and protection.
    • Added the kobold wizard that has three spells: firebolt, slowness, and teleportation.
    • Added ogres and ogres shamans. The latter is a spellcaster: it has slowness and healing.
    • Added trolls and mountain trolls. The latter wields a weapon with a force runic.
    • Added adult dragons, that have magical spells in addition to their breath. There's a platinum achievement to obtain if you manage to kill one. Adult dragons are always spawned sleeping (as in brogue).
  • New features: potions
    • Added the potion of negation that:
      • Removes all effects and spells when drank or thrown.
      • Instantly kills creatures animated purely by magic in the throw's splash area.
    • All potions can now be thrown. When a creature is covered by the potion's liquid, it has exactly the same effect as if the creature was drinking the potion itself. For now, it only makes sense to throw the potion of negation, because all other potions have a strictly positive positive; but when Dungeon Mercenary becomes a local coop roguelike (yes that'll happen), it'll make sense to throw potion at your allies.
  • Gameplay Changes
    • Made the use of altars less of a win/win situation. Instead of doubling a runic, they now "only" add +3 to a runic. So they work as follows:
      • War altar: add +3 to an offensive item (boost or branded runic), at the cost of 33% of your life.
      • Chaos altar: add +3 to an equipped item (boost or branded runic), at the cost of cursing this item (you'll never be able to unequip it).
    • Cursed items cannot be melted in forges anymore
    • Opening a chest now contributes 32 to the score, instead of 1.
    • Probability of branded runics has been increased, it is now 1/2 (was 3/7 before). This means 50% of generated runics are branded (i.e. non boost).
    • More things are visible under the fog of war. First I was suggested to make doors visible. Then I generalized by making visible everything that doesn't move, which include tombs, doors, chests, forges, altars, etc.; but rule out barrels and monsters. Items are the exception: they are visible under the fog of war, despite that they can move (like barrels), because I think it is nice for gameplay.
  • UI Changes
    • Transition between levels is done with fadeout/fadein animation.
    • The area affected by throwing a bomb or potion is shown before throwing: video (see the pink cells around the point of impact ?).
  • Bug fixes
    • Corrected a crash when selecting the 'Cancel' button of an altar's menu offering the choice between multiple eligible items.
    • Corrected that 'Drop' wasn't greyed out in a cursed item's menu (but it wasn't dropping the item anyway ^^).
    • Corrected the cause of the message 'Unexpected state: monster foo is trying to get to an uncreated level' that could appear in the log.
    • Corrected that the gradual field of view could be incorrect (making the shadow effect look weird).
    • Corrected that barrels could block the path between stairs.
    • Changed the terms "Elf forge" and "Dwarf Forge" to "Elven forge" and "Dwarven forge" (thanks VedVid).
    • Benefited of the correction of a performance issue in SquidLib's pathfinding that I spotted. Thanks Tommy Ettinger for correcting it. To my knowledge the game should never lag, so let me know if it does!
    • Corrected that opened chests containing an item had a greyish color instead of the item color.
    • Corrected that the dash malus of heavy shields and armors wasn't applied.
    • Corrected that opening a chest when its content could not be picked would not change the chest's color until the next turn (thanks VedVid).
  • Tiny Changes
    • In menus, Tab cycles through entries (like arrows/vim keys did so far).
    • Changed the color of elven forges to a greenish color, as it was previously looking too much like the human forge (thanks VedVid for the feedback).
    • Text in the "what you see panel" is aligned to the left, to make it easier to parse (thanks Joshua Day for the suggestion).
    • Corrected that the 'I' in the inventory label (atop the inventory on the right) wasn't highlighted as a shortcut, whereas it is one.
    • Made shallow water less white in "mud" levels.
    • Some monsters do not bleed anymore when hit: skeletons and mud golems. New monsters that do not bleed either: chaos fairy and white ghost. Thanks VedVid for pointing this out.
    • Changed color of already opened chests, to be the one of walls; so that it is better visible at all depths.
    • New achievements:
      • Reach depth 11
      • Reach depth 12
      • Reach depth 13
      • Reach depth 14
      • Goblin king/queen slayer
      • Dragon slayer


  • Different style of levels, from classic dungeons to open areas; featuring different color themes (such as this "grey castle" one and this "mud" one).
  • Different kind of weapons, armors, shields, potions, bombs.
  • Equipment crafting via runics (vampirism, orc'n gobs slaying, force, etc.), allowing you to balance your loot and your style.
  • Special areas: "red carpet" areas and cemeteries.
  • Means to tune your equipment: altars and forges.
  • Monsters, from the usual fantasy world (goblin, orcs, kobolds, uruk-hais, etc.), including ninjas! (who doesn't love ninjas ?)
  • Achievements and High Scores: either in the standalone desktop version or integrated within GameJolt.
  • Dash moves and special attacks. Used wisely, they'll save your life more than once; or can even be at the core of your gameplay (double dagger ninja anyone?) !
  • Beautiful ASCII; gradual Field Of View, animated water, etc.

There are also features that Dungeon Mercenary doesn't have:

  • Hundreds of items. Sorry, not my style; I prefer a limited number of items, so that every item has its specific purpose.
  • Classes (wizard, warrior, etc.). Classes are either complex to understand for new players; or must be very limited, in which case interesting strategies are limited too. So your style will be determined by the items you find and your taste in using them.


  • Windows
    • If the game doesn't start, it likely means its launcher crashes very early on. I would really like what is going on in this case: to help me, you should launch Dungeon Mercenary from a shortcut, adding -c --console -v to its starting parameters (see it pictured here, it's really quick: create shortcut/right click/add the flag/relaunch). Once this is done, please send me a screenshot of the terminal that showed up. There'll be valuable information in it.
  • Firefox
    • If the game's loading bar stays stuck (geeks: see java.lang.UnsupportedOperationException: typed arrays not supported in the javascript console): you're affected by a Firefox bug. The only workaround I know is to use Google Chrome.
  • Google Chrome on Linux
    • If the game doesn't show up and a message Your browser doesn't seem to support WebGL is printed, turn WebGL on.
  • Flash: you don't like it ? Well neither do I! The game actually doesn't need Flash for the moment, because it is for sound support; and there's no sound yet... Hence flash blockers, welcome :-)
  • If you have another problem, drop me a line (see contact below).


You can checkout the changelog of all versions on the game's website.


If you want to help Dungeon Mercenary's development, you can make a donation .

Donations will allow me to develop games full-time (who knows ^^) and complete my roadmap:

  • Short term goal is to integrate documentation in the game, so that you have details of what items and monsters do. In progress: check it out. Done in January
  • Short term goal is to add new terrains. I first envision water, because it is easy to do and I have a nice rendering for it. Water got done in early February, it's there; but there are no waterborn monsters yet.
  • Short term goal is to add special rooms (treasure rooms first I suppose. ) This got done: altars were the first step in this direction, since I wrote room-finding algorithm for them, red carpet areas were the second one, and cemeteries are yet another special areas.
  • Short term goal is to allow more choice in the use of runics. For that, I plan to implement ways to sell/trade your runics, either with neutral merchants (for trading/buying) or forges (for crafting). I've done forges to reuse/exchange runics. They pave the way to more uses of the boost runic, as it's now easier to obtain them (you can transmute any runic to a boost runic). More boost runics pave the way to boostable spellbooks. Yummy!
  • Mid term goal is to finish the Android version.
  • Long term goal is to pay a pixel art artist, to have a version with flat 2D graphics (à la zelda). The game is designed in such a way that this is a small move from ASCII rendering.

Along the goals, I'll progressively add content (monsters, special rooms, terrain, etc.). One thing I'd love to see: ranged weapons, because limited ammo + the need to reload creates very interesting strategies in turn by turn games (ever gunned down a herd of zombies in Cataclysm DDA ?) Throwing bombs is the first step in this direction, since I had to code the UI for throwing/firing.

The founding principle in upcoming developments: keep the game tight. Put differently: do not spam poorly integrated content and keep bugs away.


Dungeon Mercenary is regularly updated (see the history of versions). You can follow its development in various manners (the twitter account being the central place):

I can be reached at hgamesdeveloper@spam_trap.com, replacing spam_trap by gmail. Please submit bugs if you find any (with a screenshot demonstrating the problem, if that's possible), suggestions, or just leave me a kind word :-)


Download NowName your own price

Click download now to get access to the following files:

dm-16-12-14.jar 10 MB
dm-16-12-14-windows.zip 50 MB

Leave a comment

Log in with your itch.io account to leave a comment.