00:00
00:00
Zelazon
Retired music designer and retired tournament gamer.
Commentator for current state of gaming.

Age 36

Joined on 1/14/24

Level:
2
Exp Points:
32 / 50
Exp Rank:
> 100,000
Vote Power:
2.33 votes
Rank:
Civilian
Global Rank:
> 100,000
Blams:
0
Saves:
0
B/P Bonus:
0%
Whistle:
Normal

RPG Maker MV and Formulas That Do Not Work.

Posted by Zelazon - 9 days ago


How the game even got published on steam is anyone's guess.


These days, it's pretty easy to draft up custom work and generative music for a custom game, but as I continued with the game, I noticed myself that the formulas that the game used is not working at all.


The main problem is the default damage formula, which is the following:


a.atk * 4 - b.def * 2


The "a" points to the entity or person using the attack, and "b" points to the target of the attack.


The formula at first seemed pretty basic, and doesn't really draw any sort of ire from any direction. The formula looks to be solid enough to get through a play through without much problems. What I ran into first is that my stats on initialization were so poorly forthcoming that the damage required massive changes to the character themselves to be able to damage properly.


You may ask me why this is even a problem to worry about, which I will get to.


So, if you have problem with a +10 sword, you should not get a 300 attack damage buff by having a +10 sword vs. a +1 sword. The formula was so out of wack that I had to divide the formula, add extra calculation, and do a whole lot of changes that would be a nightmare for a mathematician because I had though I got the formula correct for late game, but when I changed my defenses to be reduced to no defenses, my character was receiving no damage.


For some reason, their formula seems to be increasing the damage that the character received upon receiving more defense.


I don't know why this happened, but RPG Maker XP (many years ago) did not have this problem. It used to be solid as designing your own RPG, but now it's just that the formula is damaged to the point of being unplayable.


Why on an advance scale this matter is because with AI technology, I was able to develop a slot machine in the game that could calculate the value of each roll and result in a certain winning with the following formula:


Control Variables: #0001 Slot1 = Random No. (1..5)
Control Variables: #0002 Slot2 = Random No. (1..5)
Control Variables: #0003 Slot3 = Random No. (1..5)

Text: Slot Results: \V[1] \V[2] \V[3]

Conditional Branch: Variable [Slot1] == Variable [Slot2]
 Conditional Branch: Variable [Slot2] == Variable [Slot3]
   Control Variables: #0004 Prize = 0
   Conditional Branch: Variable [Slot1] == 1
     Control Variables: #0004 Prize = 100
   Else
     Conditional Branch: Variable [Slot1] == 2
       Control Variables: #0004 Prize = 200
     Else
       Conditional Branch: Variable [Slot1] == 3
         Control Variables: #0004 Prize = 300
       Else
         // Add more conditional branches as needed
       Branch End
     Branch End
   Branch End

   Text: You win \V[4] gold!
   Change Gold: + \V[4]
   // Add other prize logic here
 Else
   Text: You lose!
   Control Variables: #0004 Prize = 0
 Branch End
Else
 Text: You lose!
 Control Variables: #0004 Prize = 0
Branch End


It's not complicated in it's own right, but it is something that need a little assistance in order to figure out how a slot machine would work (mostly for discovery). Where it went wrong is in the following formula to weight the amount of a single number would populate:


Common Event
◆Script:var weights = [1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5]; // Adjust the array to increase the chances of certain numbers
◆Script:var randomIndex = Math.floor(Math.random() * weights.length);
◆Script:$gameVariables.setValue(1, weights[randomIndex]);

Slot Machine Event
◆Common Event: Weighted Random
◆Control Variables: #0001 Slot1 = Script: $gameVariables.value(1)
◆Common Event: Weighted Random
◆Control Variables: #0002 Slot2 = Script: $gameVariables.value(1)
◆Common Event: Weighted Random
◆Control Variables: #0003 Slot3 = Script: $gameVariables.value(1)

◆Text: Slot Results
◆Text:\V[1] \V[2] \V[3]

◆If:Variable [Slot1] == Variable [Slot2]
 ◆If:Variable [Slot2] == Variable [Slot3]
   ◆Text:You win!
   ◆Control Variables: #0004 Prize = 100 // Example prize
   ◆Change Gold:+ \V[4]
 :Else
   ◆Text:You lose!
 :End
:Else
 ◆Text:You lose!
:End


For some reason, the formula not only bugged out, but it will not register the common event which call the event for the random number to generate a value from it so that the event can register the number correctly. This is a huge problem and a huge barrier because you cannot generate weighed randomized number without having the events populate the correct number from a set of numbers.


What this additionally means is that you essentially get weighted down with using static randomization because the number will only take in bare-scripted numbers of 1, 2, 3, 4, 5, 6, and so on, versus having the flexibility of weighed calculation and formulas that could have made for a more wholesome experience by having a meaningful formula that could have supported the game.


If you mess up the formula, the game is unplayable. Essentially, the scaling will be destroyed and there is no chance of repair because the game needs a fundamental rework.


Why I'm not considering upgrading is because if this was the problem, then RPG Maker MZ would have the same (or worse) flaws because XP didn't have the kinds of issues I am seeing today.


It's unfortunate that stuff like this kills the game.


Comments

Comments ain't a thing here.