Home.
Last update: 2025-09-03.
Traditional roguelikes are a genre with a lot of variety and many fun mechanics. I like the unified lively exploration mixed with dangerous encounters, the unpredictability brought up by randomness, the need for careful consumable usage, the keyboard-friendly and character-centric controls, and the way you can feel urgency despite the turn-based nature!
In this opinionated document, I talk about various design considerations for Shamogu, assuming some familiarity with the game but not much. I also sometimes make references to my previous games Boohu and Harmonist, as well as other roguelikes I played or have some knowledge of.
In Boohu, I tried to provide weapons with unique attack patterns and effects. For example, I got inspired from the spear attack pattern in Brogue and the cleaving of axes in DCSS. I tried some personal ideas too, because movement-based attack patterns, without requiring explicit activation of an ability, weren’t an idea heavily explored in the roguelikes I knew.
In Shamogu, there’s a total of five base attack patterns tied to five upgradable primary spirits. They have various extra effects and some of them are I think quite original and refined in how they work compared to Boohu’s:
Four-Headed Hydra’s four-directional attack pattern provides increased attack per adjacent foe, instead of increased attack simply for being in the open. So it actually encourages fighting multiple foes at once, instead of simply penalizing corridors with respect to open areas.
Rampaging Boar’s attack pattern combines DCSS’s infinite rampaging boots and a pushing effect that may hit behind (similar to Brogue’s or Boohu’s spear), as well as an unbalancing effect (when upgraded).
Jumping Frog’s catching ranged attack pattern is similar to Boohu’s defender flail, but it does not catch foes after a miss, and it may unbalance caught foes (when upgraded), instead of providing extra attack for each turn you don’t move.
Wind Fox’s ranged attack pattern is similar to the whip in Brogue, but with greater range (view range) and a “recoil” effect that helps maintaining distance.
Temporal Cat’s ranged attack is inspired both by Boohu’s dancing rapier and rod of swapping, but with the interesting twist that a miss leads to normal movement. Also, instead of hitting one extra monster behind, you now hit only one foe but make any adjacent ones blink away. Furthermore, hits may daze foes (when upgraded).
The player starts the game with one of those five attack patterns: unlike in Boohu, there is no preliminary period searching for a fun weapon.
And, maybe more importantly: unlike in Boohu, while some monsters perform plain melee attacks, many others also have interesting attack patterns that follow the same rules as the player’s, including ranged attack patterns.
Shamogu heavily makes use of the restrictions imposed by 4-way movement in attack patterns to provide fun movement tactics and make open spaces often less risky than corridors (some roguelikes like DCSS make corridors too often the best tactical position for melee characters). We’ll talk about 4-way movement more later when discussing stealth.
Unlike most roguelikes, Shamogu makes “charging” (attacking when frontally moving next to a foe) the default even for monsters that have plain melee attacks. So, once you engage a monster in melee, you cannot flee easily except by walking laterally (which is a tactic that plays well with 4-way movement). That makes straight corridors dangerous if you plan to escape.
As a pacifist kind of stealth roguelike, I’m quite satisfied with how Harmonist turned out, but pure stealth in some ways is complex. A pure stealth roguelike only provides choice about how and not whether you’re going to flee so, to make it fun, you’ll want extra systems, like cones of view for monsters and external lighting and noise sources. And the exploration and atmosphere played a big role in Harmonist to compensate for the lack of combat.
Given Shamogu is both about fighting and stealth, I decided to keep only the simplest but most essential stealth elements that proved to work well in Boohu and Harmonist: field of view interaction with terrain (dense foliage, rubble, translucent walls), visual marking of noise (including footstep noise originally inspired from CDDA), and quick to give up searching behavior for hunting monsters.
Most already existed in Boohu to some degree, but Boohu had inherited as well some non-deterministic stealth ideas from other roguelikes like DCSS, like lucky stabs and monsters randomly noticing you or waking up depending on non-deterministic rolls.
I feel stealth works better as a mostly deterministic mechanic. In Shamogu, monsters always spend a turn noticing you, no less, no more (unless you ambush them and charge from behind some foliage, cloud or rubble). And the usual stabbing approach doesn’t exist: stealth is all about choosing your fights and guiding exploration and escape. The lack of any progression-related benefit when killing monsters, like no XP, encourages that non-stabbing exploration-based stealth.
Also, one thing I learned from Harmonist is that stealth works well with 4-way movement, because 4-way movement allows for fun and interesting lateral walking evasion tactics that’d be impossible if monsters could move diagonally. Furthermore, as monsters with ranged attack patterns do, 4-way movement contributes to making a roguelike where open spaces can be less dangerous and preferable to corridors. Not always, but often.
Other than stealth features like visual marking of noise, Shamogu provides several ways to obtain information about the map so that the player can make plans and adapt to new information.
The main source of map information are static activable menhirs, but some comestibles and one spirit also provide other information. As we’ll see in the section about comestibles, consumables in Shamogu have multiple effects, so there are usually extra considerations to take into account when using them. The information gathering effects are provided by the following sources:
The “earth menhir” reveals internal wall structure.
The “fire menhir” partially reveals foliage (mnemonic: fire burns foliage).
The “poison menhir” reveals translucent walls, which are a likely indicator of a vault (mnemonic: translucent walls contain poison).
The “warping menhir” reveals portal location but may attract a warping wraith.
The “clarity leaves” reveal location of nearby monsters.
The “teleport mushroom” reveals the location of any totems.
The Stinking Skunk spirit reveals the location of nearby comestibles.
The main reason I go for short runs is that I and the players in my family prefer short playing sessions, but another important reason is that it is easier to make a good short game than a long one: I make roguelikes as a hobby, so if I want the result to be good, limiting scope seems preferable :-)
A short game can quickly get lively and varied. Possibly encountering your first earth dragon, hydra, walking tree or phoenix around map level 3 means you’ll see late-game stuff even if you die early. Except for some late uniques, most content in Shamogu can be enjoyed and discovered from quite early on. Long games often provide thematic branches that offer a change of atmosphere within a run, but it’s hard to provide enough interesting distinct content for each thematic branch if there are many and they are long, so shallow feature creep is a real risk.
Short runs make it easier for characters to progress fast and in mostly qualitative ways. With long runs, unless you get lots of good unique gameplay ideas, it’s easy to fall into the rabbit hole of quantitative progression, which can feel more addictive than enjoyable.
Also, balancing a permadeath game becomes more difficult with long runs: it usually leads to a decreasing difficulty curve with some occasional danger spikes later on that attempt to hide the issue.
Procedural generation helps with variety between runs, but too much randomness can lead to things feeling either too uniform or unbalanced. Shamogu uses several methods to control randomness:
Monsters are classified into early-mid-late game, so that they are more frequent in some areas of the game depending on the category they belong to.
A few special levels per game generate specific monsters with greater chance: you’ll recall that level with lots of barking hounds or burning phoenixes, for example.
Some unique monsters appear in most games, either wandering or guarding interesting places (totem, portal).
Three different base map generators are used. Some maps use a mix of two different algorithms.
Special premade vaults appear in all maps: they are more likely to contain interesting items, but also more likely to attract monsters!
In most games, some level will have lots of rubble (presumably some earthquake happened), and a few levels may have a malfunctioning portal.
A minimal amount of each kind of comestible is guaranteed to appear once in a while.
In the future, I’d want to think about providing more special levels, items or monsters that appear only in some playthroughs, but not all of them (like alternating between some item kinds as DCSS does).
Monster behavior is something that affects balance in Shamogu and is not the easiest to adjust.
When they see the player, most monsters have a quite simple and aggressive hunting behavior: follow a shortest path to the player, choosing randomly when there’s more than one, both to avoid predictability and to enable evasion tactics with lateral walking. Monsters with a ranged attack pattern located in front of you attack directly, but otherwise, they behave the same as monsters with melee attack patterns.
When a hunting monster loses sight of the player, it travels to the last seen location. Then, it chooses a new nearby search destination, often in a dumb way, and becomes a wandering monster.
In general, non-hunting wandering monsters travel around choosing destinations in the map and following a shortest path there. The destinations are chosen quite randomly but with some bias toward nearby and interesting locations (premade vaults). Also, monsters may be joined in their travel by one or two nearby friends, so that small groups form and disperse dynamically.
Despite the biases in destination selection and the stealth-friendly behavior, encounters in Shamogu can be quite random. In some occasions, difficulty might seem easy when no monsters are around the portal, or hard when a few groups happened to travel near you at the same time. This is intentional and helps make runs less uniform and more surprising, but occasionally it can lead to situations that seem unfair or easy.
My take on the matter is that, in a coffee-break roguelike, the fun surprises are worth an occasional unfair death or easy win. Still, hearing footstep noise helps avoid most dangerous encounters, and most runs can be won and even short win streaks are doable in my experience. I can’t say about long win streaks, but I’m not the kind of roguelike player that’s good at those anyway: even in DCSS, which is famous for ensuring win streaks are possible and unfair deaths rare, I might’ve won a couple of games in a row at most with simple overpowered builds like a Troll with a Granite Talisman or a Minotaur Berserker, and I’ve still never won at all with some species like Mummy. In any case, Shamogu wasn’t designed with win streaks and competitive gaming in mind.
Other than from procedural generation and surprising random encounters, replayability in Shamogu comes from varied character builds.
By limiting builds to one primary spirit and two secondary spirits, the variety between runs is ensured. With 5 primary spirits and 7 secondary ones, there’s 105 distinct possible builds. While many of those share one or two spirits, even one difference matters when there’s only three. And there are many more build progressions if one considers the order of selection and upgrade, which matters in the early and mid game.
Combining passive and active effects into a single spirit concept reduces the number of combinations compared to using different kinds of items for each, but it ensures that they’re all interesting, compatible and memorable.
At some point I considered two upgrades for each spirit instead of one, but it made each upgrade less interesting, it facilitated rejecting several new spirits in a row until you get your prefered one, and it started to look like quantitative upgrades. Doing several small upgrades on a single item is something I’m not very fond of in some other roguelikes.
One thing I noted from my previous game Boohu is that character-building, as in Brogue (unless you replay specific RNG seeds), felt a bit too random: for example, depending on their current mood, some players might prefer halberd mechanics over the ones of the dancing rapier or the defender flail. In other words, it’d be nice if at least the base attack pattern was the player’s choice. The primary spirit, chosen before starting the game, does exactly that in Shamogu.
However, adaptability is also fun: that’s why secondary spirits are randomly placed and generated randomly among possible ones. But, when finding a totemic spirit, the player has still to make a significant decision: either choose the new spirit (usually better in the short-term) or use its essence to upgrade an existing one (maybe better in the long-term depending on the build and the player’s spirit preferences).
Each game generates 6 totemic spirits among the 7 possible ones, but the player only needs 5 to complete a build. The idea is to not encourage perfectionism and provide some tolerance for stealth-play and early portal escapes.
Boohu had rods that recharged somewhat randomly when going to the next level. Harmonist had non-rechargeable magaras with a limited number of charges. Shamogu takes an approach similar to Boohu’s, but more deterministic: when going through a portal, all spirit abilities are recharged to their maximum capacity.
The rationale behind that choice is that a limited number of charges per map level discourages wasting without encouraging hoarding. Unlike in cooldown-based systems, you have to think carefully about when to use abilities: you can’t use them in every fight or escape situation. However, unlike with non-rechargeable items, you don’t have to fear charge scarcity in the long term. In other words, you get to use a small number of abilities many times, giving a distinctive feel to the build, like in cooldown-based systems, but avoiding repetitiveness and preserving strategic thinking. And you get to choose whether to use several charges in a row or not too!
Roguelikes often have many different kinds of status effects and consumables. However, there usually are so many of them that not all lead to fun choices or interactions. Boohu shares some of that heritage and that’s why it has boring items like potions of “heal wounds” or “magic”.
In Shamogu, all the comestibles have more than a single effect: often both good and bad (ambrosia berries, berserking flower, lignification fruit, teleport mushroom), but sometimes only good (clarity leaves) or mostly good (foggy-skin onion, firebreath pepper).
When several possible status effect ideas were similar, I chose the one that had the most fun interactions, even when realism would’ve asked for both. That’s why, for example, there’s Lignification but no Held, and Berserk but no Might, unlike in a game like DCSS, that would feature all of them.
There are many interactions among that selection of common status effects. Some lead to other statuses on expiration (like Berserk leading to Poison leading to others’ Confusion, and Lignification leading to Imbalance), some cancel others (Foggy Skin prevents Fire and Lignification, Lignification prevents Poison and Imbalance, Berserk prevents Fear), some interact in more subtle ways (like Confusion and Imbalance leading to increased defense due to unpredictable drunken-fight style, or cornered afraid creatures becoming Berserk!).
Poison in Shamogu works similarly to Barbs in DCSS (hurts only if you move), because that’s much more interesting than the usual poison that hurts you independently of your choices. Fire does kind of the opposite (hurts at onset and then every turn you don’t move out).
Also, in some roguelikes, bad status effects are sometimes managed in boring ways through some common potion or whatever: that’s something that doesn’t happen in Shamogu, because comestibles cannot be hoarded and, while some comestible may help managing some status effect, it will have other effects, too.
Boohu had resting and some potions for healing. Resting mechanics were an attempt at improving from natural regeneration like in DCSS and some other roguelikes, to prevent boring tactics like “pillar dancing” in a simple way. Even so, resting was still a very common action without big consequences (other than some monsters waking up). That meant Boohu often had a kind of repetitive combat loop: fight in some corridor, go rest in a safe corner, then repeat. Boohu and DCSS feature brutal damage spikes, but healing out of combat is unlimited.
In Shamogu, there are two sources of healing: eating some comestibles (usually healing you only partially and accompanied by other effects) and going through a portal to the next level.
In practice, healing from comestibles is usually not enough to fight all the monsters in a level head-on, so stealth and various other tactics have to be used. That said, comestibles are still common and become more abundant as you go: thanks to a limited inventory which prevents hoarding, the dungeon can act generous enough without breaking balance! Also, comestible-based healing encourages exploration while hurt, which is a good thing in my book.
Healing when going to the next map level is done by other games like Cogmind. In the case of Shamogu, it makes portal escapes less penalizing, it leads to simpler balance and a more relaxed and fresh feeling at the start of every level, and it doesn’t tempt the player with boringly finding and eating all comestibles that may heal you before going to the next level (I don’t want to encourage exhaustive exploration nor perfectionism :p).
In other words, Shamogu does something of a middle ground between heal-before-every-combat and heal-on-reaching-next-level. On the one hand, combat is a bit less brutal than in Boohu or DCSS, with less abundant monsters and lower vulnerability to damage spikes (hydras being the exception that proves the rule). But there’s still often a feeling of immediate danger! And, on the other hand, due to limited healing, you often explore while heavily hurt, looking for comestibles or the portal while avoiding monsters.
Since the original Rogue game, traps have been featured in many roguelikes. They can come in various ways, sometimes visible but often invisible and randomly detected based on stats or skills, or more deterministically through various often spoilery means (see Trap Detection in Nethack’s wiki), or simply by falling into them if they’re not deadly. Designing traps is actually quite hard and a shallow design can easily lead to traps that feel either mildly annoying or too deadly, without providing extra depth beyond some healthy surprise. It can also lead to repetitive optimal strategies to minimize player trap triggers and maximize monster ones. Various roguelikes have tried approaches that prioritize the player’s decision and tactical choices over randomness and surprise. Some, like DCSS, attempt to do both while still avoiding the downsides.
For now, the approach I chose is simple and not very ambitious: visible traps with various effects (poison, fire, lignification, berserk, warping) and triggered when an actor steps on them. Wandering monsters avoid them, but Hunting ones don’t. That way, you can use traps against monsters in predictable ways and, more rarely, you may also consider stepping on them yourself, either for the effect (if not purely negative) or to take a shortcut.
The system is kind of similar to what recent DCSS versions do with one-use physical traps. However, Shamogu uses the “wandering” or “hunting” mindstate instead of line of sight as a condition for monsters to step on them, because requiring the monsters to be in view would have been too restrictive given how foliage and rubble are a core aspect of Shamogu. It probably makes more sense thematically, too.
In Shamogu, I’ve tried to create a damage formula that works with small numbers while still having a nice random distribution. I used the combat-stats.goal script to test and visualize stats for several damage formulas until getting to the current one.
The main properties I wanted are:
Small damage numbers 0-3 that feel qualitative: miss (0 damage), weak (1), average (2), strong (3). Both misses and strong hits should be uncommon with respect to weak and average hits. The damage cap helps avoid brutal damage spikes (except with hydras or if surrounded).
Simple Attack and Defense stats without extra complications like separate evasion stat.
No arbitrary break-points: the impact of Attack and Defense on damage amount and chance should follow a progressive curve of diminishing returns. For example, going for 4/1 Attack/Defense or 3/2 should both feel different and be a real choice with no obvious winner: the former may be preferable for a ranged character, while the latter more survivable for a more melee-oriented one, but both choices are viable for both attack patterns.
Even the lowest Attack stat of 1 should provide a weak hit chance significant enough to be taken into account. That way, even an imbalanced player or monster retains some offensive potential.
Chance to miss should never go below a certain threshold (currently: 5%).
Shamogu sticks to a traditional simple efficient display with a grid of monochromatic symbols (graphical or not) and a small color palette with colors that are easy to tell from each other. No extra clutter is allowed and even animations respect that design. It makes terminal and graphical versions identical ergonomically, but it also helps Shamogu provide an important feature for me: efficient and compact recording functionality for later replay that can be visualized in ASCII or Tiles, respecting your options irrespectively of how the game was actually played.
The main difficulty is that the simplicity should not come at the cost of clarity or bad UI, so important things going on are meant to be immediately visible without manual examination:
Different monsters are represented by different symbols.
Identical entities, like walls, all share the same symbol.
Different colors for different kinds of noise and clouds.
Different colors for different monster mindstate and/or status effect categories. Because there can be several status effects active at once, full visual information here is impossible but, with wisely chosen color categories (good/mixed/bad/very bad) and a limited number of mindstates and status effects with well-designed interactions, it works quite well in practice.
At most one item or non-floor terrain feature per tile.
Show terrain under the player’s tile in the status bar.
Some of these restrictions might seem limiting, but in my experience they encourage fleshing out existing content instead of adding more, which goes well with Shamogu’s minimalistic design.
One thing Harmonist improved over Boohu were the controls. Shamogu goes a little further in that respect.
Boohu had annoying manual targeting mechanics, inherited from various other roguelikes. Harmonist banned manual targeting, which surprisingly worked well enough, but I felt like some tactical depth was lost there. Shamogu has a concept of “current direction” of the player, shown on the status bar, and some abilities make use of it to automatically choose a targeting direction. That method brings back some of the flexibility provided by manual targeting, while actually providing extra movement decisions, because you have to think about your current direction, which you cannot change without spending a turn moving or attacking in a new direction.
Shamogu simplified inventory management, too: a single menu covers both spirit abilities and comestibles and, because the size of the inventory is small, the unified inventory still fits entirely in the screen.
Also, mouse support in Shamogu improved further with respect to Harmonist, and shortcuts for targeting monsters can now be accessed directly without first entering keyboard examine mode. I can’t say for sure, because I mostly use the keyboard, but I think it should feel nicer for mouse users.
Along the way while designing Shamogu, I had some ideas that didn’t make it in the end. Some might make a come-back in later versions, maybe.
I considered at some point giving the player and monsters an elemental attribute (something like fire, water, earth or wind). The idea was to have interactions between the various kinds of elements and increase the variety of monsters. I dropped the idea because it was a bit complex, and I planned to use colors to show the elemental attribute of a monster, which was incompatible with using colors for the mindstate and the status effects affecting monsters.
Partly related to elemental attributes, but not only: Harmonist had Water and Chasm, with the interesting property that not all monsters could swim or fly, so both terrains could be used to escape monsters without being abusable (due to the pacifist nature of Harmonist).
In Shamogu, jumping into chasm wouldn’t make any sense, because levels are connected through magic portals. I kind of still consider adding Water in some way, but I haven’t managed to get a clear picture on how to make it play with Shamogu’s gameplay in a fun way. I haven’t got any ideas for interactions other than steam due to fire like in DCSS, and I don’t want to introduce extra mechanics (like non-swimming monsters or passive terrain effects on creatures) without proper thinking and testing.
I’m quite divided about identification systems. Though not my cup of tea, I get the fun of complex identification systems in games like Nethack, which totally embrace the kitchen sink style and can really bring fun surprises. But I dislike identification systems in some streamlined games like Brogue or DCSS, because they feel like mini-games that mostly matter at the start and are managed in relatively boring and systematic ways, rather than enjoyed.
I considered at some point adding some kind of identification system only for some comestibles. Something like being able to tell that a mushroom is either of some kind or another but not being able to distinguish the two. It seems some roguelikes (like Golden Krone Hotel) made streamlined identification systems that do things along these lines and avoid the pitfalls, but I haven’t experienced it myself, so in the end, I dropped the idea for now.
From the perspective of a consumable surprising the player in a perilous situation, the closest thing to it currently are how both “ambrosia berries” and the “teleport mushroom” produce a random debuff among two possible ones, requiring a bit of adaptability sometimes.
One thing that seems nice to me in TGGW is how temporary status effects, both good and bad, last until you make the decision to rest.
Cooldown-based status effects are essential in Shamogu, because they’re a core mechanic for its tactical combat. But I thought there might be new effects that could benefit from a more long-term duration but still shorter than a permanent passive trait. Shamogu doesn’t have a rest mechanic, so I considered durations lasting until the next level or some kind of other condition. It’s still something that seems cool to me, but I haven’t gotten clear enough ideas to actually implement anything for the moment.