All right. It’s been three weeks, but yes, I do actually have a theory about why Final Fantasy XIV is adding two gender-locked races to the game now when the developers know full well that it’s a bad idea. But we’ve had some time to get used to the idea, at least, and people are now… no, wait, they’re still just as angry about it as they were when the announcement happened. It’s just a bit less urgent.
Let’s start by taking a step back and looking at one of the more interesting elements of the race reveal. Yoshida kept using the same vocabulary to talk about the additional races, that this is almost certainly the last time. At one point the translation even came out specifically to say that this was the last opportunity to add a new race.
At face value, that statement makes no damn sense. This is almost certainly not the last expansion for the game. There’s no reason to assume that it’s running out of money. We have no signs that there’s a strict rule about how many races you can have playable within a game. You could argue that it’s a matter of poor translation… but the translation is being handled by the head of localization himself, someone who knows about the development and is familiar with the reasoning behind decisions.
Long story short? If we’re being told that this is the last opportunity to add new races, there’s probably a reason why it’s being phrased that way instead of any other way. There’s a reason why we’re not being told that, say, the developers don’t think it’s worth the investment when fewer people will race-change or anything. For some reason, yes, this is probably the last opportunity to do this. Why?
Why, we can explain that with a terrible explanation of how databases work!
First of all, a disclaimer: I am not a developer on FFXIV. My programming knowledge is limited. What follows should not be derived as an absolute primer on the way that every single game works or even a gospel explanation of every game’s coding. It is a series of examples based on the concept and will no doubt contain some inaccuracies. We good? Cool.
Any time something happens in the game, the client running on your computer relies on the game’s data to translate that information into a visual format. So let’s say you walk around a corner and the server tells your computer that there’s another player character there. It proceeds to tell your computer the character’s race, height, equipped gear, facial features, and so forth, and the game has the information to pull that information and put all of it together.
This sort of back-and-forth relies on having certain bits of data segmented off. For example, any time your computer looks for “What race is this player character,” it’s pointed to an index consisting of six entries. This is how a lot of bugs can happen if a computer is told to “retrieve the information for X from the database” and there’s no actual entry there to retrieve; it has to grab whatever it uses as the default. So if a texture is missing and it’s told to retrieve that texture, it throws up the default texture because it doesn’t know what else to do.
Adding a new race means adding another entry here. Instead of “what race is this character” having six valid entries after Shadowbringers launches, it’ll have eight. And the thing is that this needs to be called and referenced a lot.
Entering a cutscene? The game needs to reference your race to figure out where the camera angles are placed, how the animations work, and so forth. Doing an emote? Several of them require different animations based on your race. Trying on a piece of gear? Mounting up on something? Entering dialogue? All of these things need to be adjusted based on your race, and I have no doubt there are more things I’m forgetting.
It’d be enough of a hassle to do this if you had to just add this for every expansion moving forward… but no, you need to do this for every prior expansion. Adding new races now means going back through the entirety of the base game, Heavensward, and Stormblood to make sure that the game knows how to handle the races properly, or else you get awful glitches that could do anything from screwing up your model to outright crashing the servers.
Now… let’s take a step back. What we know, from interviews with Yoshida, is that the staff originally wanted to add Hrothgar for a different beastly race. Viera were also being constantly requested, and he no doubt knew that was going to intensify with the Ivalice raid series. However, as it stands, adding a new race requires a huge amount of extra work to account for three prior installments of the game. It might not be possible to do with the code for four versions; it might take too much time and effort to be worthwhile. So you have two races you want to add for fan demands, and you thus have three options.
- Abandon Hrothgar and add the Viera in both genders. Players who wanted these rabbits are happy; however, this means that you don’t ever get your beastly race because you can’t do this database dance again. So instead you get another race that people will complain feels too similar to prior races and that feels like naked fanservice.
- Just leave out Viera and add in the Hrothgar. This one is going to earn backlash from people who (justifiably) expected Viera, and you can’t even claim that you don’t want to just copy old titles because the Hrothgar are clearly based off of the Ronso. And you’ll probably never get to Viera, either.
- Add in one gender of each race. This is going to make everyone upset because the fans hate gender locking. On the bright side, though, you can set up the database now to handle those two additional races, even if all the information for the non-playable gender is currently empty; if there’s a lot of demand, you can do the art work without having to overwhelm your database.
That looks like three bad choices because they are. The third option just looks least bad. It means that you never wind up in a situation wherein you cannot do one of these races, and it’s definitely possible to add those other genders in the future. You get closest to what you want with that option, even if you know it’s going to disappoint people along the way.
Am I saying that this is definitely what happened? No. For all I know the team genuinely had no idea anyone would want the other gender (that seems unlikely in the extreme, but I’m willing to speculate). But what I do know is that it’s a plausible enough reason for hearing that this was the team’s last chance on more than one occasion. Maybe it really was the last chance for any new races… and Yoshida chose the path that at least didn’t close the door on two full races forever. Just most of the way.
Feedback, as always, is welcome in the comments below or via mail to firstname.lastname@example.org. Next week, I want to start up my no-doubt lengthy review series on Stormblood as a whole, just like I did for Heavensward. That should cover us until near the expansion launch, huh? Let’s jump into that main scenario.