Improving RPG menu-based battle systems

Started by
22 comments, last by Orymus 12 years, 9 months ago
I've been developing a 2D RPG (link) for a number of years with 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. But before I begin with my ideas, first, lets consider what I believe are the major downside to such battle systems. Of course the following are just my own opinion, but I think the points to be made are valid ones.


Major disadvantages of menu-based 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 meter or equivalent to accumulate 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.


So the two main goals here are to make menu-driven battles more strategic and more engaging for the player (ie, we don't want the player to be inactive for significant amounts of time). I want to focus on the later goal here. We've already made a number of designs to take care of the first goal. Below is a video of my game (an older demo release) in action. You can see that there is a universal stamina bar that all characters and enemies in the battle traverse throughout their several states: idle, selection (of an action), warm-up, action, cool-down, and then repeat.

http://www.youtube.c...h?v=Aok94zFs9Jc

You can see that we're currently suffering from player inaction during all but the action selection phases. Otherwise, the player is just sitting around and waiting for the next character to be ready to select an action. Even worse, the battle is paused during action selection so we suffer from "stop-and-go" syndrome.



Since the beginning, my team has had a number of goals for this game that are important to this discussion, as the ideas I am about to put forward are intended to stay true to these goals.
  • 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.


Now, finally I present my list of design ideas for improving this gameplay.

Idea #1: Do not pause the battle during action selection.

This is nothing novel, as many games have allowed the player to choose between "active" and "wait" modes. I don't want to allow that choice at all though, because there is obviously a strong advantage to choosing "wait" (your actions are selected instantly rather than consuming precious seconds).


Idea #2: Allow the player to pre-select actions for their characters before those characters are ready to execute their next command.
While the characters are in their idle state, the player can select actions for their characters. 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).

Expanding upon this we may consider allowing players to build up an action queue for their characters, selecting multiple actions to take. I don't like this approach, however, so I'm not really considering it.


Idea #3: Allow the player to change pre-selected actions for their characters

This goes along with idea #2. If the player selects an action for a character during the idle state and something happens which makes the player wish to change the action for the character (such as an ally was badly hurt and needs healing immediately), then we would allow the player to do so (but only if the character is still in the idle state, the warm-up state is too late to cancel). This would also apply toward changing the target. With this idea, we have to consider whether there would be any penalty associated with changing an action/target. We could completely reset the stamina bar back to zero and force the character to go through the entire idle state again, we could apply a less severe penalty such as a 20%-50% reduction of the current idle time that has been met, or there could be no penalty at all. I think I'd rather see a small penalty, because this will cause the player to consider whether or not they want to select an action for their characters as soon as they can (at the 0-time mark in the idle state). But I'm undecided here.


Idea #4: Populate a small action + target hot-key menu to allow the player to quickly execute actions

In our menus, we currently sort actions by category (Attack, Defend, Support, Item) and we have cursor memory implemented as well (the menu remembers the previously selected action and target). But I've been toying with the idea of having a small number (four) of "hotkey" actions and targets for characters. This idea came to me because I realized that you often only want to change between a small number of actions and targets in battle. For instance, one character might be a designated healer, and when there is no healing needed you would instead want that character to "meditate" to regain lost magic points (called skill points in the case of my game), or to attack an enemy if no healing and no SP regeneration is needed. Three actions, and three targets that the player cycles between for this character. Going through the entire action selection menu and target selection menus each time they want to switch between one of these settings is kind of a pain in the ass, so we would have this hot-key command card available for the player to quickly switch between these actions and targets. It could either be auto-generated by the game (ie saves last action + target combo) or we could allow the player to configure this, both in and out of battle.

I also had thought that maybe we could limit the character's actions to what they could fit in the command card to create an additional depth of strategy for the player, as they would need to select which skills they brought into battle (and couldn't use all the skills they learned). For our purposes though I think this would be a bad idea, because the strategic benefit is outweighed by the negative cost of additional micromanagement needed by the player, plus it could be seen as an annoying limitation for many people (not to mention it doesn't have much of a practical explanation for why skills are limited).


Idea #5: Allow multiple actors (characters or enemies) to execute actions simultaneously

This is another idea to reduce the amount of time that the player is forced to sit and watch. Right now only one actor can execute an action at any time (in this sense the game is turn-based). But what if this was not the case, and we could have multiple characters and enemies all engaging each other at once? Perhaps we can even add a strategic element to this, and say that if two opposing actors engage each other at the same time, the one who strikes first will cancel the other's action completely.

It sounds like a promising idea I think if its implemented well, but I have a couple major concerns with it. First, it could cause battles to become very chaotic with swords and spells flying everywhere (but shouldn't battles be chaotic anyway?). Second, it may be difficult to implement both from a programming and an artistic perspective. And there may be other issues that I haven't thought of yet.




Yeah, so that's my first batch of ideas that I'd like your feedback on. Which ones do you like? Which ones do you think would go well in my game? (Maybe you should go play it? :wink:). Some of these ideas might not mix well with each other, and I'm also trying to exercise caution about adding too many concepts to the design. There are a lot of cool feature that an RPG can have (customizable equipment, relics with special abilities, etc), but just because all of these ideas are great on their own does not mean that you should then throw them all into a single game and expect things to work out. So its really about finding the best combination of ideas to help us meet our ultimate goal here. Thanks for reading, I know this was a long post. :)

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

Advertisement
Aha, this one is very close to my heart as I'm working on an RPG and have identified very similar problems! To be honest I don't want to share my own personal solutions, but I'll happily discuss your ideas and maybe throw some other ones around. :)

First of all I don't think 'inaction' time is necessarily a bad thing. By not allowing the action to pause at any point, you risk reducing the strategy the player can employ because they don't have time to think and/or react to changes in the battle conditions. For example, they may be planning to cast a fire spell but all of a sudden an enemy makes his move and makes himself immune to magical damage. At this point the player has to make a snap decision which can lead to panicking and just mashing any old action. Allowing a pause in the action gives the player thinking time, and so they can employ more strategy.

Assuming you want to keep the battle moving swiftly, which seems to be the case as you mention chaotic battles and keeping the player engaged through plenty of action, I think one of the best things you could do would be the ability to queue actions, as per your idea 2. So if you select attack, and then queue a fire spell, you will cast the fire spell as soon as you have enough stamina. I would also suggest allowing the player to select their attack first, and then executing it when they have enough stamina. This will allow you to make different things cost different amounts of stamina. So if you selected a basic attack it would execute when the stamina bar is half full, but if you select a powerful attack it will execute when the bar is completely full.

A system like that, where you select the skills first which are auto-executed when enough stamina has been gained, with the ability to queue moves, will mean that the player is active as the stamina bar is being filled in order to choose and select their next skill. Then all you have to do in order to keep the battle flowing is balance the speed at which the stamina bar fills up. I agree with you that allowing them to queue multiple commands would be a bad thing, as that would lead to players spamming single commands and then sitting back for 5 turns as they are all executed.

[color=#1C2837][size=2]Idea #3: Allow the player to change pre-selected actions for their characters[/quote]

I think this is a must. As you say, a party member could be badly hurt and you need to take action. The trouble with sudden changes in circumstances is that suddenly you would have to remove your selected actions from the queue and set up new ones. Even if you set common actions/targets to hotkeys as you put forward, this will take time and in a battle that never stops runs the risk of getting other party members killed. To fix this, I would suggest mapping a key that pauses the battle and allows a player to change the action currently queued or being charged, depending on how exactly your system ends up working. So that if there is an unforseen change in circumstances, they can pause the battle, think about and select their healing commands without losing any time. However I would reset the stamina bar to 0 as their should be some minor penalty for doing so, in order to encourage players to plan ahead they best they can.

Right, hope I worded all that OK! :)
I'm working on an RPG and have identified very similar problems![/quote]

Link to your project please. :)



First of all I don't think 'inaction' time is necessarily a bad thing. By not allowing the action to pause at any point, you risk reducing the strategy the player can employ because they don't have time to think and/or react to changes in the battle conditions.
[/quote]

I completely agree. Its a matter of personal preference. Some people like to approach RPG battles as if its a chess match of sorts. I'd prefer to have our strategy be more like what is needed in a multiplayer RTS match, where you not only need to have good decisions but be quick at making them and having a minimal response time. I'm really sick of standard menu-based battles, but I didn't want to make an action RPG either. There will be a little panicking perhaps (but that's prevalent in RTS as well, and no one complains about it there).


I would also suggest allowing the player to select their attack first, and then executing it when they have enough stamina. This will allow you to make different things cost different amounts of stamina. So if you selected a basic attack it would execute when the stamina bar is half full, but if you select a powerful attack it will execute when the bar is completely full.
[/quote]

Actually all of our skills have individual warm-up and cool-down periods, which serve the same purpose (actions cost different amounts of stamina). So this particular idea, while not a bad one, probably wouldn't work with our system since that angle is already covered. But you did make me think of something though. Perhaps the player should be given the option, upon selecting an action, to indicate that the action shouldn't be executed until the player explicitly commands to (ie, the action doesn't auto-execute once stamina requirements are met). This can really make timing an important factor in putting together a sound battle plan. For example, if you know that a big attack is coming that is going to do a lot of damage, you'll want your characters to cast protective spells just before the big attack, or healing spells just after. But if all the characters are on auto-execute, then you'll either 1) miss the timing, which could cost you the battle, or 2) you'd be forced to not enter an action for your character (so that they don't execute anything) and then when you're ready be forced to scramble and select the appropriate action.

I guess a similar effect is achieved by just not entering an action for the character (the character won't execute an action if none is selected), but I'd rather still allow them to pre-select their action so that they can manually execute it at just the right time.


Even if you set common actions/targets to hotkeys as you put forward, this will take time and in a battle that never stops runs the risk of getting other party members killed. To fix this, I would suggest mapping a key that pauses the battle and allows a player to change the action currently queued or being charged, depending on how exactly your system ends up working. So that if there is an unforeseen change in circumstances, they can pause the battle, think about and select their healing commands without losing any time. However I would reset the stamina bar to 0 as their should be some minor penalty for doing so, in order to encourage players to plan ahead they best they can.
[/quote]

That's certainly an idea worthy of consideration. I agree that allowing the player to pause the battle and change out commands needs to have some sort of penalty to it (otherwise we're just back to the original problem). Either that, or the number of emergency pauses needs to be limited, so the player can't abuse them and has to be conservative in their use (becomes a part of the strategy).

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

Giving input thru mouse and keyboard is slowish so it might be cool if it was a non stop matrix style fight :P You could actually attack at the exact moment when the enemy has a hole in his defense. Though that wouldnt work in many cases.

o3o


Giving input thru mouse and keyboard is slowish so it might be cool if it was a non stop matrix style fight :P You could actually attack at the exact moment when the enemy has a hole in his defense. Though that wouldnt work in many cases.


Uhh, no its not? Professional RTS players average 200-300 actions per minute in competitive matches.

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

[color="#1C2837"]Link to your project please. :)[/quote]


Not much to link to I'm afraid as I don't put much online. Most of it is just in a shared folder between the team! But there's a little stuff on my blog here: Link.


[color="#1C2837"]But you did make me think of something though. Perhaps the player should be given the option, upon selecting an action, to indicate that the action shouldn't be executed until the player explicitly commands to (ie, the action doesn't auto-execute once stamina requirements are met). This can really make timing an important factor in putting together a sound battle plan. For example, if you know that a big attack is coming that is going to do a lot of damage, you'll want your characters to cast protective spells just before the big attack, or healing spells just after.[/quote]

That sounds good, although in a fast paced battle system like this you'll want to be very careful how you balance that. Asking the player to micromanage the timing of multiple party members might be a bit much, but hopefully any problems you find along that route will be something a bit of playtesting and tweaking will fix.

[color="#1C2837"]I guess a similar effect is achieved by just not entering an action for the character (the character won't execute an action if none is selected), but I'd rather still allow them to pre-select their action so that they can manually execute it at just the right time.[/quote]

How about an 'override' command? So you can set a second command in 'reserve', if you will, that can be called for one or all characters at a single button press. This could allow players to plan their abilities in preparation for the big attack in advance, but not have to concern themselves with navigating menus at breakneck speed in order to execute everything in time. So let's say you had three characters, one of which would cast a massive spell, and the others would cast temporary buffs just before the massive attack was unleashed. With character 1, you set the massive spell charging up, or however you work it. You continue attacking the enemy normally with characters 2 and 3, but between attacks you find time to set their 'override' commands to buffs aimed at character 1.

You then continue entering commands normally with characters 2 and 3 until the big attack is almost ready to be cast, then you hit your 'override command' hotkey and 2 and 3 stop what they're doing and cast their buff spells. And hey presto, you've pulled off your complex move that you planned a while ago in advance, without sacrificing the moment to moment routine of the combat.

[color="#1C2837"]That's certainly an idea worthy of consideration. I agree that allowing the player to pause the battle and change out commands needs to have some sort of penalty to it (otherwise we're just back to the original problem). Either that, or the number of emergency pauses needs to be limited, so the player can't abuse them and has to be conservative in their use (becomes a part of the strategy).[/quote]

I think the former would be the better way to go in this scenario. The trouble I find with limited use things is that it's very hard to resist the urge to hoard them. Final Fantasy IX had this problem with Ethers. They were very useful items in battle, but somewhat rare. So I always ended up saving them for the tough battles with the fear that if I used them frivolously I would not have them when I needed them. The result was I ended up not using them enough, struggled through the game more than I should and finished the final boss with a stock of about 60!! I think limiting the use of these 'thinking time' pauses might hit similar issues, especially on very long and difficult fights. Although having said that it might just be another balance issue that wont be a problem after a bit of testing :)
Yeah, to pull this system off well we're really going to have to spend a lot of effort getting the timing just right. If its too fast, players will get frustrated and won't be able to keep up with the action fast enough. If its too slow, we're back to the same problem of a game with long periods of inactivity. Another thing we must get correct to make this a success is the user interface. It needs to be simple to understand and easy to use, since the player isn't going to need to use it quickly and efficiently. Fortunately, the early battles of the game (which will be much easier than the rest) will give the player time to get used to using this interface before they start fighting the more difficult battles ahead. I've only given prelimary thought to this interface since these ideas are, as of now, just ideas and it would be premature to design the interface for concepts that may not even be used.





How about an 'override' command? So you can set a second command in 'reserve', if you will, that can be called for one or all characters at a single button press. This could allow players to plan their abilities in preparation for the big attack in advance, but not have to concern themselves with navigating menus at breakneck speed in order to execute everything in time. So let's say you had three characters, one of which would cast a massive spell, and the others would cast temporary buffs just before the massive attack was unleashed. With character 1, you set the massive spell charging up, or however you work it. You continue attacking the enemy normally with characters 2 and 3, but between attacks you find time to set their 'override' commands to buffs aimed at character 1.
[/quote]

Hmm, can't say I'm a fan of this one. I don't see the player needing to "override" commands very often, and I think being able to specify a command plus an override command may just be too cumbersome for the player. I can't imagine being able to implement this very well and I think that many players may just choose not to use it at all. But who knows.


I think the former would be the better way to go in this scenario. The trouble I find with limited use things is that it's very hard to resist the urge to hoard them. Final Fantasy IX had this problem with Ethers. They were very useful items in battle, but somewhat rare. So I always ended up saving them for the tough battles with the fear that if I used them frivolously I would not have them when I needed them. The result was I ended up not using them enough, struggled through the game more than I should and finished the final boss with a stock of about 60!! I think limiting the use of these 'thinking time' pauses might hit similar issues, especially on very long and difficult fights. Although having said that it might just be another balance issue that wont be a problem after a bit of testing :)
[/quote]


Heh, we play exactly the same way. I always find myself with a large number of [insert rare and extremely useful item here] at the end of most RPGs. I don't think its as much of a concern here though because the restriction would be done on a per-battle basis, not one where we say "you have 10 battle pauses available to you thoroughout the game, use them wisely". For instance, the player could be given one pause allowance at the beginning of each battle, and maybe a second one every 5 minutes or so for those longer boss fights. But I do agree the former may be better, simply because then we'd have to convey to the player how many pause allowances they have available, which would be more clutter to our battle GUI that we don't really need.

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

I think you're trying to fix the wrong problem. You said all the player does is press the Attack button and then wait. The problem is not the waiting period, but the lack of meaningful choices. Finding ways to speed up gameplay will work for as long as the player is required to input the Attack command. When he needs to cast a spell and have to go through sub-menus, he will curse at the real-time battle system. This will only reinforce the "Attack forever" playstyle because people are lazy and are generally not looking for twitch gameplay in an RPG. If all you want is to speed up gameplay, then look at Final Fantasy X. They had a similar time system, except time jumped to the next character and waited for a command. You could mash the attack button and be done with fights rapidly or take your time for tougher battles.

A solution here would be to create higher level gameplay mechanisms which increase the number of meaningful choices the player is given each turn. There are a lot of ways to do it and this is what will differentiate your combat system from other generic RPGs. For example, Final Fantasy X had character switching in-battle. Lost Odyssey had the "wall" mechanism where the back row was protected until the front row took enough damage. Chrono Trigger had combo attacks between characters. A good higher level mechanism is simple enough to be understood quickly by the player, but has enough complexity to be used in multiple ways to create depth.
Developer for Novus Dawn : a [s]Flash[/s] Unity Isometric Tactical RPG - Forums - Facebook - DevLog
I don't think pausing is bad. I actually also use it often in action RPGs where some kind of pause command is implemented. But we are probably very different players, I don't like RTS at all for example. As Tiblanc said, I think you are trying to solve the wrong problem. The game pauses help the player think and decide the best strategy to follow. In my opinion, it become boring only if there is no depth in the game and there is nothing to decide in these pauses. Let the player do more meaningful and strategic decisions. After all, if the player really want action, then he wouldn't start playing a menu based RPG in my opinion, but an action game.
@Tiblanc

I absolutely agree that its a problem if the player doesn't have meaningful choices. But that problem is due to the lack of strategy that I mentioned, not due to the lack of inaction. We've already taken actions to fix this in our design, and yes for many players that itself might be enough to satisfy them. Some people certainly will not like being continually active in the battle and would prefer the traditional "chess" style approach, where you have unlimited time to choose your actions. I think your statement that everyone looking to play an RPG is going to want to play a lazy style is a fallacy. I certainly don't enjoy playing that way, and I would imagine I'm not alone. I do think that people will be frustrated with going through menus in a real-time system, that's one of the reasons why I proposed that command hotkey idea.

Its funny that you mention Final Fantasy X, because we were actually talking about its battle system on IRC last night. Its certainly an option to consider, thought I'd prefer sticking with a real-time system versus a strictly turn-based one myself.

@apatriarca

Yes, game pauses help the player think and decide the best strategy. But I think it adds a lot of enjoyment and challenge to the game if you have to make your decisions quickly, rather than being granted unlimited time. I don't like the suggestion that "games of genre X play like Y, and you shouldn't change that". As independent video game designers, we have the opportunity to really experiment and to take risks to see if we can produce something fun and unique, rather than just the same old tired formula with a few changes.


I appreciate the comments both of you. Its nice to hear some dissenting opinions about this. :)

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

This topic is closed to new replies.

Advertisement