Final Fantasy Hacktics

Modding => PSX FFT Hacking => Topic started by: Dokurider on May 15, 2012, 04:34:29 am

Title: How to make Jump not worthless
Post by: Dokurider on May 15, 2012, 04:34:29 am
First, let's do a little reinterpretation of what the Jump stat is. Let's pretend that Jump is more akin to Agility than just how high you can jump. Think about it. Jumping high involves the whole body, it's not just how strong your calves are. It's how well you can coordinate your body, your range of motion and flexibility. So let's treat Jump as an acrobatic stat.

So now that the immersionist fluff is out of the way, let's start applying it. Let's start by using it as a evasion modifier. When using Jump outside of a terrain factor, understand that Jump should function simultaneously as an offensive and defensive stat and that it should be it's own worst enemy. What do I mean by this? Let's look at how Jump can be implemented in evasion. It's as simple as (Target Jump/Caster Jump) = Jump Evasion. This means a target with a high jump will have very good evasion as well as accuracy. Let's try it out:


3 / 3 = 1
3 / 4 = 0.75
4 / 3 = 1.33
3 / 5 = 0.6
5 / 3 = 1.66
3 / 6 = 0.5
6 / 3 = 2


Hmm, even if we lowered evasion across the board dramatically, this is too much. It makes Jump the dominating evasion stat instead of Evasion itself. We merely want it to be a factor. Let's try using it's square root on the quotient then:


(3 / 3) ^ 1/2 = 1
(3 / 4) ^ 1/2 = 0.87
(4 / 3) ^ 1/2 = 1.15
(3 / 5) ^ 1/2 = 0.77
(5 / 3) ^ 1/2 = 1.29
(3 / 6) ^ 1/2 = 0.71
(6 / 3) ^ 1/2 = 1.41


Excellent, but unfortunately, FFT cannot do square roots, so we'll have to come up with another method. How about [(Target Jump/10) - (Caster Jump/10)] + 1:


(3/10 - 4/10) + 1 = 0.9
(4/10 - 3/10) + 1 = 1.1
(3/10 - 5/10) + 1 = 0.8
(5/10 - 3/10) + 1 = 1.2


It's doesn't quite have the oomph I want IMO, so let's replace 10 with 8:


(3/8 - 4/8) + 1 = 0.87
(4/8 - 3/8) + 1 = 1.12
(3/8 - 5/8) + 1 = 0.75
(5/8 - 3/8) + 1 = 1.25
(3/8 - 6/8) + 1 = 0.62
(6/8 - 3/8) + 1 = 1.37


Much better. Evasion being lowered to compensate goes without saying. This alone would turn Jump from the most worthless stat, to being almost as important as Move.

It doesn't have to end with incorporating it into evasion, it can also be factored into attacks as well. Suplex is a 1 range instant unevadable move that deals damage depending on the Jump stats of both Caster and Target:



(Target Jump / Caster Jump) * (PA! * PA/2), with PA! being boosted by Martial Arts

If PA = 12, PA! * PA/2 = 108

3 / 3 = 1 * 108 = 108
3 / 4 = 0.75 * 108 = 81
4 / 3 = 1.33 * 108 = 144
3 / 5 = 0.6 * 108 = 64
5 / 3 = 1.66 * 108 = 180
3 / 6 = 0.5 * 108 = 54
6 / 3 = 2 * 108 = 216


Units with low Jump will suffer massive damage from this attack, while units with high Jump will suffer minimum damage. Suplex alone will not make Jump a real stat to watch, but implementing Jump Quotient into more skills will remedy that.

It can even be used in a more conventional matter with Jump (the attack) itself.


[2 - (2 / Jump)] * PA * WP


It's designed to deal more damage the higher your Jump is, but it has diminishing returns, so stacking Jump doesn't get out of hand.
Title: Re: How to make Jump not worthless
Post by: Celdia on May 15, 2012, 06:06:36 am
...I'd like to subscribe to your newsletter, sir. How much for the first year's worth? Will a personal check be acceptable?

Alternately:
(http://24.media.tumblr.com/tumblr_m3ns6oRw5v1rrcctho2_500.gif)
Title: Re: How to make Jump not worthless
Post by: Glain on May 15, 2012, 11:21:45 am
Very interesting idea! That would be cool to implement. However, we have to use integer math, so:

5 / 3 = 1
2 / 3 = 0
3 / 4 = 0
And so forth. That decimal truncation would be a big problem with the formulas as-is.

I think I've found formulas for all of these that should be the same as the original ones but without the precision loss.

Evasion modifier
Evasion = Evasion * (TarJump - CasJump + 8) / 8

Looks somewhat weird but I think it works. Division is at the end to avoid the loss of precision.
Nice choice of divisor, by the way... it's much easier/faster to deal with multiplication/division by powers of 2 in ASM.

Suplex Damage
Mod_PA * PA * TarJump / (CasJump * 2)

This is just a simple reordering. Again, division at the end.
I didn't use "PA!" because that looks like PA factorial, which would make this insanely OP.

Jump
PA * WP * (Jump * 2 - 2) / Jump

Divison at the end. Got here by way of:
[2 - (2 / Jump)] = [(2*Jump) / Jump] - [2 / Jump] = [(2*Jump-2)/Jump]

These seem right to me but it wouldn't hurt to double-check them.
Title: Re: How to make Jump not worthless
Post by: Dokurider on May 15, 2012, 02:25:42 pm
Oh shoot, I forgot about that. Dumb truncation.

QuoteMod_PA * PA * TarJump / (CasJump * 2)

Should be Mod_PA * PA * CasJump / (TarJump * 2), otherwise damage decreases with the Caster's Jump instead of increasing and that would be counterproductive to punishing units with low Jump. Otherwise, everything seems to check out.

EDIT: Wait, I made that mistake in -my- post. Derp.
Title: Re: How to make Jump not worthless
Post by: Pickle Girl Fanboy on May 15, 2012, 05:23:41 pm
I'd prefer it be renamed to Agility in this context.  Though I'd like to change things around a bit - the following is not related to your context of Jump, but to something that I just cooked up in reply to it.

It reminds me of Parkour and rock climbing in a way.  Vertical Jumping, even up a cliff, is a matter of total-body strength, agility, coordination, flexibility, and endurance.  Same with Horizontal Jumping, though this is much closer to Parkour than it is to rock climbing.  Even Move is equivalent to stride length, movement speed, coordination, strength, and endurance.

My point is that both "physical" stats - Speed, and PA - should be used to calculate Move and Jump, and perhaps HP can serve as endurance, so it will modify them.

Move = ((PA + SP) / 2 ) * (Current HP / Max HP)

Divisor depends on patch (average PA and SP), obviously.  It would keep in line with Physical classes having better move and Jump.  And I'd like to limit the amount of Move you lose when your HP drops, but I don't have the math to represent it.  Like, if you're HP is at 100%, then you get the normal Move.  If your HP is at 50%, then you get 75% of the normal Move.  And if your HP is at 1% or below, then you get 50% of the normal Move.  This, along with the modifications of Jump listed below, would make Razele's Flee Movement ability incredibly useful.  By which I mean it will save your ass when you're in a bind.

Vertical Jumping = Move * (7 / 8)

Vertical Jumping (the visible Jump stat in Vanilla, though the vanilla stat isn't derived from other stats) would be invisible in this case, unless someone does so GUI hacking.  I'd love it to be visible, and for it to be recalculated as it you change your equipment and job class in the formation menu.  And I'd want it named as Vertical Jump, or just an up arrow and the word Jump.

Horizontal Jumping = calculated Vertical Jumping / 2

This is  the vanilla formula for Horizontal Jumping by the way.  And I'd like it to follow the same rules as Vertical Jumping when it comes to recalculation in the Formation menu, and I'd like a sideways arrow with the word Jump.

There are a lot of other things I'd like visible in FFT.  The "Stepping Stone" attribute is one of them.

And one other thing: if I change it like this, then how would equipment an abilities that modify Move and Jump stats fit into this?  It's probably easier to clone FFT than it would be to rearrange FFT to fit this in.

EDIT

I should probably change Class Physical Evasion to be derived from PA and SP somehow, too.
Title: Re: How to make Jump not worthless
Post by: Dokurider on May 15, 2012, 09:02:21 pm
First off, the divisor for the Move formula is too low. With a PA of 12 and SP of 12, you get a Move of...12. Even if you were to give it a more reasonable divisor of 6 (PA = 12, SP = 12, then Move = 4), it still presents some serious issues.

What about Mages and classes with low PA/Speeds? At starting levels wizards with a PA of 2 and a Speed of 6, and using a divisor of 6, they'd only get a move of 1! They'd be completely worthless. Even Knights starting out at 6 PA and 6 Speed, they'd just barely have a Move of 2.

Another problem is that it's makes PA and especially Speed too important. In a game of Speed>Move>Everything else, making speed even more important, basically combining Speed and Move and Jump is just flat out awful. Units with neither PA or Speed to move effectively are just left out to suffer, while units with both, like say Archers, are free to run circles around them.

Ultimately, what does this accomplish? In exchange of less viable builds and options and overpowering Speed and PA, we get a closer model to reality? I can't see myself wanting that. After all, the point of my post was to make an ignored stat, unignorable and thereby create more variety and add more depth to the game, and this would do the opposite and then some.
Title: Re: How to make Jump not worthless
Post by: Pickle Girl Fanboy on May 15, 2012, 09:33:30 pm
Sorry, I meant it to be (((PA + SP) / 2) / n), where n is the variable divisor.

All mages in Vanilla have awful PA and move/jump stats, so it makes sense to me.
Title: Re: How to make Jump not worthless
Post by: Dokurider on May 15, 2012, 09:40:20 pm
What determines n?
Title: Re: How to make Jump not worthless
Post by: Pickle Girl Fanboy on May 15, 2012, 09:44:42 pm
Whatever the modder wants, it's a static number.  Obviously, mods with more stat growth will have higher divisors, while ones with lower total stat growth will have much lower divisors.

It would also make a modder think twice about equipment that grants bonuses to PA and SP, so they'd have to balance it out with equipment that gives penalties to PA and SP, for classes that are typically stronger and faster (like Knights, with heavier armor).  This way, theives and monks will come out ahead with their expected bonuses to move and jump, but if you give them equip armor, those bonuses disappear when they get that -2 SP Iron Helm and that -1 PA Iron Plate Armor.

Or just make the game not count bonuses to PA and SP for Move and Jump, but do count the penalties.

What I mean by this is that a Glove that gives +2 PA has nothing to do with Movement or Jump, so it obviously shouldn't be considered in the formulas for those things.  But -2 SP heavy armor that weighs you down should be considered.  I figure the best thing to do is make a table, where the rows are the different equipment types, with two columns; one for "Are bonuses considered when calculating Move and Jump?", and another for "Are penalties considered when calculating Move and Jump?".  Then you have a yes/no situation, and the modder can decide what is considered and what isn't.

Sorry if I'm glib sometimes.  I'm often an asshole, and you should call me out on it.  I like that you take this seriously.
Title: Re: How to make Jump not worthless
Post by: Neophyte Ronin on July 06, 2012, 09:04:01 pm
Possibly the greatest patching mod I've seen since curing the FFVI Evade Bug.  Virtually every hacker should incorporate this, as it makes Evasion variable and makes Jump+3 more than just a convenient means of getting around some of the really tricky landscapes.  When I hack, this one's going to be involved.

About Glain's Jump Damage determination: does this mean the same value (Caster's) of Jump is used, or would the Target's Jump serve as a divisor?  When I conducted some samples, I noticed that using the same value resulted in less overall Jump Power than if I used an adjusted value, like a superior Caster Jump against an inferior Target Jump.  The reverse would thus be true.  If we're incorporating Jump into Evasion and renaming it something like Agility (or something that can fit five symbols), then a similar comparison of Jump ability should be applied when using the Dragoon's Jump.  It's less of a realism issue than a balance one.
Title: Re: How to make Jump not worthless
Post by: Dokurider on July 06, 2012, 09:58:14 pm
Oh look, people actually read my posts.

Yeah, the Target's Jump would be the divisor. I goofed on the initial formula. The point is, higher Jump = better evade and accuracy.
Title: Re: How to make Jump not worthless
Post by: Neophyte Ronin on July 06, 2012, 10:27:25 pm
Of course I read it.  I never got the stigma behind Jump because I use it to get around the really crazy parts of a landscape; not everything is Move + 3, you know.  And a way to realistically modify Evasion so as not to be absolute is something that a lot of people would look into for their mods.
Title: Re: How to make Jump not worthless
Post by: formerdeathcorps on July 07, 2012, 02:12:43 am
This needs to be moved to FFT Hacking.
Title: Re: How to make Jump not worthless
Post by: Sterling LaVaughn on July 07, 2012, 04:01:25 pm
Curious to see how good these work with Behemoths/Dragons/other 128+ Jump monsters.
Title: Re: How to make Jump not worthless
Post by: formerdeathcorps on July 07, 2012, 04:03:21 pm
The game ignores the upper bit on Jump when it gets translated into BATTLE.BIN Unit RAM; this isn't an issue.
Title: Re: How to make Jump not worthless
Post by: The Damned on July 08, 2012, 04:55:37 pm
(Wait, where was this before?)

Yeah, this is a rather good idea with potential, Dokurider, even just on the evasion level. I'm admittedly not sure how I feel about using it for formulas--sans the actual Jump attack--and all, but it certainly would be a way to make Jump more than just "there" most of the time.
Title: Re: How to make Jump not worthless
Post by: Dokurider on July 08, 2012, 06:26:27 pm
Quote from: The Damned on July 08, 2012, 04:55:37 pm
(Wait, where was this before?)

Yeah, this is a rather good idea with potential, Dokurider, even just on the evasion level. I'm admittedly not sure how I feel about using it for formulas--sans the actual Jump attack--and all, but it certainly would be a way to make Jump more than just "there" most of the time.


Nah it was in General for a while until it was determined it would be a better fit here, it's feasibility be damned (no pun intended).