To me the upgrade system in Tiny Tower never felt like an important part of the game. I never directly noticed any immediate effect of an upgraded floor, and worse, I never even knew exactly what I would get with the next upgrade level. So eventually I stopped upgrading my floors altogether. The upgrade system simply isn’t very rewarding. This has to be different in the design of my game. If I upgrade something, I want know what I will get in return. And I want to want it.
There are several things a good upgrade system needs to master. Many of them come down to visibility in one way or another:
1. The player should know what an upgrade will bring him.
Regardless of the game, if the player is asked to spend whatever resource is required to upgrade a building or character or whatever, he needs to know what he will get in return. Without this information, no one can make an informed decision on whether the upgrade is worth the cost. And don’t be vague. Did you ever play a game with an upgrade description that simply read “will increase your attack speed”? Yes? Me too. It sucks. No one likes to buy a cat in a bag, not even with virtual money. So be as precise and as transparent as possible with the upgrades.
2. The upgrade should make a noticeable difference.
Otherwise, why upgrade in the first place? If a game let’s you increase your character’s stats each level, but you barely notice any difference, then what’s the point? Eventually you will stop upgrading altogether. And that is bad for your game. Those games that rely on a virtual currency and in-app purchases will have lost one opportunity to make it attractive to the player to spend money on the game. And all other games will have lost a part of their game design.
If on the other hand an upgrade gives the player something that helps him get further in the game, or quicker, or both, you have a winner. Give the player something he really wants, and he will want to upgrade further. It’s delayed gratification all over again. If a player needs to save up those resources, upgrade points or ingame currency to be able to finally afford the upgrade, it should feel sweet. Don’t skip out on the gratification part.
3. The upgrade should be visible.
If you did upgrade your character, building, floor or whatever, it should be visually changed as well. Whether you display a number of colored points at the side of an icon or exchange the entire model doesn’t even matter, as long as it is noticeable in one single, quick glance. There are two reasons for this. The first is plain convenience. You don’t want to go into a menu to find out whether your building is level 2 or level 5. The second reason is to create the desire to upgrade more and further. Which will mean play the game longer, or potentially buy more ingame currency.
I mentioned my theory that I believe there is a perfectionist hidden in all of us in an earlier post. If two of your buildings have 5 stars on their side, but the third only shows measly two stars, most of us can’t help it. We want to bring that third building up to level 5 as well. Maybe it is just latent OCD. But if it can create fun gameplay, use it!
4. The upgrade should have a meaningful cost.
When I say ‘cost’ I don’t mean money. I am talking about whatever resource your upgrade system uses. It could be as simple as giving out points to increase character stats at each level up. The important aspect is that you knows what the upgrade is worth. Worth is not the same as cost. In my example, each increase of the ‘strength’ attribute will cost one point, but how much that is worth depends entirely on how many points the player gets when leveling up. If you only get a single point, it will be worth much more than if you had gotten 15. You know you cannot get another point until you manage to level up again. So when designing an upgrade system, you will also need to keep in mind how many of the resources required for upgrading your players will have available. Of course, if your one point increase in ‘strength’ then has no noticeable impact on the game, the worth diminishes. All of this will lead you directly to balancing, and I think that deserves an article all on its own. Just keep this in the back of your mind for now.
The Upgrade System in Game Tower
I designed the upgrade system in Game Tower with all of those aspects in mind. When the design document is done I will run some actual numbers through a balancing pass and see if they make sense. And I will blog about it, too. Here is my upgrade system checklist:
1. When upgrading a department, the panel right below the button will explain what the upgrade will give you. And not just a vague description either, it will show an exact number.
2. The upgrades will be meaningful, by making the department work faster by 5-10%. This will work well with the real-time mechanic I mentioned in my last post. Each upgrade also adds a work queue slot to the department so that it can work on more games. They will add a convenience factor that should be very noticeable. (more details below)
3. Each department will show it’s upgrade state directly in the main view. I’ve limited the upgrades to a maximum of three, and each one will be represented by a star on the wall. The work queue slots are also directly visible in the main view, as another indication of the upgrade level.
4. To limit the player from buying upgrades to early, making the game too easy and therefore no more fun – each released game will give the player an upgrade token to upgrade floors. This should regulate the amount of upgrades over time. The more games are released the more floors can be upgraded. So as upgrades become more important in the later game, the player will also have more upgrade tokens available.
After deciding to adopt pseudo-real-time for my game in an attempt to focus on the management gameplay, I also want to offer elements that make it easier to keep all floors busy and keep that efficiency meter up.
I am going to add a work queue to each floor, and the department will work on the games in it in order. That should make it easier to queue games and not have departments run out of work while I am not in the game. Having these queue slots right from the start would make the game too easy – or worse, too confusing. So instead each upgrade will unlock one queue slot.
On step further
While I was working on that upgrade system, I had another idea. Why not have special floors that are a kind of an upgrade all in themselves? For example if I build a Break Room in my game studio tower, maybe all other departments will work 5% faster. That would go together nicely with the real-time principle I think. I have couple of these ‘special bonus’ floors already in mind.