Thursday, March 13, 2014

Game Design: Creating a System Formula (Part I)

In Part I of this article, game designer Bud Leiser explains how to use the Fibonacci series in system design.

In my last article, You are a Game Designer, I dropped a piece of information saying people should learn about the Fibonacci series, but I didn’t reveal it or why it mattered. The idea of course is that people who didn’t know it already would go look it up on their own, that is, if they were serious about game design.

So for those not familiar with it the series is basically:

0 1 1 2 3 5 8 13 21 and so on.

Or more importantly (to us) the next integer is the sum of the previous 2 integers.

But why is this important to game designers? Because it’s such a useful and simple way to create a progressive cost system.

Let's Create Game System Together

For example let’s say you wanted to make an RPG and what you really want is a cost curve so the player can’t buy his weapons too quickly. You could price each weapon individually, one a time, and finish your game sometime never. Or you could create a formula that prices each weapon for you. Fibonacci is great because it scales up very quickly, creating nice beautiful gaps between costs. So let’s not start with 1 1 2, because…well that’s silly and unnecessary. So let’s start with 50 and 100.

Sword A 50
Sword B 100
Sword C 150
Sword D 250
Sword E 400
Sword F 650
Sword G 1050
Sword H 1700
Sword I 2750
Sword J 4450
Sword K 7200
Sword L 11650
Sword M 18850
Sword N 30500
Sword O 49350
Sword P 79850  

By the way this formula is really simple to setup in Excel =sum(C1+C2) then extend downwards will automatically populate C2+C3, C3+C4 and so on.

Notice how quickly the price begins to ramp up? This is really cool because were talking about 1 type of weapon, the sword. So we probably don’t want 2 swords to be of similar cost, we want them to have large power gaps and therefore we want large price gaps. What this doesn’t tell us at all is how quickly the player will buy them. For that we can create a new formula based on fighting monsters at his weapon level. So for example say the player Starts with no sword and kills 10 monsters before he can buy Sword A. Now he has Sword A and can kill Monster A for 10 gold a piece. This means we have a flat progression system. Every time you kill 10 of a similar level monster you should be able to afford the next sword, which leads to the next monster which leads to a new monster that rewards you with 0.10 cost of the next sword.

Whew a lot of words to explain something so lame and boring right? So let’s say we don’t want that flat progression, what we really want is for the player to grind a little more each time. So what happens if we try Fibonacci code *0.8, this means that as each reward value grows it also decreases by a substantial amount. Let’s see what that looks like shall we?

Monster Reward A Reward B
A 5 5
B 10 8
C 15 10
D 25 15
E 40 20
F 65 28
G 105 38
H 170 53
I 275 73
J 445 101
K 720 139
L 1165 192
M 1885 265
N 3050 365
O 4935 504

[This article originally appeared on Bud Leiser's personal blog.]  

Bud Leiser beat Nintendo’s original Zelda when he was just 3 years old. Then went on to win money and prizes playing: D&D Miniatures, Dreamblade, Magic the Gathering and The Spoils. He’s just returned from Vietnam where he helped manage Wulven Studios as their Lead Game Designer. He was responsible for creating internal projects, game design documents and communicating with clients to help them succeed in the post-freemium app market. 


Post a Comment