IMPROVING MENU-BASED BATTLE SYSTEMS
Posts
Pages:
1
I've been developing a 2D RPG (link) built from scratch with a custom engine for a number of years that uses a menu-based battle system. One of my areas of concern is that your typical RPG menu-based battle is pretty dull, and I want to try and improve that with my game. So I'm going to throw some ideas at you guys and I'd like to hear your comments and suggestions, as well as receiving any ideas you all put forward to address the issues. Almost all of these ideas are already implemented and working in our current build of the game. We are still in the process of refining and improving them.
Before I begin with my ideas, first, let me list what I believe are the major downside to such battle systems.
Most battles require little skill from the player. Games typically have a basic "Attack" function that you can spam and win over half of your battles without a problem. These types of battles are not fun, and only serve to consume the player's time. Boss battles, on the other hand, typically require more focus and decision making from the player.
A significant percentage of the time spent in a battle involves the player taking no action. They are either waiting for some stamina/action meter to build up so that they can select an action for their characters, or they are watching action unfold on the screen. In turn-based systems, what often happens is that the battle is "paused" while you select actions for your characters. Then when your actions are selected, the player sits and watches (and does nothing) while the battle unfolds. The result is a "stop-and-go" system that is not very engaging, nor is it very fun in my opinion. Even if the battle does not pause while the player selects actions, they are still waiting a significant amount of time to select their actions or (in some games) watching certain abilities be used.
Here's a video of an old demo release of our game. If you watch the battles in this video, you can clearly see that our battle system suffers from those problems and that our battles are not very interesting.
Now allow me to present the ideas that we've been testing to solve these issues. While we were brainstorming these ideas, we made sure to keep in mind the three primary design goals we have for this title because we wanted these ideas to align to them as well.
Feature #1: Allow actions to target specific areas on an opponent
This is one of the oldest and most fundamental ideas for our battle system. Essentially, both enemies and characters have multiple areas on their bodies that can be targeted (arms, head, legs, wings, torso, etc.). Each target on the body has different strengths and weaknesses that can be taken advantage of. For example, target a warrior's arms to lower their attack strength. A successful hit to an opponents head will deal more damage, but the attack is more likely to miss. A hit to the legs may have a chance to lower an enemy's speed. And so on.
The idea with this feature is to increase the number of strategic options available to the player. They can choose to try and target high-damage areas to dispatch a foe more quickly. Or if the foe is annoyingly quick, the legs can be targeted to lower their speed. Many familiar RPGs sort of had a feature like this on certain boss encounters where you could target different parts for different effects. We simply expand this idea to apply it to essentially every enemy (and playable character) in the game.
Feature #2: Status Effects Have Multiple Intensities
Nearly every RPG implements some sort of status effect like poison, mute, etc. The problem with these is that it can be annoying to cure a status ailment, only to have the same enemy re-afflict the status on a character soon after they are cured. Often, status effects are simply ignored as they do not impact the characters enough to be worth the time to heal (for example, a characters with 5000HP that is poisoned only losses maybe 40HP a turn to the effect).
In our game, we have four different intensities for a status effect. The lowest intensity for poison only removes a small amount of HP from a character (say 20HP/turn), whereas the most severe status is much more devastating. The player is faced with a less clear decision of whether it is worthwhile to spend a turn to cure the status effect based on the intensity that it has.
Additionally, we allow all negative status effects (poison, stone, etc.) and positive status effects (strength+, agility+, etc.) to naturally dissipate over the course of the battle. Without the player doing anything, over time these status effects will gradually lessen in intensity until they disappear completely. The player must also consider this information in choosing whether or not to immediately cure it. Finally, all status effects are completely cured when a battle ends, meaning that the player doesn't have to go to the menu screen after battle and cure the various afflictions.
This is a simple change that makes status effects much more interesting. As was mentioned in idea #1, status effects may also be triggered simply by striking certain targets of enemies with an attack (a hit to the legs may reduce agility, etc).
Feature #3: Allow the player to pre-select actions for their characters
While the characters are in their idle state, the player can select the next action that they would like the character to take. This solves the problem of the player having nothing to do when no characters are ready to execute an action. Of course the player can still wait until the stamina bar is full (and the character changes from the idle to the selection state), although there's no reason really to wait, unless the player is delaying the action selection based on the state of the enemies (ie if an enemy is seen charging up for a big attack, the player will want to put their character in a defensive state).
We also allow the selected action to be changed by the player at any time before they execute the action. If we didn't do this, players would be hesitant to pre-select actions because they may need to change their strategy based on what actions the enemy performs. We have this feature implemented in our game now and its working out pretty well.
Feature #4: Skills have a warm-up and cool-down period
For each character skill, we have a period of time where they need to prepare to use the skill, and another period where they have to recover from using the skill. The most basic skills do not have long periods of this time, while the more powerful attacks take considerably longer. Additionally, we've played around with the idea of making a character more vulnerable during these periods.
The purpose of this feature is to introduce more strategic depth to the player. In addition to the player having to consider the resource cost (MP) of using a powerful attack, they also must consider the additional time it takes for the skill to be used.
Feature #5: Blend damage frames together for enemies
This is more of a graphical feature than a design one, but it can still influence battle decisions. Instead of having a single static image for an enemy, we create four different images of the enemy representing various states of damage. We blend two of these frames together based on the current health percentage of an enemy. This way the player can get an idea of how badly hurt an enemy is.
Here are some examples of this from enemies in our game.
There are a few more features to our battle system, but I don't want to overwhelm this first post with our entire feature list. I'll add the others here later to add to the discussion. So what are your thoughts on these first five features? Do you like the ideas proposed? Do you think they help solve the fundamental problems in this type of battle system? Do you feel they would make battles more interesting and engaging, or more complicated and tedious? I look forward to hearing the opinions of people in this community. :)
Before I begin with my ideas, first, let me list what I believe are the major downside to such battle systems.
- Lack of strategy
Most battles require little skill from the player. Games typically have a basic "Attack" function that you can spam and win over half of your battles without a problem. These types of battles are not fun, and only serve to consume the player's time. Boss battles, on the other hand, typically require more focus and decision making from the player.
- Lack of player engagement
A significant percentage of the time spent in a battle involves the player taking no action. They are either waiting for some stamina/action meter to build up so that they can select an action for their characters, or they are watching action unfold on the screen. In turn-based systems, what often happens is that the battle is "paused" while you select actions for your characters. Then when your actions are selected, the player sits and watches (and does nothing) while the battle unfolds. The result is a "stop-and-go" system that is not very engaging, nor is it very fun in my opinion. Even if the battle does not pause while the player selects actions, they are still waiting a significant amount of time to select their actions or (in some games) watching certain abilities be used.
Here's a video of an old demo release of our game. If you watch the battles in this video, you can clearly see that our battle system suffers from those problems and that our battles are not very interesting.
Now allow me to present the ideas that we've been testing to solve these issues. While we were brainstorming these ideas, we made sure to keep in mind the three primary design goals we have for this title because we wanted these ideas to align to them as well.
- Design the game such that the major focus is on gameplay and story, not advanced 3D graphics and physical simulations.
- As much as possible, remove the tedious, meaningless, and micromanaging aspects of many historical and modern RPGs.
- Require a high level of strategic thinking and planning from the player, and less mindless "button mashing" found in many RPGs.
Feature #1: Allow actions to target specific areas on an opponent
This is one of the oldest and most fundamental ideas for our battle system. Essentially, both enemies and characters have multiple areas on their bodies that can be targeted (arms, head, legs, wings, torso, etc.). Each target on the body has different strengths and weaknesses that can be taken advantage of. For example, target a warrior's arms to lower their attack strength. A successful hit to an opponents head will deal more damage, but the attack is more likely to miss. A hit to the legs may have a chance to lower an enemy's speed. And so on.
The idea with this feature is to increase the number of strategic options available to the player. They can choose to try and target high-damage areas to dispatch a foe more quickly. Or if the foe is annoyingly quick, the legs can be targeted to lower their speed. Many familiar RPGs sort of had a feature like this on certain boss encounters where you could target different parts for different effects. We simply expand this idea to apply it to essentially every enemy (and playable character) in the game.
Feature #2: Status Effects Have Multiple Intensities
Nearly every RPG implements some sort of status effect like poison, mute, etc. The problem with these is that it can be annoying to cure a status ailment, only to have the same enemy re-afflict the status on a character soon after they are cured. Often, status effects are simply ignored as they do not impact the characters enough to be worth the time to heal (for example, a characters with 5000HP that is poisoned only losses maybe 40HP a turn to the effect).
In our game, we have four different intensities for a status effect. The lowest intensity for poison only removes a small amount of HP from a character (say 20HP/turn), whereas the most severe status is much more devastating. The player is faced with a less clear decision of whether it is worthwhile to spend a turn to cure the status effect based on the intensity that it has.
Additionally, we allow all negative status effects (poison, stone, etc.) and positive status effects (strength+, agility+, etc.) to naturally dissipate over the course of the battle. Without the player doing anything, over time these status effects will gradually lessen in intensity until they disappear completely. The player must also consider this information in choosing whether or not to immediately cure it. Finally, all status effects are completely cured when a battle ends, meaning that the player doesn't have to go to the menu screen after battle and cure the various afflictions.
This is a simple change that makes status effects much more interesting. As was mentioned in idea #1, status effects may also be triggered simply by striking certain targets of enemies with an attack (a hit to the legs may reduce agility, etc).
Feature #3: Allow the player to pre-select actions for their characters
While the characters are in their idle state, the player can select the next action that they would like the character to take. This solves the problem of the player having nothing to do when no characters are ready to execute an action. Of course the player can still wait until the stamina bar is full (and the character changes from the idle to the selection state), although there's no reason really to wait, unless the player is delaying the action selection based on the state of the enemies (ie if an enemy is seen charging up for a big attack, the player will want to put their character in a defensive state).
We also allow the selected action to be changed by the player at any time before they execute the action. If we didn't do this, players would be hesitant to pre-select actions because they may need to change their strategy based on what actions the enemy performs. We have this feature implemented in our game now and its working out pretty well.
Feature #4: Skills have a warm-up and cool-down period
For each character skill, we have a period of time where they need to prepare to use the skill, and another period where they have to recover from using the skill. The most basic skills do not have long periods of this time, while the more powerful attacks take considerably longer. Additionally, we've played around with the idea of making a character more vulnerable during these periods.
The purpose of this feature is to introduce more strategic depth to the player. In addition to the player having to consider the resource cost (MP) of using a powerful attack, they also must consider the additional time it takes for the skill to be used.
Feature #5: Blend damage frames together for enemies
This is more of a graphical feature than a design one, but it can still influence battle decisions. Instead of having a single static image for an enemy, we create four different images of the enemy representing various states of damage. We blend two of these frames together based on the current health percentage of an enemy. This way the player can get an idea of how badly hurt an enemy is.
Here are some examples of this from enemies in our game.
There are a few more features to our battle system, but I don't want to overwhelm this first post with our entire feature list. I'll add the others here later to add to the discussion. So what are your thoughts on these first five features? Do you like the ideas proposed? Do you think they help solve the fundamental problems in this type of battle system? Do you feel they would make battles more interesting and engaging, or more complicated and tedious? I look forward to hearing the opinions of people in this community. :)
This feels just a bit more like a commercial than asking for help/discussion, I'm afraid. And your entire paragraph under Lack of Player Engagement seriously makes me question if this type of battle system is for you at all. Certainly nothing you've suggested fundamentally alters this since you specifically said that you still find it boring when there is no ATB bar and no waiting.
Anyway Features 1, 3, and 4 all seem good and sensible and Feature 2 actually sounds pretty impressive. Feature 1 in particular is something I've never really seen done in RM games, or in nearly any commercial JRPGs either except for Vagrant Story.
With Feature 5 I'm concerned because with the exception of the flaming tree, I really can't see the changes easily or at a glance. It definitely seems like the kind of thing I'd fail to notice when playing an actual game engaged in an actual battle.
Anyway if you are looking for more ideas on making menu-based battle systems intricate and awesome than you can handle I suggest that you play as many games by Craze as you can get through. I would seriously consider that the equivalent of a Master Class on this topic.
Anyway Features 1, 3, and 4 all seem good and sensible and Feature 2 actually sounds pretty impressive. Feature 1 in particular is something I've never really seen done in RM games, or in nearly any commercial JRPGs either except for Vagrant Story.
With Feature 5 I'm concerned because with the exception of the flaming tree, I really can't see the changes easily or at a glance. It definitely seems like the kind of thing I'd fail to notice when playing an actual game engaged in an actual battle.
Anyway if you are looking for more ideas on making menu-based battle systems intricate and awesome than you can handle I suggest that you play as many games by Craze as you can get through. I would seriously consider that the equivalent of a Master Class on this topic.
LockeZ
I'd really like to get rid of LockeZ. His play style is way too unpredictable. He's always like this too. If he ran a country, he'd just kill and imprison people at random until crime stopped.
5958
I mean, your real problems are:
- Enemies don't do anything interesting for the player to respond to.
- Therefore, you didn't feel the need to give the player any abilities to respond to specific types of things that enemies do.
Also I'm not sure why you have that long wait period for turns in the first place. You tried to make up for it by having the enemies move several times faster than the player but do very low damage with each hit, but this solution is not only incomplete, it's actually counterproductive. With this system it's very hard for you to give enemies actions that the player has to respond to, because the enemy party will potentially get several more actions before the player gets a turn.
My recommendations:
- Slow down enemies so they get turns at about the same speed as the player, for most enemies. One obvious exception would be when fighting a single enemy while the player controls several characters.
- Increase enemy damage to compensate.
- Then, triple or quadruple the speed that the turn bar increases. This will make the time that the player spends waiting for turns be negligible, and when you combine it with the above two suggestions, it won't cause any problems with how fast enemies get their turns.
- Give every enemy at least one unique property that the player must respond to. Most enemies later in the game should have two or three properties. Make sure that properly responding is important - if the player can win battles while ignoring what the enemies are doing, then the system becomes boring again. The player should have a margin of error they're allowed of course, but that margin shouldn't be so big that everything but bosses is beatable while ignoring the gameplay.
- These properties don't have to be limited to elemental abilities and basic status ailments. Enemies can charge up an attack to use on the next round but you can stop the attack by stunning them before then. They can buff themselves or each-other. They can summon allies. They can heal, or prevent the player from healing. They can deal damage based on their remaining HP, or the player's. They can alternate between two attack modes. They can enrage when an ally dies, or after a certain number of turns. They can do thousands of other things.
- Give the player a variety of tools to respond to said enemy properties. Being able to target the enemy's body parts is a good tool, but make sure the player also has many different skills for other things. In many cases, choosing which enemy to attack will be enough, but make sure they also have lots of interesting skills and/or items to deal with enemy gimmicks (and make sure the enemies make the player actually use that stuff).
- Get a second party member on the team ASAP. Your combat is obviously designed for party battles and it is very obvious that things like targeting would be adding more depth to the battle if there were at least two characters. It's possible to create deep engaging combat with only one character, but you don't seem to really have a strong grasp on how to do so.
- This is unrelated, but the battles are very hard to "read" because there's no animation on the target when they take damage. I'm sure you plan to fix it, but at the moment it's making the battles look even more boring than they really are, because it's hard to tell that something happened at all.
- Enemies don't do anything interesting for the player to respond to.
- Therefore, you didn't feel the need to give the player any abilities to respond to specific types of things that enemies do.
Also I'm not sure why you have that long wait period for turns in the first place. You tried to make up for it by having the enemies move several times faster than the player but do very low damage with each hit, but this solution is not only incomplete, it's actually counterproductive. With this system it's very hard for you to give enemies actions that the player has to respond to, because the enemy party will potentially get several more actions before the player gets a turn.
My recommendations:
- Slow down enemies so they get turns at about the same speed as the player, for most enemies. One obvious exception would be when fighting a single enemy while the player controls several characters.
- Increase enemy damage to compensate.
- Then, triple or quadruple the speed that the turn bar increases. This will make the time that the player spends waiting for turns be negligible, and when you combine it with the above two suggestions, it won't cause any problems with how fast enemies get their turns.
- Give every enemy at least one unique property that the player must respond to. Most enemies later in the game should have two or three properties. Make sure that properly responding is important - if the player can win battles while ignoring what the enemies are doing, then the system becomes boring again. The player should have a margin of error they're allowed of course, but that margin shouldn't be so big that everything but bosses is beatable while ignoring the gameplay.
- These properties don't have to be limited to elemental abilities and basic status ailments. Enemies can charge up an attack to use on the next round but you can stop the attack by stunning them before then. They can buff themselves or each-other. They can summon allies. They can heal, or prevent the player from healing. They can deal damage based on their remaining HP, or the player's. They can alternate between two attack modes. They can enrage when an ally dies, or after a certain number of turns. They can do thousands of other things.
- Give the player a variety of tools to respond to said enemy properties. Being able to target the enemy's body parts is a good tool, but make sure the player also has many different skills for other things. In many cases, choosing which enemy to attack will be enough, but make sure they also have lots of interesting skills and/or items to deal with enemy gimmicks (and make sure the enemies make the player actually use that stuff).
- Get a second party member on the team ASAP. Your combat is obviously designed for party battles and it is very obvious that things like targeting would be adding more depth to the battle if there were at least two characters. It's possible to create deep engaging combat with only one character, but you don't seem to really have a strong grasp on how to do so.
- This is unrelated, but the battles are very hard to "read" because there's no animation on the target when they take damage. I'm sure you plan to fix it, but at the moment it's making the battles look even more boring than they really are, because it's hard to tell that something happened at all.
Sorry if this sounded too much like a promotion. I've had more general discussions about this in other game development communities back when we were still proposing ideas and figuring out what direction we wanted to move forward. But those communities weren't specific to RPGs, hence why I wanted to find out what other RPG enthusiasts seek.
I agree with your initial criticisms about this type of system. If I could turn back time, I would probably instead try for a battle style that is more similar to the Secret of Mana series, where battles take place on the map. But we're way too far along to make such a drastic change.
I'm glad you like Feature 2. Its not much more difficult to implement than your common place status effect system. One of the things I found annoying with RPGs was dealing with status effects all the time, and having to use a different spell/item to cure each type of affliction. Instead, our items and skills are just a "cure all" type ability, with weaker cures only reducing the intensity by one degree for each affliction.
I share your concerns with feature 5. Its a little bit easier to see once you are in the game (provided you play in full screen) as the enemy is larger on your screen and easier to see. That spider is the smallest size we have for our enemies (64x64 pixels). We have to be somewhat conservative when we create the various damage frames, because we blend them together and it would look really weird if an enemy lost an arm or a leg in one frame, as you would see the limb gradually disappear. This is a rather easy feature to add though, and creating the additional frames once we have a finished enemy isn't too difficult for even a beginning artist like myself to do. The idea for this feature, by the way, is taken from Final Fantasy Mystic Quest, an often criticized RPG. In that game each enemy had three damage frames (I think) and the frames were transitioned instantly instead of gradually. So they were able to get away with much more dramatic changes in their enemies (lost limbs, changes in position/posture, etc). But the transitions weren't natural and smooth as we've been able to do.
I agree with your initial criticisms about this type of system. If I could turn back time, I would probably instead try for a battle style that is more similar to the Secret of Mana series, where battles take place on the map. But we're way too far along to make such a drastic change.
I'm glad you like Feature 2. Its not much more difficult to implement than your common place status effect system. One of the things I found annoying with RPGs was dealing with status effects all the time, and having to use a different spell/item to cure each type of affliction. Instead, our items and skills are just a "cure all" type ability, with weaker cures only reducing the intensity by one degree for each affliction.
I share your concerns with feature 5. Its a little bit easier to see once you are in the game (provided you play in full screen) as the enemy is larger on your screen and easier to see. That spider is the smallest size we have for our enemies (64x64 pixels). We have to be somewhat conservative when we create the various damage frames, because we blend them together and it would look really weird if an enemy lost an arm or a leg in one frame, as you would see the limb gradually disappear. This is a rather easy feature to add though, and creating the additional frames once we have a finished enemy isn't too difficult for even a beginning artist like myself to do. The idea for this feature, by the way, is taken from Final Fantasy Mystic Quest, an often criticized RPG. In that game each enemy had three damage frames (I think) and the frames were transitioned instantly instead of gradually. So they were able to get away with much more dramatic changes in their enemies (lost limbs, changes in position/posture, etc). But the transitions weren't natural and smooth as we've been able to do.
LockeZ, you wrote while I was typing my last reply so I didn't see it until after I posted. I agree 100% with every recommendation you wrote. That demo gameplay video I linked in the first post was to a release that was made a few years ago and was still unrefined and missing many of the features we have since implemented.
Yup, already planning to do more or less everything you mentioned here. We're still playing around with the balancing of battles to find the right combination of speed, timers, and damage dealt so that battles are challenging and interesting. The demo release was poorly balanced and we kind of rushed it out without spending too much effort refining it.
Absolutely. Right now enemies aren't intelligent at all as we haven't really invested any time into developing their AI. We'll get around to this, but probably not in our next release. Its still very much a work in progress, but I do want to invest some serious time and effort to make interesting AI for our enemies instead of having them randomly select a skill and target as they do now.
The full game (not the demo from the video) starts out with three party members. I agree that there should be very few instances in the game where there is only a single member to fight in battles, as the battle system just doesn't work very well for a single character.
And yes, the animation is pretty...well, non-existent. The reason for this was that we simply didn't have the resources at the time for it. Definitely something that will be improved.
author=LockeZ
- Slow down enemies so they get turns at about the same speed as the player, for most enemies. One obvious exception would be when fighting a single enemy while the player controls several characters.
- Increase enemy damage to compensate.
- Then, triple or quadruple the speed that the turn bar increases. This will make the time that the player spends waiting for turns be negligible, and when you combine it with the above two suggestions, it won't cause any problems with how fast enemies get their turns.
Yup, already planning to do more or less everything you mentioned here. We're still playing around with the balancing of battles to find the right combination of speed, timers, and damage dealt so that battles are challenging and interesting. The demo release was poorly balanced and we kind of rushed it out without spending too much effort refining it.
author=LockeZ
- Give every enemy at least one unique property that the player must respond to. Most enemies later in the game should have two or three properties. Make sure that properly responding is important - if the player can win battles while ignoring what the enemies are doing, then the system becomes boring again. The player should have a margin of error they're allowed of course, but that margin shouldn't be so big that everything but bosses is beatable while ignoring the gameplay.
- These properties don't have to be limited to elemental abilities and basic status ailments. Enemies can charge up an attack to use on the next round but you can stop the attack by stunning them before then. They can buff themselves or each-other. They can summon allies. They can heal, or prevent the player from healing. They can deal damage based on their remaining HP, or the player's. They can alternate between two attack modes. They can enrage when an ally dies, or after a certain number of turns. They can do thousands of other things.
Absolutely. Right now enemies aren't intelligent at all as we haven't really invested any time into developing their AI. We'll get around to this, but probably not in our next release. Its still very much a work in progress, but I do want to invest some serious time and effort to make interesting AI for our enemies instead of having them randomly select a skill and target as they do now.
author=LockeZ
- Get a second party member on the team ASAP. Your combat is obviously designed for party battles and it is very obvious that things like targeting would be adding more depth to the battle if there were at least two characters. It's possible to create deep engaging combat with only one character, but you don't seem to really have a strong grasp on how to do so.
- This is unrelated, but the battles are very hard to "read" because there's no animation on the target when they take damage. I'm sure you plan to fix it, but at the moment it's making the battles look even more boring than they really are, because it's hard to tell that something happened at all.
The full game (not the demo from the video) starts out with three party members. I agree that there should be very few instances in the game where there is only a single member to fight in battles, as the battle system just doesn't work very well for a single character.
And yes, the animation is pretty...well, non-existent. The reason for this was that we simply didn't have the resources at the time for it. Definitely something that will be improved.
Pages:
1















