Crazy Rob's RMVXA Madness #1- "Whose turn is it, anyway?"

WARNING: THE FOLLOWING IS A LONG, DRY RAMBLE ON FOUL, UNHOLY EXPERIMENTS WITH THE ENGINE KNOWN AS RPG MAKER VX ACE. DO NOT ATTEMPT THESE WITH YOUR OWN PROJECT. IF YOU CHOOSE TO DISREGARD THIS WARNING, BACK UP YOUR PROJECTS ON A SEPARATE MEDIUM.

WARNING 2: ON SECOND THOUGHT, GO AHEAD AND BACK UP WHATEVER PROJECT YOU'RE WORKING ON NOW. DO IT. YOU'LL THANK ME LATER.

Project Status: due to how buffs and debuffs work, multiple stats get debuffed or buffed by a change to say, MAT. A buff to MAT (magic attack, a default stat) means that not only does that default stat rise, but so do several artificial stats, like Magpow, and M. Accuracy.

The problem being, stuff like Magpow is already based off your MAT, which in Pariah's Creed is basically how good your weapon is at focusing magic, and your character's MAG, which is how good you are at magic as a person. So there's a bit of redundant multiplication which screws up calculations.

MAG itself isn't affected by buffs and debuffs, mind.
The idea is to eventually change the buff script to multiply everything it normally does by 1, meaning buffs won't affect things I don't want to. The formulas for Magpow and the like have calculations for the buff level nested in them, so even if the multiplier is static, they'll still be adjusted accordingly.

"Why are you doing this, CrazyRob?" you ask. "Why are you defying the laws of nature? Isn't RPG Maker supposed to make things simpler? Why are you making them more complex?"

image.png

Er, ahem.

The thing is, RPG Maker VX Ace does make things simpler. In fact, if you want, you have all the basic elements to make a basic rpg as long as you have a basic knowledge of event creation.

But we are not doing basic.

The project- Pariah's Creed- (No relation to Assassin's Creed) has stats based off an arcane and obscure tabletop rpg I used to play called Final Fantasy RPG 3e. Strength, Vitality, Agility, Speed, Magic, Spirit, and Luck.

The way the game is set up, you are responsible for how messed up your characters get. You get 1 stat point per level to boost each of those stats, minus Luck (which can only be affected by rare items and events). There is some sanity behind the way the level up is handled, something akin to the SNES version of Seiken Densetsu 3, in that you can only increase a stat so many times every so many levels.

Your beginning hero, for example, is Lohste, a mage. Obviously you'll want more Magic so that he kills things better and hits more often with spells, but you can only raise a stat three times every ten levels. What to do with those other points? Put some in Spirit to bolster his MP, magic resistance, and magic evasion.

Points in Vitality will make him a little less squishy, giving him more HP and better armor bonuses. Speed lets you get to killing faster, Agility will make you hit more often and do more damage with precision weapons (rapiers, crossbows, guns, etc), and both Speed and Agility factor into dodging- and I think we can all agree not taking damage is better than the alternative. Strength doesn't have a lot of appeal to someone like Lohste, unfortunately... but maybe you want to smack people really hard with a staff.

This would be the point my dear friends and hallucinations would remind me I've digressed. The reason for all that is the derived stats, how buffs and debuffs interact with them, and why oh why I'm up at 12:30 AM working on a project I started over five years ago.

As of right now, the settings I have for buffs and debuffs (a separate thing from status effects, mind you!) have stack up to four times maximum in either direction, up or down, with a 12.5% modifier for each level. That means, dear children and stalkers, that in the event of 4 levels of buff to "MAT", I get a 150% of my original values for MAT, Magpow, and Magic Accuracy. (Note: considering changing Magic Accuracy to be buffed by "Agility" buffs, or "Sukukaja" effects for those of you who speak Shin Megami Tensei.)

Because MAT is already factored into Magpow- which determined how explodey your damaging spells are and how healy your healing spells are- that gives the aforementioned redundant multiplication. Unfortunately, as good as the scripts I stole are, they don't allow you to decide how individual default or artificial stats are affected.

Hence the need for the deed.

The end result I hope to achieve is this:

  • Default basic stats like ATK, MAT, AGI, DEF, MDF, and LUK are unaffected, left static at a 1x multiplier.
  • Other stats like evasion/magic evasion, crit/magic crit, crit evasion/m. crit evasion are affected by a 12.5% modifier, so that it feels like things are working normally, even if they aren't.
  • STRPow, AGLPow, and MAGPow- how hard you hit with brute force, precision, and magic respectively- are affected by said modifier.
  • Alterations are made to initiative scripts, granting a boost to the initiative formula equal to the buff level for AGI. (Note: in this game, AGI and AGL, which I'll get to later, are two different things. RMVXA insists on calling the speed stat 'agi' and gets very upset when you try to change that in the code.) This allows the speed stat to be boosted by a buff without actually changing it, to avoid redundant multiplication, i.e. a formula saying N= var{1] + var [2] instead of adding var[2] to var[1]...
  • LUK is likewise modded for the drop script. How, exactly, I'm going to plug it in is as of yet undecided.

7/28/2020 Notes:
Beginning test of revamped initiative system.

BACKGROUND. SKIP TO EXPERIMENT LOG INIT-1 IF THIS IS NOT YOUR THING.

Ordinarily, RPG MAKER VXA has combat play out akin to Earthbound- all actions are decided, then fired off in order of speed. This system irks me for several reasons, the biggest of which is it allows for less reaction, meaning you have to account for that in boss difficulty, meaning there's one more element that feels more like random chance as opposed to tactical decisions- I.E. using a rare, 100% HP item on a wounded member only to have that party member smacked into K.O. before it fires off.

So I used a defunct script, altered the hell out of it to get it running, and that got the project one more step towards my twisted version of what an RPG should be. The script, made by a fellow named RogueDeus, was designed around an action point system, with various actions costing more AP than others, and once a character was out of points, it was the next speediest combatant's turn.

Minor adjustments and some exceptions were necessary- out of combat, the script can decide you don't have enough AP to use items or healing magic!- but once those tweaks were in place, it ran like I intended. Mostly.

EXPERIMENT LOG INIT-1

This brings me to what we're testing today, which is to see if-

  1. An alteration to how speed is calculated in the AP script can be made to influence order of action via buffs or debuffs to agility and speed. Ideally for this test, all actors should always act in a very particular order depending on how they were buffed or debuffed. It is at this stage I will make sure the game doesn't choke and die on my code- this is an occasion in which we are not trying to make a system have a grand mal seizure.

  2. Later tests will see if a random number between 1 and 4 can be added to initiatives, in order to give some variation.

image.png

Oh hey, whaddya know, you can just copypaste images into this? How convenient! I haven't even started testing and things are looking up!

Ahem. (Dons Clyde Crashup getup)

Ladies and Gentlemen, what you see is RMVXA's troops tab, where a game maker sorts monsters into encounter groups and adds any specific conditions if need be for the battle. It's possible to test an encounter in this via "Battle Test", but unfortunately, this method bypasses a lot of the scripts I need running. Hence, I need to create a group, put it in a game area where my test play through is saved, and then edit the battle events to test out whatever the hell is on the agenda for today.

Here, we have my good friend and frequent victim, Mr. Death, and his seven identical brothers. Normally we'd be killing or maiming MD in any number of heinous ways to see if formulas worked, but today, we will making sure they act in the order we desire to affirm the initiative test works correctly.

Does this sound boring? That's because it is. Welcome to one of the many trials of gamemaking- not falling asleep while writing code and putting in events to make it look like you know what you're doing.

Lohste, the only player controlled character in this test, has a speed of 7. As of this writing, the setup should make it so there is no variation in speed whatsoever beyond buffs and statuses- outside of intervention, his speed will always be 7, no more, no less.

To see if Mr. Death and co. will move in order and to deny interruption, I'm giving him a speed of twelve. With the current formula, each buff level will either add or subtract one from his total initiative. In this case, any Mr. Death should move before Lohste.

By giving Mr. Death an action called "Disable", a scrapped action from an earlier time, I can have the monster act without killing Lohste. I also make a number of small alterations to Mr. Death and the skill catalogue, such as making Mr. death 300% susceptible to speed debuffs, and creating skills that buff or debuff speed by 1 to 4 stages. We won't need a stage 4 buff, because we only have room for 8 monsters and we need one Mr. Death to be untouched.

The astute among you may have noticed that the Mr. Deaths were lined up side by side. 1 to 8, left to right. A minor but necessary means to keep track of a mono-sprite set up. The aforementioned skills are designed to be used by the user on the user, to avoid any screw ups with who gets buffed or debuffed.

image.png

The setup for the test is now complete. 1-4 will be bebuffed, 6-8 will be buffed, and 5 is left untouched.

To be fair, the initial recording attempt did produce an error in rmvxa- the dreaded black screen with an error-popup that tells a gamemaker they've done goofed. No reproduction occured, but as with all error messages, you'll want to keep an eye out for what's causing it.

As you can see in the video, the actions progress from the most buffed, to the most debuffed, to Lohste.

Closing tonight's notes on what happened: Modifying how buffs worked required providing exemptions and exceptions in the system for HP and MP, with all others receiving a buff formula of "1". Everything that needs to be affected by a buff is coded to do so. Still need to figure out how the hell luck can factor into the drop formula.

Buffs to Luck currently affect crits, magic crits, crit evasion, and critical evasion. The formula for dropped items uses the sum of the party's luck, so I may need to be creative.

7/29/2020 Notes:
Attempting to modify initiative system so that a buff or debuff has a greater effect, now that we've established the system works the way it's intended to. This new system is speed + (buff_level *2), meaning each level in either direction is worth 2 points so that said buffs will have more of an impact.

As you can see in the video, every enemy except Mr. Deaths 1 and 2 act before Lohste, their revised speeds being

4, 6, 8, 10, 12, 14, 16, 18, left to right.

"But Crazy Rob, what about that thing you do in tabletop rpgs where you roll for initiative so the Random Number God gets to have a say in how screwed you are?"

Well script-kiddies, the code (heavily modified from RogueDeus' own version, mind) is

@speed = self.fin + ((self.buff_level(6))*2)

which in simple terms is "speed plus (buff level *2)"

Now, as it stands, we have some very severe modifiers on either end- so let's add a random die roll to see just how that effects things, and make it large enough to see some alteration.

@speed = self.fin + ((self.buff_level(6))*2) + (rand(8 + 1)) * Normally, rand(8) with rmvxa would give you a number from 0 to 7, but to simulate an 8 sided die I'm adding one. If you ever manage to roll 0 on an eight sided die, you're either a cheating bastard or you need to consult both your local mathematician and exorcist.

Now we're all over the place!

Those of you with either a good memory or knowledge of the ancient art known as "scrolling up" will recall Lohste has a speed of 7, meaning the initiative dice could either more than double his speed or send it to an abysmal -1. I will be testing this of course to decide on what the final value should be- balancing is a delicate act.

Pariah's Creed is far, far from complete. However, when you want quality, you have to put the time into it, and that includes making the most basic functions work like a well-oiled machine.

Thank you for reading my rant, remember to read, shrug, and ignore.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now