Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Interesting. I like the randomness.

I'll detail how you might go about maturing an investment:

Most simply: Funds mature by a constant value

1) Create an investment variable with a value of 0. This is how much money is currently in the investment.

2) If there is any money in the investment (investment > 0), add something like a dollar every frame (~$30 per second)

3) When the player buys stock, take some amount from their money to add to the investment

4) When the player sells stock,  add the investment variable to the players money and set the investment var back to 0.

Pseudo Code:

var investment = 0 // The current value of your investment
var increase_rate = 1 // How much to increase the investment every frame
var player_money = 10000 // How much money the player has
var buy_price = 1000 // How much each stock costs
forever:
    if (investment > 0):
        investment += increase_rate
on_event sell_stock:
    player_money += investment
    investment = 0
on_event buy_stock:
    player_money -= buy_price
    investment += buy_price

Simple: Increase by a constant rate

The only difference between the last method is that we change how much to increase the investment by to be a rate, so that you get exponentially more money the longer funds are in:

Change

var increase_rate = 1 // How much to increase the investment every frame
forever:
     if (investment > 0):
         investment += increase_rate

to

var increase_rate = 0.01 // How much of the current investment we gain every frame
forever:
      // 100 * 0.1 (10% of 100) is 10; add 10 to 100
      investment += investment * increase_rate


Complex: variable rate + declines

Every frame, you could change the rate at which the investment changes. You could decrease it, make it negative, increase it, or make it positive:

var increase_rate = 0.01 // How much of the current investment we gain every frame 
forever:
      // 100 * 0.1 (10% of 100) is 10; add 10 to 100 
      increase_rate += get a random number between -0.1 and 0.1
      investment += investment * increase_rate

Let me know if you have any questions!