(Mis)adventures in roguelike development: Rule System

I’ve been silent here because I actually spent time doing stuff. I’ll eventually recuperate the “diary” but for now it already exists in a form: here.

That became a long thread.

In the meantime I wrote down some first high level design consideration that will direct toward the “system” I’ll use for the ruleset governing the game.

Following are a number of RPG classic systems that I consider interesting and whole mechanics I’m planning to integrate into my roguelike. So before moving on, I wanted to compile a simplified list of a standard type of attack in each of these systems. Just one attack, so not a whole combat turn.

(surprise roll d100)
– Initiative 1D10, subtract related speed component, add speed of action
– TO HIT: skill %. Succeeds if less than skill level. If lower than 10% of the skill -> critical. (plus modifiers due to cover/movement)
– (target can parry by spending one attack)
– Check for location. Roll another %. If under 40% multipliers to damage apply.
– Roll damage dice dependent on weapon. If critical, it does max damage the weapon can do, without rolling.
– Armor value is subtracted from damage (armor is locational and has values for different types of attack: cut, blunt, pierce, fire, chemical, stunning, electrical).
Note: if total damage exceeds a certain Wound Level (75% of total hit points), the target is dazed.

Considerations: two weak points. The first is I don’t like parry using attacks, since if you fight to win you’d rather try to kill the enemy as fast as possible instead of wasting attacks to parry. The other weak point is that location is random and can push damage quite a bit, so a bit too driven by chance.

(surprise, DM decides)
– Initiative 1D10 + agility bonus. Initiative is rolled only once for whole combat, same order for every round.
– Can set a “stance”, like all out attack, or defensive stance, that affect hit rolls.
– TO HIT: skill %. Succeeds if less than skill level. (some environmental variables may apply)
– (target has one “reaction” slot to use to parry or dodge)
– Check for location. This uses the same to hit roll, but with reversed order. so a 15 to hit, becomes 51 for location. Location is just location, doesn’t affect damage.
– Roll damage dice. If roll a 10, roll to-hit again, if successful, roll a 10 to add to damage. If you keep rolling 10s, they all add up to damage.
– Armor value is subtracted from damage.
Note: if damage surpassed a certain level, it’s a critical with consequences.

Considerations: it’s more streamlined and has a free slot to use to parry or dodge, instead of wasting attacks. Has the nice trick to use only one dice for both to-hit and location, though it won’t matter in a computer implementation.

(surprise happens after initiative, may need perception rolls)
– Initiative 1D20? + dex bonus. Initiative is rolled only once for whole combat, same order for every round.
– TO HIT: 1D20. Succeeds if above armor class of target. Base 10 + armor + other bonuses.
– Roll damage dice. Armor only counts for to-hit and doesn’t absorb damage.
Note: a to-hit of 20 is critical if another to-hit roll is successful. Weapon type says how many times to reroll damage, usually 2x.

Considerations: it’s fairly simple. It has the usual realism issues of D&D. There’s no “skill” since you only get bonuses through stats and new levels. Armor doesn’t absorb damage, which means that if you fight a guy in full platemail with a knife and hit, you do as much damage as if the guy was naked. If you fight the same guy with a knife or a long sword, there’s also no difference in being able to hit him. There are a few combat maneuvers, but parry doesn’t seem to exist.

– Initiative is fixed. No dices being rolled. It depends on various bonuses and conditions.
– TO HIT: % dice + attacker Offensive Bonus – defender Defensive Bonus. You check the value you get on a table with the defender armor value. Rolls are open-ended, so you keep rerolling and adding, as long you go above 95.

Considerations: that’s it basically. It all depends on HUGE weapon-specific tables that tell you if the attack fumbled, was critical, and how much damage it dealt. The good aspect is that attacks consider the defensive bonus of who is attacked, and before a turn you decide how to redistribute your Offensive Bonus to the Defensive. So there’s a granular type of defense where you decide how much to focus on defense and how much on offense. So “parrying” is just about relocating your bonus from offensive to defensive, and is not an active “action”.

(surprise, the DM decides)
– Initiative is a skill value. No dice rolls required.
– Attacker declares: target, weapon, (optionally) aiming (high, mid, low, -10 penalty), weapon aspect (if you want to exploit an armor weakness).
– Defender declares: Block, Counterstrike, Dodge, Nothing.
– TO HIT: BOTH parties have to roll % dice, and result is mapped on a simple chart. Simultaneous strikes are possible.
– Roll % dice for specific location (this can be slightly rigged by declaring a general aim above).
– For damage you usually roll 1D6 (regardless of weapon), add result to the fixed weapon damage, subtract armor absorption, and, if result is still positive, see on the Injury Table what kind of injury you get matching the value for the location.
– Injuries directly and immediately apply penalties to stats and skill checks.
– Death essentially comes from the target getting disabled or fainting.
– Healing, after successful treatment, is dealt for every single wound. Every wound has a chance of going down one level every five days.

Considerations: This is an odd beast. Armor not only just absorbs damage, but also makes one easier to hit. There are no hit points, and only wounds treated separately. Weapons can be used for different types of attacks, blunt/edge/point, and armor has different protection values against each. Which also opens the possibility to “Compound Layers”, meaning that you wear armor in overlapping layers and they all add up to the protection of that specific location. You could even attempt wearing a DOUBLE PLATE, this has some diminish returns, but would also give pretty huge penalties to attacks and defense. Classes are not restricted to certain weapon types. No levels. So it does a lot of things I like as a system.

After all that I’ll probably go with an hybrid system. I actually like Dangerous Journey general system as it seems well organized. For example every skill falls under some attribute. The attribute not only provides some basic value for the skill, or eventual bonuses to skill checks, but it also sets a maximum of expertise in that skill. So for example if you have Strength of 60 and use an attack based on strength, your skill won’t exceed 60. You can’t get better than that, if Strength is not improved first.

The hybrid I could make would be the character system of Dangerous Journey plus the combat system of Harnmaster. Since they both use % skill they integrate smoothly. I’d then have to simplify a lot the wound/healing system, since I can’t make a player wait idly for days for every small wound.

I was also considering a party system. Initially the idea was to have it abstracted. So you’d still only see one “@” on screen representing the whole party. Instead I thought that a real party isn’t much harder to do. The idea is: you still control one “@” normally, but as a monster is sighted you enter a combat phase. As the combat phase starts you get to “deploy” all your party characters in a small area around your main character. And during the whole combat you move the party members individually. Optionally, you can initiate combat even if no monster is around, and so you could split your party and move party members individually. So it’s a rather flexible system. I’m aiming to have up to four party members in total, including the main character.

I also started to deal with how progress happens. No levels. The characters earns XP points for successful actions like dispatching monsters, finding loot, completing quests, the usual. But there’s no level and XP points are used as “currency” (this is just one of the many mechanics I’ll borrow from Dark Souls). By spending these XP points you get chances to improve various aspects of your character (stats, skills). If the dice roll used to improve a stat is unsuccessful, you get no improvement but XP is still used up. If the dice roll is successful you get the improvement BUT the XP requirements across the board for further improvement go up. Still undecided about how to handle death, no permdeath, but there will be probably a way to lose XP, Dark Souls-like.

Only stats and skills that the character actively used can be improved, but you only need to use a skill once to be able to improve it (so you get enough flexibility to improve whatever you want, without having to “grind” skills).

In order to prevent save cheat mechanics, to avoid that one could reload the game if an improvement roll is unsuccessful, the game already rolls these improvements when an action is first made. And when the player decides to use the XP the game only “reveals” the dice roll it made long before. That way, reloading a game would only produce the same result. :)

(and there would be some time limits so that you need to wait at least a day before spending XP again to improve the same skill. Which means that the fasted path is to play the game normally instead of saving/reload scumming)

On iterative design development it is very likely, essentially guaranteed, that “wasting” XP on unsuccessful improvements is a frustrating rule that would be erased and the process streamlined. But we’ll see.

(since you can’t post comments on this blog, use this just in case)

Posted in: Uncategorized | Tagged:

Leave a Reply