Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Snargleplax

Pages: [1]
Programming / No HP, minimal healing
« on: June 21, 2012, 03:14:33 AM »
I'd like to exchange some ideas about designing a health system not based on the HP abstraction, and furthermore not reliant on a continual supply of healing magic to keep adventuring viable.  The HP mechanic is so widespread, I think it has become a conceptual crutch; certainly its popularity is not due to being a perfect solution.

HP has (have?) just never rung true for me.  In how many great adventure stories does the intrepid protagonist chug away at red potions every 20 minutes, just to stay topped up?  How anticlimactic would it be to read a dramatic fight scene in which the hero is gravely wounded and all seems lost, and then suddenly he pops a potion and stands up for round 2 (of n, presumably)?  Heroes seem brave to us because they stand tall even knowing that they are vulnerable, that they possess human frailty,* can hurt and fail and die.  Why can't a roguelike tell us that story?

* (or elven frailty, or dwarven frailty, or goblin frailty, or what have you.  Just don't tell the dwarves I called them "frail.")

There are other problems.  Being down to 1 HP means you're at death's door, sure; but in how many games does this affect your prowess?  I anticipate an objection: "it wouldn't be fun that way."  Well, I'm not sure; I haven't seen it done,** though I imagine it's at least been attempted.  I suspect there's a way to do it right, but we may need to peel away some conceptual layers to figure out what kind of system it would make sense in.

** (the closest thing that occurs to me is the ability to throw your sword in The Legend of Zelda, which you lose as soon as you're injured.  This shows how a "penalty for being hurt" is also a "bonus for staying healthy".)

Okay, so if we take away their healing magic, we need to make sure they still have a chance.  Survival can't continue to be about "making sure the bar doesn't get too low."  Every goblin has a dagger that can cut your throat, and you'd better not forget it: that's peril, friends.  That's how you make level 1 interesting.

So how do heroes do it?  With amazing skill, naturally!  Picture a barbarian wading into a roomful of rabble, tearing them apart by the dozens.  In an HP system, if you balance an encounter like this to be challenging, the barbarian will be near death by the end -- his toughness is represented by the width of that bar.  But how does he do it in your mind?  He throws tables, he smashes enemies' heads together, he ducks a blade by a hair's breadth and then breaks the wielder's wrist for his trouble.  He wears armor that deflects blows and keeps damage away from his vital areas.  He doesn't suffer just few enough injuries not to kill him and then magically recover; he does apply his skill and resources to his survival at every moment.  To me, that's a lot more interesting than playing a "tank."

Alright, here's the part where I talk about the system I'm actually working on, to save myself the trouble of wording things too abstractly.

Firstly, attacker and defender skills of different kinds (strike, dodge, strength, toughness, etc.) play into multiple rolls, any of which can influence the severity of injury.  The attacker first rolls and determines how good the strike is, on a qualitative scale including e.g. "Excellent," "Terrible," and "Mediocre."  The defender makes a similar roll to dodge, which if not successful outright may turn the blow somewhat less effective.  Assuming the blow still makes contact, there's a roll against armor based on strength and weapon power.  Whatever number on that qualitative scale makes it through is converted onto a scale for wound levels and applied to the character.

Individual wounds are kept track of in buckets by severity.  In order for lesser wounds to be meaningful, it must be possible to "die the death of a thousand cuts;" the cumulative effect should eventually prove overwhelming.  My first idea here is to simply promote injuries when a bucket gets too full.  You get a too many "minor" cuts, maybe you convert the next one into a "not so minor" cut.  Another way to go, which I'm also considering, is to penalize toughness rolls based on degree of injury (measured by high water mark, I guess -- when you're bleeding out your guts, nobody cares how many papercuts you have).

I don't think healing should be done away with altogether, just made less effective and readily accessible.  Wounds heal naturally over time, especially minor ones.  There's no reason the system can't track all that.  First aid should matter, and I'm not against some healing magic that's not dramatically more potent than first aid.  Some injuries would be too severe and require the player to retire to town for the attention of, say, a surgeon.  I see no reason for any injury to be ultimately incurable, though -- that would be anti-fun.

Well, that's about it.  I have some more thoughts on how this system would impact the game overall, how it would affect balance and pacing and so on, but I think it's time for me to shut up and see what anyone else has to say.  So, do you?  Love it?  Hate it?  Commentary, suggestions, or alternate models?  Know of games I should check out where things like this have been tried (and succeeded/failed)?  Let's hear it.

P.S. I know there was another thread today about health systems, but my point is really not about wound locations at all, so I wanted to start a fresh discussion.

Programming / Procedural generation of quests and narratives
« on: March 07, 2012, 12:16:43 AM »
I'd like to get some discussion going on procedural generation of quests and other narrative-type content.  This is something which figures heavily into my own game plans, so I've got some self-interest in bringing it up here, but I'd love to get some more input on all this and share some ideas generally.  I've also laid out a little bit of this in one of my dev log entries, but I feel there's much more ground to cover.

Bluntly speaking, most of the quest content I've seen in games is pretty primitive, at least compared to other common narrative forms (books, movies, etc.).  Even without procedural generation, designers are commonly guilty of subjecting players to endless FedEx quests, bounties, etc.  The lame predictability of these simple tropes inhibits immersion and enjoyment.  In the procedural space, it's understandable if ambitions have not tended to reach past this.  After all, if it's hard to do by hand, it's harder still to automate, right?  Perhaps that's fair; on the other hand, procedural generation has other attributes than being automated, and these may be of benefit.

As a particular example, procedural content generation systems have the benefit of being online; that is, you can keep generating new content as the player goes through the game.  Nothing need be set in stone until it's been shown to the player.  It's hard to relate this kind of freedom to anything experienced by a traditional designer.  It's more like the position enjoyed by the Game Master of a pen-and-paper RPG, who may exercise constant, subtle discretion to the end of providing a (hopefully) satisfying player experience.

Every good Game Master knows how to ad lib; no matter how much you plan, the players will always surprise you.  If the players start walking in the opposite direction from where the quest is "supposed" to be, a good GM will silently adapt the world around them so that it turns out they do wind up where the action is.  By adaptively serving up a narrative that feels like it was carefully planned that way from the beginning, the GM provides the players with a feeling that's greater than just being inhabitants of a fantasy setting -- they're the heroes of the story, as it should be.  The world conspires to draw them into their destiny.  Nobody complains about this (unless it's too hammishly done, but you can get away with surprisingly much when you're willing to "cheat" behind the scenes); it's what we want and expect from a heroic tale.

In roguelike terms, the opposite of what we're talking about would be something like Dwarf Fortress.  DF works incredibly hard to have a fully-operational fantasy world so that when you wander around in it, every little slice feels satisfying and real.  But of course, most players will never see most of the content in that world.  Most of the system is wasted, just to support the parts that you happen to wander through.  True, it's just processor cycles, but the point is that if you can present a player experience without simulating the entire world, you can trim out a lot of fat.  Moreover, you can gain a lot of control; DF can produce some entertaining narratives, but everything in the game is emergent and tied to the integrity of the world model.  You'd be hard-pressed to shoehorn arbitrary structure into that world, in order to steer the player in a more focused direction.

So, can we conceive of a workable alternative model?  Certainly, inroads are being made into online-adaptive PCG; a famous example being the "Director AI" in Left 4 Dead which models player experience in order to orchestrate pacing and challenge.  I believe this principle can be extended much further, into the dynamic, online generation of epic-scale narratives carrying complex plot structure.

As I envision it, the system starts with some ultimate goal, derived from some suitable plot archetype -- Defeat the Evil Menace, Rescue the Princess, Free Our People, Lift the Curse, Find the Maguffin, etc.  As with any good Ultimate Goal, it is of crucial importance but somehow indefinitely deferrable -- there can always be more impediments and side quests thrown in the way of success.  So, we start from that ultimate goal and work backwards, determining what complications exist and setting up subgoals for them.  Each subgoal can involve just as much complexity as the original goal, so in this way we can build up complex structures of interdependent subquests.

Rather than letting it explode infinitely, we would of course tune the generation to our specifications, depending on just how hairy we want to let things get.  And, importantly, the only fixed points in the graph are those that have already been exposed to the player in some way; the rest is open to being tweaked or rewritten at any time, for any reason we may see fit.

There are major challenges to this approach, of course.  First you've got to compose a suitably-large set of plot "chunks" and provide ways for them to fit together variously enough to provide novelty.  Then you need to expose these structures to the player in some sensible fashion, which could be tricky in such a generic system.  I think that for a more static form, such as written fiction, this approach would fail horribly.  But in a roguelike, the player's involvement in the action fills in for a lot of verbiage, and I think an appropriate balance may be struck.  Even accomplishing this, there's still the task of ensuring that what's generated isn't utter hogwash -- there must be some kind of semantic constraints on how you plug Actors and Props into Evil Plots, or you're going to wind up with the Princess kidnapping the Dragon, or being sent on a quest to retrieve the fabled Rusty Dagger of Worthlessness.

So, that's my wall of text.  Any takers?  Anyone know of other significant work in this area, or care to chime in with their own ideas on how to accomplish what I'm talking about?

Early Dev / SnargleQuest, early days
« on: March 01, 2012, 10:34:35 PM »
I'm developing a new roguelike from scratch in C++, working title SnargleQuest.  My primary focus with this project (my first roguelike, though I've done professional game development in the past) is to advance the state of the art for meaningful structure in procedurally generated content.

Specifically, I'm implementing a system that builds dungeon levels bottom-up from a particular specified structure (expressed as a graph, using the Boost Graph Library).  So, for example, you could have a level that contains a boss and two minibosses, and the connectivity of the rooms will force you to go through the minibosses' areas first in order to reach the boss, rather than allowing any paths that go around them.

Or, similarly, I'm planning to do lock-and-key puzzles of arbitrary complexity.  E.g., the red key unlocks the red door, behind which you find the orange key for the orange door, etc.  Having the room structure as a graph (and with BGL as a rich tool for working with it) means the system can set up really complex puzzle layouts while still guaranteeing that they are solvable.

The other area of PCG I'm hoping to improve on is storyline.  I'm working on a system that abstracts the notion of a basic "mad libs" style quest by allowing whole structural pieces to plug in to each other, rather than just filling out a single flat template.  The branching possibilities implied here should result in a wide gamut of possible content; the main challenge I see is in constraining it all to be sensible.

I've started a dev blog for the project, as a diary for myself and to garner interest and commentary from friends and community.  I'd very much appreciate the attention of anyone who cares to discuss these ideas, or would be interested in playtesting once I get to that point (not yet, but progress lately has been solid).  The blog is at

In order to take good advantage of the generic systems I'm putting in, I need to come up with a lot of different kinds of content that are enabled by this approach -- I need more examples than lock-and-key puzzles and pinch-point rooms containing monsters you're supposed to fight.  As I flesh out the procedural narrative ideas more, I expect to derive a lot of the environment structure from the plot structure, but I think it'll be good to have a large selection of stuff that occurs in non-plot-driven environments as well.  So, I'm open to suggestions.

Pages: [1]