Blog

November 9, 2006 – A Brief Break with Final Fantasy 12

There aren’t many video games I follow now a days. Actually it’s down to just Halo and Final Fantasy. You can blame the later for the recent lack of posts. Final Fantasy XII came out this past Halloween, a game I had been waiting for for years. The Final Fantasy series all has excellent storylines with great twists, well developed characters and enough fun things to do to keep you interested for a while. While this has absolutely nothing to do with programming, there is one part of the game that I looked at as a programmer and said man this is cool.

The way the battle system in the game works, you don’t have to attack each baddie individually as might expect as is tradition for games in the Final Fantasy series. Instead you can earn these things called gambits , which, when setup correctly, will do battle for you. Here’s how it works: you setup event listeners (up to 12) and associate them with actions. There is an order for these event listeners, so if the conditions for multiple listeners are true it’ll only use the first one. Sounding like a switch statement? yeah read on. The goal is to setup these gambits so you can walk up to any group of enemies and your characters will take over with their automated events. Some examples of these gambits might be (in literal terms) “whenever a character dies, revive them”, “whenever any characters hit points drop below 30%, heal them”, “whenever a foe has 100% health, steal from them”, and so on. There are well over 150 unique events to listen for, and even more actions, which can make for lengthly programming of multiple characters before a battle. There’s nothing quite like writing something and seeing it execute in real-time. I have to say it reminds me of Karel the Robot in a way.

As with anything though, testing is the key.

Avatar for Adam Fortuna

Hey hey! 👋

I'm , a full-stack product developer in Salt Lake City, UT. I love enlivening experiences, visualizing data, and making playful websites.

Let's keep in touch 🧑‍🤝‍🧑

Did you link to this article? Add it here