A very common problem you’ll face in game balance is to convert a linear range of numbers (for example 53-284) to another range (let’s say 0-100), while keeping the same ratio. This is used a lot when normalizing values (i.e. bringing values from different sources to the same range), or when you want to find the percentage between a min & max value after a random roll.
At its most basic form both ranges start from 0. If you want to find the equivalent of value x (let’s call it x1) from range 0-a to range 0-b, then you use:
For example, if you want to find x proportional to 64 in a range from 0-50 in a range of 0-150 you would do:
However, it is also common that neither range starts from 0. In this case we need to use the more generic formula. Let’s say that you’re finding x1 from the range a1-b1 which would be proportional to x from the range a-b. The equation would be:
For example, let’s say that you want to transform the value 31 from the range 10-90 to the range 350-890. In this case the formula would be:
This is an old mathematical formula; but for all the equations above I used the fantastic Desmos Online Calculator.
Let’s imagine that we are working on a sports game that tracks real world player stats like FIFA. I actually worked on a similar mobile game called Fantasy Football Coach.
In this game we had to give real world football players a score based on how well they had performed last season. The score was a single number ranging from 50 to 100 [we chose 50, because they’re professional athletes after all]. The real problem however is that in American Football positions are very rigid, so we didn’t have common stats to compare them. For example, we knew the number of touchdowns a Running Back would have, but the best Linebacker in the world wouldn’t have any. While yards run is important for a Quarterback, they are meaningless for a Kicker. How could we make sure that all the players could be compared with each other?
Enter range conversion! Our first range was given by the design, 50-100. So for each position we chose the 3-5 most relevant stats (yards run, catches, tackles, etc..). We would then look at the previous season stats and find who was the top performer and the lowest performer for that specific stat. This would give us the min and max value per stat. As you can imagine, this varied wildly, with ‘yards run’ being in the high triple digits while ‘tackles’ topped in the doubles. However, that didn’t concern us. By using the above formula on each stat for each position, we could normalize them all to the 50 to 100 range. Then we would average them out per player and that would be their final score in the game.
- MDA FrameworkOne of the most widespread ways to analyze a game holistically.
- One PagerA critical part of pitching a game idea to the wider team.
- SWOT AnalysisAn easy framework for analyzing the competition.
- Bartle’s Player TypesOne of the oldest & most widely used player categorizations
- PersonasA technique to humanize the intended players of the game
- X-StatementThe first step in development after having the game idea.