The job tree – iterations

A job (aka class or role) is a specification used to define a player character’s skills, abilities, and stats.

job-tree-0

Iteration 2

Earlier draft of the job tree. Freelancer was a separate job with no antecedents. Apparently I planned to have Necromancer related to Alchemist.
job-tree-1

The freelancer became a prereq job.

The magic jobs were renamed to emphasize their similarity.

The magic jobs got a third stage in their tree.

Stareomancer became the much less magical-sounding Ranger.

Iteration 3

job-tree-2

Freelancer became Adventurer, which shifted over to a prereq for the magic jobs. Their third stage was removed. (The fewer exclusive jobs, the better.)

All jobs were normalized to have a level 3 prereq.

Iteration 4

job-tree-3

Merchant and Alchemist lost their Mir-exclusive status, and became part of the Adventurer tree. (Again, the fewer exclusives, the better.)

Page was a new job added as the first stage of the magic tree. It then branches simply with each player character getting their own variety of Channeler.

Copycat became Sage.

Halving the player’s HP

Recently I’ve been playing Final Fantasy Tactics Advance A2, and I’ve been appreciating their relatively low numbers. The highest HP I’ve seen in the game is around 700 total.

So, for FCA, I’ve reduced all of the playable character’s max HP by half.

It’s much too early to balance the game, but the original values were clearly off. End-game bosses needed to take three turns to kill a completely unequipped player character. That’s far too much.

Examining damage to HP ratio

The formula for most damage in the game is:

Math.power(a.atk, 1.5)

Or, in English:

The battler’s attack stat to the power of 1.5

That means, even at the soft cap of 99 ATK, an enemy’s skill would deal 985 damage against an unarmoured target.

In the early days of development, the highest HP class in the game had 5300 HP. That’s now down to 1300, and the lowest HP class now has 540. Now we’re looking at the possibility of characters being tanks or glass cannons.

Creating more varied gameplay

Lowering HP should have the effect of increasing the value of armour, which is good. I don’t want players to have to grind too much for anything in particular. So I’ll split the burden of empowerment between gaining levels and gaining gold to buy equipment. It’s not much, but it’s a start to increasing diversity of the standard gameplay loop.

Skills targeting friend or foe

A lot of skills in this game fall into both of these categories:

  1. Can target friend or foe
  2. Hit multiple targets at once

… which is more complicated that it seems. By default the engine lacks support for the player changing targets between friends and foes.

Attempt one

At first I used Yami’s Invert Target. It’s a buggy mess. A community-created compatibility patch fixed it for a while, but eventually it started to give me errors again.

Yanfly to the rescue

I recently switched to Yanfly’s Selection Control. It’s a solid plugin, compatible with Yanfly’s other works. But it still doesn’t support both of the conditions I mentioned. You can either have a skill toggle between friend and foe, OR have it hit multiple targets.

I compromised by writing this block of code for each of my multi-target skills:

for (var i = 0; i < target.friendsUnit().aliveMembers().length; ++i) {
 var member = target.friendsUnit().aliveMembers()[i];
 targets.push(member);
}

After the player selects a target, all of the target’s allies are added into the scope of the attack.

It’s still not the most elegant solution – the selection cursor only appears over one target at a time – but it’s stable and it works.

Bravely Default menu

bravely-menu

Final Fantasy 5 Menu

images-duckduckgo-com

RPG Maker MV default menu

FCQ menu V1

mymenu

Bravely Default, and the job-based Final Fantasy series before it, is a big influence on this project. The way their menu organizes information is a lot more elegant than what I have now, so I’m going to have to move in that direction.

FCQ menu V2 (Updated December 2016)

Automating pixel art

angel-mv

angel-mv-2

Using filters to turn full-colour illustrations into pixel art usually results in a sloppy final product.

But… it’s much less time intensive than drawing each sprite by hand. I’ve iterated on my automated Photoshop action many times, and it really fits the style I’m going for. In lieu of a budget and artists, it’s a good fallback.

I appreciate how the low fidelity of pixel art allows your imagination to fill in the details. Of course, my opinion is overwhelmingly coloured by nostalgia.

Image from RPG Maker MV. A low-resolution version is used for the purposes of education and commentary.

Iterating on the enemy design

Iteration 1

scorpion

Iteration 2

scorpion-2

Notably, the palette has been restricted to match the rest of the game. True black no longer exists.

Shadows have been removed, since they’re difficult to do manage consistently, especially if characters will be floating/jumping.

Iteration 3

scorpion-3

 

Between iterations, the average sprite size became a little larger, then scaled back down again. I’m trying to keep them all relatively the same size. Larger = psychologically more threatening, so I’m saving larger sprites for boss monsters.