To celebrate the 5th anniversary of the first public alpha of my own game Schwarzerblitz on GameJolt, I have decided to write a short post-mortem/review of that original early version, analyzing what went well and what went wrong in my first officially published indie fighting game.
A developer’s memoir
Five years is a darn long time, if you ask me. 2017 seems just behind the corner, but it’s already half a decade ago. And now, five years later, I’m here, writing this article for SuperCombo.gg, about a game I made and which I would have never expected to get as popular as it got. As of March 2022, Schwarzerblitz has been downloaded and installed more than 30’000 times, between GameJolt, itch.io and Steam, and was even featured as a mystery game at Frosty Faustings XIV.
It all started in March 2017, precisely on 21 March 2017, when the first public build of this low-poly 3D fighting game was uploaded to GameJolt and itch.io, Steam still being a distant chimera. The release was anticipated by a combo video, showcasing the best sequences I could find for each of the six playable characters. One fun thing is that all of the combos in that video still work in the latest version of the game, despite so much time and so many revisions, and at least one of them is still optimal.
But how did exactly play, that March 2017 first public version? Was it really a good game? The answer is not clear cut, but I would say that it has more problems than immediately apparent, despite featuring already a wide section of its gameplay features. Most of the core gameplay was already there, albeit needing some heavy refinement.
Revisiting the alpha, five years later
Since I felt nostalgic, I decided to go through my very first public build again, in order to see what carried over and what was left behind. The first noticeable difference was the fact that the main menu had far fewer options. There was an arcade mode, a local versus mode (player vs player, player vs AI and AI vs AI), and a training mode without any settings, damage data or frame data. The game had no tutorial at all, everything was explained in a .pdf game guide distributed with it and accessible in-game via the pause and option menu.
Ironically, the 2022 version of the game still features the early 2017 game guide, despite also providing a tutorial mode divided into several chapters. This was a byproduct of my developer laziness: The guide was quite comprehensive and the game didn’t change enough to warrant a re-issue, so I didn’t see a point in replacing it.
But now let’s get straight to the point: How did the game feel?
[Note: in the following I will refer to this version of the game as Schwarzerblitz Alpha to differentiate it from its current version.]
Virtua Fighting while glued to the ground
Schwarzerblitz Alpha featured the familiar Soulcalibur 8-way movement, making use of a guard button for jumping and crouching. This, in theory, should have made the game very focused on its movement and quick navigation of the stage. In practice, however, Schwarzerblitz Alpha was a very slow-paced game.
Contrary to its later incarnations, Schwarzerblitz Alpha didn’t have any quick side-dash and the sidewalk movement speed was abysmally low. Back step was also crippled, as it had some invulnerability but also a very long recovery. Running was also more committal, as no running attack could be performed before 2-3 steps, leaving the character very vulnerable while approaching.
Jumping was pretty pointless too: none of the characters in Schwarzerblitz Alpha had access to jump attacks, making jumps just a semi-inconvenient way to evade low attacks. There was only one specific interaction where jumping was a life saver (more on this later), but overall this didn’t make it good in any considerable way. Moreover, jumping had also significant landing lag and couldn’t be used to switch side, making it even worse than it already was.
Last but not least, in a Virtua Fighter and Soulcalibur fashion, the game had several stages with ring-out options. A ring-out would immediately end a round, which meant that you didn’t want to be on the wrong side of the stage. This didn’t bode well, coupled with the movement issues discussed above.
- back dash was slow and had a lot of recovery frames;
- side-movement was slow;
- running was a chore;
- jumping was mostly useless;
- there were ring-outs, making positioning very important.
Looking back at this list, it’s clear there was something wrong… but I wasn’t yet smart enough to realize it. Before developing Schwarzerblitz, my experience in terms of fighting games included only Tekken 2 till 5, Soulcalibur 2-3, Digimon Rumble Arena, Dead or Alive 2 and BlazBlue CSE, all played at a very casual level, most of the time solo or against my brother.
Thus, we have a 3D game with ring-outs and bad movement. Off to a perfect start, I’d say.
The importance of being chainable
The attack system of Schwarzerblitz Alpha is almost 1:1 what would then be featured in its later incarnations. The layout included a Punch button, a Kick button, a Guard button, a Tech/grab button and the Trigger button. The game was chain-based, much like Tekken, DoA and Soulcalibur. Attack buttons could be pressed one after another to perform a canned set of predetermined chain attacks, in a dial-a-combo fashion. However, much like Tekken strings, those chain attacks weren’t real combos and could be blocked between blows.
Unlike Tekken, most of those chains didn’t have a mix-up option, making them pretty useless against an experienced opponent. The biggest sin, however, was that many of those chain attacks were minus on hit. For those of you who aren’t experts in fighting games lingo, this means that the opponent would be able to act before the attacker even while being hit by them.
The reason was simple: every attack had an additional recovery of at least 9 frames baked in, and it was so by design. Therefore, no move was actually spammable, including jabs and moves that should have been performed repeatedly without issues.
If I remember my notes from that period correctly, the idea was that, since not completing a string would make things dire for the attacker, the players would have been forced to actually commit to the full chain, to end it with an attack that gave them some advantage instead, but was very risky on block. Suffices to say that this became a problem, especially when coupled with an unforgiving input buffer that felt both too lenient and too strict for its own good.
Trigger like the ’10s
Schwarzerblitz Alpha had no super meter. Instead, characters started each match with six Bullet counters. Bullet counters are a finite resource, both in this game and its newer releases, and, once consumed, they can’t be replenished. The only way to receive new Bullet counters is actually ending a round. Two Bullet counters are assigned to the loser of the previous round, while the winner gets one back. This was meant as a built-in symmetric comeback mechanic.
If an attack was performed while the Trigger button was pressed down, that attack would gain the following benefits:
- 1.2x damage multiplier;
- 1.2x hitstun multiplier (or more, depending on the type of attack);
- time slowdown on hit to allow for easier chaining;
- guard break properties;
- throws became untechable.
Trigger Attacks and the resulting Trigger Combos were probably the most interesting feature of this alpha. With one Bullet, characters could actually turn every chain and string into a proper combo, thus eliminating all the issues about frame advantage and drops. The effect of a single Bullet would remain active until the string was dropped or concluded with a finisher, thus giving the aforementioned boosts to all attacks in a chain.
A good Trigger combo could deal between 35% and 40% damage for all characters, turning every stray hit into a potential powerhouse of a combo.
Since everything needs check and balances, Schwarzerblitz Alpha also featured the Yang to the Trigger Combo Yin: Trigger Guard.
Like Guard Impact, but with a bang
Trigger Guard is a weird mixture of a defensive burst from an anime game and guard impact from the Soulcalibur series. To perform a Trigger Guard, one needed to press the Guard button and the Trigger button together while in hitstun, while optionally pressing down to crouch at the same time. This move costed one Bullet counter and would immediately cancel hitstun, allowing for an immediate counter attack. If the Guard button was kept down and the opponent’s next blow was blocked while in a Trigger Guard state, the attacker would instead be put in hitstun themselves.
In Schwarzerblitz Alpha, Trigger Guard was a full-on advantage for the defender. The consequences of failing it where dire (losing a Bullet, suffering a counter attack) but the reward in case of success was stellar.
This made Trigger Guard pretty busted, but not very abusable due to the high cost. Later iterations of the game would change it to remove the advantage and instead reset the game to a neutral state between attacker and defender.
Compared to its late incarnations, this version of Trigger Guard had a glaring issue: It couldn’t save you if your character was back-turned.
Even when inputting the Trigger Guard combination, if the opponent kept their combo going while you were back-turned, you were basically screwed. Attacks performed on back-turned opponents were and are still unblockable, even five years later, but at least now Trigger Guard auto-corrects the orientation of the defender.
Why is this an issue? Well, huh, let’s talk about it later, in the characters section, shall we?
Impact Cancel, where art thou?
Trigger Combos and Trigger Guard were the only way to spend Bullet counters in Schwarzerblitz Alpha. Later versions would add several additional Bullet-burners, like Impact Cancel, which works as a combo extender, Trigger Reversal, which is an armored wake-up attack, and character specific tools, like Lazor’s infamous 1-hit-KO-punch or Evilobster’s Empire State Suplex.
Schwarzerblitz Alpha was more simple and limited from this point of view. This was also evident by looking at the available defensive tools. There were no wake-up forward or backward rolls, soft knockdowns could be teched in only one direction, and the ground roll while knocked down had no invincibility whatsoever.
Moreover, there wasn’t any concept of “armor”, though moves with invincibility frames already existed.
To be honest, the amount of features the game added over time is not staggeringly high, but it’s a good indication of how the basis of the formula worked and just needed some quality of life tweaks.
The magnificent six
Now that the technical discussion is over, let’s analyze the cast. Schwarzerblitz Alpha offered six playable characters:
- Mystery Johnson, the faceless face of the game;
- Tiger Sambiong, a mutant tiger-man soldier;
- Cyphr Wolfchild, an armless German girl with cybernetic implants;
- Skeleton Skallen, a masked French mercenary with a skull insignia;
- Shaz Aliart, a drunken, pub-brawling shark-man;
- Aylin Mary Yang (Amy), a well mannered and polite martial artist practitioner of mixed Chinese and Swedish heritage.
Each character had two or three costumes, and there were also three non-playable characters that could only appear as arcade mode opponents or be played as by editing the roster.ini file:
- Graf Shabeel, a cyborg tiger-man with a red eye and extensible arms;
- H-168 Krave, the meme-y dabbing robot who killed Cyphr’s mother;
- Donner Misterkay, the arcade boss, a shadow dressed in black with shining yellow eyes.
Graf, Krave and Donner were heavily unfinished. Graf and Krave used many of Tiger’s and Johnson’s moves, while Donner was a mishmash of Johnson and Skeleton, with the addition of two projectile attacks. The three of them were heavily reworked for the following alpha plus release.
Main character, bottom 1
Seeing with today’s eyes, the cast was extremely unbalanced. Cyphr was in a league of her own, with Tiger and Skeleton just a notch below her, Amy struggling to remain relevant, Shaz being plagued by horrible hitbox issues and Johnson having basically no single good move outside of Trigger mode.
By replaying the first alpha this week, I have managed to put together write some notes on how each character fares in this version of the game and why:
- Cyphr: easy 25% damage Bullet-less combos from a quick standing low + unblockable 50% damage 1-Bullet setup after grab.
- Tiger: easy 25% damage Bullet-less combos, but needs more committal starters than Cyphr or Skeleton. Best mobility and evasion tools, high Trigger Combo damage.
- Skeleton: easy 25% damage Bullet-less combos out of a jab (so, guaranteed punish on basically every blocked attack), long reach 20% damage combo from an advancing kick. Bad Trigger Combo damage, better use Bullets to either close the round or Trigger Guard.
- Amy: easy 25%damage Bullet-less combo out of very committal attacks. Her evasion is subpar compared with Tiger and she has only one good combo starter. Her Trigger Combo damage is poor. Her jabs and kicks do not naturally combo outside of Trigger mode, poor Bullet-less damage outside of her one good starter.
- Shaz: inconsistent Bullet-less combos, can deal some 15-25% damage but it’s very dependent on some janky hitbox interactions or reliant on a very close-range poke as a starter. Furthermore, all his guaranteed combos leave him at frame disadvantage. Relatively good Trigger damage, but hampered by broken hitbox placement.
- Johnson: this man has literally almost no combos at all outside of Trigger mode. Spiral Turban is minus on hit, he misses key tools from later revisions. Has some slow standing low, his jabs do not combo into anything outside of Trigger. His only redeeming feature is the highest Trigger Combo damage in the game (excluding Cyphr’s unblockable setup), but the path to get it is kind of easy to predict and Trigger Guard out of it.
Reasons why Johnson was absolute bottom of the barrel in Schwarzerblitz – March 2017 Alpha: This was his most damaging Bullet-less combo – which dealt less damage than a grab.
This is not a joke. I wish it was. Fortunately, he gained more tools later down the line #FGC #indiedev pic.twitter.com/ETAaFrOIc4
— Andrea Demetrio (@AndreaDProjects) March 18, 2022
Balance, or lack thereof
Now, I suppose you have questions about the nature of that “unblockable setup” I have listed for Cyphr. Remember when I said that Trigger Guard doesn’t work when back turned and that back attacks cannot be blocked at all? Well, guess what happens when Cyphr throws you?
Exactly. Your character is now back-turned and she has a guaranteed follow-up. So, have fun eating a 50% unblockable combo, while re-evaluating your life choices. To add insult to injury, she can make the full sequence unbreakable by Triggering the grab or comboing into it via a simple two-hits string.
Reasons why Cyphr was top tier in SCHWB – March 2017 alpha:
1. High Bullet-less damage from std. Low
2. This sequence below was guaranteed after the grab, because one couldn't Trigger Guard backturned hits. I still have to check if jumping could avoid it, though! #FGC #gamedev pic.twitter.com/zI1FloPM6l
— Andrea Demetrio (@AndreaDProjects) March 18, 2022
The only way to get out of that sequence was to sacrifice one bullet to perform a Trigger Guard after a couple hits while keeping “up” pressed, thus jumping out of the combo and being sent flying to the other side of the screen. This might have been the only instance in the game where jumping had any use at all.
Okay I *might* need to edit the article, I have found a way out 😀 The ONE instance in this game where jumping is ACTUALLY useful! pic.twitter.com/E7IXfBpj7W
— Andrea Demetrio (@AndreaDProjects) March 18, 2022
So, not only one HAD to Trigger Guard out of this guaranteed reset, but one also HAD to take some unavoidable damage and risk being cornered without even realizing it. Furthermore, this way out was useless near a ring-out zone, as the jump would result in an instant loss due to the knock-back. This turned an already terrifying situation in a more terrifying situation: If Cyphr connected with her grab while she was cornered near the abyss, the round was over.
Skeleton and Tiger were menacing, but because of this, plus her excellent Bullet-less damage, Cyphr was just on a whole other level.
Therefore, while all characters are definitely more than viable against the AI, in a multiplayer setup, Cyphr, Tiger and Skeleton would be the dominating trio, with Amy as a surprise pick, while Johnson and Shaz would be quickly cast aside. I think playing the top three characters in various match-ups could lead to a semblance of balance, but it’s hard to discuss the meta of a game that saw no competitive scene.
Surprisingly, this version of the game should have no real infinites, because of the additional recovery frames each move had. I can’t vouch for it because my reflexes and execution are pretty bad, but after fiddling with Schwarzerblitz Alpha I couldn’t find any indicator of them existing.
I would be very interested in seeing this version of the game played at a more competent level… but at the same time, I don’t want to subject someone else to its sluggish movement and cursed hitboxes.
After five years and a lot more experience in the genre, I can finally look back at that initial March 2017 Schwarzerblitz Alpha and draw some conclusions, in a proper post-mortem analysis.
What didn’t work
- Movement. Oh, boy, the movement was easily the worst part of this version of the game, which doubles as a cardinal sin for a 3D fighter. Running is hard, jumping is useless, back dashes have too much recovery, the movement speed is abysmal, there is no quick side step. The rest of the issues aren’t as significant as this one;
- Input buffer. Too lenient to the point of allowing for accidental strings if buttons were pressed too fast and, at the same time, too strict, making some cancels very hard to perform;
- Animations. I was still learning how to use Blender, and it shows. Some animations are unironically bad, including most of Johnson’s animations, Amy’s stance and the common, clunky running animation;
- Attack recovery. Too many attacks are negative on hit or have abysmal recovery, making them almost useless outside of Trigger mode. Some character didn’t even have proper functioning combo strings without using Bullets;
- Obnoxious inputs. Some attack inputs felt complex for the sake of being complex, like Shaz’s d/b P+K for his fast crouching headbutt. I don’t remember if this was due to a limitations of the input reader or a twisted design choice. Remembering Evilobster’s inputs in the following Alpha Plus version, I can probably vouch for the second, though.
- Character balance. Johnson and Shaz was far weaker than the other characters, and their combos didn’t even properly work outside of Trigger mode. Cyphr had an unblockable setup, Skeleton had incredible punishment, Tiger had incredible reach, Amy was somewhere in between.
- Lighting and colors. Schwarzerblitz Alpha is too darn dark. During the last stage in arcade mode I can barely see Donner’s silhouette. The main reason behind this is that my development computer’s display had a very—let’s call it interesting—color balance, which made it look like there were no issues whatsoever on my setup. This was—fortunately—corrected later.
What worked well
- Character tools and personality. Despite the balance and hitbox issues, the six characters in this version had access to a good chunk of their signature tools, like Tiger’s Scarlet Screw and Johnson’s Spiral Turban Special. Even after five years, most of the original six still play “as intended”, despite their kits having received new additions and staple moves;
- Choice of characters for the alpha. Cyphr and Johnson are still topping the character popularity polls, sharing their place with an Alpha Plus newcomer, the Evilobster. The fact that those two members of the original cast stuck with the players is a testament to their charm;
- Trigger system. Trigger Combos are easily the most entertaining part of Schwarzerblitz Alpha. Their interplay with Trigger Guard is still fun even if the system was in its infancy and was missing some nuance;
- Chain system. Despite some issues with the input buffer, the chain flow system worked very well and was definitely worth implementing as a fundamental part of what was and still is the core of the game;
- Ring out. A love-it-or-hate-it mechanic, but added a lot of flavor to this game and is still one of my favorite additions. If I look at the finished game, though, there aren’t that many stages with ring out options, which is a pity.
- The AI. Despite being still a stub, the AI in the first alpha is decently challenging, even if it loses to some cheap strategies that wouldn’t work against a human player. Watching AI vs AI matches is actually pretty entertaining in this version of the game.
Verdict: Not Guilty
Schwarzerblitz Alpha isn’t a masterpiece by any metric. The sluggish movement, janky hitboxes and weird input buffer hamper the experience, making it less enjoyable that what it might be. However, when it works, it works well. I was surprised to see how much this game felt already like the Schwarzerblitz I now know and love, and how many of the character tools were already present, despite the lack of several key moves. The balance could have been better, but the top three/four characters can duke it out relatively evenly—outside of Cyphr’s ridiculous throw combo starter.
Playing this version of the game after five years was an incredibly interesting experience, as I could taste my own design decisions and naivete of that time, while still feeling the passion behind the project.
Schwarzerblitz Alpha might not be a good game, but it’s the game that made it all possible and allowed me get in touch with so many other indie developers. Without this janky, cranky, broken, beautiful disaster, I wouldn’t be here writing these lines to you all.
Yet I’m here, five years later, still riding the black lighting, making a new game, running tournaments and enjoying it against friends, online and offline.
This time, without Cyphr’s broken unblockable throw setup, hopefully.
This version of the game isn’t available for download anymore . However, in case you are brave (or fool) enough to want to try it out, I have a good news for you: I have re-uploaded it to Dropbox, where you will be able to download it. I am taking no responsibilities for how broken this game is, know what you are getting into! If you want to try the finished version instead, you are welcome to download it from GameJolt, itch.io or Steam!
[This article was edited on 18 March 2022, to add some additional notes on Cyphr’s unblockable setup]
Indie fighting games articles
- TMNT x JL Turbo — the impossible made possible
- Ultra Fight Da! Kyanta 2 — the hero we didn’t deserve
- Input Chaos – a twin stick ragdoll neon nightmare
- Beatdown Dungeon — Jet Set Crawling with Tofumen
- Fight’N’Jokes — rolling back, 25 years later
- Mega Knockdown — taking “it’s my turn, now!” too literally