Hail, elves. It's been a while since we've had a mechanics update, so I'd like to cover a variety of topics today: the basics of our "non-core" classes, our cooldown system (or lack thereof), an update on how attacks are resolved, and another update on the evolution of our armor system. I'd also like to show you a dungeon tileset test render and some sweet shakycam of some of the combat basics running in engine.
We've previously discussed the design of our "core four" classes: fighter, priest, rogue, and wizard. The non-core classes are the other seven: barbarian, paladin, ranger, druid, monk, chanter, and cipher. Like the core four classes, the non-core classes all start the game with two active or modal abilities and one passive ability.
When it comes to the balance of active/modal and passive options, the classes generally reflect their D&D counterparts, with spellcasters having more active use abilities and weapon-based classes being oriented toward more passive or modal abilities. Even so, it will be possible to push a spellcaster toward more passive talents and to optionally buy more active/modal abilities for traditionally low-maintenance characters. While all classes will have many more abilities as they advance, here are some basic elements for each of the seven classes.
- Barbarians can use Wild Sprint a limited number of times per day, allowing them to rapidly rush across the battlefield to a distant target while ignoring hazards along the way.
- Paladins have limited healing capabilities, but their Revive command allows them to instantly snap an unconscious ally awake with a large Stamina boost.
- Rangers' animal companions are so closely bonded to their masters that they share Stamina and Health pools, which can be both a blessing and a curse.
- Druids can Shapeshift into animal forms, gaining natural -- and some supernatural -- abilities associated with those creatures.
- Monks absorb a portion of incoming damage and convert it into a Wounds resource they can use to power their soul-based abilities (such as Stunning Blows) through any weapons they use, including unarmed strikes.
- Chanters begin the game with a number of phrases they can arrange to form songs with different effects. Aefyllath Ues Mith Fyr is a phrase that causes allies' weapons to emit magical flames.
- Cipher powers often gain intensity as they maintain focus. Their basic Mind Jab starts as a minor irritant but can build to inflict devastating damage.
Early on, some folks asked about cooldowns and both Tim and I agreed that we weren't opposed to using them in some form if it made sense for our mechanics. To be more explicit about it, the only way in which we are currently using anything cooldown-like is for per-encounter and per-rest abilities. Per-encounter abilities can be used a number of times in an encounter and are then disabled until combat ends. Per-rest abilities can be used a number of times after resting before you must rest to recover them. We've previously discussed grimoire-switching for wizards possibly invoking a cooldown. It's more likely that grimoire-switching will be limited through the inventory system and not by a cooldown.
We also have modal abilities that can be turned on and off at will, with some abilities being exclusive to others, meaning you can only have one active at a time.
I've talked about this a bunch on the forums, but not in an update. All attacks in Project Eternity compare the attacker's Accuracy value to one of four defenses: Deflection (direct melee and ranged attacks), Fortitude (body system attacks like poison and disease), Reflexes (area of effect damage attacks), and Willpower (mental attacks).
A number between 1 and 100 is generated to determine the attack rules. If the Accuracy and target defense are the same value, these are how the results break down:
- 01-05 = Miss
- 06-50 = Graze
- 51-95 = Hit
- 96-100 = Critical Hit
Damage Type vs. Armor Type
We've previously talked about how different weapon damage types (Slash, Crush, and Pierce) fare against Damage Threshold (DT) in the game. We implemented that system and found that while it worked well on paper and scaled well, it was unintuitive when put into the game. It was not possible for players to make informed decisions about what weapons to use against a given armor type because doing so required making relative damage vs. DT calculations for all weapon types, i.e. having a spreadsheet open for comparison at all times.
In light of this, we are going to try a more explicit damage type vs. armor type model where armor, regardless of its DT, has a familiar weight classification: Light, Medium, and Heavy. Damage types are either good or bad against a given weight classification. When a damage type is "bad" against an armor type, it does half damage before DT is applied, making it very inefficient. Within the "good" types of damage, there's still an efficiency curve against DT for meticulous players to figure out, but it has less impact than avoiding "bad" damage types in the first place.
Energy-based attacks (like most spells) oppose a different characteristic of the armor, its substance type (Natural, Armor, or Spirit) and like damage types, have good and bad opposition characteristics. Weapon bonus damage that is energy-based is applied to the target separately, but at a fractional DT value matching the bonus damage. E.g. if a sword has a fire effect that does +15% the sword's damage, it is opposed by 15% of the target's Damage Threshold.
Tileset Trials and Tribulations
Environment artist Sean Dunny has been experimenting with building tilesets for our dungeons. "Tilesets?!" you may be saying (or thinking). It may be a surprise, but many Icewind Dale and Planescape: Torment levels started from a tileset or modular unit base. We use these tilesets to generate basic renders for testing layout, navigation, and combat. Once we like the basic layout, we refine it by adding additional "meta" (special) tiles, modifying the tiles individually in the layout, adding lights, and of course having an artist do a 2D touchup pass.
That's all for this week. Thanks for reading!
Update by Josh Sawyer