top of page

Final Fantasy Study

One of the first projects made in Unity, this is a study that seeks to recreate the mechanics of the Final Fantasy franchise. It is heavily inspired by Final Fantasy X, and uses a mixture of X and XIII for the battle system and even attempts to create the screen shatter animation from X.

I made this project as a study in inheritances when I first began to code. Funny enough, I now prefer to use composition instead of inheritances, as is the case of the ECS system on my engine.

FF_background1.png

Download

Creation

I started the project when I was still learning the basics of coding and still didn't understand much of inheritances.

It is used in this project for enemies, like the Flans, that have a base Flan and other ones that inherit from it, like the Fire Flan.

The project also allowed me to delve into the creation of a timed battle system, with multiple actions, magics and skills.

The project took around two months to complete and contains three distinct characters, as well as 5 different enemies that can be triggered on the grass.

FF_background1.png

Characters

There are three differen types of characters the player uses.

The one with the sword is a Melee type unit and goes best against Grounded enemies.

The staffed one is the Spellcaster and has better affinity with magics, being more frail to normal combat.

The one with the gun is a Ranged unit and has better chances hitting Flying type enemies like the butterfly, and is better with skills.

FF_background2.png

Enemies

There are two areas in the game where enemies can be found. The battles are triggered by walking on the grass patches that are on the right and left sides before the town.

The right one can contain Flan type of enemies, while the left side can contain Skeletons and Butterflies.

The encounter works by having a percentage of chance raise during the time the player is walking through the grass. Once the random number generated is enough for the current chance, another random number is generated. Depending on the result, a group of enemies is chosen from a pool set and presented for the player to fight.

Once the battle is over, the chances are reset and the overworld goes back to normal again.

FF_background2.png

Battle System

The battle system is a mixture of Final Fantasy X and XIII, with each character having three action gauges that fill as time passes during the battle.

On the menus, actions can be selected for each character, during their respective phases, and will resume when enough gauges are available for the action to be taken.

The enemies, meanwhile, decide on their actions based on a random number and must wait the appropriate time for their actions to take place.

Larger more complex actions consume more action gauges but are more powerful.

There are also certain skills, such ad "Delay" type of skills that removes a certain amout of the enemy timer,effectively slowing their actions down.

FF_background2.png

Programming

Coding the battle system took quite some time due to random numbers generating a certain delayed response when testing the battle.

Interesting enough the most difficult part was actually the menus.

The menus are coded in a way that in order for certain menus to be available as a choice, the player skill tree has to have at least one of the specific actions enabled for it.

Each menu has a succession of menus that are triggered when needed. The main menu, for instance, can go into skills, into a specific skill and then into a target selection menu. 

A big problem is that if the menu's owner dies during battle, the whole process must be terminated, each individual index must go back to the start, so that they can be used again when the character is available once again. Missing any piece will either crash or create odd behaviours.

FF_background2.png
bottom of page