Saturday, September 5, 2015

Inside the Dungeon: Engaging Combat

Hail Wanderers!

Today, as promised, I'm going to start going into a little more detail about my plans for the dungeon crawler. This series of posts will include some of my design philosphies, my intent for the game's final experience, and a bit of the logic behind the decisions I'm making. This will be a multi-part series, and I'll eventually collect them and put them under one page or something similar for more easy access, but for now expect more posts like this one in the standard blog feed.

To start, I'm going to be tackling the first goal of the game: changing and engaging combat scenarios. My plan here breaks down into three points: providing the player with more information each turn, changing the combat space each turn, and eliminating single-choice combat scenarios. I'll hit each point in turn, but first a short explanation of how the combat in game works.

The combat system shares many components with other turn based RPG systems of its kind (think games like Golden Sun, Etrian Odyssey, the Persona series, and similar titles for the basics). The player and enemies have health pools that are depleted by using offensive skills against them and also have defensive skills to mitigate or recover from that health loss. However, instead of combatants in the game having a basic attack command, all actions in combat are performed through skills. Each skill used consumes and generates resources from a global pool that all combatants share. I'm calling this shared resource mana for now, just for the sake of standard conventions, and it comes in earth, water, fire, and air mana. Again, just for the sake of simplicity in these early phases. I'll get deeper into what that shared pool means for combat below.

In addition to requiring resources from that global pool, each skill consumes a certain number of action points. Action points regenerate by a fixed amount each turn and can be carried over, up to a max value, if they are not all consumed in the turn. So long as the player, or enemy, has enough action points and resources in the global pool, they can queue as many skills as they like each turn. This allows the player (who only controls a single character) to better engage the multiple enemies (who have comparatively low action point pools).

Lastly, damage and defensive values from skills are broken down into physical and magical types. A defensive skill that blocks magic damage won't reduce the damage from a physical skill, and vice versa.

I'll write up a more readable version of the rules at a later point, but that should be enough for the purposes of this (already somewhat lengthy) post. On to the main topic!

Providing the Player Information
I want to make each skill choice in combat meaningful for the player, and to help with that I plan to provide the player with more detailed information not just about what each skill does, but its actual effect against the target it is being used on in that turn. I'm not sure how soon certain components of that information will be available to the player (enemy weaknesses, if those are eventually part of the combat system, etc) but at a base line the game will display how much damage each skill is predicted to deal to the target.

This will take into account any defensive skills the target is using that turn, and the intent is that the player will look at what type of damage the enemies are defending themselves against and plan accordingly to exploit the gaps in their defenses.

Similarly, the game will display what skill(s) the enemies will be using each turn, and display how much, and what type, of damage the skills are projected to deal to the player. Again, I'm still iterating on how much information about each skill will be displayed, but for now I'm leaning towards displaying a complete set of information for each skill (that being how much damage and of what type it will deal, what the skill is targeting, and how much of each global resource it is consuming and generating). The reason for displaying the skill type is simple enough, as it allows the player to properly match attack skills and defensive skills by their type, but the reason for displaying each skill's effect on the global resource pool is a little more elaborate. Because those resources are needed to use skills, both by the player and the enemies, it is important for the player to have a solid idea of what resources they will have available to them next turn. I'll explain in the next section the intent behind this and how it works.

The intent of displaying so much information to the player is that the player will be making counter plans to the enemies' actions in the turn they are taking those actions instead of reacting next turn. I'm currently balancing the game so that, if the player doesn't match damage types and pay attention to what skills the enemies are using, they will find combat to be very difficult, if not impossible. Yet if the player makes an effective counter plan to the skills the enemies have selected, they should take very little damage in combat. It's also intended to take some of the guesswork out of the equation ("that enemy's health bar looks small enough that this light attack should kill it, right?") and help the player cope with a more dynamic combat environment.

Which feeds pretty nicely into the second point...

Changing the Combat Space
In addition to simply selecting skills that are effective against what the enemies are going to do that turn, what skills the player and enemies can use is determined by what resources are available in the global resource pool that turn.

The purpose of the global resource pool is to prevent combat from always following the same skill rotations or set counter strategies. With it in place, what skills are available for both sides to use changes each turn as the state of the pool changes. Without that, it becomes a simple matter of matching defense types to enemy attacks and selecting the opposite type for player attacks.

Furthermore, because the pool is shared by both sides, this opens the door to more strategies for the player and also presents some additional concerns that they need to keep in mind for longer combat encounters. If the player knows what resources particularly dangerous enemy skills consume, they can use skills that deplete that resource type from the global pool, effectively preventing the enemies from using those skills. But at the same time, if the player over uses a certain resource type without taking care to replenish it with other skills, they may find themselves without enough resources to use key skills later in the encounter.

I'm not completely certain that this is the eventual form the system will take, but I think it's a solid starting point that captures at least the basics of the intended experience. I'm toying around with having skills that consume certain resource types also be of that type, and deal more or less damage against certain enemies based on those type match ups, but I'm leaning more towards having the state of the global resources be what has an impact on the skill's effectiveness instead. The player doesn't have any control over what enemies they are facing, so having skills of type A deal more damage to enemies of type B would place the player back in a more reactive position. On the other hand, if skills of type A deal more damage when resource type A reaches a certain level in the global pool, the player would be able to actively plan to reach or avoid that threshold, depending on what their skill setup is and what skills the enemies are using.

Eliminating Single-Choice Combat
This one is a little more nebulous, so first I'll explain what I mean by 'single-choice combat'. The term is in reference to combat scenarios where one choice can be easily taken to achieve victory, no matter what the opposing side tries to do. In many turn based RPGs, this is the 'attack' command, which can carry an on-level, or especially a slightly over-leveled party through most fights without too much of an issue. That or having the choice of which skill to use simply break down to which the enemy is most vulnerable to. It's not that those are bad systems, though I would argue that hitting 'attack' for every enemy in an often lengthy dungeon can get a little tedious, but that they don't engage the player beyond the initial formulation of the strategy. Outside of random events (a critical hit, or a miss, or the like) most of the time those strategies will work well enough for the player. Even if the strategy is a little more detailed, outside of boss battles or similar encounters where enemies are much more powerful the same basic strategy tends to apply to each encounter.

Part of the reason for this, I think, is that in these style of games the generic encounters are balanced so the player isn't constantly having to heal and recover after every fight. If basic mobs are proving to be a challenge for the player, it's usually a sign that the player isn't strong enough for the area yet. Some games get around this in part by fully healing the player between each fight and having every fight be a more challenging one (with the bosses being even more punishing) but enemies still follow a reasonably predictable pattern after a while, and once the player is strong enough fighting them becomes time consuming rather than challenging. I've seen some games get around that by having low level enemies either not fight the player or be one hit kills if they are engaged in the proper way (the Mana Khemia games, for example, allow the player to kill sufficiently weak enemies without even triggering a combat screen) but the dungeon crawler doesn't share a similar game space to those games.

Mana Khemia, for example, has a level exploration system where the player encounters monsters as blobs of various shapes and sizes. Weak monsters are cleared with a simple slash that doesn't even trigger combat, as stated above, while that same slash provides the player an advantage when they start combat with stronger monsters. It's a good system, in my opinion, as it keeps the player from having to slog through battles that they'll easily win, but in addition to encountering monsters the player is also exploring the area in real time and collecting resources. The dungeon crawler's dungeons will exist in the form of text and choices that the player can make, not in that real time space, so similar solutions don't apply as easily.

I intend to partially mitigate the issue by having the more dynamic combat system, as explained above, and thus requiring the player to make a new plan based on what the enemies are doing each turn in addition to the general strategy for taking them down, but that still leaves the issue of how to deal with enemies that aren't strong enough to provide the player a suitable challenge.

I could have the enemies scale to the player's level as the game goes on, but for now, my solution is to have the encounters themselves change as the player gets too strong for them. I'll get deeper into this when I'm talking about how the game world can be shaped by, and reacts to, the player, but for now I'm thinking that once the player reaches a point where they are over powered for an encounter, new options will come up that allow them to engage with the encounter in new ways.

For example, let's say there is a basic bandit ambush that the player has to deal with. On-level, the player simply fights the bandits and gets loot if they win. But once the player is strong enough that the bandits won't pose a threat, the bandits recognize this and instead of attacking, offer to lead the player back to their hideout. The player now has the option to take them up on the offer, which leads to an ambush against stronger bandits at the hideout that is a level appropriate challenge (and provides level appropriate loot!), the player can simply keep on their way if they don't feel like dealing with the encounter, or the player can start the old combat encounter if they so desire. It's a more complex system, and it may only be implemented for certain encounters, but I think it will make the game more interesting and prevent the player from having to do the same old easy combat yet another time for rewards that aren't worth the trouble.


Alright! That's all for that topic. Thank you for sticking around to read all of it, thank you for coming to at least see what's up if you didn't, and I hope these plans are getting some of you excited for the game when it comes out. Most of what I talked about today is actually implemented in the game already, so look forward to it when the next version rolls around (I'm not making any release date announcements, I've learned my lesson there).

Until next time!
-Charles (Guardian Soul)

No comments:

Post a Comment