Final Fantasy VIII Junction Simulator / Calculator
I grew up playing video games and the Final Fantasy franchise has taken up possibly the largest chunk of my gaming time. Final Fantasy VIII (FF8) was the first of the series that I really dove into.
This post is going to be a draft and outline of my next project, an FF8 calculator. What I’m going to build is a simulator of the stats and Junction system of FF8 in a web application.
The Junction system can be described as different steps of assigning. Characters junction Guardian Forces (GFs) which grant special abilities. Certain GFs enable characters to increase stats by junctioning magic to stats. The increase depends on how many spells are assigned and different magic spells affect different stats more or less. For example, defensive magic tends to give bigger increases to defensive stats.
FF8 is a very unique member of the family. Enemies leveled up to scale with your characters. This presents a fundamental difference from other games in the series. You can’t just level up to overpower the enemies because they will level up too and be even stronger. You have to understand the Junction system and level up smarter.
The goal of the application is to accurately display what character stats will look like at different levels, with different junction setups, different abilities. Ideally I’d like to include information about what would have to be done to achieve the maximum values for each stat.
To make this application work, I’ll need to hold a lot of static data. I can get a lot of the data from playing the game but thankfully I found my BradyGames FF8 guide that I had purchased over 15 years ago!

This guide includes tables for every character and every type of magic. It also includes all the GF abilities and other information that I’ll be referencing.
Technology
I can code this a few different ways. Immediately I think to build a React app because I’m most comfortable with it. I know I can use state to track changes in which GFs go to which character and which and how many of each magic are being assigned to different stats. Data can be typed once in the form of plain old JavaScript objects and the app could handle all calculations.
I can use Rails as a backend if I wanted to persist different character builds but I’m not yet sure if thats necessary. I’d have to create and effectively organize classes and relationships. This would be a fun step to explore but it’d might be faster to just create a live calculator in React.
Another part of me thinks to make it only in a single Rails repo. My most recent projects have involved creating Rails API backends and having JavaScript as a front end. I haven’t spent any time writing JS into a Rails app. Rails routing steers me towards thinking of MVC patterns and if I’m staying true to the FF8 system, there isn’t much of a need for most of the RESTful routes in this application.
Next Steps
I’m going to have to play some Final Fantasy! I’ll have to decide which technologies I’ll build this with. The fastest course of action would probably be to just start adding data as objects and seeing what I can do in React.
If anyone familiar with FF8 has any feedback of suggestions, please let me know.
