Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 31, 2014
arrowPress Releases
October 31, 2014
PR Newswire
View All





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Tips from a combat designer: Fibonacci game design
Tips from a combat designer: Fibonacci game design
February 15, 2012 | By Mike Birkhead

February 15, 2012 | By Mike Birkhead
Comments
    10 comments
More: Console/PC, Design



[In this reprinted #altdevblogaday in-depth piece, Vigil Games' senior designer Mike Birkhead explains Fibbnoaci game design, and looks at how it can be "a total ace up your sleeve."]
"Add things until it starts sucking, take things away until it stops getting better."
Good systems find a balance between keeping the player guessing and keeping things simple; this means both knowing how many options to provide the player, and knowing when to say no to something regardless of how cool. It involves things like how many weapons to have in the game, how many talent trees, or how many monsters to spawn in an encounter.

Situations like this rarely have the perfect answer, and that limitless possibility shuts my brain right off. That first brush stroke on a blank canvas can be the most difficult, so I always try to constrain my options.

You are probably familiar with the Fibonacci sequence from your college math classes, but if you need a refresher it looks like this:

1, 1, 2, 3, 5, 8, 13,

There are two applications of this sequence that I apply to game design: the Rule of Three (extended edition), and the Golden Ratio.

The rule of three (extended edition)

The first use of Fibonacci game design is the Rule of Three. The number three is a special number in game design in everything, really. It crops up everywhere: three talent trees, three rounds, three party members, etc.

I don't care what you are designing, if you can break things down, divide things up, or cut things out so that it gets you down to threes, then it is a good decision. Your game will, in all likelihood, be better for it. That's a promise. It will feel rough, I know, and you will mourn the loss from something from the game, but the player doesn't know what you cut from your game, they only know the product.

The Rule of Three is so universal and applicable that it will probably be the greatest trick in your toolbox for a long time. People will marvel at your ability to create simple, clean, elegant systems, and little will they know that all you did was focus on that little number three. Look: I'm not crazy. The number three is just super powerful. You can see it crop up in all different kinds of fields:
But I admit, at times it won't feel right to break things down to threes, and that's where his two friends come into play: two and five.

There is just something about systems in twos, threes, and fives. They just feel RIGHT. You feel like you have choice, but you are not overwhelmed. You will notice, of course, that these are Fibonacci numbers 2, 3, 5 which is NOT a coincidence.

Here's why: once you provide five options to the player it can be super easy to say, "why not six?" Sure, why NOT six. Well, because it bloats the game, dummy. More is not always better; in fact, it is almost always worse.

When I think about adding something to the game I constrain myself within Fibonacci's beautiful sequence, for it forces me to REALLY commit to "just one more", as now it is NOT just one more, but in fact several more.

If, for example, I currently provide five options, then I would have to upgrade it to eight; for eight, thirteen. The choice to increase the player's options, as you can clearly see, gets heftier and heftier: THERE'S A LESSON THERE.

Do this, and everything you design will turn up golden.

Golden ratio

How much experience should the player need at level 50 versus level 30? How much at level 20?

You will face and solve this problem at least once in your career. Probably more than once, if you become a system designer, and it is another of those blank canvas problems. The experience caps you set can be almost ANYTHING. It's simply a matter of how you want your game to scale, how you want to control your gains, and the feel you want for the system. Of course, certain choices you make can make your life more or less difficult.

Now, me personally, I prefer systems that grow exponentially. They just FEEL better to me. I like gaining levels really fast in the beginning, so you can get that Pavlovian reward system going.

But HOW do we grow something exponentially, and at what rate? Enter the Golden Ratio.

Take any number N from the Fibonacci sequence and divide it by the previous number in the sequence N-1. As N approaches infinity, the number you get from the division approaches the Golden Ratio. Ah HA, you say! You wondered when this would tie back to that Fibonacci fellow. This is interesting, but how is it useful?

Link: The Short form to solve for the Golden Ratio

The Golden Ratio, like the rule of three, crops up all over the place.
  • The proportions of the human body
  • The spiral of a nautilus shell
  • The spirals in the arms of a galaxy
  • The rectangular shape of light switches

Link: Vitruvian Man compared against golden ratios

From the very small to the very large it shows up, and there is something about it that we find pleasing. Where am I going with this? Anyone that has done this already knows where I'm headed, so let's catch you up.

Our goal is to create an equation to calculate how much experience the player needs at any particular level, and we want it to grow exponentially. Here's an example of something I have used in the past as a starting point (Coefficient and Exponent are constants).

Reward = Coefficient * (GoldenRatio ^ (Level + Exponent))

Things usually deviate from this, especially when systems start interacting, but it's usually a nice starting point with pleasing results. OK, you say, what about a real world example of how to use all this Fibonacci game design? Let's take a look at MK9.

Example applications

When I was designing the Challenge Tower for MK9 I was faced with a compelling problem. The player should have 300 completely different missions, they needed to get money for beating them, they should be able to buy their way passed missions they didn't like, and it needed to all fit into the larger picture of the entire economy.

The first question was how to break up the missions. I decided on blocks of 5 missions that focused on the same character. This way I could ramp up the difficulty on a player, and they are given enough time to familiarize themselves with how that character controls. Between each block would be a minigame, which breaks up the gameplay to keep things interesting.

I also had some special or funny missions that I wanted to showcase, and doing it this way meant I could have a cool mission every 30 missions.

Once I had everything broken up into my mission blocks, I began the next phase of the process, which was to systematically rank them on how difficult they were on a scale of one to five. It is difficult to do this kind of estimation in a vacuum, by the way, so make good use of other people. You are always going to be the worst judge of your own difficulty spikes.

Link: A Screenshot Of The File I Used

As an aside, I was also tracking the kind of gameplay gimmicks being used, how many times different characters occurred, what arenas it took place in, what kind of ring knockouts used, etc. Missions were constantly being shuffled around, and keeping this file maintained was a full time and commitment heavy job, but it was so worth it.

Finally, now that I had all the missions organized and categorized, I was ready to start assigning reward values to them, which, using the 5 point difficulty scale I already created, was output from the following formula:

Reward = 50 * (2 ^ Difficulty)

This gave me nice round numbers that started off at 100. The final outcome looks random, but you can see that at every step of the process I was making meaningful calls about how things were organized, and, more importantly, you probably noticed the constant appearance of 2, 3, and 5 in the design. That was all on purpose.

Bottom line
"When forced to work within a strict framework the imagination is taxed to its utmost and will produce its richest ideas. Given total freedom the work is likely to sprawl." T.S. Eliot
Designs with no structure tend to sprawl. It's something that we all understand, but it can be very hard to follow that advice. Being a designer means you have the heart of a dreamer, or you wouldn't be doing the job in the first place. We like adding shit, because we traffic in a world of cool. Isn't it better if we add more? Probably not.

The numbers two, three, and five are not magic missiles, however, and they won't suddenly make your designs super clean; what they WILL do is help keep a structure to things and, like I said, a little bit of constraint can be very helpful when staring down the barrel of the blank canvas.

Look back to the original task I was given on the Challenge Tower: 300 missions of various gameplay. That's it! Just 300 missions, go take care of it gulp! I love tasks like that, though, and you probably do too; yet, such freedom can easily cause you to baulk. How do I start?!

Me, I immediately apply my Fibonacci structure to the process; not because it limits to my imagination, but because it allows my brain to focus on what matters: giving the player a good experience.

The same will be true for you. Fibonacci game design is a total ace up your sleeve. You can apply it to almost every single system you ever attack, and people will marvel at your ability to create clean, simple, fun systems.

[This piece was reprinted from #AltDevBlogADay, a shared blog initiative started by @mike_acton devoted to giving game developers of all disciplines a place to motivate each other to write regularly about their personal game development passions.]


Related Jobs

Rensselaer Polytechnic Institute
Rensselaer Polytechnic Institute — Troy, New York, United States
[10.31.14]

Assistant Professor in Music and Media
The College of New Jersey
The College of New Jersey — Ewing, New Jersey, United States
[10.31.14]

Assistant Professor - Interactive Multi Media - Tenure Track
Next Games
Next Games — Helsinki, Finland
[10.31.14]

Senior Level Designer
Magic Leap, Inc.
Magic Leap, Inc. — Wellington, New Zealand
[10.30.14]

Level Designer










Comments


Todd Boyd
profile image
A wonderful article, Mike... thanks for writing this! I've already applied several of your guidance tips to my current project, and this one will seriously help me get my XP rewards, level caps, and such in check.



I've always loved to program, and I've always loved games... but the system design of it all is still fairly new to me.

Joe McIntosh
profile image
Nice story, thanks for sharing!

Maria Sifnioti
profile image
What a great article. I really liked your design approach. Thanks!

Kevin Bray
profile image
This is an interesting theory, though I have to point something out... 1, 2, 3, 5 aren't only Fibonacci numbers, they're also prime numbers. Just because these numbers are useful for game design and they happen to be the first few Fibonacci numbers does not mean that all Fibonacci numbers are all useful. For instance, the next Fibonacci number is 8. 8 is not a terribly useful number, simply because it can be factored as 2 * 4, or 2 * 2 * 2... none of these numbers besides 2 are particularly useful for balancing. That being said, it seems to me that the real trick here is odd prime numbers. Once you have an odd prime number (any prime number greater than two), then you end up with a "balance-able" situation - you can now have unbalanced relationships between individual elements. However, you should keep in mind that this relationship means that you have (SUM 0,n-1) number of interactions that need to be considered. For example, if you have 3 character classes, then you have 2 + 1 interactions (in this case, 3). If you have 5 character classes, then you have 4 + 3 + 2 + 1 (10 interactions). If you have 7 character classes, then you have 6 + 5 + 4 + 3 + 2 + 1 (21 interactions). If you have 11 character classes, then you have 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 (55 interactions). And so on.



To sum up:



- I believe the reason why you need an odd number is so that each mechanic has an even number of competing mechanics to interact with (simplifies balancing).



- I believe the reason why you need a prime number is so that each mechanic is "unique" - if it's not prime, you can simply divide up your mechanics by some factorization. In short, a "prime" number in this context is the simplest possible breakdown of your game's mechanics (or at least it should be). It cannot be broken down (factorized) further.

xie shen
profile image
Very good stuff here. I feel the same way that the Fibonacci sequence can't simply apply to all situations, but the instances author shows here is nothing wrong obviously. The number 2,3,5 or the prime odd numbers here, in my opinion, really provides players with options that they feel they can handle while they shouldn't overwhelm players. I think the pros of odd number is it natually gives players a better feeling of choice, they won't feel they are going to be 'a little bit of everything' instead they feel they are going to spec something, just like the word you used ----"unique"

Raymond Grier
profile image
There seems to be an attempt here to treat numbers as special. Whether or not they are Fibonaccian or prime is irrelevant. They are small numbers so they are often easier and more convenient to apply to design. The important thing is to make decissions based on reasons you can give a logical reason for

ex: give Link 3 kinds of armor to choose from because he will change armor less often than if he is given 20 to hold onto simultaneously.

Kain Shin
profile image
Fascinating... I have always been a life disciple of 3 and the Golden Ratio, but I never attributed those to a common denominator. Thank you. I'm going to run with this idea outside of work, too.

Romain Aymard
profile image
Nice post, thanks a lot !

Rafael Posnik
profile image
Awesome article man, very impressivel!

Jeremie Sinic
profile image
Yeah, great read. I am not a game designer but I liked it.


none
 
Comment: