Roguelike Item and Monster Design Revisited
Since I posted the first part of this blog series on Gamasutra in Sept. 2013, I've continued working on my roguelike game and more importantly, thinking about what made Shiren the Wanderer so good. One reader who enjoyed the ideas posted a link to it on reddit which elicited some interesting discussion. One user commented:
"Really, there's nothing novel about this concept in roguelikes whatsoever, and this guy seems a bit too enamored with his own game mechanic to realize that. The rest of this seems like random, amateurish digressions."
to which another commenter responded:
"I'd give him more credit than that. He really wants a roguelike that is like Shiren the Wanderer on the PC/mobile (which there really isn't).
A lot of the design stuff he talks about is explicitly 'not' what NetHack does. There are lots of purely-bad and purely-non-useful items in NetHack. There are also a lot of great and powerful items that have no drawbacks."
As you can see, debate about roguelike game design is often vigorous, so I welcome it all. (But you really should play Shiren a bit!)
Anyway, on to the article!
In the earlier blog post, I introduced a concept I called "Roguelike Item Orthogonality" to help take roguelike game design beyond grinding, hack-n-slash dungeon crawlers into a world of chess-like strategic gameplay. I defined it as a game design methodology in which "a small pool of items have multiple interactions with the beings in the game rather than just one single purpose. More importantly, those multiple interactions should be logical progressions from one another."
It sounds quite lofty, but I honestly find it a useful concept in building a roguelike world. Since the earlier post was quite short, I'll include it here as well for completeness. However, if you've read the earlier "Item Orthogonality" post you can skip ahead past the Riceballs and Empty Vials sections to "Push-Pull" Design.
Take that, Rice Changer! Throwing a riceball for an insta-kill.
One of the plentiful and amazing examples of tightly-coupled monster and item designs in the cult classic Mystery Dungeon: Shiren the Wanderer is the Rice Changer monster and riceballs (Mmmmm Onigiri! :)
Quoting from the Shiren wiki, "The Rice Changer casts a spell that changes a random item in your inventory into a Big Riceball. It is weak to thrown Rice Ball attacks." So it has a special attack of changing one of your inventory items into a riceball, which is usually annoying but sometimes welcomed when you're starving.
But there's more, and here is where item orthogonality fits in -- Rice Changers can often be insta-killed with a thrown riceball, which is a clever way to gain levels in the infamous Fey's Final Puzzle dungeon. Yin, meet Yang.
In my own roguelike game, Voyage to Farland, I've tried to add more depth to the gameplay to distinguish it from a dungeon crawler & other games that rely on grinding. One example is the Vial item. From the in-game description, it's "a cursed vial that when thrown, can capture a monster's soul!"
But you should always remember that in Voyage to Farland, your hero character is just another monster, albeit a cute one whose movements you can control. So normally, you'd throw a Vial at a monster to "capture its soul" or essence. Later, if you drink the essence, you'll turn into the monster until you move to the next dungeon floor or explicitly revert to human form.
There could be several reasons you might want to change into one of the game's monsters -- some monsters have pretty powerful ranged attacks that can be useful, e.g. the Nosferatu's "Evil Eye" attack, the ViperBeetle's "Spin & Toss" attack or the SparkDroid's "Lightning" attack. When you become a monster, you can also take advantage of its innate abilities -- a Ghost can pass through walls freely, and the GrayLady can move at double speed compared to other monsters.
This aspect of the game is borrowed from Shiren the Wanderer's "monster meat" gameplay mechanic and I'll have more to say about it later. Morphing into a monster is an interesting enough mechanic to merit a dedicated dungeon for learning how to use the Vial item wisely. The specialty dungeon is called The Vial Trial and you can get to it by clearing certain events on the Thatched Hamlet floor in Voyage to Farland.
But the ability to turn into a monster isn't enough in designing a complex roguelike game. For me, item orthogonality is very important -- all "good" items should have some potential disadvantages, and all "bad" items should have some beneficial uses occasionally. It keeps the game interesting and adds yet another layer of replayability to the already compelling gameplay that procedural environment generation brings to a video game.
A Vial is great for throwing, morphing into a monster and then throwing down. Yet there are monsters in the game who delight in picking up stray items and tossing them at the hero. The Catapult family (felines on mobile mini-catapults!?) does just that. If it's standing on a sword, it'll lob it at the hero doing damage.
And here's where the subtle twist in item design comes into play -- if the Catapult runs across a Vial, it will toss the Vial at the hero. Perhaps the Vial contains the essence of a Wraith (level 3 Ghost). If so, you'll morph into a Wraith and you can pass into a nearby wall and attack any monsters that come near you. Their attacks can't affect you, but yours will do high damage to them! Cool, huh?
But if the Vial was empty when tossed, that's another story... Your essence will be trapped for a few turns and any nearby monsters can approach and pound on you. Just pray that your level was high enough to withstand the onslaught, or it may be YASD (Yet Another Stupid Death) and back to the starting village.
One of the Dwarf Fortress taglines is "Losing is fun!" and most roguelike gurus appreciate that fact. It's part of the draw of these games. They're not for the faint of heart, but for those of us willing to learn from our mistakes and grow from them, roguelike games are extremely rewarding.
So "Use the Vial, Luke." Just don't leave one lying around near a Catapult when you're playing Voyage to Farland.
The Hero was captured (this won't turn out well…)
Fellow roguelike developer commonslip -- developer of the intriguing Seven Day Roguelike game (7DRL) The Death of the Corpse Wizard 1 -- was kind enough to make a few Let's Play videos of my game recently and since he's also a Shiren fanatic, he had a great deal of insight to offer.
In the stop-off village called the Thatched Hamlet, while trading with the girl near the river, he decided to trade a GarlicHerb for the raft she was offering. After making the trade, the girl promptly ate the herb and spewed "garlicky breath" at him, sickening his character and making him move at half speed. (Yes, I like to add a bit of humor and whimsy to my games!)
He recognized this as a sound design principle we both learned from Shiren the Wanderer -- all items should work the same on the player, monsters & NPCs as far as it’s possible from a design standpoint. So although he was a victim of garlicky breath, he was happy as a gamer and perhaps happier as a game developer & designer, that care was taken to insure the GarlicHerb was fair in its wrath.
In his video, commonslip called this aspect of roguelike games the "push-pull effect", which is not unlike the concept of "item othorgonality" I've proposed to describe the design principle. In fact, "push-pull" is more concise and less pretentious, but I'll stick with "item orthogonality" for consistency -- for now at least.
Toward a Fully Orthogonal Item Universe
The items a player finds in a roguelike game shouldn't be single use items -- rather, they should have a complex interaction with the environment. Take the Mugwort and Wormwood items in Voyage to Farland: their main use is to restore HP or health for the player, but that alone would be boring & poor game design.
A game designer has to think about what happens when monsters, NPCs and the player eat, and are hit with an item. For Mugwort and Wormwood, if the player eats them, they heal and thus their HP increases. They can also throw the herbs at their "pets" (NPC buddies fighting alongside them) to restore their health.
But those pesky Catapult monsters I mentioned earlier -- what should the effect be when they lob a Mugwort or Wormwood herb at the Hero? Well, the answer I came up with is that the Hero eats the herb and restores health. So the Catapult isn't just a creature bent on spreading chaos, after all. Or more precisely, it spreads chaos, but sometimes chaos can be good. One last cool thing about the Catapult is that you can trick him into leveling up your character -- a tactic you can try out in the Strategy Dungeon's "Give and Receive" puzzle.
And one final note about item design: a well-designed roguelike game should have no useless items. Everything you find should have a clever use that can save your butt. This is why games with auto-drop systems for swapping better items on the ground with weaker ones puzzle me -- it seems like a great gameplay opportunity missed. Let the player throw weaker shields and weapons at monsters for damage or put the items into a Change Pouch. Or even better, why not use weaker items in a basic crafting system...
Learning a craft takes time & experience.
Game designers occasionally make the mistake of over-designing, especially if they don't have to do any of the game's programming. Crafting systems in dungeon crawlers can thus end up with some fairly baroque elements that may delight some players, but frustrate many others.
Shiren strikes a nice "less is more" balance. It has a basic but satisfying system where weapons and shields can add enchantments or + values. There are scrolls to read that add +1 to equipment, and combining weapons in a Melding Jar allows you to add bonuses from weapons together into a single weapon. This is pretty powerful and lets you get bonuses up to +99 after a few runs. Certain weapons with +50 or +99 bonuses can then be taken to the village blacksmith and turned into rare, powerful, dare I say "sexy" blades.
Shiren gets a more powerful sword!
Not only that, but also since in Shiren the Wanderer many shields and weapons have special attributes, a Melding Jar can combine the attributes into one item, giving you a powerful weapon that inflicts greater damage to one-eyed enemies, floating enemies and other fun special traits.
All in all, it's a fairly simple crafting mechanic with a small set of basic rules that lead to powerful combinations which makes the player want to hold on to that special equipment as long as possible. Of course, you'll be quickly forced to get in touch with your inner Zen and learn to let go, since defeat is always just around the corner in a hardcore roguelike game.
My own game, Voyage to Farland, isn't nearly as rich in crafting. It does have a MeldPouch where weapons, shields and magic beads can be combined into more powerful items, but it doesn't yet have the clever special attributes like "one-eyed killer", "air slayer" or "drain buster" that Shiren has -- the latter does higher damage to stat draining monsters.
I do, however, throw a wrench into the system as Shiren does, by having subsequent weapons placed in the pouch "combine down" onto the first weapon placed in it, so you'll curse at the game when you put a Skullsickle (the game's strongest weapon) in after a Claw (the weakest) and find out you made a slightly buffed up but still puny "Fancy Claw".
"Why not make the game more user friendly by auto-detecting the stronger weapon?", you might ask. No, that's not the roguelike way -- every mechanic should have advantages and disadvantages or the "push-pull" design as commonslip puts it.
Pushing the Envelope
I'm torn about "orthogonality" with scrolls in Voyage to Farland. What should throwing them at a monster do? Obviously they can't read. So should being hit with a scroll just inflict damage?
Perhaps I should have the random number generator decide if a monster is part of the 25% or so that CAN read and have the scroll effect reversed onto the player? That's one I'll have to think about. There are always tweaks, adjustments and new ideas we can sneak into our games, especially with modern digital game distribution so ubiquitous.
Roguelike Games and Anti-social Behavior
It's true that a good old-fashioned roguelike game will kick your butt and have you begging for more, but just how far should we take it as game designers?
There are a non-trivial number of Shiren fans that have been known to occasionally attack harmless village NPCs. I'm not sure if it's from frustration due to losing over and over again, or just innocent curiosity ("Hey, it's just a video game!") but they do it and you can watch their funny, strange, and disturbing videos on YouTube.
Why would Shiren's designers allow such anti-social behavior? Answer: orthogonality. Consistency in the design is both good for inspiring the player's curiosity (and keeping the code simpler). If you're doing it right, your player's character, all the NPCs and the monsters should all be stored in a single consistent "creature" structure or class within your code. That or have their differences expressed as child classes that inherit from a single creature class. More on this later.
This leads to new possibilities: angry that the RNG dumped you in a huge room with 30 monsters and you "died" (I prefer "were vanquished")2 and feel like taking it out on that annoying guy in the starting village who keeps telling you the same thing over and over each run? You shoot him with your slingshot a couple of times and he's "vanquished".
Actually, it's not always that malicious -- I've seen a couple of Voyage Let's Players kill off their pet owl, accidentally shooting it with the slingshot instead of tossing a healing herb at it. And I may or may not have done the same (again accidentally) while playing Shiren the Wanderer.
This leads to another possibility in roguelike games. They often have stores where you can sell or buy new weapons or items you need. What would happen if you allowed the player to steal from the stores? Answer: it would be a valuable new emergent game mechanic, and Shiren the Wanderer allows just that, as do other great roguelike games (there's even a FAQ on the internet dedicated to "Shoplifting in Nethack").
The key is to keep the game's shop mechanics simple enough to strike a nice balance while still allowing the occasional theft. In Shiren you enter the shop and any item you drop on an open tile or cell will be bid on by the shopkeeper. If you pick up an item from his shop, he'll move over and block the shop's exit and tell you his asking price.
You can either pay him, or get creative… But be forewarned -- in Shiren, the punishment for getting caught stealing is stiff (death), with feudal era Japanese "authorities" coming after you at double speed along with their hellhounds that look suspiciously like Doberman Pinschers. Don't say I didn't warn you. Unfortunately, I haven't implemented shops in my game, Voyage. Not yet, at least…
And I may take the opportunity to go in a different direction anyway. Voyage is more cartoonish and theater-of-the-absurd than many roguelike games. Perhaps a clever barter system would be better than shops, with wronged parties coming back in later dungeon floors leveled-up and looking for revenge. Yes, that sounds promising. Stay tuned…
Yes, I deserved that.
Quick summary of what we've covered so far -- a well-designed roguelike game should smack you around and leave you saying, "Yes, that DOES make sense!". When monsters wake up from a snooze (Scroll of Sleep) and then move at double speed in Shiren, or you leave an empty Vial on the floor near a Catapult in Voyage and he lobs it at you, trapping you for a few turns while enemies approach and pummel you, it makes sense.
One thing can certainly be said about good old-fashioned hardcore roguelikes: they don’t coddle the player. You see, roguelikes are games that you can actually lose. That's a big part of their appeal to me, since it makes progress and victories all the more sweet.
More on Monster Design
The enemy of my enemy is my friend? Not exactly. Kigny attacks a Pig, levels up & comes for Shiren next!
It's not enough for a roguelike game to have monsters that mercilessly attack the player. No, it should allow those monsters to level up, just as the player can. But "How can they level up other than defeating the player's character in battle?", you might ask. Great question! The answer is that not all of the monsters solely attack the player's character.
Shiren has a rather unique monster family called the "Kigny". And they're a surly sort. They attack the player with a nicely animated jumping & kicking melee attack, but they also have a less team-player reputation, in that they will happily attack any other monsters that are nearer to them than the player. And since the other monsters generally don't fight back, this leads to plenty of monster-vs-monster slaughter and the Kigny leveling up. This is just another sign of Chunsoft's thorough understanding of the roguelike genre.
Tension, Reasoning & Exploding Monsters
To further prevent the grinding hack-n-slash vibe many dungeon crawlers have, Shiren the Wanderer has a few monsters that do some interesting things when their health is low: Spike monsters explode when their health gets below a certain amount.
This makes it a delicate matter when engaging in melee with the creature. A nice trick is to hit it once with your weapon, but then unequip the weapon and use your fists so that you'll wear him down to the point he's paralyzed but not so hurt that he'll explode next to you (which is a quick trip to HP of 1 for the player).
And do you see what the game designers did there? They made monsters' characteristics unique enough to make strategy important. More than a few roguelike games skip this and simply fill the dungeons with progressively more powerful monsters that aren't much different from the ones the player was hacking away at several floors earlier.
Another example of interesting creatures in Shiren the Wanderer is the Master Hen. When it's weakened sufficiently, it turns into a weakling Hen that runs away from you. If you manage to catch up with it and vanquish the little Hen, it gives very few experience points (much less than you'd get from taking out Master Hen with one shot).
The closest I've come to this level of monster uniqueness with Voyage to Farland is with a few strange powers I've given the monsters, like the Catapult lobbing items at the player as I mentioned earlier. In the later floors, Catapults can even lob things at you from different rooms!? Perhaps one of his weaker brothers placed a tracking device on your person earlier in the game. Then there's the ViperBeetle spinning you around and throwing you against a randomly chosen wall (knocking loose your weapon in later floors), or perhaps the EvilToy "robot" that can magnetically pull the player in closer for a fight.
Great... He understands electromagnetic theory.
Monster? Hero? What’s the difference?
In developing a roguelike game, it can often be useful to think of the player's character as just another monster, both in design and in the game's code. Why bother? First let me explain a bit about Shiren the Wanderer's "Monster Meat" mechanic.
In Shiren, there's a magic wand called a Bufu Staff, "Bufu" being the "Food God" or "Kitchen God". It's a staff with a few charges that when waved at a monster, will turn the creature into a hunk of meat.
Mmm, monster meat!
Then the protagonist, Shiren, can eat the meat and transform into the monster, making use of its special powers and abilities.
Here are a few favorites:
Pacorepkin: basically a ghost, becoming one allows you to pass through walls, which is nice for attacking monsters from within a wall without them being able to fight back. It's also handy for stealing from shops -- grab some loot, eat your Pacorepkin meat, change into one, escape through the walls and find the floor's exit.
Death Reaper: move at double speed to track down all enemies!
Skull Mage: cast crazy spells from a safe distance!
Bowboy: become one, shoot seemingly infinite arrows at walls, change back to human, pick up the arrows, equip them and fire away at monsters from long distance!
There are of course a few disadvantages. You can't make use of inventory items while in monster form. The "push-pull" design at work again.
Also, take care with Kigny meat! Given their over-the-top tempers, when you eat Kigny meat and change into one, you'll automatically wander the dungeon looking for enemies to pound. Great sport if you've built up strength. Foolish if you're still a bit weak.
Voyage to Farland's variation on this concept are empty magic Vials mentioned earlier. Since they have to be thrown to capture a monster they can only be used once unlike Shiren's Bufu staff. Then go grab the Vial containing the monster essence, drink it, become the monster and use its special powers.
You can use Vials to harness a powerful monster's abilities. Or alternatively you can weaken a powerful monster by throwing a Vial containing a weaker creature's essence at it if you'd rather not fight it. For example, it might be a good idea to throw a Maskboy Vial at an Evilratu (level 3 Nosferatu) the first time you meet him.
So if you've architected your game code in such a way as to make monsters, NPCs and the players character all "monsters" internally (or at least classes that inherit from a core "creature" class) it will be much easier to add a nice emergent game mechanic like Monster Meats and Vials. Players will love it, trust me.
Elephant in the Room: The Dreaded Berlin Interpretation
The much-maligned Berlin Interpretation (BI) deals with what makes a game "roguelike". It's often mentioned in articles about the genre and sometimes trivialized when developers are looking to stretch the definition. In short, the Berlin Interpretation lists traits that traditional roguelike games share, including permadeath, procedurally generated environments, and turn-based gameplay. It was issued by a small group of roguelike developers during the International Roguelike Developers Conference of 2008 in (you guessed it) Berlin, and I have to say, they got a lot right.
But one point listed in the BI that hasn't gotten much attention is "Complexity". This aligns well with my goals to raise awareness of the Japanese console roguelike games and is something occasionally overlooked by game developers using the "roguelike" tag these days. Complex, non-trivial, emergent, yet logical - a mantra to keep in mind when designing your next roguelike game. Game design isn't a connect-the-dots puzzle. It's an art and a craft. If you keep the mantra percolating in your subconscious, you'll make an interesting game. Perhaps even a classic.
One interesting point lies in an update to the BI (in the Berlin Interpretation 2.0). In particular, the committee (sounds downright Kafka-esque) changed the language of the complexity aspect. It now reads:
"Complex non-trivial world and object interactions: Items have non-trivial usages, you can do some things which may not be obvious for the item nature."
But I feel that strays off in the wrong direction. "Non-trivial usages" is good, while "may not be obvious for the item nature" is not so good. It seems to be a hat-tip to Nethack and its obscure gameplay tricks, which is admirable (it's a seminal game in the roguelike genre), but the non-trivial usages should be logical to the player, even if they're not immediately obvious. Case in point is the Riceball-vs-Rice Changer insta-kill mechanic in Shiren. Or the Wormwood (medicinal herb)-vs-Nosferatu item interaction in Voyage to Farland. Although, it's arguable that both of those examples are only loosely logical.
The only real issue I have with the Berlin Interpretation is that it may focus too much on western roguelike games. This is a shame since Chunsoft (the Japanese developers of Shiren the Wanderer) have arguably done the best job condensing the essence of classic Rogue into a modern console game.
So you wanna make your own roguelike?
First off, welcome! We need more people making roguelike games and spreading the word. My advice would be to make it rich enough with items, monsters, traps and interesting mechanics that "moments of mayhem" ensue, so that the player understands every defeat was deserved given the "push-pull" nature of this school of game design. Roguelikes should never be unfair, nor at the whim of the RNG -- rather, they should take the player on a months-long journey to mastery, punishing impatience & rewarding careful study every step of the way.
Also, I'd recommend playing Shiren the Wanderer. It's a fun way to learn about what makes a great roguelike game. If anyone criticizes you, just tell them it's "research".
"Where's my bullet point summary!?"
OK, here you go:
Design items to interact with creatures in a few orthogonal & logical ways.
Avoid single-use items if possible, e.g. an item that affects only one kind of monster.
Unless you enjoy grinding, try to discourage it when designing your roguelike game.
Always try to add the "push-pull" sense when designing & balancing your game.
Give monsters interesting, or even vexing abilities, so that they aren't just sword fodder.
Let monsters level up to add another layer of strategy to your game.
Try to add a simple but powerful crafting system.
Have a little fun! Add some wacky, funny elements to your game world.
1) For the latest "Edge" build of The Death of the Corpse Wizard, here's a link!
2) Using the term "vanquished" is a simple but less violent way to reconcile the Hero appearing again & again. She wasn't killed. She was merely "vanquished" ("tuckered out", "put to sleep", etc.) It goes better with the whole cartoonish design of Voyage, anyway.