Monday, March 16, 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.

Sunday, March 15, 2020

TiRoBEx Terrain

Here's what I manage to finish up for TiRoBEx before CaptainCon. The ruins were fun, when I finally get around to the loads that I have for Epic I think I'll have a good process.

Ruined Building Ruined Building Ruined Building Ruined Building Ruined Building Tiny Robots Tiny Robots

Thursday, March 5, 2020

You Spoke, We Listened! Oceanhorn Coming To PS Vita On May 17Th



In September 2016 we released Oceanhorn on PS4 and Xbox One, our very first console game. Since its release we received so much love and overwhelmingly positive feedback from console gaming community. Thank you so much!

Oceanhorn  is our love letter to action adventures from past generations and combines the action and puzzle elements from Zelda games with the emotional journey of the Final Fantasy and Mana series.

Oceanhorn on PSVita in action

Wow these colours pop on the PS Vita screen!

Soon after launch we received many requests from players who'd love a portable PS Vita version of this game so we decided to do a Twitter Poll about it. What followed was an incredible Tsunami of likes and retweets – it blew us away! We are very happy to announce that Oceanhorn – Monster of Uncharted Seas will arrive on PS Vita on May 17th, 2017.


Taking full advantage of PS Vita


We've been working hard to deliver the same gameplay experience that you've loved on consoles, so we put many hours into optimizing our code. We're very happy to confirm that the whole game runs beautifully on the PS Vita delivering smooth performance all the way through the entire game.

It's just amazing to see the game coming to life on the colourful PS Vita display. Everything looks so expressive, adding an extra punch to the huge variety of islands like rainy forests or scorching desserts. Explore all of them on the go!

The game will take you from the deepest dungeons to the highest skies


Beautiful Game for a beautiful Handheld System


We didn't stop with just porting it, we also added features to take advantage of the Vita in unique ways. You decide if you want to use them or play in a traditional way. First of all we enabled Touch Screen for casting spells and to navigate the menus. This is a very comfortable and direct way of choosing targets or menu options.  Furthermore we enabled PlayStation TV so you can play on the big screen.

Oh and in case you're wondering: The game features its own set of trophies, so all trophy hunters rejoice, another Platinum Trophy to hunt for. Altogether we aimed to deliver a must have for every PS Vita library and it's our way of saying thanks for your support. Cheers!

Korbinian Mossandl// Producer, FDG Entertainment



Newly-Made High Quality Controllers For Vintage Consoles

When you see new controllers being sold for your retro video game systems in your local retro video game store and in many online stores, they are typically of the atgames, Tomee, Cirka, Retro-bit, Gamerz-Tek or Hyperkin quality, which is essentially no-quality.  When you buy these controllers, expect cheap plastic, stiff or rattling buttons, thin and short wires, useless turbo options and terrible D-pads.  Occasionally one can find quality products that go above and beyond and try to compete or exceed the quality of original, first-party controllers.  Let's take a look at some of the respectable options for your classic consoles.


Read more »

Storium Theory: Inaction In Action

Sometimes, I see players make comments in a game, explaining why they haven't made a move in a challenge so far:

"I don't think this is something my character knows how to deal with."

"I'm not sure she cares about this."

"I think he's just kind of stunned right now.

"She doesn't know what to do."

Sometimes these are indications of a problem in the story - if all of a narrator's players are telling him their characters don't care about the current situation, it is probably time to revise the situation and figure out how to better relate it to the story at hand.

But...more often, they're a statement that is actually pointing directly at a very interesting opportunity for the character: A chance to make inaction your action.

When you're writing the story of a challenge, things are happening, whether your character is acting on them or not. Each move drives the timeline of the challenge forward. When a card is played, something happens, and the challenge moves positively or negatively, or just towards the end of its story.

So...if your character, for instance, doesn't know how to deal with something, and chooses not to act...that's a choice. And that's his "action" for that moment in the tale.

So let it be an action! Make your move! Show your character's uncertainty or confusion about what to do! Show how your character hasn't cared about the situation, if that's the case, and chooses to ignore it! Show how the situation has left your character stunned, or how he's tired and needs rest, or how his injuries prevent him from joining the battle!

Sometimes, those things are treated as reasons not to make a move, but...that's not what they should be. They are, in fact, excellent opportunities to make moves.

Especially...especially...if you have either Weakness cards to play, or a Subplot.

I'm stunned. I'm confused. I'm shell-shocked. I'm injured. I'm exhausted. I just plain don't care about this.

Those are all excellent weakness plays.

When a situation is ongoing and your character chooses not to do anything about it, that's a great opportunity to show what starts going wrong with the situation because your character is not preventing it. Philosophically, there's nothing really different here from if things start to go wrong and your character tries to prevent it and fails because of a Weakness, right? Something goes wrong either way. The difference is just that your character, in this case, didn't do something to stop it instead of doing something but getting it wrong.

What about Subplots? Well, Subplots are great for these situations too! When a character is shocked into inaction, when she finds something she doesn't care about, when he struggles to understand what he's supposed to do in a situation...those are great times to explore the other mysteries in a character's life or the things the character does care about. There are some excellent subplot moves available that show how the character withdraws into themselves, or starts thinking about how all this ties in with their personal problems, or tries to examine where they are right now...and because of all that, something starts to happen in the current situation, and they're not really sure what to do in the face of it...or even if they should do something.

A subplot isn't a weakness play, mind, so chances are nothing ends up going outright wrong right away, but you can certainly hint that something will! While your character is distracted by his own thoughts, or full of self-doubt, or struggling with what he's supposed to do, or disinterested in what is happening, how does the situation evolve?

If your character doesn't seem certain of what's going on, or doesn't know what to do, or just plain doesn't care...don't just drop out of the challenge. Use that to advance the challenge.

Now...one more point on this. Especially in the case of a character that "doesn't care" about a challenge, this can actually be a great way to figure out what would make them care, and therefore explain how a Strength comes into play, or at least how they get involved in the challenge despite their feelings. If you find yourself thinking that your character just wouldn't get involved for some reason or another, put a little time into thinking about what might happen because of that decision.

Then, write a move based on that...and maybe, maybe midway through the move, you'll realize the character now does know what to do, or does care about the situation, as she sees what is about to happen, or starts watching something she does care about slip away.

Maybe that leads to the character using a Strength and turning things around after all. Or maybe the character ends up doubling down on fear or uncertainty, or just takes the wrong action, using a Weakness. Or maybe, the character's Subplot drives him forward, making him engage with the challenge now that he's seen what it could mean if he doesn't.

Now...this isn't something you need to pull in all the time. (And to be clear, if you find yourself constantly trying to figure out why your character would get involved in something, it may be time to talk to the narrator about how to make your character mesh better with the story.) But there are times when an inability to think about something that your character would do can itself be precisely what drives the story forward and makes an interesting situation.

Don't overuse this, but...keep it in the toolbox. It's a handy trick to pull out and it can lead to some astonishingly interesting moments for a character if used properly.

Remember Spider-Man and Uncle Ben...sometimes, when your character doesn't take action, that ends up driving his story more than anything else.

Wednesday, March 4, 2020

Riders Of The Pony Express Update

A few months ago, I dusted off my Riders of the Pony Express prototype. It went over really well with my current playtest group, which is always nice to see -- they don't love every game, and it makes me feel bad forcing them to play the ones they don't enjoy enough to "finish" them.

I played RotPE a couple more times lately, and tried the changes I listed in my last post:
1. Increase value of Bears from +2 to +3. I wanted to make the Bears more different from the Bandits (which are +2), and I wanted to make the Shotgun item better... a shotgun can be discarded to remove a bear or bandit from the board, but that's really not worth using ever. This change to +3 accomplished both of those goals, though the shotgun STILL wasn't good enough. Yesterday I tried an improved version of the shotgun: ONCE PER ROUND you can "kill" (turn face down) a Bandit or a Bear. This way you can use it twice, for 2-3 each time, which is a little better - maybe worthwhile. But I'm considering not even having that limit (after all, removing the tile helps other players too!)

2. Deal mandatory parcels face up instead of face down, they don't use up inventory slots. This change seemed good, and simplifies the rules quite a bit. Along with this change, I reduced the max inventory back down to 4 items. Of course, this means you must deliver it before the end of the round.

3. Instead of random parcels for rounds 2 and 3, let players draft from a face up supply of N+1 parcels when they arrive back at the post office. This worked well. It might be a little awkward to have to deal more cads out when you're done auctioning cards for the turn -- maybe better is to deal them at the same time you deal he cards to auction (put the auction cards on one side of the board and the new parcels on the other side)? Anyway, it seemed like a good change.

4. Movement change: Move from town to hazard, or hazard to town... This was proposed by Hoss because he did not feel like it made sense the way I was doing it (move from town to hazard, and on your next turn, finish moving into the town you were heading towards). However, we found hazard-town-hazard to be sort of tedious, and didn't like how that felt. As a compromise, we went back to what I had, but explained it a little differently: you move from town to town, but you ACT at the BEGINNING of your turn, not as you arrive in a town. So you move to the next town, paying whatever cost (by moving your time marker). Then next turn you deliver (if you have anything, costs 1 time), buy an item (if you want, costs 1 time), and then move to the next town (costs some amount based on route, hazard tile, and items you have). This format worked well, and I think it communicated better also.

In addition to those changes, one of my players had a good suggestion: the time track started out going down $1 per space, then later along the track it went 2 spaces per $ drop, and eventually 3 spaces. Aaron pointed out that that felt backwards... once you're already spending a lot of time, spending even more time didn't really cost you anything. So I reversed that... now at the beginning of the track you move several spaces before your reward drops, but farther along the track you lose $1 per space, and near the very end of the track you actually lose $2 per space! I also added a dead stop at the end of the track -- if you hit that, then your delivery phase is automatically over, and you lose $10 for each undelivered parcel. Those changes have all helped combat dynamics I didn't like in the game, and they work toward making sure players care how much they bid for things.

As I mentioned above, I beefed up the shotgun item, which is a definite improvement (side note, it combos with Spurs now, since you can remove the hazard AND then get your spurs discount). In addition, I tried changing the maps to say "ignore the hazard tile when moving to town X" rather than a discount of 2. This made the maps a little more variable, potentially more attractive (at least in some cases), and reduced some of the match involved in calculating your route. As it turns out, this makes maps better for Mountains (+5) and Bears (+3), the same for Banidts (+2) and Lost! (+2), and worse for Snakes (+1) and Rivers (+1). At first I didn't like that (I fear the maps are already not good enough), but you CAN discard them to any Lost! tile, and players seem to think they're worth getting, so maybe they're fine. I think I'll try the "ignore hazard" rule again to see if I want to keep it.

Similarly, Compass should say "ignore Lost! tiles" to help minimize the arithmetic in the game.

Finally, one of the worst parts of the game is the fiddly setup -- drawing a million square tiles and placing them on the board, then removing the tumbleweeds and snakes. Then in week 2, adding more tiles, only to remove tumbleweeds again, etc. I'm looking for a way to do bigger tiles that each cover several hazard spaces, so that setup can be simpler but the map board could still be somewhat variable with respect to where the mountains, rivers, and Lost! tiles are.

It would be cool to make the map not look like a schematic/grid as well!

XCOM - The Long War Files

I recently became obsessed with XCOM: Enemy Unknown and decided to try out the player made overhaul known as "Long War" which expands the base game to be exceptionally difficult and in most regards more like an actual war. I decided to blog the exploits of my team in a yet unnamed project. I'd like each post in the series to be a stand-alone short story about the experiences of those involved - with some scattered pictures of the mission highlights. One of the greatest parts of the XCOM series is the stories it generates about these characters and their ordeals. I hope to capture some of that and share it here in this writing project.



Table of Contents