jueves, 5 de marzo de 2020

Exploring Monster Taming Mechanics In Final Fantasy XIII-2

Let's just get this out of the way. I'm a huge Final Fantasy fan. I adore the original game even today, Final Fantasy VI is definitely the best of the franchise, and I've found things to enjoy in every one that I've played, which is nearly all of the main-line games. (I still haven't managed to crack open FFIII, but I plan to soon.) Even each of the games in the Final Fantasy XIII trilogy had something that drew me in and kept me going through the game, wanting to learn more. These games get a lot of flack for being sub-par installments in the Final Fantasy franchise, and some of the criticism is warranted. The story is convoluted, and the plot is as confusing as quantum mechanics.

That debate, however, is not why we're here now. We're here to look at one of the great aspects of FFXIII-2: the monster taming and infusion system.


This system is deep and complex, but not in the off-putting way that the plot is. The amount of variety and configurability in the monsters that you can recruit to fight alongside Serah and Noel is astonishing, which is nice because those two are somewhat lacking in that department. Their development paths are fairly linear. There are a few choices about what strengths to give them as they level up in the "crystarium," but it's mostly a matter of ordering the abilities they learn and doesn't make much difference in the end. The monsters, on the other hand, allow for huge variations in development that results in a system with fascinating choices for optimization and prioritization. Figuring out how to capture and develop powerful monsters early in the game is great fun, and its this characteristic of Final Fantasy games—of finding ways to build a strong party early in the game without tedious grinding—that I really enjoy.

On a totally different note, I've been considering different ways to practice using databases and building simple websites, and the monster taming system is complex enough and interesting enough that it would make for a good collection of content to use for that practice while having some fun in the process. So, the other goal of this series, other than exploring the monster taming system in FFXIII-2, is to explore how to get a data set into a database, put it up on a website with Ruby on Rails, and experiment with that data set in some novel ways. Before we get into all of that, however, we need to understand what the heck we're putting in the database in the first place, and to do that we need to understand this monster taming system in detail.

Monster Taming

Okay, what is this monster taming, and why is it so complicated? We'll have to start at the beginning and work our way through the system. At the start of the game there's just Serah, trying to stay alive. (Actually, the very start of the game is a flashy battle sequence and confusing plot points with Lightning, but let's ignore that.) Pretty soon Noel shows up and decides to help Serah out, so now it's a party of two. This setup goes on for a couple levels, but it's pretty weird for a Final Fantasy game. Normally there's three or four characters in a party. Then we come to a pitched battle with a Cait Sith and a Zwerg Scandroid. There will be a lot of weird monster names throughout this series. You're just going to have to roll with it. Anyway, after creaming the cat and the droid, they turn into monster crystals, which are basically the essence of monsters. These crystals are stored in your monster inventory, and you can assign three of them to coveted spots in your "Paradigm Pack" (not the name I would have picked). These three monster spirits will fight with you in battle, and so begins your long and precarious journey as the monster whisperer.

Monsters come in six basic varieties, conveniently matching the six roles that Serah and Noel can assume. These six role are briefly explained as follows:
  • Commando - The Arnold Schwarzenegger role, plenty of strength, short on finesse.
  • Ravager - The mage role, uses attack magic.
  • Sentinel - This is a tank role, not many attacking options, but it absorbs damage like it's nothing.
  • Saboteur - Weakens the enemy by removing protections and inflicting ailments like poison and slow.
  • Synergist - Strengthens the party with offensive and defensive enhancements. Also moonlights as a business executive.
  • Medic - Heals the party, and possibly the only obvious role name of the bunch.
While Serah and Noel can switch between these roles, the tamed monsters have fixed roles. Switching the monster's role switches the monster, and there are three role possibilities for any given battle corresponding to the three monsters that are on deck. The monster's type is only the beginning of what a monster is, though. There is so much more.

Monster Training

Monsters can gain experience just like Serah and Noel. Both the humans and the monsters have crystariums where they advance along a path to gain abilities and increase their stats. While the humans have a crystarium for each of their six roles, the monsters each have one crystarium, possibly with multiple levels, where they gain their abilities and stats. Because the crystariums of the monsters are more unique to the monster itself, each monster type will learn a unique set of abilities and end up with different stats. Additionally, while the humans can move through their crystariums by spending crystarium points gained from winning battles, monsters can only advance on their crystariums by using various types of monster materials that are dropped by defeating monsters in battle. This seems to be some form of cannibalism, but it's pretty mild because the materials are bolts and orbs and other things like that. Monsters require different materials for their crystariums depending on what level they're on their crystarium, and if they're biological or mechanical monsters. Different materials will also give different bonuses to the monster's health, strength, magic, or all three stats.

Following so far? Because we're just getting started. This monster whispering is intricate stuff. On top of the unique upgrade paths, abilities, and materials, each monster spirit has a set of characteristics that relate to how they will develop as they level up. A monster can be a "late bloomer," meaning it may be weak to start with, but it can reach the upper levels 70-99 of its crystarium. Maybe the monster is "brainy," meaning that it will learn lots of abilities, or it's "flameproof," which is pretty self-explanatory. There are 29 characteristics in all, and any given monster can have up to four of them. Monsters will also come with some initial abilities, whether that be actions like casting certain spells and attacking or passive abilities like "armor breaker" that allows it to penetrate an enemy's physical defense. Taming and training monsters are not the only ways to get monsters with certain abilities, however. This is where things get real, as in real complicated.

Monster Infusion

The third way to give a particular monster new and wonderful abilities is to take another monster that has the desired ability(ies) and fuse them into the desired monster through a magical monster infusion process. How does this work exactly? Who knows! How did materia work in FFVII, or guardian force cards in FFVIII? It's a Final Fantasy game; some things you just have to accept without question and move on. The source monster spirit is lost in this process of infusing the target monster with new abilities. It's a destructive process.

Losing the source monster is not the only cost, though. There are restrictions as well. The first restriction is that a monster can only have 10 passive abilities. If a monster accumulates more than 10 passive abilities, some of them are going to have to go. These abilities all have a rank, and higher ranked abilities will stick to a monster better than lower ranked abilities. Also, newer abilities are stickier than older abilities, according to when the monster learned them. The lowest ranked abilities will get the boot first, with order of acquisition being the tie-breaker—first in, first out.

The next restriction is red-locked abilities. These are abilities that cannot be transferred to or removed from a monster, ever. This restriction is pretty simple, unlike the next one.

Monsters can also have yellow-locked abilities, although these locks never exist by default. Yellow locks can be created, propagated, and destroyed by infusing abilities of the same type in various ways. Two abilities are the same type if they modify the same attribute. For example, HP +10% and HP +25% would be of the same type. Also, HP +10% is a lower rank than HP +25%. That's important for yellow locks because if you infuse a monster that already has a lower rank ability with an equal or higher rank ability of the same type, the infused ability comes with a yellow lock and will stay put when the monster's abilities overflow. Generally, if an ability of higher rank is added to a yellow-locked ability of lower rank, the yellow lock is kept. If an ability of equal or lower rank is added to a yellow-locked ability, the yellow lock is destroyed. It's a bit more complicated than that because there are about a dozen different combinations, but this summary should be sufficient for the purpose of setting the requirements of the database. Basically, we want to make sure we know the rank of each ability so that we can figure out the best way to develop monsters' abilities.

All of the red lock and yellow lock stuff has to do with passive abilities, but there are two other types of abilities that come into play with monster infusion: role abilities and hidden abilities. Role abilities are the actions that the monster will take in battle, and there is no limit to the number of these abilities that a monster can have. When a source monster is infused, you can choose from its role abilities up to the number that its crystarium stage is at, which will be 1-5 depending on how much you can level up the monster and how much you actually leveled it up. The disadvantage of infusing too many role abilities on a monster is that you don't have control over what it does in battle, and if it has too many options, it probably won't be doing what you want it to do when you need it most. Decide what you're going to use a monster for, and then don't give it choices. You can't remove role abilities once they're infused.

Lastly, hidden abilities are learned by a monster when it is infused with 99 levels worth of monsters of the opposite role. Commando and Ravager are opposites (makes sense), Saboteur and Synergist are opposites (makes even more sense), and Sentinel and Medic are opposites (the leftovers, I guess). For example, you could infuse nine level 17 Zwerg Scandroids onto your Red Chocobo, and it'll learn Jeopardize, which boosts the bonus the chocobo gets when attacking a staggered enemy. Each role has it's own hidden ability that it gets when those 99 levels of monsters of the opposite role are infused into it.

Acquiring the Data for the Database

Okay, that was a bunch of intricate, complicated stuff, but it gives us a good idea of what kind of data we want to put in our database so we can link it up and ask interesting questions about monster infusion. 

First, we want to know all about monsters:
  • What's its name?
  • Is it tamable? We might have a separate tamable monster table since most of the following properties wouldn't apply to non-tamable monsters.
  • What materials does it drop in battle?
  • What's its role?
  • Where in the game can we find it?
  • What are its characteristics?
  • What's its max level?
  • What are its starting and ending stats (HP, strength, and magic)?
  • What are its starting abilities?
  • What abilities does it learn and at which crystarium levels?
  • How many crystarium stages does it have?
  • What is its feral link? (We didn't talk about this. It's a special action that can be triggered when the monster gets hit too much.)
  • What does the feral link do?
  • We could also include pictures if we want to get fancy.
We also want to know about abilities. This will be a separate table:
  • What's its name?
  • What's its rank?
  • What does it do?
  • Is it passive, role, or hidden? These may be separate tables, since they're different enough to warrant it.
  • Which role is it associated with?
We'll be interested in at least one aspect of the areas in the game:
  • What's its name?
  • How early can we reach this area? I.e. which area unlocks this area?
Since there's a fair number of monster materials, we'll want to keep track of those:
  • What's its name?
  • Is it biological or mechanical?
  • What stage of the crystarium is it for?
  • Does it boost HP, strength, magic, or all three? (The name does give this away, but let's be thorough.)
We'll also want to know a little about the monster characteristics because the names are not self-explanatory:
  • What's its name?
  • What does it mean?
This is shaping up to be a reasonably complex database with 5-8 tables interlinked by these different items' names. The relations in the database will happen through IDs, but everything does have a name as well. The names will be what appears in the tables presented as views of the database, likely with hyperlinks to their information in their own tables. So how should we get all of this data into a database? I certainly don't want to enter it by hand. There's over 150 monsters, dozens of abilities, and dozens of properties for each monster. 

Luckily, some ambitious people have already done the hard work of writing out all of these things in an FAQ, and it's available on gamefaqs.com. The Monster Infusion FAQ by sakurayule, BMSirius, and Taly932 contains almost everything we want to put in the database. It also contains example builds for post-game super monsters, but we're going to look at something a bit different with this series. We want to figure out the best monster builds we can do during the game in order to have monsters that can help us through the game without the need to do any grinding. All of the necessary information is in that FAQ. We just have to write a script to parse it and put it in a form that's easy to import into the database. That parsing script is what we'll figure out how to write in the next episode.

No hay comentarios:

Publicar un comentario