Gamasutra on Making RPG Magic
Gamasutra on Making RPG Magic
Editorial - posted by Crooked Bee on Thu 18 April 2013, 18:19:35
Tags: Alex Pantaleev; RPG DesignBy using computational evolution, one designer by the name of Alex Pantaleev created a game where spells and abilities evolved based on how players used them. In this blog post at Gamasutra, entitled "Making Magic (Spells)", Michael Cook discusses Alex's 2012 paper, In Search of Patterns: Disrupting RPG Classes through Procedural Content Generation. Have an excerpt:
Read the post in full here.
Thanks wesmo!
Instead of picking a ready-made player class with its own skill tree, players begin by choosing abilities for each character from a list generated by the game. Each ability is defined by a few pieces of information - a negative effect (the cost of the ability) and a positive effect (the benefit). For instance, a magic spell might lower an enemy's health points while reducing an ally's magic points. This makes abilities very easy to represent and generate through code - you just need two statistics to target (like health and magic points) and two numbers to add or subtract from them. Abilities also have information like a duration (the number of turns they affect things for) and a cooldown (the number of turns you have to wait before using it again).
Of course, if the abilities were just randomly generated forever this wouldn't be much use. Instead, Alex's system tries to improve the abilities over time by using computational evolution. Like biological evolution, computational evolution is about combining good examples of something in the hope of making even better examples (in the same way that fit animals survive to reproduce and make fitter children). Computational evolution works in much the same way - if you're interested in reading more (and like baking analogies) I wrote a quick explanation of how computational evolution works in this post here.
Recombining can be a tricky thing to define when you're making an evolutionary system, but it's easily experimented with over time. Maybe initially you create a child that takes the benefit from one ability and the cost from the other (like the illustrated example above). Or maybe you vary the values a bit. Maybe you swap the statistics over. Different methods will have different results - Alex uses a method where any number of elements (statistics or values) are chosen from one of two parent abilities, and included in their children.
Just like evolution in the real world, Alex's RPG abilities need a way of being sorted so only the fittest can reproduce. What do 'fit' abilities look like? His solution is elegant and simple - let the player decide. At the end of each battle, the abilities that were used the most by players are the ones that get chosen to recombine into the next set of abilities for players to choose from. The player might choose some, all or none of this new set - whatever happens, the process continues into the next battle.
Results
So, what do you think? Could such a simple system - giving a player random abilities and slowly mixing together the ones they like best - produce cool new ideas for RPGs? My favourite thing about this system is that it absolutely did, and I want to go over some of the interesting ideas that came out of this (very preliminary) experiment.
Remember that each ability has a cooldown and a duration of effect? In one game, a player evolved a set of abilities that had durations slightly longer than their cooldowns. These abilities were often not individually very powerful, because Alex's generation system tries to avoid generating abilities that have a high benefit and a low cost. Because they could be stacked multiple times, however, they could be used to create huge damage in very long battles.
Another example had a player evolve highly damaging, long-duration abilities that also hugely damaged the person casting them. This meant that some party members could sacrifice themselves to inflict large amounts of damage on the enemy team. This is a really unusual ability - the only example that springs to mind is the weird Goblin Techies character in DOTA, whose ultimate abilities kills the player and deals huge damage around them.
Other interesting patterns emerged from unforeseen uses of game mechanics. If a player's magic points dropped to zero, any active spells they had cast immediately vanished. This led to abilities that attacked magic points and magic point generation as a way of stopping suicidal or long-term strategies like the ones above. It's interesting to see such variety coming from such a simple system - included alongside these more unusual examples were also the expected range of healing, damage and buff/debuff spells.
So What?
Where might this research apply to the games industry today? Even just considering its core idea - that there are more RPG classes out there than just Warrior, Mage and Thief - I think there's plenty to be excited about here. Ideas like this could be used in the development of a game - to explore new ideas that you might not have thought of yourself - or even built in as procedural generators to games for players to explore themselves.
Of course, if the abilities were just randomly generated forever this wouldn't be much use. Instead, Alex's system tries to improve the abilities over time by using computational evolution. Like biological evolution, computational evolution is about combining good examples of something in the hope of making even better examples (in the same way that fit animals survive to reproduce and make fitter children). Computational evolution works in much the same way - if you're interested in reading more (and like baking analogies) I wrote a quick explanation of how computational evolution works in this post here.
Recombining can be a tricky thing to define when you're making an evolutionary system, but it's easily experimented with over time. Maybe initially you create a child that takes the benefit from one ability and the cost from the other (like the illustrated example above). Or maybe you vary the values a bit. Maybe you swap the statistics over. Different methods will have different results - Alex uses a method where any number of elements (statistics or values) are chosen from one of two parent abilities, and included in their children.
Just like evolution in the real world, Alex's RPG abilities need a way of being sorted so only the fittest can reproduce. What do 'fit' abilities look like? His solution is elegant and simple - let the player decide. At the end of each battle, the abilities that were used the most by players are the ones that get chosen to recombine into the next set of abilities for players to choose from. The player might choose some, all or none of this new set - whatever happens, the process continues into the next battle.
Results
So, what do you think? Could such a simple system - giving a player random abilities and slowly mixing together the ones they like best - produce cool new ideas for RPGs? My favourite thing about this system is that it absolutely did, and I want to go over some of the interesting ideas that came out of this (very preliminary) experiment.
Remember that each ability has a cooldown and a duration of effect? In one game, a player evolved a set of abilities that had durations slightly longer than their cooldowns. These abilities were often not individually very powerful, because Alex's generation system tries to avoid generating abilities that have a high benefit and a low cost. Because they could be stacked multiple times, however, they could be used to create huge damage in very long battles.
Another example had a player evolve highly damaging, long-duration abilities that also hugely damaged the person casting them. This meant that some party members could sacrifice themselves to inflict large amounts of damage on the enemy team. This is a really unusual ability - the only example that springs to mind is the weird Goblin Techies character in DOTA, whose ultimate abilities kills the player and deals huge damage around them.
Other interesting patterns emerged from unforeseen uses of game mechanics. If a player's magic points dropped to zero, any active spells they had cast immediately vanished. This led to abilities that attacked magic points and magic point generation as a way of stopping suicidal or long-term strategies like the ones above. It's interesting to see such variety coming from such a simple system - included alongside these more unusual examples were also the expected range of healing, damage and buff/debuff spells.
So What?
Where might this research apply to the games industry today? Even just considering its core idea - that there are more RPG classes out there than just Warrior, Mage and Thief - I think there's plenty to be excited about here. Ideas like this could be used in the development of a game - to explore new ideas that you might not have thought of yourself - or even built in as procedural generators to games for players to explore themselves.
Read the post in full here.
Thanks wesmo!