Replacing “Points” with “Currency”

Published by

on

I know what you’re thinking…. didn’t you just write a whole article about how you re-programmed your points system?

Yes, I did. And when thinking about the systems of the game, I realized something. Points are not the direction I want to take this game. Now, don’t get me wrong, architecting the points system was a great move that might help if I ever want to create another beat ’em up in the future. But for Super Special Delivery, the other systems in the game demanded that I took a different approach.

While white boarding some ideas on how the player will be able to gain new skills and upgrade their character throughout play, it became very apparent that I wanted to borrow some ideas from recent retro style games such as River City Girls and Scott Pilgrim vs. The World. I wanted the player to be able to purchase upgrades throughout play, so that there is a level of customization (meaningful choice) that goes along with playing this adventure.

When I thought about the systems that exist in the game: Health / Self Healing, Skill Acquisition, and Levels — it seemed very obvious that currency was the way to go instead of having a traditional points system.

Why Not Both?

Of course, the inevitable question of “Why not include both points and currency?” came to mind when implementing the new approach. I considered it for a time, but after going back and playing SPVTW and RCG, I realized that most beat ’em ups that implement this system do not have points. The obvious reason for this from my perspective is simply that there would be WAY too many numbers displayed on the UI at once, and currency could easily get confused for points.

Seems a little bit like overkill…

Further, in making this decision, I had to consider the amount of information a player might reasonably care about. In a game where you use currency to purchase upgrades, what really is the value of points? I suppose there might be some use for this system if I were to implement, say, another mode or a bonus game. However, for the main scenario, I have to consider what is going to be thought of as most important to a player, and in this case currency wins.

For my specific purposes, also, I considered that since I am implementing a system that allows the player to heal themselves on the fly without help of items (which I will expand upon in a later blog post), I wanted to still maintain the classic beat ’em up experience of picking up items and smashing objects to find items. Since I am removing the traditional health pick up in my design, currency was necessary to fill that gap and give players some reason to destroy pieces of the world while playing.

So what is the currency going to be used for? Well, the player will be able to use currency to purchase the following:

  • Additional Skills (subject to player level)
  • Health Bar Upgrades
  • Self Healing Bar Upgrades

Since I went in depth into using delegates and events in the last post, I won’t cover that here since the currency system essentially works the same way. Check out that article HERE if you want to leave more about delegates and events. However, I will share that formatting the string in the way that I want was sort of tricky.

In this case, I wanted to make sure that the player knows exactly how big their wallet is, so it was important to format the string that let them know they can get up to 3 digits in currency. It just means using the string.Format() function like this when updating currency:

   public void UpdateCurrencyUI(int currency)
    {

        currencyText.text = string.Format("{0:$000}", currency);
    }

For now, I only want the players wallet to reach a maximum of $999 dollars. So how do I do that? Well, I just have to clamp the value between 0 and 999, by adding this line in the UpdateCurrencyUI function.

currency =  Mathf.Clamp(currency, 0, 999);

Now, the player won’t be able to collect more than $999 dollars. This opens the possibility of MORE systems. Perhaps I’ll implement different wallet size? Maybe!

For now, this system will suffice, and help me build more dynamic levels and allow the player to make more choices as the game progresses!