Jump to content
  • Advertisement
Sign in to follow this  
Ashaman73

Balancing in a procedural RPG

This topic is 2808 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Consider a rpg in which creatures are procedurally generated. Sure, there are pre-designed skills and traits, but you can't really predict how powerful this creature will be compared to the player (who could utitlize different skill trees etc.). The only thing you could do is to tell if the creature is good or bad in some special domain, but this is not really meaningful.

Lets assume that the best thing you could identify about a creature is that it is most probably too powerful(level 1 vs dragon => bad).

So, with this background, what would be a good approach to handle balancing in such a game ?

A. You don't need any balancing !
When you don't apply any balancing the player will have to find out how dangerous a creature is by himself. The problem with this approach is, that the reward for fighting a creature (i.e. quest/access to treasure) is not in relation to the difficulty of fighting the creature. A solution would be to track the "stress level" of reaching a certain goal and to adjust the reward.

B. The cheating creatures.
This is one way of adaptive gameplay. The creature will keep track of how powerful it is compared to the player. If it is too weak it will use more powerful abilities (healing, range attacks, magic), whereas if it is too powerful it will avoid powerful special abilities. This is some kind of cheating and could make the difficulty too smooth.

C. Adjust the frequency of encounters.
This is an other way of adaptive gameplay. Instead of adjusting the abilities of a creature, the game will adjust the frequency of encounters. More powerful creatures will spawn or regenerate less often, weak creatures will start respawning more often and in greater numbers.

Any comments ?

Share this post


Link to post
Share on other sites
Advertisement
I think here, a level system doesn't work for the player.

If you're going to have random encounters, the player should have the ability to deal with all of them to some degree.

A form change system, like FF13 would be good, allowing the player to be all 'classes' or have certain resistances/offensive attacks when they change.

This way when you run into an encounter things wouldn't be completely hopeless no matter what, just the player would need to learn the ins and outs of each monster species and area progressively.

Combat would be a lot more strategic and it would fit in with the random nature of encounter generation.

That's just my take on it though, I'm also a fan of random systems that allow you to encounter high level creatures at low levels.
But that kind of hardcore generation is also subject to the opposite effect, where the game becomes a complete cakewalk for some and a punishing exercise in patience for others.

Share this post


Link to post
Share on other sites
Some quick thoughts:

- Creatures could be placed by zones such that the zones have progressively tougher creatures as you travel away from the player's starting position. Or if you want zones more randomly placed, perhaps give some indication of a zone change by a change in terrain type. Then the player should at least be expecting different types of creatures coming up.

- Player that encounters bodies of adventurers that have stuff comperable to his own. Or perhaps bodies of creatures that he's already encountered and knows the toughness of. Or maybe there's something to be learned by examining the body of a creature that hasn't been encountered yet.

- Give the player a chance to observe the creature's behavior.

- Information from NPCs.

- Maybe some kind of message based on PC intuition ("I may be just starting out but it's just a small dragon, I can take 'em.")

Share this post


Link to post
Share on other sites
Balancing will be important for any approach that you take, as the extra randomness factor of procedural creatures has the potential to be extremely unbalanced no matter what you do.

I would take a couple of different tacks at once:

-You'll still have types of creatures, and it might be worth having bounds for different species of monster. Sure, a particular bear's strength may not be readily apparent, but a bear should never be more powerful than, say, a dragon. So while one bear may be more of a challenge than another, just seeing what the creature is should give the player some idea of whether or not it is going to be impossibly challenging.

-For specific quests and dungeons, you may want to use a restricted set of creatures. That way you can balance the reward for completion with the general level of challenge, even if you still procedurally generate creatures in that creature set.

-Consider the implications creatures of a given strength would have on the game world. If a player can encounter a roving apocalypse dragon 20 minutes out of town, it would seem odd for that town to still exist.

-Give some way for a player to estimate a creature's strength. Some adjustment to the monster's graphic (size, color, etc.) might suggest a more dangerous creature than another. Or perhaps a spell or ability that would give some pertinent information, although exactly what information this is would depend on how random you want the encounters to feel.

-Making running away from battles easier, so that an overmatched player won't automatically die because he or she was unlucky with the random encounter.

-Make saving easy to do frequently, at least outside of dungeons where the encounters have the greatest potential for randomness.

Share this post


Link to post
Share on other sites
I suppose an important question is, what sort of experience do you want the player to have? (I mean, what sort of game play do they go through not what experience points get collected). Figure out what game play you want and make the numbers fit that instead of making the gameplay fit the numbers that you think you want.

Share this post


Link to post
Share on other sites
Quote:

- Creatures could be placed by zones such that the zones have progressively tougher creatures as you travel away from the player's starting position. Or if you want zones more randomly placed, perhaps give some indication of a zone change by a change in terrain type. Then the player should at least be expecting different types of creatures coming up.

- Give the player a chance to observe the creature's behavior.

These are good starting points.

Quote:

- Player that encounters bodies of adventurers that have stuff comperable to his own. Or perhaps bodies of creatures that he's already encountered and knows the toughness of. Or maybe there's something to be learned by examining the body of a creature that hasn't been encountered yet.

- Information from NPCs.

- Maybe some kind of message based on PC intuition ("I may be just starting out but it's just a small dragon, I can take 'em.")

This will not work. The game don't know how powerful a creature will be. Most games "design" creature and try to balance them by testing etc. In a game where creatures are generated on the fly, you don't really know how powerful it will be (think of a spore like RPG).
Sure there will be certain parameters to tweak the difficulty, but eventually you will not be sure if this little,weak critter over there has some potential and deadly skill cocktail.

Quote:

Balancing will be important for any approach that you take, as the extra randomness factor of procedural creatures has the potential to be extremely unbalanced no matter what you do.

I would like to try some experiemental gameplay. The question is not how to fix the balancing in a game, but to how to handle balacing when using procedural generated creatures.

Quote:

-You'll still have types of creatures, and it might be worth having bounds for different species of monster. Sure, a particular bear's strength may not be readily apparent, but a bear should never be more powerful than, say, a dragon. So while one bear may be more of a challenge than another, just seeing what the creature is should give the player some idea of whether or not it is going to be impossibly challenging.

-For specific quests and dungeons, you may want to use a restricted set of creatures. That way you can balance the reward for completion with the general level of challenge, even if you still procedurally generate creatures in that creature set.

Some kind of classification and avaiable traits and skills for each creature type would help.

Quote:

-Give some way for a player to estimate a creature's strength. Some adjustment to the monster's graphic (size, color, etc.) might suggest a more dangerous creature than another. Or perhaps a spell or ability that would give some pertinent information, although exactly what information this is would depend on how random you want the encounters to feel.

Yes, I already thought about mapping some creature features to visual attributes. I.e. a fire spider will get a red glowing skin, health can be mapped to skinny/"fat" , strength to size etc. .

Quote:

-Making running away from battles easier, so that an overmatched player won't automatically die because he or she was unlucky with the random encounter.

One-hit and omg-what-happens creatures are a no go. Every character will receive skills to escape from a battle.

Quote:

-Make saving easy to do frequently, at least outside of dungeons where the encounters have the greatest potential for randomness.

Save/loading will not be supported. You will respawn (MMORPG like).

Quote:

I suppose an important question is, what sort of experience do you want the player to have?

The game is dungeon based. Every dungeon should introduce a new kind of challange. When you encounter a spider which looks different than the one you already know, you should first try to approach carefully and observe it. You need to
adjust your skills (think of guild wars "skill builds") and strategies. Maybe there're creatures you can't really beat and should be avoided, in this case you should use other ways to reach your goal.

Share this post


Link to post
Share on other sites
It will depend on the procedure that you are using to generate the content.

If the procedure is a static one (that is it is it doesn't change while the game is played), then you will have to predefine monster difficulties and have the algorithm base the locations of the monsters off of that.

However, if the procedure is a dynamic one (that it it changes as the game is played), then you can use statistics from the game world to reposition the monsters relative to player skill.

However, with either way you can use a kind of "simulation" to define monster locations. you can do this by having monsters fight over territory.

If you have territory near settlements as poor monster territory (mabe the monster wants to avoid being near potential threats), then when each monster type fights, the loser is moved closer to human settlements.

Ok, imagine the world as a grid of territories. Each grid cell has a rating of value to the monsters. This won't necesarily effect the power of a monster, it is just a measure of desireability for the monster territory.

The grid cells are supposed to be a semi-abstract representation of where monster are located and you would expect some overlap in monster instances and even some monsters to be in locations no where near their grid cell. It is more a representation of the concentration of the monster type in question.

Each cycle of the world (if this is a static one, this can be done before the game starts, of if it is a dynaimc system, then this can be done at regular intervals or be triggered by certain events) neibouring monsteres (that is ones with adjacent grid cells) can enter into fights, with the attacker being the one trying to move from a less desierable grid cell into the more desierable grid cell.

The winner takes (or retains) control over the more valueable grid cell, and the looser is forced into the lower value grid cell.

With a static system, you would randomly place monsters and then run through several cycles to cause the monsters to move around. With a dynamic system you can get really interesting influences as player actions could trigger an attempted move by a monster, and also could cause an effective weakening of a monster (which might make a new monster be able to move into a cell it might not have previously been able to conquer).

Also, with a dynamic system, the actions of the monsters could be represented in game. When the monsters are in conflict, you could have various members of the monsters actually walk around and fight each other, and/or, when one monster group defeats another, you could have them actually move from one location to another.

If you want to get even more complex (mainly just ot show how far you could take the simulation aspect), you could have alliances between monsters of similar types (so two goblin groups might ally to take over better locations for each other and they add their power to the other). Also, different monsters could have different ways of valueing territories so that some monsters will find certain grid cells more desierable than others (and if two groups value each other's teritory as being better than their current one, they can swap without conflict).

Share this post


Link to post
Share on other sites
Quote:
Original post by Ashaman73
Quote:

- Player that encounters bodies of adventurers that have stuff comperable to his own. Or perhaps bodies of creatures that he's already encountered and knows the toughness of. Or maybe there's something to be learned by examining the body of a creature that hasn't been encountered yet.

- Information from NPCs.

This will not work. The game don't know how powerful a creature will be. Most games "design" creature and try to balance them by testing etc. In a game where creatures are generated on the fly, you don't really know how powerful it will be (think of a spore like RPG).
Sure there will be certain parameters to tweak the difficulty, but eventually you will not be sure if this little,weak critter over there has some potential and deadly skill cocktail.


Then find out. During world generation, simulate a few battles with the creature against opponents of known stregth, abilities, and resources. It doesn't have to account for strategies that a player might come up with, it just has to give you some sort of benchmark to work out approximate dangerousness. If it's wrong say 5 or 10% of the time (or whatever), so much the better for throwing something unexpected at the player. Also maybe those simulated battles can be worked in as game content somehow.

Edit:
(Just noticed Edtharan suggested to go the simulation route first).

Share this post


Link to post
Share on other sites
When designing your procedural generation system, include a 'points' system for creature powers.

Kind of like Challenge Ratings used in some Pen and Paper games, you base the power of an encounter on a rough rating of all included opponents, and this gives you a general idea of how powerful something is.

Generate them with predefined 'powers': Each HP 'power' could be 1 point, each strength 'power' could be 2 points, ability to breath fire could be 10 points, etc.

You add up all the creature's points, and establish a rough idea of where they are in a power scale.

Share this post


Link to post
Share on other sites
Quote:
Original post by Ashaman73
Consider a rpg in which creatures are procedurally generated. Sure, there are pre-designed skills and traits, but you can't really predict how powerful this creature will be compared to the player (who could utitlize different skill trees etc.).

Of course you can. You have all the player's data, you have all the creature's data, and you know exactly how your combat system works because you wrote it.

If you can't predict an encounter's resolution with a very significant degree of accuracy from this information, then you don't yet understand your game mechanics well enough.

Others have suggested using simulation to determine the relative strengths, which is reasonable enough, but really I think you should strive to better understand the balance of your game.

For example, you mention a player "could utilize different skill trees". You should know which skills are relevant to combat, and should know exactly how relevant they are - for example, how they modify your damage-per-second or that of the opponent. With the relevant DPS scores you can predict the outcome.

But... assuming you don't want to do this, I'd just say the best approach is to ensure that a player can escape a dangerous situation. I think players are happy to hit encounters that they can't win, as long as they can run away, train up, and go back later to finish the job.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!