FFXII's Programmable AI Party – LambHoot

So quite a while ago Mr Martin over here sends me a tweet that I may or may not dig up just to put on screen here for a second, but anyways, he’s tells me “heeeeey “I know you’re into what’s AI shit and bots and artificial partner systems in games what with your critically acclaimed videos on the subject spanning from exactly the resident evil series all the way to this one Medabots game So hey maybe you should check out Final Fantasy 12, I think you’ll like it.” I looked into the game and it’s reviewers and critics and immediately became familiar with exactly why it was recommended I take a look Martin, thanks to my friend we have gathered here today Now let me for a moment get real, you know take myself seriously for a moment, drop this air of self-flagellation I kind of keep around for videos If you’ve been around for a while this might be boring, I’m gonna go into a little bit of a self history lesson here which turns from my side is quite important cause there’s always a lot of new people coming here who don’t know what I’ve been up to or what I’ve been talking about for the past 3 freaking years So, here we go In my relatively short time making the sorts of videos I have made on this website I’ve been come to know as “the guy” of a few different things; for instance I have for a long time been “the spongebob guy”, a title I got for making what were, at the time, some of the only … ooOOOooooh I wanna say above average videos on these then old and now older spongebob video games I’ve also been associated with such series as Resident Evil, one of the few subjects prevalent in both pre and post renaissance eras of LambHoot But more recently and more importantly however Pikmin It’s easy in this space to couple yourself to people interested in certain games or discussions of them by simply covering them consistently, as I’ve learned Something harder to do though is tie yourself, as a creator or artist or writer or video maker, to a subject or thematic identity The intelligence behind youtube’s search and recommended features isn’t tuned to that sort of thing just yet Despite that though something I tried to do a lot in the past and slowly seemed to have abandoned nowadays was what got a few folks out there calling me not the “spongebob guy”, not “the resident evil guy”, not even “the mexican guy” fuck do you guys remember when people thought I was mexican? That was like, that really kinda made me feel weird Like, what, do Americans just assume that anyone with any sort of noticeable ethnicity must be mexican? Jesus Christ Anyways That thing I used to do is what got me called “the diagram guy” Here I was, hot kid on the block half-way through a SoEng degree, just learned me about state machines and what stands to reason IS the most powerful language, UML You pick up the Unified Modeling Language and suddenly everything looks like a design spec ah? So that’s what I did Partly fueled by my passion for my set-to-be profession and that of favorite hobby PLUS feeling underrepresented in the game critiquing space at the time with most video guys hitting the artistic side really hard but barely scratching the surface or frankly even being able to talk about the inner workings of these things, ouf I came at this with an agenda I wanted to be one of the first of my kind I wanted to explain really complex problems and equally complex systems built to solve them in a digestible way with high energy like a combination of the sorts of videos about games people were already watching and the performances of some of my best university lecturers I want you to know that I have stolen certain mannerisms and expressions from my professors that I identified as things that helped me follow along in class I’m plagiarising my profs dude No this is beyond plagiarism, this is identity theft! And yeah, one of the things I hit real hard with was diagrams A lot of UML for general stuff but what was a best hit was the state machine See, state machines are really fucking simple to plot and simple to read It might be hard for someone who’s never thought of it that way to picture how objects and classes are broken down hierarchically, but states and actions and conditional triggers? People dig that shit man, it’s like flow-charts ++ Famously, by my standards, I formalized the entire behavior of the bot partner from Resident Evil 5 to make the point that it could be done as an exercise by any player of the game and that knowing its exact behavior imposed limits on the human player of the game Infamously, also by my standards, I built a state machine representing the entirety of the game Five Nights at Freddy’s to prove that I didn’t poke holes in the game because it came pre-poked I used it to critique the underlying logic of the game and expose how a bug I had less than a 0.2% chance of experiencing had no reason to exist and persist across every game in the series up to that point These were fun videos to make in my opinion and people’s responses to them were really

good It was clear that I was hitting some niche that people didn’t they wanted which was that of explaining highly technical processes and using formal methods and reverse engineering practices as a part a game’s critique and analysis, coming from someone with, yeah, at this point I can say, authority, specialization in this sort of stuff but keyly without the sort of dull monotone delivery you’d expect But I think sometime around my Breadth and Depth of the Wild videos I realized that there was a limit I was stretching hard to make very abstract mathematical bullshit accessible and entertaining which was received by a lot of people as being a very condescending articulation of stuff that didn’t really matter And so that realization was the usherer of what I’d like to call the Pathos Ethos era of LambHoot Basically what I progressively started doing was still applying the same sort of analytical mindset given to me by my school and profession, but I was framing that with bits and pieces of myself, my personality, my experiences and feelings It was a readjustment of the scope of my breakdowns, initially targeted at specific components of games, now instead my aim was to perform such a breakdown of my own feelings towards these games instead This might sound like the same kind of process, but if you’re someone who works similar kinds of written video projects like I know many of y’all are, you know there’s a distinction here My best example of this at this point is my latest video on Pikmin 3, I think that’s the best job I’ve been able to do at that and I’ve happily proven myself my adaptability, that I can pivot and learn to do new things But, still some of my initial motivations for my original style hold true The disciplines of computer science and software engineering are highly underrepresented in the hobbyist critic space, probably cause they’re very busy… I can definitely understand that given my fucking experiences! And still, when people do manage to effectively communicate really complex technical topics, holy shit does everyone go wild Like, fuck, you know how many video makers out there have backgrounds in psychology and how interesting their works are? There’s something so special about listening to someone with an expertise in something apply that to a game in the form of an essay, and what I’m saying is that for as fucking critical as software is to games, it’s a shame that you don’t see as much of it coming up in analysis I wanted that to change and I still do I don’t want the only place to get cool technical content about games to be straight from the horse’s mouth via things like gdc talks and crap, and also don’t like seeing this growing problem in the critic space that is a misunderstanding of how software works and, more importantly in my opinion, how software development works Fuck, okay, back on track What I wanna say here is that yeah, I’ve stepped away from an approach to dissecting games that I felt I could uniquely do and so had a lot of value, and I did this in favor of something I’ve come to enjoy more, I would say But I think the real problem was that it just turns out not EVERY game warrants that sort of scrutiny Some though do, and when it comes to those sorts of games, fuck man, let me be the diagram guy for just a little bit I’m making the decision to bring it back when the discussion warrants it and the topic ai partners and bots certainly does This is something I think I can offer some unique input on that nobody else in this space would and so I have to thank my boi Martin for affording me this opportunity to look back where I’ve come and where I am and recommending me a game honestly, context-considered, has in me awe And right before we go into it, I’d like to invite anyone to anytime recommend me games like this they think my input would be valuable on Let’s begin And with that time to take my first shit Final Fantasy 12 actually is not a game with an ai partner system Rather it’s a game with an ai party system where you can take what I’ll call “partially” direct control over any one member at a time, designated temporarily as the leader What this control amounts to is really just their walking All other actions can be handled automatically by the game’s systems and manual control can be used to override that, but that manual control extends to all characters regardless of who the current leader is In other words, while “in control” of one character, the actions of all others are still available to be overridden which is only possible because while the game may present the illusion of real time combat, what’s actually going on here is a non-traditional interpretation of a turn-based fighting The way it works is that instead of a traditional turn, each character and enemy has a move timer of variable length depending on your typical rpg stuff like speeds stats and buffs The characters queue their moves, and every time they complete an iteration the move at the front of the queue is executed So like I said, what feels like realtime is really a reinterpretation of what a turn effectively is to you and your enemies in a turn-based game Now you might be wondering well, how does that work?

You might have some experience in party-based turn-style combat from other rpgs, something I can capture some footage of? How about a Pokemon double battle? And if you do you know that the skidamarink of that rinky-dink is that each turn you issue commands to each party member one at a time, then in the action phase, each member of your’s and the enemy’s parties perform those actions one at a time, the order determined by some measure of speed of each character So knowing that you might be wonder how the heck that works in an rpg game that I just described as having all turns from all active characters constantly iterating on real-time timers in parallel If everyone is constantly fighting, how do you control them all at once? When does the game stop and give you a chance to issue commands to each member of your party? If actions are queued up and executed in order, how do you add things to that queue? The answer is you don’t really You don’t need to constantly command your characters in Final Fantasy 12 because each one is automated for you, each one is a bot and their ai or behavior is controlled algorithmically… which is why I was recommended it And if past experiences with such bot systems is any indication, this might not be a good thing How bout we take a break for a minute and review what we’ve learned so far in our study of automated partner systems in games to see why it’s such a delicate topic Resident Evil 5 is a bit of a weird case-study because rather than being a game built from the ground up with an ai partner, it was a game that was meant to be experienced in multiplayer with another person either splitting the screen or joining your session via network An ai was built for the sole purpose of being a last resort, a catch-all for any player unable to get either of intended experiences to work However the problem with that bot’s design specifically was that it didn’t behave as an agent with bare minimum amount of impact on play Rather, unlike a human, the bot’s strict following of its coded rules, depicted here in this state machine, meant that a human player playing with the bot would have to adapt themselves to it in order to have a decent experience The bot would not fallback on the human for guidance, rather the human had to play carefully and be sure to step within the boundaries of the bot’s rules The classic examples include weapon and health sharing The bot was programmed to automatically heal themselves or their partner if their health went bellow max while they were in the cover state This would frequently result in the partner inefficiently wasting health items on minor injuries rather than letting damage build up before spending them The impact this had on a player was that they would need to stockpile health items themselves and not let the partner have any With a limited inventory space though this meant that the human player would then not have enough room to hold items they were actually interested in holding, often cool weapons Speaking of weapons, the partner’s general combat strategy wasn’t up to snuff when it came to playing a, you know, resident evil game For instance the best way to use the underpowered but high capacity machine gun was to shoot an enemy in a weak spot like the head which would create an opening for a melee attack, then quickly close the distance and perform that melee attack It was the most efficient way to use that weapon both in terms of ammo consumption and damage output The partner however would just empty clips into enemies In the player’s hands each shot held more value, it was equivalent to a shot and a punch, but in the bot’s hands shots would be wasted quickly and lost forever to a garbage behavior For this reason, in the early game, the human player who paid money for this game was basically forced to use the machine gun themselves and handoff instead the much more appealing shotgun to the partner which they still used inefficiently but who’s slow rate of fire mitigated that Resident Evil 5, omitting a single-player version of itself without a partner and including only one so easy to breakdown and so unwavering in its sub-efficient behavior changed the experience from being a cool action-oriented zombie romp through africa with a partner to forcing you into the shoes of a sidekick to the real star of the show, your supposed ai servant become master The issue was that creating a bot so exact in its behavior meant that the only way for a human player to be a good teammate to it would be to follow their own exact behavior, and that was not good at all The partner was always dependable to do a certain set of things which meant that you couldn’t play the game however you wanted to play it It’s no surprise then that when it came to the 6th Resident Evil, the single player ai partner system was turned into something non-committal Unlike with a real human partner in this game, the ai partner’s health was infinite, their ammo was infinite, their inventory was not managed, weapons didn’t need to be shared, and very importantly noise was added to its behavior to prevent it from being entirely predictable and also abusable Despite now having unlimited resources, its attack state’s rate of fire didn’t constantly max out like it did in the last game where you actually were sharing ammo

You can’t force the partner in RE6 to play the game for you but it’s also not something you need to depend on for anything It doesn’t get in your way, it doesn’t hamper the experience at all, it does little more than just let you know its there And its minor unpredictability makes impossible to reverse engineer and feel more alive than ever Key note here: while the playing experience benefits from this, the bot itself hasn’t improved It hasn’t progressed like you would’ve hoped and expected Instead all things that were seen as pain-points about it in the last game where patched out, so technically it’s just a conceding of RE5’s partner’s crap effect on the single-player game But when it comes to games like this which at the end of the day are entertainment, it’s not always about improving the built solution It’s never that way in any context of software development It’s about reverifying the requirements and realizing hey shit, this was never actually what a player needed in order to have the closest experience to playing with a real human partner So let’s not waste any effort improving that, instead we have to build what we should have done from the beginning which turns out is a subset of what we ended up doing in the first place Now all a that kinda makes the whole pursuit of dependable ai bot companions and partners in games seem hopeless, fruitless But as we’ve learned from Medabots for the gameboy advance, that’s not actually the case In a different context and under a different implementation, such strictly defined ai companions can serve a complimentary role to a player’s own agency In this game for instance where each fight had the player bring in a partner to face any enemy captain with their own partner, the partner’s behavior set, though explicit at all times could be cycled through a set of available behaviors sets That’s a whole lot of sets What this allows for is for the leader of the team to select, before a battle begins, various predefined conducts they would like to have their partner exhibit, and then on the fly cycle through them mid-match to best compliment their own demeanor For example when injured and in need of immediate assistance a player could force their bot partner into a non-combative, evasive healer-style, then once repaired you could issue them a partner-hunter behavior which would have them focus their offense against the enemy partner while you could take the leader That’s a pretty shallow example, in reality the granularity of possible behaviors you could give your partner went as far as things like having them focus attacks on a specific body part of specific opponent These commands, or rather like I said before, behavior sets were not meant to just cover general use This was a fighting game after all, there was strategy to be found in the selection of behavior sets to take into each fight to best counteract your opponents stats and weapons and yes, even their own toggleable behavior sets These behaviors were treated as any other integral part of the game, just like weapons or specials they had to be unlocked and equipped as parts of loadouts and I don’t think I need to explain why that’s such a cool thing So that brings us back here to Final Fantasy 12 and it’s Exactly Defined AI Party Members, which as an aside is certainly gonna be the name of new 90’s style europop band So far though unless made up for with some sort of controllability, rigidly natured bots in such long adventure type games don’t seem to make a lot of sense Like we learned from RE5’s partner, a bot’s behavior in this type of experience should be stuffed with enough noise that it can’t be exposed definitely or reverse engineered simply through long sessions of play and exposure to it Otherwise, a bot that can be known inside and out is one that forces the player to adapt to it and this ruins the game and yada yada Except there’s one case where this is acceptable There’s one variable here to consider that in its presence makes it totally fine for a game to effectively present it’s ai’s blueprints and schema to the player and say “hey this is exactly without question how these bots behave” It is acceptable for a bot’s exact behavior to be knowable to the player only when it’s the player that designs that behavior Maybe though it’s about time we actually talked about those exact definitions of behavior that each party member in the game has Similar to the way it was treated in Medabots, character behavior is a founding member of the play of the game Accessible from the same menu as things like weapons and items, behaviors, or as the game flavorfully names them, Gambits, are the laid out instructions that every member of your party follows And if you’ve ever even barely had a glance at an introduction to any sort of programming, and you’ve never played this game, you know exactly what the fuck this is and it’s probably blowing your mind that this came out 13 fucking years ago And, and you’re also about to wince real hard at this next part, but fuck, okay? You know it’s really easy to call me out for over explaining things, but you’re not me You don’t have the same perspective on my viewership as I do Look, I know my audience, and most of them, most of

you, are, with all due respect, with all due respect… idiots who only care about this one cartoon with a talking sponge So judging for this you probably don’t know very much about anything and you probably have terrible taste in not anything in particular but in everything in particular So you’ve probably watched at some point a movie or tv show or bless this generation, a youtube video, where on the topic of computers someone said something along the lines of “oah it’s all a bunch of 1’s and 0’s” and you probably thought of the ratio type numerical values 1 and 0, and that’s not what the fuck that is In the sense that its most often used, 1 and 0 are actually short hand representations of not the words but rather the concepts of true and false Why’s it 1 and 0 instead of T and F? Why don’t you imagine writing a few dozen of these out on an exam paper and you tell me See 1 and 0 represent what is the smallest possible unit of information in a world where everything is information It’s called a bit, and it’s described as being binary because it can either be one thing or another In the case of computers this is implemented physically with electronic devices capable of two states: running a current or not Being On or Off A bit in a computer may be the answer to the question “does a current exist?” Yes or No True or False 1 or 0” And even though very small and absolute, abstracted you can see how quickly more can be made from it If you give us something that can be either true or false, we can take that and line a few of em up and make up some cool rules that allow us to represent mathematical numbers with them Then we can take these numbers and combine them in some way that we agree certain combinations represent certain letters or keys on a keyboard or other characters Then we can take these and again following some rules we make up and all agree to follow that we bundle up maybe into two camps titled semantics and grammar which together we call language, and now we have ways of creating meaning through words, sentences, or in the case of programming languages, variables, functions, classes, methods Languages, programming and natural, allow us now to describe as close we can the most abstract form of information we have access to, raw thought As we think things we can use language to communicate those things in real time by speaking sentences made of words made of letters and punctuation And then we can write programs made of elements made of characters to listen to those sentences and transcribe them And then using some new form of information also constructed from a series of expansions of binary data we can somehow represent values of time, and then can find a way to link words in sentences to points in time using audio data, also coming from some sort of binary data Then we can come up with a way to display these symbols on a screen with white font which is just binary data determining if a pixel should be white or not And then we can, using these time links words and this method of display them on a screen, show them as they are spoken over a video which is a combination of frames of still images and that audio data from before And images, those are just arrays of arrays of color, they’re just lists of colors we’d to have display one line of a certain resolution at a time to make a big rectangular shaped picture because that makes it easier for people to read And given that we already know how numbers can be build out of strung together bits, it should be no surprise that given that any color can easily be represented by a scale of numerically measured intensities of red, green and blue, then it’s very easy to see how that can come from binary as well And so all the way from a machine asking itself whether or not there is an electric current, we’re here now where I’m asking myself why I’m listening to two smelly bums from different parts of the world talk about Sonic music Novacanoo: “And Sonic, like Crush 40 Sonic music, I love that stuff And he, and Fantano seems to see it as lower quality music But I just think its really fun.” Zac: “Interesting.” True and false, aside from being words you hear thrown around alot at a… child custody hearing… what the fuck was I thinking with this joke? True and false, aside from that stupid joke are valuable as concepts on their own We don’t necessarily need to build all sorts of things out of them to make them useful Bits or truth values are to different kinds of logic, which yeah there quite a few, what numbers are to kinds of math In propositional logic for instance which sounds like something boring and complicated but is actually something guarantee you already quite a bit about, propositions are statements of truth that can be evaluated given the right circumstances For instance I can’t evaluate the truth value of the proposition “the store is selling popsicles” because I don’t have enough

information But if you tell me that “if it is hot outside, the store will sell popsicles” and that “it is hot outside”, then I evaluate the statement Given that it is hot outside and that if it is hot outside the store will sell popsicles, then true, the store will sell popsicles And that’s the basic of the most basic type of logic math I’m gonna move on but here’s a little test if you’re interested Try to evaluate this same problem if I tell it is not hot outside? What do you think the outcome will be and why? Lemme know in the comments if you want, aaay So what the fuck was the whole point of that whole big binary breakdown before? Well, I want to get across that even though in most cases when you hear people talk about “1s and 0s” in relation to computers they’re referring to how ultimately everything gets compiled down to binary data and that’s really interesting, this concept of true or false also plays a role as is in programming In things like the manipulation of logic and evaluation of logical propositions If you’ve dabbled in programming you may have heard of something called an IF statement See in programs often you only want certain portions of code to be executed IF a certain condition is met or if the system is in a certain state I’ll give you a web programming example, this is something pretty standard, I’ve had to build this sort of thing before, but anyways Your typical website might have some sort of account registration process and some features of the website should be toggled on or off depending on whether or not you’re currently logged in So for example if I’m logged in, features like commenting on and liking videos should be available and work as expected But if I’m not logged in the page should either hide these features or in this case what youtube actually does is it prompts you to This is a smart way of getting people to register for their website, but either approach is fine because it either removes or changes the behavior given the user’s current logged in state And these are things that are evaluated as the page is loading Some people don’t actually know this but web pages are traditionally written from top to bottom and also loaded by browsers from top to bottom So for example in youtube’s case, it might load the header, load the video, load its title, and then while it’s loading the like buttons, it hits a crossroad If the user is logged in it may load the functionality for liking a video, but if they’re not it may instead only load links to the login page Now of course as we just saw, in programming you can divide paths of functionality across the true and false evaluations of such propositions For example an IF statement is a great way to get certain code only be executed if that condition evaluates true but maaaybe given some circumstance you may want to run something else in particular in the exact opposite case This is all just logic stuff And then of course when paired with one of the other common practices in code, iteration or looping, you can build some pretty powerful behavior Here’s an excerpt from something I’ve written, it’s a part of Ace Nickelback’s startup tasks where he builds and processes his vocabulary If you don’t know, Ace Nickelback is a shitty discord bot turned twitter bot that I’m am 100% disapointed in Here all he does is, given a line of text, seperate that line into words and then updates his vocabulary with those words As you can see I stupidly did not consider the case where the line would be empty and given this comment I left, someone must have submitted the Bee Movie script to him which caused this function to break As a precaution I’ve added this condition which says if the line is empty, return, just stop If it gets passed that point, aka the line is not empty, it actually contains some text, then here’s some bullshit I don’t know what it does, but now HERE, here now is a loop Basically what I wanna do is run the same code on every word in a sentence right? But this function needs to be able to handle sentences of different numbers of words right? So you’re not gonna sit here and hard-code one function for 1 word sentences, another for 2 word sentences, no no, that’s dumb So instead we re-run this loop for every word In this loop, first we make sure once again that the word isn’t empty That shouldn’t happen but I’m an idiot IF our vocabulary already contains that word, we don’t want to add it again, right? That’d be redundant We still do wanna do something, we wanna store that fact that the word appeared a second time So instead of duplicating the word, we increase its count by calling another function I’ve written that assumably does its job ELSE though, and this ELSE let me remind you will only happen when the opposite of the IF happens, so in the case that the word we’re looping on is NOT already in the vocabulary In this case we of course do add it to the vocabulary And that, ladies and gentlemen, is hopefully a half decent introduction to how propositional logic is used in programming to define conditions who’s evaluations trigger different intended behavior A lot of people think of programming as a sort of straightforward linear scripting I think, but I hope this shows you that a lot of the

time it’s more like slowly running through a sequence of events, evaluating our current state, and then writing in the behaviors that should happen when any decision to proceed differently is made You’re typically not writing things that execute once, have one job and then complete A lot of today’s systems are things that need to be always running Such as, excellent segue, gameplay systems! Like for example the hybrid real time turn-based action system of Final Fantasy 12 Now we have enough information to properly describe what’s going on here So, turns we’re able to realize are just loops! Each player, friendly and foely has an ever repeating loop controlling their actions The loop completes once every few seconds, but it’s what’s in that loop that’s most interesting In each action loop is list of gambits which are really just IF statements Let me just say that again because that is a BIG deal, but this is a game that lets you write IF statements into your party members Lemme put that in gameplay terms So like, a white mage you might wanna make your team’s dedicated healer capable of restoring people’s health as well as alleviate status conditions In a normal game you’d have to issue those commands yourself but with this level of control you can write a set of instructions that handle this automatically for you IF a partner’s health drops below a certain amount, heal them IF a partner is inflicted with blindness, cast the spell that restores their vision Then the way it works is that for each iteration aka turn, the bot will evaluate the current states of all partners and foes, stuff like health, statuses, other actions, etc, and then pick the best action to perform based on the gambits you’ve designed You know, IF condition, do thing But it’s not exactly a state machine, plotting this out with a flow chart wouldn’t do it justice because what I wouldn’t be able to easily communicate that way is order or priority State Machines are better for plotting switch/case models, evaluations of non-binary values, less determinate things I won’t go into it but the idea here is that the order of the IFs here matters which is a way for you to prioritize actions over others The way the loop works is it evaluates each of these conditions one at a time, but as soon as it hits one that’s true, it performs the associated action on the right, it doesn’t continue evaluating the cases below it Kinda like how Ace Nickelback preemptively returns when people enter the Bee Movie script So knowing that this isn’t a set of but rather a list, an ordered chain of conditions where one comes before and after another and that the first to evaluate to true triggers an action once per time boxed iteration, you can do things like set fallback behaviors to the back and put more important ones on top If a partner needs to be healed, heal them first before trying to go cure anyone’s poison or blindness If nothing’s going on just attack say the weakest enemy, but if an enemy is targeting our healer, attack them first The order mattering lets you code in logic beyond just the conditions themselves, you see? But then even greater than this, the fact that you still can at any point override gambits aka the automated action selection of a turn and have any character do whatever you want means you can write in high-priority conditions specifically to get triggered by yourself For instance, one of my favorite set ups for tougher fights, I gave my black mage a condition for any enemies covered in oil to use a fire spell against them as this would do massive damage Then in the middle of a fight that looks like its not going my way, I could commandeer the turn of any of my other characters who can use the oil spell to grease up the bad guys, knowing that as soon as this happens my black mage will stop whatever she’s thinking and blow fire up everyone’s asses Fantastic And so far I think I’m still in the early game, at the time of writing at least, so I can only assume how interesting things will get once I can perform a chain of 3 or even 4 gambits together across multiple characters to pull off massive automated offensive combos Now okay, so this is a great system and I’m gushing all over it but there’s gotta be a deeper meaning here right? I mean I wouldn’t go through the trouble of introducing so much dry comp-sci content for just that pay off right? So having started the game one of the things I noticed about the UI built to handle the fancy cool gambit system was that it bore some similarities to a kind of thing you may have seen cropping up recently, Visual Programming Languages Now technically these aren’t always languages, sometimes they’re just visual editors for programming that often boil down to glorified bracket coloring schemes, but the idea is that these things are used in a lot of programming education at highschool and even elementary school levels They’re a good solution to the problem of programming syntax not always being easy to pick up See for many people it might be easy to get into the mindset necessary to train to be a master coder, but actually transpiling raw ideas into letters

and brackets and semicolons following different rules depending on the language you’re coding in, that’s a steep curve for many folks These VPLs get by that by allowing users an accessible block-building type interface to create their programs And of course as you could imagine, starting out programming is always much easier when there are clear goals set So these VPLs lend themselves to gamification very effectively The learning of working with logical structures and stuff like efficiency goes hand in hand gamey concepts like level completion and scoring systems, and it’s pretty dope a whole new generation of kids are learning computer science like this It’s cool that they’re gamifying the process of learning how to make games I just think that’s pretty cool I remember these things really gaining traction as I was starting uni so kinda a little late for me When I was a kid we had similar type stuff for math but there’s only so much you can do game-wise with problems whose solutions are either objectively right or wrong, unlike programming When I left my highschool there was no trace of computer science teaching going on at all, but I know from the few times I’ve visited and volunteered that now there is quite a bit and I have to attribute a lot of that to the accessibility of these VPLs And when I say accessibility I don’t mean just to students but to teachers as well I mean it’s no secret that not every highschool teacher is an expert in what they’re teaching Teachers are only experts at education itself, so unless they’re confident in they’re coverage of a topic it’s not something they’ll bother with These sorts of visual programming games though, often developed by very credible orgs, empower teachers who might not have enough time to learn about programming in-depth to give their students tools and lesson material they can trust And I think this is wonderful and incredibly important because… for fuck’s sake the foundation of this stuff is actually not that hard and the earlier people learn, the better My first year of uni, my first lecture course ever, a class called mathematics for computer science, I sat in that class for half a year feeling like a grade schooler again I’m in a jam packed class sitting there learning the basics of something that was not complicated at all, it was just stuff that nobody had ever formalized for us I am not exaggerating when I say this but basic predicate and propositional logic is equivalent to counting with your fingers You’re drawing 1’s and 0’s and solving little logic riddles and fucking drawing venn diagrams to solve problems, it’s baby shit my dudes And one of the things I noted was that this is not something you could not teach at a high school or even a grade school level Like, greater than and less than signs are more complicated than most of this And going through this I kinda wished I’d learned it earlier in life, it would have been so useful to understand how logic could be formalized, like, not just for programming, just in everyday living I wished someone really smart had sat down and developed a course for some instructor to give me in grade/highschool as opposed to, I don’t know, having 1 class a year called creative writing where you don’t actually learn any technique about anything you may as well just pick up as a fucking hobby if you like it, or fucking god 5 years of the same quebec history class but every year they teach it in a different chronological order like it’s fucking Pulp Fiction or something! “Oh shit dude, I get messed up in the timeline I always forget, did the fur trade happen before or after they shoot the kid in the back of the car?” Like, look, what I’m saying is that, fuck, you know that whole big binary tangent I went on before? Well turns out it’s not a tangent cause here’s the callback: it’s kinda crazy to me that despite our proximity and dependance on software right now, that whole story isn’t general knowledge I think software is important to understand at least a little because unlike some other applied maths and sciences, our in-depth use of it is unavoidable given our current lifestyles Like, the mitochondria is the powerhouse of the goddamn cell, right? And the joke is that this is something oddly specific that most people remember from school that they feel is useless in their daily lives when in reality, the more knowledge you can have about the world around you, the better, always What I’m saying is that its upsetting that there’s no software equivalent joke like this Because I think if there were, you know, some commonly known trait of computers and how they work, I don’t think it would be a joke or a meme I think its utility would instead place it instead in the same category of mnemonics as something like fucking lefty-loosey righty-tighty I mean, I mean, this definitely doesn’t, like, escape the confines of, like, software developer meetings, but like, the closest thing I can think of to something like is like, you know, “reduce coupling, increase cohesion”, you know “you want low coupling, high cohesion” That’s like, something I hear a lot, you hear people say that all the time You practically chant it But nobody else knows what that means, what the fuck? Uh, so this is abrupt but I didn’t know how old this game was when I got it I mean, I knew it was a remake but I really didn’t care, I was

more interested it playing around with its gambit system But then I played this one joke level where you’ve gotta run around town yelling at people and for some reason this was familiar to me but I couldn’t remember why Until of course it hit me, this was the set up that Mega 64’s video, in which this dude runs around town yelling at people, was the punchline to And now whether or not I liked it now I knew exactly how old this game was, at least I was really into Mega64 as a kid, I’m pretty sure one of the first pictures I ever got tagged in on freaking facebook, was, I was goofing around the halls with some friends wearing a Mega64 shirt I loved their videos and they inspired me to start making my own but as it stands I look at those days as being far behind me I’ve grown since then, I have degree and a career that I would have never expected to have back then These photos are soon gonna be a decade old Little did I know then or now, that this game I’m giving all this praise to today for introducing an innovative pseudo coding system for automated party member control in an rpg, this game spoofed by some internet comedians that I was wearing the shirt of, this game was already 4 years old when this photo was taken Forget the graphics, the story, forget that shit If you just showed me the gambit system yesterday and said “hey when do you think this game came out” I’d have said “I don’t know, maybe 2012?” And that’s what I was saying to myself for a while playing it, all until this one goofy level revealed its age to me Given a point of reference in time for this game, remembering how old I was when I saw that video and how little I could have predicted about where I’ve eventually come in my life and how little anyone could have predicted about how technology and software in particular have evolved, pffffoo it’s incredibly impressive knowing that this game has always been just under my radar exposing players to such an awesome de-constructed view of its own systems that would one day have a future version of myself jaw dropped trying to explain this shit to a bunch of people over the internet come an hd re-release Fuck Me Games are sociotechnical systems and it’s sad to me that maybe the socio side of that equation wasn’t prepared to handle something like this at the time, but hey So for as impressive as Final Fantasy 12 is for reflecting almost perfectly a trend in computer science education close to a decade early and for exposing players to propositional logic, it still did this in a game While programming, of course, is something fundamental on a certain level to games, typically it doesn’t find itself anywhere near the level on which player’s interact Like we said it’s cool and all but it still had to work in the context of a game, so did it? How about we take a look one last time at Medabots which is an example of a game I think handled customizable ai behavior in a game really well The way they handled it here was by making it an unlockable Just like how powerful weapons and robot parts would only be unlocked as the game progressed and the player proved they were of a skill deserving to wield them, ai partner behaviors would be uncovered as the player completed more and more battles The game would start you off with simple weapons and basic selectable behavior for bots But the better you got and the more battles you got under your belt, the more granular some of the commands you’d unlock would become This was fair because when it comes to issuing commands to your ai partner, the more control a command gives you the more powerful it really is So saving these for last left high-level strategies only available to you towards the end, again, just like weapons Gambits in Final Fantasy 12 are managed very similarly, though this is a Final Fantasy game so it’s hella more complicated Gambits themselves being composed of different entities, a slot for the gambit to sit in, a condition for it to watch and evaluate, and an action for it to trigger, it only made sense to make each of these unlockable differently Gambit slots themselves are unlocked through character skill trees This puts them of course on the same level of importance as everything else you unlock via skill trees Things like health upgrades, abilities to wear and weird certain classes of armor and weapons, special abilities, etc The fact that the game’s main character progression mechanism equates a single gambit slot all of these other things really sells you, as a player, their worth I mean, something concrete like a new weapon class has a value that’s easy to understand, but a single new gambit slot holds so many possibilities It can make the difference between being able to string together a list of actions or not, or alleviating your stress as the player by automating a healing task that takes enough time off your hands to manage your team better Now gambit actions, the commands that are given to your character automatically by gambits, those are unlocked for the gambits as soon as they’re they’re unlocked for the player I mean, fair enough, this system’s supposed to be an extension of the players existing, not something different The conditions though that trigger those actions, those are unlocked by purchasing them at gambit shops Again just like weapons and gear and potions and everything else, gambits are sold to the player by specified merchants who deal in em Just like you could go to a store and say “hey I wanna buy that cool

knife”, you can walk into a store and say “hey I wanna buy the ability to listen to the event that an enemy or ally is in a particular state” For example you can buy the ability to listen to enemies that are disabled or silenced and then create high priority gambits with it for your characters where, when it’s true, they attack that foe Why would you do that? I don’t know, maybe sometimes when a battle is a little hectic you wanna prioritize all our efforts to remove one foe from the field I can manually cast silence on them just to mark them and then watch all of my party members shift focus for a moment on that single enemy, take em out, and then return to their normal behavior Or maybe I want to listen to the event where an enemy has a certain buff and then create a gambit for one of my mages where they cast dispel on that opponent to remove the buff There’s a lot that can be done with this and it’s cool that it’s not all available at once but instead the game makes you buy these listeners What’s nuts is I get it, sometimes it tough to reconcile spending hard earned fantasy currency on invisible, intangible gambit components rather than weapons and armor But then you use them in the field and you realize that often their value far surpasses anything, anything else you could buy Often you’ll be in a battle and you’ll notice a certain pattern in your enemies and go “dang, I wish I had a certain gambit, that would really help me out here” And so the next time you visit the store you remember to buy that gambit trigger in anticipation of it being useful again in the future This game does easily what many other such rpgs struggle their worst to; it suggests that more important than any sword is a proper strategy that uses that sword And if that weren’t enough, and maybe something you might have gotten worried if you’re hearing all this for the first time, the gambit system isn’t a “one-size-fits-all” sorta fuckery You know most rpgs, a weapon is either objectively better or worse than other weapons And elemental spells which might instead have a rock-paper-scissors trichotomy have installed cooldowns so they can’t be abused There’s this idea that there are certain spells and weapons that, if you got em, you should be using them as soon as you can Gambits on the other hand aren’t like this They neither abide by a one-size-fits-all or use-on-demand model Gambits are more like something orbits around your preference, how you’d like to play Gambits are a way for the player to formalize their playstyle, to write how they play into code and have their party execute on that playstyle And of course, preferences and playstyles are something that change throughout a game, as time passes and new opportunities lends themselves to be taken advantage of Just like you can program with different goals in mind like time vs space efficiency or effectiveness or time to complete, you can build gambits for different purposes aside from the most efficient combat For example, when I was running low on that in-game currency stopped for a minute and designed what I called the money making gambit setup Here I’d have my nimble thief set to use his steal ability on any enemy at 100% health Since enemies can only be stolen from a maximum of one time, this was a good way to ensure that he’d steal no more than necessary as a battle went on As enemies would come into view he’d run off and steal from them, and as they’d inevitably take damage he’d no longer be interested in stealing from them because now enemy health equals 100% evaluates to false for each enemy Then as backup I made a high priority gambit for my sharpshooter to use his poach ability on any enemies at critical health His poach attack would, if it turns out to be their killing blow, reward me with an extra piece of loot Together, these two gambits allowed me to automate the process of getting the most loot out of each enemy encounter without me having to stress a cell in my brain And that’s really powerful I mean, I never liked thieves in rpgs because there’s something about asking me to pick a move on a turn that’ll have me always choosing to attack over stealing in the moment When that stuff can be automated though, when you can remove the human element from the equation, you get better results and you still feel like you made the right decision as a player for planning ahead It’s not anymore about performing a steal and getting an item during a turn but instead about writing the logic for an automatic and efficient stealing machine to operate by And as fucking cool as that is, I do have some unmet desires The game does more than enough by exposing any of the game’s internal logic, don’t get me wrong But knowing that it exposes any makes me wish there were certain other things it did I wish for instance that you could write negations into the gambits Like, if an enemy is not at critical health, attack them That means if they are, don’t Leave critically injured enemies to one my characters with a gambit that does target them and uses, say the poach ability to get the most out of them It’d be great to be given this control to keep your party members from stepping on each other toes, it lets you design much more cohesive gambits I wish also that it went a step further and allowed you not only to control actions given states but trigger actions on the transitions between states I wish you could control what your character does between, right before, and right after actions rather than have them just standing still and loop through their instructions Right now I can’t write a list of gambits that would make my fighter whack a guy, run far away to heal themselves, and then run back in

Or maybe something neat like have allies stick close together if multiple enemies target them at once Or just plain one that could make them circle an enemy between attacks Any sort of control over movement between turns would have been phenomenal I also wish you could set multiple conditions per action evaluated with your typical logical operators like AND and OR Or better yet, have a way to nest multiple gambits as sub gambits within a parent conditional Like you know, IF an enemy is targeting me, IF their attack power is over 100, cast blind on them, ELSE IF their attack power is over 50 cast defense on myself, ELSE fallback to attack them Shit like that would be fantastic As is you can’t really get anything close to this And fuck me up you know what’s crazy? Enemies use gambits too I wish there were abilities pertaining to enemy gambits Like, special ways to reveal enemy gambits or modify enemy gambits I wish there were ways like that to spoof the enemy and for the enemy to spoof you For as much as they treat them like anything else in an rpg, there’s nothing close to buffs or debuffs on gambits I wish you had to consider stuff like enemies straight hacking into your troops in designing your gambits That’d be sick But here’s the thing though All of these wishes depend on the thought that all of this underlying code is already there and they chose not to expose it via the gambit system I might be wrong, I don’t know what it was like programming games 13 years ago so back then this may have been exactly how the ai was built, and so this may have been as much as could have been done I just like to dream I mean, none of this would’ve been impossible to include in an remaster/rerelease, just saying Not that I think the effort required would’ve translated proportionally into sales, fuck I’m sorry I like to joke but deep down I’m a realist Kill me I liked Final Fantasy 15 a lot and the seamlessness and noisiness of ai partners was really immersive and that’s good because that’s exactly what it was going for But now I can’t help but imagine a more mechanically driven version of that game with it’s fluid combat system and an extended and enhanced version of the gambits from this game Final Fantasy 12 has been a fun game to look at for its implementation of a really unique accessible and, for the time, advanced programmable ai party system, which I keep saying but is partly incorrect cause that very descriptive title leaves out the fact that this is also gamified and treated just like any other property of your party This is the only game I’ve made any sort of video on that’s impressed me on a technical level and touched me on a personal level so equally This game exercises, I feel, parts of my mind I didn’t know I wished other games did And it’s adoption of the methods for the sake of gameplay that are now being used in early computer science education gives me such fucking hope Aaaaand that’s it I think at this point I’ve wrapped up all the different narrative threads I’ve been knotting up throughout this video, and I think I did it all without mentioning Rube Goldberg even once Fucking ha! It’s like they say, you can’t program your nose but you can program your friends’ noses Thanks for watching Hello and welcome to the endscreeeeen It’s me, ya boi [Hey so I no longer manually caption my endscreens because the effort is pretty massive and nobody so far has seemed to mind. However if you rely on captions to enjoy videos properly and would like to know with more accuracy what I’m saying here, let me know I can answer any questions. Thanks!] grimiest boi who talks about Final Fantasy in his bathroom because the only place with half decent acoustics so long as my neighbors downstairs aren’t having a Saint Patrick’s Day party at home who does that I’ve been in here alone sucking on this piece of paper to dry my mouth this one also drinking black coffee that was very hot because it kept in my mouth a very dry and drinking lukewarm water because my voice is annoying as it is might as well sound half-decent yeah thank you again to the world famous pretty boy Martin for sharing this this video game with me suggesting it and I really you guys don’t realize this was a very very long time ago he suggested to me I looked it up I realized exactly why and then I was like okay I need to get it and I’ve had it sitting on my shelf for god knows how long I just haven’t had the chance to to get around to it but that’s part of growing up is you never finish it you never have time to finish all of your games and a lot of games you do buy you buy knowing you’re not gonna finish them which is really not something I like at all at all and it is not something I’ve come to terms with life is really I don’t know I don’t really have any updates to do the last video had a lot of updates on the end screen so there’s not really much that’s changed since other than them so I know a lot of people at the end of the last endscreen I mentioned possibly doing programming streams where I rebuild a Snickle back and a whole different framework and different technologies and everything and people express some serious interest in that and I was thinking yeah I’m gonna do it but I kind of want to pump this video out first cuz you know you know it keeps us you know the topics fresh in our minds and I figured if I want any video to be the usher of a rebuilding a Snickle back it’ll be this video so yeah that’s that might be something I might start doing a

little while I’ve also been playing around in my head with the idea of doing possibly some sort of charity stream so I don’t know if anybody’s been around since since that long ago but one of my first years I started making videos I did this live stream for a whole day one day called Big Mac vs the world and the whole bit was that I was in character pretending to be a washed-out fat version of Little Mac called Big Mac and I was going to reclaim my throne as you know the legendary boxer by becoming going from zero to pro in Wii Sports boxing in a single day and however long it took and I did it was a lot of fun and I still a lot of people just hanging out for that it was a really really good time and I’ve been thinking about doing it again I thought about doing it with a sword fighting but now I I really like I really like Wii Sports one boxing and I was thinking if ever I wanted to redo it I would do it in such a way that I would have like a challenge and I had to like take the last time I did it and I would have to beat that time basically or maybe I’d have other challenges like I do it but like I can’t like eat as much in between rounds because I was basically I was just eating like like almonds I was just chugging through almonds so I don’t know like maybe some sort of thing I’m thinking well this is a goal what am I trying to stretch towards I was like you know be cool is if I turn to that into a charity thing my name is if ever I ever did some sort of fun charity thing I think that’s what it would probably be it would probably turn it into Wii Sports boxing or Wii Sports canoe or just some stupid Wii Sports thing I’ve always been really interested in those I probably won’t have this video out in time before another video there’s pretty you there probably before this video you saw a video called like the sponge review or something like that that was a clearly an April Fool’s video that’ll probably be out before this but basically this video and that video I kind of want to use them as excuses to get used to so basically I got a new computer and a new version of the video editing software I’ve been using for years but obviously all of this will have an impact on how you know I edit things and you know I’ve gotten really really familiar with the stuff I use so when anything changes it’s a little bit of a you know especially when I do this part time for fun so any any amount of overhead is has a major and measurable impact I guess so oh man this video was like a real nerdy I’m sorry I’m real fuckin feeling bad for that anyways aside from whoa anyways aside from the man Martin himself those others that I must thank are those who have so generously decided to us wants to pay to patron me on patreon those people their names are as follows and yeah I’m cutting to footage of something else in that you can’t see me just reading off my computer so that I can thank the people known as Austin green cosmic crown disgruntled mushroom the final blue man Glen strong grant Waylon oh baby yeah Isaac Holland just Wally Kiwi Matthew Steven Nathan Walker Tito’s vin jock and the one the only Zac Fraser so there’s this there was this funny so I obviously a lot of you guys know the hambo and everything right and one of my like whenever I watched writing on games video I used to like I used to wait till the end specifically to hear him say camel traffic because he had he had one patron called camel traffic and I just like I could not like I needed to wait out until he said camel traffic and end the video and then one at one point camel traffic stopped patreon in him and then I was like I had to like a real crisis I was like my god I’m never gonna hear him say camel traffic ever again I feel like I’ve built Cadence’s for some of you guys that I’m like I feel like even if you guys were not patrons of me anymore I would still have to say grant Whelan oh baby yeah you know like is it’s it’s it’s part of the bit like like bit you know lamb hoop video brought to you Bry oh baby yeah like thank you I can’t grant Waylon let’s be clear listen you can leave at any time you want do not feel obliged to stay but here’s all I’m gonna ask if grant Waylon ever decides for whatever personal reason or anything it doesn’t matter for whatever reason to leave could anybody who is a current patron could you change could you just add old baby yeah to the end of your name just so we keep that thank you that is probably the most important out of everything I’ve said in that video that’s the more this is the most important thing I’ve said oh yeah sure shout out to of a canoe and Zach Fraser who he called stinky bums or something in this video shout out to them on their great podcast that is definitely not 50% connection I love those two guys they’re both really good gentlemen Novick knew yeah you’re coming to Shrek Fest this year I hope

this is not a choice the other day I had to go to a bar well the day or we were gonna as a party with my girlfriend’s friends and sometimes you know people are on different vibes as to like what they consider like a good time and that’s fine but we had like this event you know we decided hey we’re young adults we go we’re gonna go to a bar come a bunch of people say they wouldn’t come we made a reservation they reserved the whole table they give us a big table we show up there with the only two there we’re waiting for all the friends to show up everybody starts bailing out everybody start drop them like flies we’re down to like two friends left are coming and we’re at a big table this table is reserved for 8 to 10 people we’re sitting alone there and we’re and the friends who are coming are gonna be an hour late so today to end up being like about two hours late so we’re there and we are square and so I just picked up my phone and I was like I called my sister my youngest sister and she was out somewhere at a place nearby I was like hey where are you and she was like I’m at this place and I said okay do you want to be at this place instead she’s like why I was like cuz I’m frankly I’m embarrassed and I wasn’t I’m not sure what I was more embarrassed about that I was sitting at a table alone or that I wasn’t able to bring a group of people who are young adults to a bar and at that point is really my embarrassment anyways why am I saying this I guess the moral the story is a pretty cool sister I mean go figure you know got a out of three figures one is half decent yeah final fantasy 12 anyways I guess that’s it like I said in the video before if ever there’s any sort of sort of technical concept that you would like me to cover in a game or there’s a game that you play that really like pull something out of you that you feel like I would be able to have a have a really unique input on and you think you’d like to hear me talk about or break down in the sort of way that I used to and I think that I can uniquely do and a lot of other people in the space don’t do let me know I can’t I can’t guarantee I’ll look at everything but this is definitely something that really really interests me also what do you guys think of a goofy charity sort of thing if I did would it be weird if I did we sports boxing again would you rather I did I really don’t want it this sort of fighting because there’s like a I have a skill cap and it is below the pro level of the sword fighting I can’t I don’t have the patience when it gets really high level and you really got to constantly block I can’t I can’t do it I do not have the ability um otherwise I don’t know is there anything else you’d be interested in oh I’ve gotten into the VR recently I don’t know I was thinking of maybe trying to stream some of that but I do I haven’t honestly I just have not experimented with setting up a any sort of capture for that and I know it’s gonna be bad let me know if there’s anything interesting you yeah there’s definitely some content I’d like to make revolving around it but I need to get to a point where I do not have to take medication just to be able to not vomit while I’m playing the games before I can you know set myself down and say hey I want to make a video about something in this crap oh man it’s really bad it’s really really bad if I ever make a video when I do make a video above here there’s gonna be a long segment about taking my complicated setup for taking medicine when I what I have to play yeah so that’s it let me know anything I’ve brought up in this video that you have any thoughts on please feels hurt it what I feel fair feel fair feel fair at all times you should really feel good about yourself confidence is a you know is something that everyone should kind of exude and it makes makes people look at you and say damn that’s a really best really confident young or old or middle-aged person who has hair and agender and probably some other identifying traits that I’m not specifying right now that’s a person who is who looks good I guess is what I’m trying to say so be fair to yourselves and to your neighbors and always remember that if you want me to make soup more soup videos like this and if you want me to reach my patreon goal where I will make it produce a cover of ocean man best known as the credit scene scene music in the spongebob movie you can check out my patreon and I’m basically selling my my well being there that’s what’s for sale you know McDonald’s sells cheeseburgers I’m selling my well being okay that’s it I’m gonna fish this coffee and I’ll see you guys and like I said anything like I was trying to say before before I went on a self-love tangent be sure to if there’s anything I brought up in the video that you have any questions about or that you would like to discuss further please meet me in the comments below I do read every single comment that I get notified about it’s weird sometimes I don’t get notified but I do go through the videos after and I read every comment I reply to many of them and yeah that’s that’s I’m just gonna cut it because I have this end screen is too long and I’m not gonna caption this whole thing I can’t I don’t have the time for that it’s been great we’ve been

great listen it’s been a good life see you guys later