Dynamics Studio | Control game balance way easier

Get | Donate

Context

read through this part, it will make stuff way less confusing and teaches about balance.

Imagine your making a big game, and to maximize revenue you need to maximize retention, which can be a huge problem.

Your game can’t be too easy where the player finishes the game in minutes and doesn’t get the chance to spend Robux, nor too hard where the player notices zero progress and doesn’t even see value in putting in progress.

The perfect state of balance is pretty difficult to achieve, many people choose to solve this by writing long and confusing equations that are prone to so many issues to generate (prices, rewards, etc). Others try to write data manually which once more is usually based on your gut feeling which is time-wasting and can result in bad values.

Thats where Dynamics Studio comes in, Dynamics Studio solves all these issues by allowing you to write equations and visualize it as a graph to then be exported as a ModuleScript, so you can easily analyze the game difficulty in an easy to see graph without requiring tons of testing.

Not only does Dynamics Studio have a graph it has way more features like Adaptive mode with weights which allow you to slightly adjust the values mid-game.

Tutorial

Starting off & Graphing

Functions & Variables

  • When graphing you can use any of the base math functions like
    sqrt(x)
  • The grapher includes custom functions like:
  1. round(number, decimalpoints) - Round the number with decimalpoints
  2. clip(number, diff) - Like round but rounds number by diff
  3. or(number, val) - If number is 0 then return val (otherwise number)
  4. nor(number, val) - If number is not 0 then return val (otherwise number)
  5. tor(number, val, case) - If number is 0 then return val otherwise case
  6. truncate(number, decimalpoints) - Truncate number by decimalpoints
  7. approach(number, target, increase) - Approach number with target and increase
  • Some variables are also accessible like:
  1. x
  2. TIME (the current time)
  3. PREV (the previous y or 0)
  4. WEIGHT (the applied weight, if adaptive mode is on)

Exporting

  • To export click the export button in the plugin menu
    Screenshot 2023-12-25 at 6.29.44 PM

  • A prompt will show up, simply write the ModuleScript name and click export.
    Screenshot 2023-12-25 at 6.29.59 PM

  • Click Close and check workspace to see your ModuleScript has been generated!
    Screenshot 2023-12-25 at 6.31.16 PM

Loading

Adaptive Mode / Weights

One example usage for this is when you are making a luck system in a simulator, x is the players level, y is the luck, and the weight power is how much the boost can modify the the luck.

Using the ModuleScript

  • Create a new script and require the generated ModuleScript.
local module = --...
  • Use module.Get(x, weight)
module.Get(2) -- Returns 2, because with the equation 'y=x' 2 will be 'y' with 'x' being 2
  • You can also use weights like so
module.Get(2, .5) -- Returns 7, because the weight power is 10 and '10*.5 = 5' so 5 gets added to the result

Anyways, thanks for reading. I hope this plugin does help you. :smiley:

13 Likes

Seems interesting! Will look into it!

1 Like

It seems to be offsale.
image

Fixed!

This was most likely because plugins that cost Robux were put offsale, I made it free now.

1 Like