Sunday, 5 April 2009

Too many game developers fall into the trap of making warriors re-skinned wizards: that is, the warrior class ends up have a list of special moves that in most respects acts identically to a magic user's spell book. There may be some overt themeing: the warrior may end up using themselves as a weapon, with more of an emphasis on buffing, but in all other respects, the abilities fall into the same categories that I talked about in the Designing a Magic System series of articles - the chief culprit of which is a screen or menu showing a list of abilities to pick from.

There are several ways around this. I've talked previously about using positional game play to trigger warrior abilities - by having special moves activate when a warrior moves twice in a single direction (charging), moves laterally (dodging) or stands still (blocking). Flend's DDRogue, reviewed by John Harris in his latest @ Play column extends this concept to a host of different special moves which are triggered by a combination of single moves. The weakness of this approach, as John points out, is that it is very hard to convey where in a move the player is currently using the user interface of a roguelike. In a fighting game, 'subcell stance' - such as whether a fighter is standing, crouching or jumping, is intuitively conveyed using graphics. A roguelike designer does not have this luxury.

Another key issue is a warrior's limited ability to flee a fight. Mages are given an automatic out in the form of teleport spells, which allow them a variety of tactical options for moving around the battlefield. To duplicate this in Unangband, a warrior ends up carrying a large number of different items - as highlighted by Bandobras in a recent Unangband ladder dump - which drags them back into the pick items from a list camp of game play.

I've tried several approaches to this. My initial thoughts were around letting the player manipulate whether they wanted a half-cost move versus a full cost move. A half-cost move - to reflect running around the battlefield - would allow the warrior to move around dynamically but incur a movement debt which would have to be paid off later. This movement debt appears in Unangband currently as fatigue, which slowly accumulates if the player is moving unusually (through water, mud or other terrain; highly encumbered; hasted) and encourages the player to periodically rest by causing them to eventually faint if they do not do so.

The problem with half-cost moves is the user interface overhead in order to be able to take advantage of them. I initially went with a modal approach, where the player would always prefer half-cost moves unless searching, which made the mental book keeping required to move far too high - you'd have to rest far too frequently while simply moving around the dungeon if you were in the wrong mode. A bucky key approach, where a modifier key such as Ctrl or Shift is used to indicate a half-cost move, overloads the user input requirements.

I like the semi-realtime approach that Wayfarer uses, simply because it emphasises mashing the keys to move quickly. From this post on rec.games.roguelike.development:

Basically yes -- it "feels" real time because different speeds areshown as different npc-slide-rates, and they complete their currentmove if you idle. So you can outrun a glormbeast if you're holdingthe movement key down, but if you're doing a tap-think tap-thinkprocess it will stay at your heels.

Unfortunately, messing with timings in a roguelike is something that has to be done very carefully, as time sequence is something core to the balance of the game.

The other option is to allow the player to push monsters and terrain around. Dark Messiah of Might and Magic has a kick option which, although horrendously overpowered, allowed you to kick your enemies into nearby terrain. Similar cinematic inspiration suggests that letting a certain class of martial artist warriors leap acrobatically around the terrain as in Crouching Tiger, Hidden Dragon.

But both these options require a command based interaction system, as opposed to a simple bump, which starts to stretch warriors back into the pick from a list mode of gaming that I'm trying to avoid.

10 comments:

I really like that pseudo-realtime idea, but I think that you'd have to spin that off into a separate game. Introducing that in an existing game would be mean.

I don't think having to hold shift or ctrl to run is that much of a burden. Remember that your players aren't casual games; they have already memorized 50 other keys they need to hold in order to do something.

Incursion lets you jump and climb, but it's not very useful unless you set out from level 1 to be good at them. (And even then, you're only really good at one of them.)

A high climbing skill allows you to climb onto the ceiling, which allows you to avoid traps, and gives you combat bonuses. However, even when you're able to climb on the ceiling, you get exhausted easily until your skill level is even higher.

Jumping ties into some of the feats to give you bonuses if you attack after jumping. I think it might also let you flank a monster if you jump over them. (I can't remember for sure...) The higher your skill, the further you can jump, and the more likely you are to actually jump that far.

Also, the kicking in Dark Messiah was tons of fun, but I agree, too powerful. One kick was often enough to impale your enemy, or send them flying off of a cliff. I think it would work well in roguelike though. You'd want to control the kicking strength with the character's strength though. Make it so that only the stronger characters actually push the target back a square.

I suggest that you explore, if you have't already done that, the options envisioned on powder.

There are plenty of "warriory" habilities on that game that don't require menus at all.

On one side there are weapon-specific habilities: masters at daggers can bleed enemies out. A master in spears can "impale" one enemy and damage the enemy behind it. Master archers can make arrows "ricochet" on walls.

Then there are instrincics, like "dodge", that make them evade attacks easily. Or clean kill, that increases the possibility of a corpse being left out after each kill. And then there's the typical proficiency on armor for pure defensive points.

How about considering contextual movement? Consider the 8 possible directions as being on the keypad, with your @ on 5, and target on 8; When you go in each different direction, things happen such as the following:

That's an example for single combat. Once you get into multi-combatant combat you can do other things, such as sweeps (three targets on consecutive squares, say 7,8,9, do moves in directions 7,8,9 consecutively for the cost of one move), dual wield fighting (two targets with a single tile between, say 7,9, do moves in directions 7,9 for the cost of one move using one attack for each weapon), whirlwind (surrounded on all squares, go round in a circle with moves) and so on, allowing for more tactical situations - allow yourself to get surrounded and you can pull off some higher overall damage moves, but have a harder time running away.

That gives me an idea for move and fire as well, consecutive move followed by fire only counts as one move, but a penalty to hit.

What I like best is that this could give warriors a reason to fight out in the open rather than backing up into corridors. A large beefy warrior may invest heavily in cleave and be more of a stand-and-deliver type of fighter, while a rogue could use dodges to keep from being surrounded.

While I like Scautura base idea, I think adding in some form of quick targeting system that cycles only mobs that are close to you to provide your heading for the attacks.

Up or "8" would always attack towards the mob when in combat mode. Would require a player to disengage the enemy to run normally if required but targeting and disengaging from a target lock could be free actions.

regarding AoE attacks, have the targeting system show mobs that are adjacent to the primary attack target that can be hit by AoE attacks. Have primary target shown with green highlight box and secondary targets highlighted in yellow for example. In this way the player could "SEE" what he's going to be attacking.

On a side note a targeting system that highlights mobs for attack would also be useful for other classes as well. especially mages and variable damage spells, with the target highlighting on you could see the primary, secondary and even tertiary targets, for spells that do less damage as they expand out from the impact point.

1. If your UI doesn't support a particular kind of play well, why try to support it? Concession can be very liberating.

2. If, using the terminology of your magic article, mages run off the battery model, while warriors run off the powerplant model, playing a warrior doesn't involve managing "magic" at every turn. At most, in involves managing it at the beginning of battle, and then again if the approach to the battle needs to change (such as shifting from offense to defense or flight).

3. The simplest version of 2 is that warrior abilities are always on, period, no management required. The price you pay for being a warrior is that it's hard to run away.

In NetHack, knights can jump, which means that if they're in the right position, they can move more than one square at a time. Perhaps a jumping (or leaping) ability could be used to allow a warrior to move 2 spaces, then have one action, and then lose an action? (Because they're tired or whatever). That would mean they wouldn't have a "teleport equivalent", so it wouldn't just be a variant on the wizard ability, but it would allow them to do things like jump through a doorway and then close the door... if they were facing a monster that couldn't open doors. Alternatively, you could give warriors a list of special "skill" abilities or something that, instead of using a mana "battery", were just all available whenever the warrior wasn't "tired", and then using any ability could either make the warrior tired for a fixed or a variable number of turns... depending on how involved you wanted to make the system. Unlike with wizards, warriors would never be able to use those abilities two-in-a-row, and the abilities could all be minor, "useful" things (like leaping) but without being "magical", which would give the warrior a different "feel" from the wizard.