Dungeon Mercenary
About
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-18-04-30.jar (or right-click on it, Open with Java Runtime Environment; or issue java -jar dm-18-04-30.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 Backspace, 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 April 30th, 2018:
The goal of this release was to better balance the game (making it harder mostly!) and to have more interesting content, monsters-wise and room-wise. I hope you'll enjoy it!
New features: Gameplay- Items:
- Added the Drain Magic spell
- Added the Many Colors potion
- Added the Poison Immunity potion
- Added the Stone Heart potion
- Made the Great Axe and the Warhammer two-handed
- Shields offer extra protection against ranged attacks (aka bows, crossbows, etc. (see newly introduced monsters below))
Monsters:
In this release I've added monsters with new abilities as well as ranged attackers. New abilities are all well distinct and ranged weapons have different stats (need to aim or not, reload time) so that all monsters feel unique. In addition, thanks to the addition of locked prisonner rooms (see below), you'll now be able to have allies fighting with you.
- Added the Bounty Huntress that has a new spell: h
- Added the Cerberus: C
- Added the Chaos Dancer that has a special move: ç
- Added the Chaos Dwarf Handgunner that wields a musket: ẁ
- Added the Death Mage that has a new spell: @
- Added the Fairy (a rare ally): f
- Added the Gargoyle that flyes: ģ
- Added the Ghoul: ġ
- Added the Goblin Archer that wields a bow: g, video
- Replaced the Goblin Leader by the Goblin Mechanic: g
- Added the Knight (κ) and the Blue Knight (κ) that have a special move: video
- Added the almighty Lich that has a new spell: L
- Added the Master of Rats that has a new spell and a new passive ability: @
- Added the Ogre Artilleryman that wields a canon: Ò
- Added the Orc Crossbowman that wields a crossbow: ò
- Added the Pink Archer (rare) that wields a runic long bow: à
- Added the Poisonous Worm: w, video
- Added Totems that have new passive abilities: ‡
- Added the Unicorn (a rare ally): Ú
- Dungeons:
- Added statues: screenshot 1, screenshot 2, and screenshot 3.
- Added new special rooms
- Added multiple special rooms/quests interacting with statues: quest+statue 1, quest+statue 2.
- Added poisonous areas: video. This one was on my TODO list almost from the first release :-)
- Locked rooms can now sometimes be opened with a key which is in the level.
- Levels are smaller
- At depth 1, it is now 40x25 instead of 60x30; and complexity (number of rooms and connections) was decreased.
- At depth 2, it is now 45x25 instead of 60x30; and complexity (number of rooms and connections) was decreased a bit.
- At depth 3 and more, it is now 50x25 instead of 60x30 (except for the forest levels that were smaller already (40x40)).
- Monsters can now drink and throw potions.
- Monsters can now throw bombs.
Items may be burned down.
- Moving by keeping the mouse's left button pressed is now handled.
- Added descriptions and stats of monsters when hovering over them: screenshot 1, screenshot 2, screenshot 3, and screenshot4.
- Monsters do not forget so easily their target when not in sight (aka "doors aren't so powerful anymore").
- Corrected that spells of foo slaying were affecting all monsters. Oops.
- When fiddling with an item (pushing it with a force spell, teleporting it) in a treasure room, the other items now vanish; to nerf Conjurors of Cheap Tricks.
- Dragons more often use their breath attack.
- Fixed that you could interact with items (such as drinking a potion) while paralysed.
- The Quietus spell has been made less powerful: when you kill an enemy with it, you suffer as many damage as the target. The spell won't kill you though: it leaves you at one hit point if the target has more hit points than you. Thanks Lici for discussing this matter.
- The Raise Skeleton spell has been made less powerful: you can now control at most three skeletons per level of the spell (so three skeletons at level 1, then six, etc.) In addition, killed skeletons (as well as all monsters animated purely by magic) do not leave a corpse anymore, meaning you cannot raise a corpse from the dead twice. Thanks Lici for discussing this matter.
- Monsters animated purely by magic (gargoyles, golems, skeletons, and totems) are immune to poison, quietus, and vampirism.
- Changed rings of awareness so that awareness extends to 2 cells * awareness level instead of (sight distance) + (3 cells (awareness level)). It is more akin to brogue's awareness now.
- The Negation potion now drains spells of monsters instead of removing the spells altogether. This departs from brogue and hereby makes the potion less powerful.
- Reduced chances of having an altar in a level, from 12% to 7%.
- Made chaos altar provide a +2 runic boost instead of +3 (recall that the trade-off when activating a chaos altar is that the concerned item becomes cursed).
- Increased cooldown of dashing and special attack, from 5 turns to 8 turns.
- When playing on itch.io or schplaf.org, achievements and highscores are now shown and recorded during the current session.
- The "You've achieved some achievement" panel doesn't block input handling anymore: you can continue playing while it is fadeing out.
- Support for German has been removed as it didn't receive an update since its introduction and was missing a hell of content.
- Corrected that flying monsters wouldn't go over deep water.
- Common actions always receive the same keybinding in menus: apply, drop, describe, equip, unequip. Thanks Lici for suggesting it.
- Shallow water has been made easier to distinguish from deep water: before → after
- Corrected that walking monsters pushed into deep water wouldn't move anymore.
- Flying monsters now swoop through chasms either to hunt you down (enemies) or come along (allies).
- Fixed that waiting with NumPad 5 was waiting two turns on every keystroke. Thanks VedVid for pointing it out and helping me narrow it down.
- Fixed that item on floor wasn't picked up when swapping position with an ally.
- Corrected various incorrect colorings when being colorblind (awareness effect, underwater overlay, etc.).
- Removed usages of "damages" in description of spells.
- Corrected that description of boost of protection spell was incorrect.
- Do not crash when window is made absurdly small.
- Correct that clicking in the "sentences panel" atop the map was handled as going down instead of going up.
- Correct that dash was triggering when both requesting to pull/push barrels (whereas there were none) and dashing (i.e. pressing Ctrl and Shift at the same time).
- Changed toughness color from this color to this color, because the initial color was inadequate for the light of totems of toughness.
- Corrected that damages from breath of blue baby dragons wasn't reduced neither by protection, nor armor, nor toughness.
- Corrected that durations of spells was off by one (a +n duration spell (paralysis, slowness, etc.) would last n-1 turns).
- Changed the ogre and orc shamans to dark blue (like the kobold wizard) for consistency. For consistency, changed the ogre shaman symbol's to Ò and the orc shaman's symbol to ò.
- Colors in the status panel (the bottom panel) are better managed, in particular contrast of text of effect (whose background is a duration bar or a health bar) has been increased.
- When poisoned and poison will kill you, health bar is decorated with poisoned to death.
- Tombs and benchs are now destroyed by dynamite bombs.
- The goblin queen and the goblin king deal more damage.
- A confirmation dialog opens when doing a negative thing at an ally (throwing a bomb for example) or doing a positive thing to an enemy (healing it for example).
- Firebolt, slaying spells, and dragon breath do not lock the game anymore when happening not in sight. As a result, the game is smoother when an ally dragon is battling (throwing firebolts, breathing, etc.) enemies but you can't see it.
- Game menus with scrollbars now have a border (previously they were not mixing well, but it is fixed now), to look better.
- Corrected that animation of barrel explosion was shown even if not in sight.
- Corrected that animation of the sword's special attack was happening on the attacker's cell, whereas it was expected to happen on the attacked monster's cell.
- When having a spell more than once with different levels, the levels are shown in the inventory: disambiguation.
- Made game smoother when picking up an item in a choice treasure room (disappearing animation runs concurrently with the player's move).
- Made locked doors more visible in "mud" and "forest" levels.
- Show a "cooldown finished" animation when boosting a spell that was cooldowning.
- 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.
RoadmapIf you want to help Dungeon Mercenary's development, you can make a donation (donations/ads revenues (GameJolt, Kongregate) received since January 2016: 23€).
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). It was further improved for monsters in September 2017, showing their damages, spells, etc: pic.
- 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. And then even more rooms were added in the April 2018 release: rooms with statues, poisonous 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 The spells system, that integrates with runics, has been implemented in June 2017.
- Mid term goal is to finish the Android version. This got delayed, as I wanted to have a complete game before releasing on Android and I feel there'll be no players anyway.
- 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.
ContactDungeon Mercenary is regularly updated (see the history of versions). You can follow its development in various manners (the twitter account being the central place):
- Dungeon Mercenary's website: http://www.schplaf.org/hgames
- My twitter account Receives the most frequent updates
- tumblr
- The development blog Receives fewer updates, but that's where I post longer articles; mostly for developers.
- GameJolt's devlog
- itch.io's devlog
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 (it's a sure way to boot my motivation!) :-)