Transistor came out a week ago, and it is Awesome. There are many reasons why it’s Awesome, but in the interest of avoiding spoilers, I won’t talk about the story, or much about the music. Instead, I’m going to talk about the combat system.
Transistor’s combat system has two parts, an active phase and a planning phase. On the surface, the real-time combat resembles combat in Bastion, but it quickly gets far too hectic to handle in real-time with a basic set of abilities. When it gets to be too much to handle, you can enter Turn() mode, which allows you to stop time and queue up a series of actions to execute near-instantaneously. After doing so, you can’t use most abilities or stop time again for a little while, which is referred to as “Turn() recovery”.
The various abilities you can use in combat are referred to as Functions. These can be equipped in three ways: Active, Passive, or Upgrade. Active slots are pretty simple, they let you use a given ability in combat. You always have 4 of these. Passive slots are also pretty simple, Functions slotted there provide some sort of passive bonus in combat. You acquire these as you level up, capping at 4. The third type of slot is the most interesting. Upgrade slots are attached to active slots, and modify the ability in some way. You start with one upgrade slot for each active slot, and can get more as you level. Usually a function will have related uses in all three slots. Bounce() is an attack that chains to multiple targets, as an upgrade it can cause other attacks to chain to multiple targets, and as a passive it will give you a shield that causes enemy attacks to bounce off.
The really interesting thing is figuring out how all of this goes together. Functions require different amounts of memory to set, and there is a memory limit which usually means you can’t fill every slot, so making the most of what you can set is important. Since you start the game with Crash() and Breach(), it usually doesn’t take long to figure out that targets disrupted by Crash() take bonus damage. If you combine these, you get a long-range attack that stuns enemies and causes them to take bonus damage. With a bit of creativity (and once you get more functions down the line) this can quickly get ridiculous. One of my personal favorites is combining Void() with Get(). Normally Get() draws enemies to you, but in combination with Void() it draws enemies into the weakening field.
All of this comes together for a combat system that has interesting elements of tactics and strategy. In a sense, it’s reminiscent of the Mega Man Battle Network series in this way. Mastery of the combat system requires being able to build a set of useful abilities, and then knowing how to execute your strategy in combat, both in and out of Turn(). The game eventually provides a sandbox (almost literally) for experimentation, and it reveals parts of the back story when you use functions in different slots to further encourage trying different things. It’s one of the many wonderful parts of the awesomeness that is Transistor.