I’ve been thinking about meta-games recently. No, not the metagame that I talked about earlier, but systems that produce sets of game rules—literally, software that procedurally generates entire games.
I’ve written posts abstracting the various parts of RPGs into neat definitions. The writing was dry and probably didn’t earn me much cred in blogging circles, but it needed to be done before I could even conceive of game rule generators for the RPG genre. Without some basic vocabulary we have difficulty even discussing simple abstract systems.
Instead of actually generating entire game systems from scratch, let’s try to solve an easier problem. How could we automate balancing of RPG combat mechanics? This requires algorithmically tweaking rules conceived by a designer—the designer gives a framework for abilities and the algorithm comes up with the exact numbers that should balance those abilities against one another to hopefully make all of them parts of viable strategies.
The processes used to self-balance combat mechanics probably can be modified and applied successfully to other aspects of the game, but being to abstract at this stage of discussion could lead us to severe language trouble as I fail to find feasible broad terms.
I will summarize two ideas I have for self-balancing combat systems in this post. In later posts, I will discuss each in significantly depth.
Zero-Sum Ability Balance
Assign utility values to each of the effects and costs that abilities can have(positive utilities for the effects and negative utilities for the costs). Pick out the effects each ability will have and make a weighted list of costs. The zero-sum ability balancer would go through and value the set of effects for an ability, then assign costs preferentially until the ability reaches a total utility of 0. If you value effects and costs properly, this will automatically balance the abilities in your game.
The primary difficulty is coming up with the proper valuations for different costs and effects. Genetic algorithms could be used to generate and cull valuations systems. The problem is highly multivariate, so writing an algorithm that attempts a direct solution process would be significantly trickier.
This method will work for both class- and skill-based systems.
Popularity-Based Ability Balance
Let players vote with their feet. If they think a certain ability is overpowered, let them choose the ability, but make that ability less powerful for everyone in the game world by some increment. The increment would be smaller for abilities that are staples for certain kinds of builds so that everyone using the level 1 firebolt won’t nerf it into being useless. Basically, The more people choose a power, the less powerful it is. Let the playerbase create characters and play the game in this way for a month (a shorter interval of time may work), then reset the base values for the effects on abilities and adjust the penalty-per-player. Run like this throughout the life of the game and watch it balance itself. If you have 10,000+ players, you have a reasonable chance of generating a balanced system—and that balanced system is actually self-adjusting when new patches come out!
If all players behave rationally and build characters based on information available about their abilities and popularity (the interface should provide some idea of how popular abilities are), this system would converge on balance faster than the zero-sum ability idea. This system would not counteract poor ability design in terms of putting useless or bugged effects onto expensive abilities, but it will balance the non-bugged abilities and it would make clear through the popularity numbers what abilities are bugged or need to be reworked. The game would need to make clear to the players that choosing the most popular ability is usually not the best idea—confusion in this area could lead to problems.
This approach probably wouldn’t work on a class-based system because it relies on the selection of individual abilities. If done at the class-level there’d be no way to isolate the abilities to buff or nerf because people don’t choose their class’ abilities, only the class itself.
These ideas are very experimental and very raw at the moment. I just wanted them to get some air and perhaps a few comments pointing out big holes that I missed.
Has anyone tried to implement a self-balancing system before?
If so, how was it done?
What ways can you think of to allow games to self-balance?