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-17-06-22.jar (or right-click on it, Open with Java Runtime Environment; or issue java -jar dm-17-06-22.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 drink a potion, either go through the inventory (press 'i') and select the potion; or press 'q' to open the Quaff menu.
  • To throw an item (potion, bomb, etc.), either go through the inventory (press 'i') and select the item; or press 't' to open the Throw menu.
  • To cast a spell, either go through the inventory (press 'i') and select the spell; or press 'c' to open the Cast menu, or use the spell's shortcut shown below the inventory (one of F1 → F12).
  • 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 or casting a spell 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 June 22th, 2017:

New features: Gameplay

  • Added spells. There are 16 different spells:
    • Dragon Breath: An area of effect spell in the shape of a dragon's breath
    • Dragon Slaying: A projectile that affects only dragons, but which is particularly deadly for them
    • Firebolt: A magic missile
    • Force: A spell that pushes back an opponent, an item, a barrel, etc.
    • Health: A spell to heal yourself or another living foe
    • Lightning: A beam spell that hits every enemy on its path
    • Paralysis: A beam spell that paralyses its target
    • Poison: A beam spell that poisons its target
    • Protection: A spell that surrounds its target with a protective haze, to absorb future damage
    • Orc'n gobs'n troll Slaying: A projectile that affects only goblins, orcs, and trolls; but which is particularly deadly for them
    • Quietus: A beam spell that instantly kills its target
    • Raise Skeleton: A spell that reanimates a fallen foe (turning it into a skeleton), so that it will fight on your side
    • Slowness: A spell that slows down its target
    • Undead Slaying: A projectile that affects only undeads, but which is particularly deadly for them
    • Teleportation: A spell to teleport anything: a monster, you, an item, a all, etc.
    • Vampirism: A beam spell that transfers some of the target's life to you

    Spells are obtained in two ways: either by applying a branded runic (for spells corresponding to a runic, i.e. dragon slaying, force, lightning, paralysis, poison, orc'n gobs'n trolls slaying, quietus, vampirism) to a blank spell or by finding a branded spell. Spells can be boosted with any runic, hereby either increasing damage, reducing cooldown, or increasing duration (depending on the spell).

    Casting a spell can be done in a number of ways:

    • You can click on the spell's name at the bottom of the inventory (like the second spell cast in this video).
    • You can use the spell's shortcut shown in the inventory (F1 → F12).
    • You can press 'c' to open the 'cast' menu, which will present you the available spells (as in this video).
    • You can open the inventory with 'i' and select the action 'cast' in the desired spell's submenu.
  • Added rings. There are 5 kind of rings:
    • Awareness: This ring allows you to feel enemies beyond your usual field of vision.
    • Dexterity: This ring increases your chances of performing special attacks (daggers, swords, falchions, small axes).
    • Toughness: This ring decreases the damage you suffer.
    • Sight: This ring increases your sight distance. This distance is used to draw your surrounding but also caps your throwing distance and your casting distance.
    • Strength :This ring increases the damage you deal.
  • Added classes. A class is simply a set of starting equipment (see the equipment of each class). Classes ease trying the different flavors of mercenaries that you can throw down the dungeon:
    • Assassin: Assassins are specialists at instantly killing their enemies, thanks to their deadly enchanted dagger, the daggers' special attacks (Alt + move), and their increased dexterity.
    • Barbarian: Barbarians excel at pulverizing and massacring every race and species.
    • Conjuror of Cheap Tricks: Conjurors of Cheap Tricks try to avoid combat by all means. They excel at staying alive no matter what's thrown at them.
    • Dragonist: Dragonists walk the dangerous path of taming dragons. They usually accidentally fry a girlfriend or two before being banned from society.
    • Optimist: Optimists don't worry, they are confident they'll find loot early in the dungeon.
    • Elements Conjuror: Elements Conjurors are versed in two elements: fire and lighting. Their strategy is straightforward: burn everything down.
    • Filth Assassin: Filth Assassins are specialists at making their enemies suffer a slow but irreversible death. If they stay alive long enough to master their technique, they become immensily powerful.
    • Filth Mage: Filth Mages are specialists at making their enemies suffer a slow but irreversible death, without even taking the risk of melee combat! Legendary filth mages caused plagues in the past.
    • Knight: Knights are well protected melee fighters. They use their sword's special attack (Alt + move) to kill enemies from a distance.
    • Mage Wannabe: Mage Wannabes started mage school, but ultimately dropped out to discover the outside world on their own. They only know their basics, but took a little something from the school's storage areas on the way out…
    • Undead Commander: Undead Commanders excel at raising a large undead army at their service.
    • Necromancer: Necromancers are both good undead commanders and viable damage dealers.
    • Paladin: Paladins are very well protected melee fighters. They use their sword's special attack (Alt + move) to kill enemies from a distance and use their shield to paralyze enemies.
    • Priest: Priests master the art of healing themselves and others.
    • Slayer: Slayers excel at hunting down monsters.
    • Southern Knight: Southern Knights are well protected melee fighters. They use their falchion's special attack (Alt + move) to force enemies to back up.
    • Tourist: Tourists are badly equipped for surviving in a dungeon. They just bring the most basic equipment.
    • Vampire: Vampires are good melee fighters and like being accompanied by an army of disposable minions.
  • Added an explore mode (toggled with 'x') in which you can see the description of items under the cursor. Descriptions are also displayed when hovering with the mouse. As of now, only items and some wall elements are described. It was required to do items, because this is required in choice treasure rooms (see below), so that you know what the items are. In the future monsters will be documented too.
  • Added special rooms:
  • Armors now decrease damage instead of reducing hit probability, to a minimum of 1 (à la Sil). Non-leather armors now increase the probability of being hit by enemies: chain mail increases probability by 10%, banded mail and split mail by 20%, and plate armor by 30%. Shields, on the other hand, have been unchanged: they still decrease the probability of being hit by enemies.

Gameplay Changes

  • Increase the damages of the poison runic. Instead of doing 1 damage per turn (for every poisoning), poison now deals, every turn, damages corresponding to remaining duration of the poison. So if you have a +5 poison runic (which makes poison duration 5 turns), the target will suffer 5+4+3+2+1 damages. Whenever you hit an already poisoned enemy, poison's duration is reset to its initial duration (so if you hit the target twice in a row, it'll suffer 5+5+4+3+2+1 damages).
  • Slowness does not stack anymore. This means that when you're being slowed down by an ogre shaman, while you're being slowed down already; your speed isn't reduced to 25% but stays at 50%. What happens is that slowness' duration is reset to its initial value.
  • Tweaked item generation:
    • Light weapons are generated all along the game. Previously, in the middle-game mostly middle-game weapons were generated, and mostly end-game weapons were generated in the end-game. Now the probability of middle and end-game weapons progressively raise as you go deeper and deeper into the dungeon, ultimately reaching 40% and 20%.
    • Probability of life potion is now 100% at depth 1, 33% at depth 2, and 25% afterwards (was 100%, 50%, and 33%).
    • Number of generated runics has been reduced, but the game now makes sure that you'll have enough of them to be able to finish the game. Roughly the objective is that a runic is available every two levels (this includes runics that can be obtained by melting objects).
    • The game now makes sure that decent loot is generated. This means that the probability of generating items increases gradually when previous levels have been very unfriendly. This concerns armors, shields, and weapons.
  • Doing an action via a menu (drinking a potion, equipping an item, unequipping an item, applying a runic, etc.) now takes one turn.
  • There's now 12% chance to have a forge in a level (was 50% before).
  • Special attack of the sword now deals 2 damage per boost level (was 4 before).
  • Firebolt now burns down doors. Thanks D. Casoni for suggesting it.
  • When you miss a special attack, you do not perform your normal attack anymore.
  • Highlight known stairs even when out of sight, so that it is easier to spot them.
  • Equipping a shield asks which weapon to unequip if wielding two simultaneously.

New features: UI and controls

Gameplay Bugfixes

  • More often generate negation potions.
  • Pull at most one barrel (as opposed to pushing). Thanks VedVid for pointing it out.
  • Corrected that it was possible to kill monsters with a melee attack, while not being adjacent to them (by dashing into them).
  • You cannot drink a potion to revive yourself when dead (it was possible if using only keyboard shortcuts, via the inventory..). Thanks [@cyndi_for_u](https://twitter.com/cyndi_for_u) for pointing it out. You could actually even "possess" a monster and move a monster if one was coming onto your dead cell!
  • You cannot drop an equipped cursed item from the drop menu (opened with d) anymore.
  • The adequacy between what you see and what is described has been enhanced. For example, you may see a goblin necromancer waving his hands but you may not see that he is raising a skeleton from the deads if the skeleton's appearance is beyond your field of view.
  • Fixed longstanding bug where static lighting of torches was badly considered for fog of war opacity.
  • Corrected that special attacks could be used during their cooldown.

Other Bugfixes

  • Made handles of scrollbars work (previously; only the arrows, page down/page up, and the mouse wheel were supported) with the mouse i.e. you can drag them like a usual scrollbar.
  • Correct that rulers in achievements screen weren't correctly handling resizing.
  • Corrected that any keypress would close the end screen (kill list). End screen is now closed when clicking on it, or pressing Space, Backspace, or Enter.
  • Connect areas of the dungeon that could otherwise be unreachable when chasms were generated. Connection are done both with corridors and bridges (some bridges: bridge 1, bridge 2, and bridge 3).
  • Make Ctrl+vim key work. Previously it was impossible to pull/push barrels with the vim keys. Thanks D. Casoni for pointing it out.
  • Corrected that display of poison (green overlay) was lasting one turn too much.
  • Corrected that Page Up and Page Down could put a menu's focus on an unbound button.
  • Corrected that diagonal arrows weren't working (please report bugs on this one, it is difficult for me to test correctly).
  • Corrected that unicode characters (such as '→') could be used as shortcuts in menus of altars.
  • Corrected that, on Mac without Ctrl keys, it was impossible to pull/push barrels (now you can use the Sym key).

Tiny Changes

  • Added an additional shortcut to wait: '.' (thanks D. Casoni for suggesting it).
  • Display You wait when you press 'z', '.', or Numpad 5.
  • Display You block the foo's blow when you block a blow with your shield.
  • More specific verbs for unequipping armors and shields (thanks VedVid for the suggestion).
  • Added "red carpet" areas to icy level (depths 5 → 7).
  • Corrected that display of poison in "status panel" (panel at the bottom) wasn't distinguishing the remaining duration from the total duration.
  • Always bind "Cancel" to c in menus.
  • Corrected some "parent" relation in menus, so that cancelling a menu correctly reopens the menu from which it was opened.
  • Added "Cancel" entry to the Unequip menu.
  • More epic text when cause of death is firebolt.
  • You may now drop an item into a pit if all adjacent cells contain an item.
  • Finally made open doors a different color than walls, as many players requested it overtime: beforeafter, beforeafter, beforeafter, beforeafter.
  • Color of blue overlay when in deep water now matches the current level's color of water.


  • Different style of levels, from classic dungeons to open areas; featuring different color themes: grey castle theme, snow theme, mud theme, a "forest" theme, etc.
  • Different kind of weapons, armors, shields, potions, bombs, rings, and spells. So you may either play a warrior or a spellcaster, depending on your items and your taste.
  • 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, cemeteries, goblin throne rooms, the wizard's office, the dragons' nest, closing rooms, choice treasure rooms, malevolent crosses, trapped corridors, etc.
  • 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 ?)
  • Classes: Conjuror of Cheap Tricks, Filth Assassin, Mage Wannabe, Necromander, etc. Classes in Dungeon Mercenary do not have special traits or abilities, they simply consist of a specific set of starting equipment. They allow to test the game's variety faster than what random generation of dungeons and items usually permits.
  • 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?)!
  • A User Interface that does its best to help newcomers. For example by highlighting the focused monster (1 and 2), previewing the beam of a spell, animating the effect of potions: health potion and life potion, etc.
  • Beautiful ASCII; gradual Field Of View, animated water, etc.


  • 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 received since January 2016: 1€).

Here's the 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 2016. Since then, this was further improved: the descriptions of items is shown when hovering over them or when using the explore mode ('x')(June 2017).
  • 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 2016, 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. Since then, there are even more special areas (in June 2017): closing rooms, choice treasure rooms, etc.
  • 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 The spells system, that integrates with runics, has been implemented in June 2017.
  • 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-17-06-22-windows64.zip 52 MB
dm-17-06-22-windows32.zip 60 MB
dm-17-06-22.jar 12 MB

Development log

View all posts


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


Hey, I just noticed the itch.io devlog link you have in your game description points to your dashboard, so one one else will be able to load the page!

Indeed, thanks for pointing it out! I've corrected the link. It now points to https://hgames.itch.io/dungeon-mercenary/devlog.