Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Non-EuclideanCat
Nov 9, 2009


The Game

Transistor was released in 2014 by indie developer Supergiant Games, the makers of 2011's Bastion. It's an isometric action game with a ton of loadout customization, rpg elements, amazing visuals, great music, a silent protagonist, and a smooth-voiced companion that narrates throughout the game.

I think Supergiant might have a type.

The LP

The LP will be divided into 4 parts. Those of you familiar with my previous work will find a pretty standard start, but I've got some really fun stuff planned for Parts 2 and 3. Part 1 will have weekly updates, Part 2 will be every other week.

Part 1: The Fugitives



Part 2: The Process
[img]http://lpix.org/2121945/P2E6%20-%20Episode%20Banner.png][/img]



Part 3: The Camerata

Non-EuclideanCat fucked around with this message at 20:57 on Jul 11, 2016

Adbot
ADBOT LOVES YOU

Non-EuclideanCat
Nov 9, 2009






















































Non-EuclideanCat fucked around with this message at 18:31 on Feb 29, 2016

PleasingFungus
Oct 10, 2012
idiot asshole bitch who should fuck off
Hey, it's this game!

I'd really wanted to like it, since I was a huge fan of Bastion. The game's certainly pretty enough, and the combat system had potential, but in the end it ended up driving me insane - just felt like a bad knock-off of something like Frozen Synapse. (Especially because the game's prediction of what your abilities will do lies to you.

Seeing you play it is interesting - you use the pause-combat much more sparingly than I did. Looks a lot more fun than spending half the game running around with your abilities on lockdown, honestly. Makes me want to take another shot at the game...

Non-EuclideanCat
Nov 9, 2009

PleasingFungus posted:

Seeing you play it is interesting - you use the pause-combat much more sparingly than I did. Looks a lot more fun than spending half the game running around with your abilities on lockdown, honestly. Makes me want to take another shot at the game...

I find it really depends on your loadout and the situation. I spent the first 3/4 of my very first run playing like this, but by the time I hit the endgame and had settled into a particular arrangement I had essentially turned Transistor into a Turn() Based Strategy game.

DumbRodent
Jan 15, 2013

Heart Thumping Field Trip
BIG PANIC?
I finally got around to finishing this game about a month ago. I have a habit of not finishing SuperGiant games for a long time because I don't really want them to be over.
Immediately started a new game once the credits were done rolling. Just one of those games really.

Off to a great start, look forward to what F̄un̏ St̵ųff̕ you've got planned!

Non-EuclideanCat
Nov 9, 2009
Wait no more! Part 1 is over! The Fun Stuff begins now!




Make sure to watch the little extra video so y'all know what's up.

rinwe
Jan 1, 2015
The thing about Transistor that really sticks out to me is the artwork. Bastion had nice art, but it was a very cartoony style that I wasn't wild about. They really kicked it up a notch with Transistor, though, and it's definitely one of my favorite games aesthetically.

It seems a little silly to me that the subtitles were apparently transcribed by someone with a crippling fear of commas, though. Supergiant should probably hire an editor because man, those grammar gaffes sure stick out when presented alongside the very polished visuals.

I haven't gotten very far in the game yet, just a bit past the Sybil fight, but from what I've seen, it definitely seems that the game was heavily balanced in favor of the Turn() mechanic. The first enemy of the game, the creep, moves faster than you and attacks with a beam that does continuous damage. In fairness, your attacks do have a large amount of hitstun, and all the combat arenas do have ample cover to hide behind. Still, when there are multiple large enemies, Turn() seems to be the only way to manage them without taking a ton of damage. Which is fine, because what would be the point of making the core mechanic completely useless?

PleasingFungus posted:

Especially because the game's prediction of what your abilities will do lies to you.

Ah, right. This doesn't seem to be (completely?) intentional on the part of the developers because it seems certain combinations of functions cause the prediction to fall apart much more often (in particular, I've noticed a lot of problems with Bounce()). What really irks me about it is that the unpredictability really destroys the tactical aspect of Turn(). Tactics games don't guarantee hits, but they do present you will all of the necessary information to make a tactical decision about whether an attack will be worth it. Turn() tells you you'll hit an enemy 3 times for a fatal 300 damage and then proceeds to whiff twice and leave you running around unable to do anything for 5 seconds while it cools down. I think the game would really benefit from not locking all of the player's functions while cooling down from Turn(), but maybe that would have trivialized the combat too much. Ultimately, I'm probably being too hard on the game for not having seen all it has to offer.

At least it seems like they tried to make sure it wasn't impossible to play the game without using Turn(). As you pointed out, Sybil does dodge your attacks if you aren't using Turn(), but she won't dodge if you hit her at the tail end of her lance jab attack. Also the two-switch "puzzle" in the intro gives up if you fail it enough times, which I didn't know.

In regard to the LP itself, I'm enjoying your commentary style so far. It's well paced and a good blend of information, observation, and just letting the game speak for itself. I'll enjoy following this.

Non-EuclideanCat
Nov 9, 2009
I think it's less of the predictor lying to you and more of it making projections based solely on the state of the field at the moment Turn() is activated and doesn't account for how it changes over time. Later on we'll get a Function that can radically change a target's location on the field but Turn() treats it like it hasn't moved for the sake of subsequent action planning. You can plan around this a little but ultimately it's a limitation of the mechanic that has to be accepted.

Sometimes you just get a bum turn.

Dabir
Nov 10, 2012

There's other things too, like mask's stealth damage works fine but if you upgrade with a later function that boosts its multiplier, turn() doesn' calculate it correctly.

Non-EuclideanCat
Nov 9, 2009
I meant to get this up yesterday but holy poo poo all told this took about 14 hours to put together.

Part 2: The Process




Vote Here!

The Function icons in the second post are now links to demonstration videos.

Non-EuclideanCat fucked around with this message at 22:47 on Apr 25, 2015

Non-EuclideanCat
Nov 9, 2009
Sorry this one is so late, y'all. I've been having trouble finding the time and motivation to keep this one going.




Cast Your Vote for the Next Episode Here!

dotchan
Feb 28, 2008

I wanna get a Super Saiyan Mohawk when I grow up! :swoon:
Is it just me, or is the cell pickup noise identical to the standard Final Fantasy menu toggle noise? I wonder if that was intentional, or they just happened to use the same bank of sound effects.

Oski
Oct 20, 2010

Everyone has their dream...
Just found this thread and am really enjoying the atmosphere of the game. NEC, I hope you manage to find the time/motivation to keep going because this LP is excellent so far!

Non-EuclideanCat
Nov 9, 2009
I apologize for another huge delay. This one, however, was due to me not finding a solid stopping point until an hour in. Good news for you all, though: double update!




Click Here to Vote for the Next Episode's Loadout!

MessiahForHire
Oct 15, 2012
Oh man I recently finished this game but never really did much combat outside of turn(). Probably because I enjoyed the stupid amounts of damage Breach() gives you when upgraded with Mask(), especially if you combo it with Crash(). It has such a long windup that you can't really do that outside of turn() but it's satisfying being able to kill some of the bigger enemies before they even have a chance to retaliate. But at any rate, it's been nice seeing a different style of playing that I never really considered while playing through myself.

Also, since I don't think you've even really showed it off at all I want to mention that for moves that will move you around, like Bounce() making you step forward or Purge() pushing you back, the movement on those functions actually count separately from the function itself during turn(). Which means you can use the function, then hit the undo button to make it not move you but still use the function. It's a neat little detail that you can use to keep yourself in one spot to make hitting some area of effect skills easier, or even to squeeze out one more attack during the turn (an extra breach really makes a huge difference).

Non-EuclideanCat
Nov 9, 2009
Holy poo poo I am so sorry this took so long. Between finals and multiple late, early, and double shifts there was about a straight week where I just couldn't work on this. I know there's all of, like, 6 people watching this but I will try not to make you all wait so long for the next one.




Click Here to Vote for the Next Episode's Loadout!

MessiahForHire posted:

Also, since I don't think you've even really showed it off at all I want to mention that for moves that will move you around, like Bounce() making you step forward or Purge() pushing you back, the movement on those functions actually count separately from the function itself during turn(). Which means you can use the function, then hit the undo button to make it not move you but still use the function. It's a neat little detail that you can use to keep yourself in one spot to make hitting some area of effect skills easier, or even to squeeze out one more attack during the turn (an extra breach really makes a huge difference).

Are you playing a console version? I tested this out and couldn't make it happen.

Glazius
Jul 22, 2007

Hail all those who are able,
any mouse can,
any mouse will,
but the Guard prevail.

Clapping Larry
Man, thanks for all the function dumps, I just put something together. Just headcanon, really, but.

Why's Red humming everywhere? Sybil and the Camerata came for her while she was rehearsing a new set, and you can hear her promo single playing over that poster of her at the beginning.

She's still rehearsing, against the vanishingly small chance that she'll get her voice back and there'll be people to hear her.

Spookyelectric
Jul 5, 2007

Who's there?
Love this game. It's beautiful, wistful, and fun. Keep LPing!!!

dotchan
Feb 28, 2008

I wanna get a Super Saiyan Mohawk when I grow up! :swoon:

Glazius posted:

Man, thanks for all the function dumps, I just put something together. Just headcanon, really, but.

Why's Red humming everywhere? Sybil and the Camerata came for her while she was rehearsing a new set, and you can hear her promo single playing over that poster of her at the beginning.

She's still rehearsing, against the vanishingly small chance that she'll get her voice back and there'll be people to hear her.

Wait wait wait, if she lost her voice how is she still humming? Or is that just "in her head" and not actual humming?

kaosdrachen
Aug 15, 2011

dotchan posted:

Wait wait wait, if she lost her voice how is she still humming? Or is that just "in her head" and not actual humming?

Given the way everyone's being equated with software, maybe what took her voice didn't paralyze her vocal chords but just scrambled her language centers to induce aphasia?

GOTTA STAY FAI
Mar 24, 2005

~no glitter in the gutter~
~no twilight galaxy~
College Slice

Non-EuclideanCat posted:

I know there's all of, like, 6 people watching this but I will try not to make you all wait so long for the next one.

Don't be so hard on yourself. I'm thoroughly enjoying this LP and I really appreciate you taking the time to show off such a great game.

Work at a pace you're comfortable with--don't worry about making videos for the Internet if you've got serious real world things to take care of. Nobody's gonna be mad if you take a few extra days to post an update because you were dealing with school or whatever.

Non-EuclideanCat
Nov 9, 2009
[img]http://lpix.org/2121945/P2E6%20-%20Episode%20Banner.png][/img]

Click Here to Vote on the Next Episode's Loadout!

Managed to get this one out in a timely manner, largely because there's no Extra video this time. We're getting very close to the end, make sure to get in your votes while you still can!

GOTTA STAY FAI posted:

Don't be so hard on yourself. I'm thoroughly enjoying this LP and I really appreciate you taking the time to show off such a great game.

Thanks, mate.

Non-EuclideanCat
Nov 9, 2009
Nothing like two weeks of chaos to grind things to a standstill. How's everyone doing?




This is Your Last Chance to Cast a Vote! It's an Important One! Click Here!

There's only one more video left in Part 2, so make sure to get a vote in!

Non-EuclideanCat fucked around with this message at 03:32 on Jul 24, 2015

Non-EuclideanCat
Nov 9, 2009
Hey everyone. Sorry for another massive delay. Between starting a new job, selling my car/trying to find a new one, and a couple of personal crises, it's been a fight to get the next video made. It's nearly done, though. Thank you for being patient with me.

Non-EuclideanCat
Nov 9, 2009
At long last, the end of Part 2! Enjoy! Special thanks to @nu_vagus for the special audio bits.

Non-EuclideanCat fucked around with this message at 21:02 on Aug 15, 2015

GOTTA STAY FAI
Mar 24, 2005

~no glitter in the gutter~
~no twilight galaxy~
College Slice
Sunkrish Bala was a perfect fit for Royce's VA. Guy absolutely nailed it.

Non-EuclideanCat
Nov 9, 2009

GOTTA STAY FAI posted:

Sunkrish Bala was a perfect fit for Royce's VA. Guy absolutely nailed it.

He manages to capture "my head is full of ideas but I'm pretty terrible at communication" better than John Noble. I hope he gets more roles.

Non-EuclideanCat
Nov 9, 2009
It lives!

Part 3: The Camerata



Took me three weeks but I'm really happy with this one. Make sure to look at the second post if you haven't been following the video annotations; there's a special video down at the bottom.

Non-EuclideanCat
Nov 9, 2009
I swear I'm gonna finish this thing even if I'm the only one who cares.

Also I now reveal the gimmick for Part 3.


Malicus
Oct 31, 2013
Huh. It seems that the names of things are different in that video. I'm not imagining it, am I?

Non-EuclideanCat
Nov 9, 2009
I dunno WHAT you're talking about.

HMS Boromir
Jul 16, 2011

by Lowtax
I'm glad I noticed this thread pop back up. Lying to Kaz is one of my favorite things.

Pinechild
Sep 14, 2011
Man, double Spark was just shredding those Men. And the new names for everything is weird and cool and I kind of want to know how that happened.

Never had anything to say before, but I really am enjoying this LP and you're doing a great job.

Non-EuclideanCat
Nov 9, 2009
I'll explain what's up with the names nearer to the end of things. I am not yet done screwing around with this game.

Non-EuclideanCat
Nov 9, 2009
Hey folks. Next update is in the hopper, should have it up in the next few days. In the meantime, here's a microupdate! A completely new song just for the new Apple products' ports!

https://www.youtube.com/watch?v=zGTkAVsrfg8

Glazius
Jul 22, 2007

Hail all those who are able,
any mouse can,
any mouse will,
but the Guard prevail.

Clapping Larry
I like this run. I've never really had the chance to play around with a UL30 run of the game myself, but it's really entertaining to watch.

I find that a way Transistor works a lot like Bastion is that the game is still fun even after you've got your full kit of tools and know all the enemies. I could just do, like, score attack on Performance Test mode if they made something like that.

Non-EuclideanCat
Nov 9, 2009
We are very near to the end now, folks. As of right now I have 4 updates planned, two of which are videos.




Glazius posted:

I could just do, like, score attack on Performance Test mode if they made something like that.

I think it would've be really neat if they had some kind of extra challenges for NG++ UL30 players. Some kind of score attack or endless fight thing.

Non-EuclideanCat
Nov 9, 2009
Punk's not dead.

------------------------------------------------------------------------------------------------------------------------
Deep Dive 1


As you all have no doubt figured out, the second feature of Part 3 is that I've... modified the game in certain ways, chiefly the names of Functions and enemies. Exactly how I did that and where I got those names will be the subject of another post, but for now I'd like to show you something neat I found while scouring the game's files.



In the Script's folder there's a single folder named "Decks". Inside there's a collection of .txt files with some very zippy names.



Here, for your edification, are links to the text in those files:

All | Initialize

Blaster | Builder | Custom | Drainer | Puller | Randomizer | Scrapper | Sniper | Stalker | Starter | Summoner | Tricky

What we have here is the skeleton of a card game.

We can see references to mechanics similar to the main game: you have WEAPONs, Passives, and Upgrades at your disposal, as well as Meta and Curses. There seem to be two main kinds of moves: attacks, which are named like (sometimes exactly like) Functions, and summoning friendly Processes. For the latter, we can quickly find references to AllyDemolisher, AllySuppressor, and AllyZoner, which we're familiar with, and AllyDeflector and AllyBomber, which we're not.

As for the former, there's lots of names we know and even more we don't. Decks contain Sidearm, Snipe, Blink, etc., but also some pretty wild stuff like Banish, Novaball, Cloudkill, Shrapnel, BlackHole, and ChaosLance. These names don't contain any file references to call card data so I can't tell you what they were supposed to do.

There's also some lines in the game's Utility and Debug Scripts that talk about creating, drawing, and playing cards and the states they can be in (flipped, unflipped, equipped, permanent), respectively.

But wait, there's more! This skeleton has skin!

After investigating the Decks folder I wanted to know just how much of the card game had been finished, so I combed through more files looking for references. It took a while, but I hit paydirt while unpacking the game's texture files. In the "GUI" package there's numerous textures that don't appear in the game but have names that are referenced in the card game files. So here are those, in all their cut glory:

















Those first 11 are cutouts from sheets with multiple textures on them. The rest are all individual files. Make sure to check the images' names; I gave them their original file names.

One last thing: You doubtlessly noticed the unfamiliar face in 07. Here he is again:



That's our lovely boyfriend in the sword, Jack.

Speaking of names and Kaz, I mentioned to him that, while he has no official name, he does have an alias in the code: "Boxer". In the scences where his body is present, numerous references are made to "Boxer" and "BoxerPortation". One section in particular is very interesting:



Yep. Once upon a time you could destroy Jack's body.

What a wonderful relationship.

Non-EuclideanCat fucked around with this message at 20:37 on Dec 21, 2015

Non-EuclideanCat
Nov 9, 2009
Fresh from me to you!




https://soundcloud.com/dmnsh

If anyone's wondering about why there's loading screens in the middle of a speech and a fight, Dxtory just straight-up lost several seconds of video while recording. All the audio was there, but the video would freeze for a bit and then come back, now radically desynced from the audio. I had to shuttle the video forward a few frames during final edits which meant a few seconds of black screen. No getting around it, unfortunately.

Adbot
ADBOT LOVES YOU

Non-EuclideanCat
Nov 9, 2009
Back with the most venomous rap.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

So I've been going on for a while about how easy Transistor is to modify, and I figure it's time to show just what I mean. Let's head on back to the Content folder, and then into Scripts.


This folder holds all of Transistor's scripts, of which there are three types: .txt, .scripts, and .world_scripts.


The .world_scripts aren't really relevant to us. They control things like camera position. It's the other two we care about.



The .scripts contain all the event triggers. Things like scene transitions, the start and end of fights, designating Use Points for jump pads and elevators, all that good stuff.


They also, notably, contain certain conversation triggers, especially for Royce.


Finally, the .txt files are what the .scripts reference to determine what audio files to play and when.


Now, there's two kinds of speech triggers: continuous and conditional. Continuous Speeches are used for the monologues Royce gives when you talk to his proxy. The conversation is loaded up as a single unit and plays all the way through, uninterruped.


Conditional Speeches exist for when there's a chance a given line might not play. If a line is based on a specific action, like most of Jack's reactions to Red are, could be interrupted, like Asher's speeches if you ditch the terminals quickly, or have a chance of not going off, like much of Royce's dialogue in his studio if you hurry through, the line is queued based on certain conditions being met (or not being met).

Also take note of a few things: first, the programming language Supergiant uses has "--" as a way to dummy lines out. Any lines starting with that aren't read by the game as active lines to be used. This can be used to make notes, as with the in-code subtitles for the voice lines, but also to prevent certain events from firing if the creators deceided they don't want to use them but also want to leave them in for whatever reason. Second, all of the paragraphs for dialogue make reference to "/VO/~", where ~ is some kind of file name. It's these two notes that let us make changes to the game's dialogue.


So let's get to that. Back to Content, then into Audio. A few more files deep and we find 7 files: 5 .bank files, a .bank.strings, and a .fsb. The .banks house all the game's sound effects, and I honestly don't know what the strings file is all about. It's VO.fsb that really matters. Within that file is every single voice clip recorded for this game, even the ones that didn't make it in. It's this file that all the /VO/~ calls are referencing



Using an extractor we can get a look at and copy any of these files into a .ogg file, which can be trivially converted into any playable audio format. The files are broken up first by game level (Fairview, Goldwalk, Elevators, etc.), then numbered (Fairview_1 to Fairview_109), then subdivided by letter if a line is part of a series (Asher_5a to Asher_5i). Extracting these files lets us play them for ourselves so we can find out what's what.


So take, for example, Royce's lines. Royce has 374 voice files, most of which are used but certainly not all. So what do we do if we want to put them in? We've got a couple of options. First is to find lines whose triggers were dummied out and remove the -- to make them active again. Second is to add them into Conditional Speeches and add or adjust the conditions to make it all work. We'll see a lot of this in the finale episode. The final way, as I did here:

is to add in an entire Continous Speech into the .txt and corresponding trigger in the .scripts file. All of this can be done pretty trivially so long as you know the file names you want to play and copy the format excatly (failure to do so with Continuous Speeches will lock Red into an endless, silent staring contest with Royce, forcing you to kill the game via task manager or alt+f4).

Now I'll show you how I changed all the names.



From Content into Game we find files containing unit information and animation data. Units contains all the information for enemy units in easily editable .xml files. Their health, movement data, AI, sound effects, upgrades (including the unused Level 4 forms I mentioned), and display names can all be easily viewed and modified by popping any of those files into any word processor. The information for all of our Functions is on similar .xmls, over in Game/Weapons.

Next, let's take a look at how Transistor does its graphics.

The game does its graphics via a combination of sprites and clips.


The Clips are used for especially complex or flowing items: things like Red, Royce's fight avatar, Fetch animations, etc. Everything else are sprites. The Clips exist in .bik files in Content/Movies: a collection of a given animation played in each of the 32 directions an object can face in this game. Presumably these files are all interchangable, meaning Red could be turned into a dog or a headless Man with a simple find-replace.


The sprites all exist on a series of sprite sheet packages over in Content/Win/Packages. Loading them up into a viewer lets us see how they're laid out.


Everything's in here: the backgrounds, most of the particle effects (including Functions), all the objects, everything. Let's take a look at our humble little chicken friend for an example.


All of the Lobber's textures are here, subdivided by purpose:


Attack animations.


Walking animations and death effects.


They're all sprites called up by the reference bins in the various packages, which are themselves called by the animation code in their Units .xml files.

Finally let's take a look at subtitles.


All the game's subtitles exist in a series of .csv files that are married to their respective level scripts.


Each line is assigned to a matching voice file name and is displayed as the file plays. Since these are all simple spreadsheets, they can be modified as easily as all the others. In fact, you've already seen that. The subtitles for Royce's bit about Sybil that I put in did not match the voiced line. I had to delete a sentence out of file to make it match properly.

  • Locked thread