ZZT is a medium for game creation that tends to rely heavily on your imagination. In plenty of games you never get any more insight into what a character looks like other than their character/color combination. (Which in some cases, is plenty. ) In many ways, it's incredibly freeing for the author. The incredibly limited visual fidelity of a ZZT world gives non-artists much more even footing with more visually skilled peers. This goes beyond just the visuals, and arguably into every aspect of a ZZT game barring perhaps the writing. ZZT allows for those with no knowledge of programming to dive right in, even if they make no attempt at coding entirely. Audio is a rarity, and ironically those with a knack for musical compositions are probably going to be equally flummoxed as somebody with little experience when they realize they have to compose for a single-channel of square-wave audio. The amount of work that traditionally goes into making a game from scratch is dramatically reduced in ZZT, greatly expanding the potential user-base of creators who might otherwise never touch game design. The question about this lack of required depth and general lack of expectations is if it's then possible then to rely too much on it? Can you make a game that's so stripped down that it offloads so much onto the player that they can't enjoy themselves?
Well, I took a look at the Space Fighter: Mercenary series, by Nivek and DarkMage to find out.
For those with some familiarity of the mid-to-late 90s ZZT scene, these are familiar names. While DarkMage himself doesn't have a lot of credits, his ZZT company "DarkMage Software" has quite a few entries, and the iconic rainbow typeface can be found on plenty of title screens.
Nivek meanwhile carries a much stronger reputation through his own creations. Nivek is notable for his vast quantity of fantasy RPGs which have always been well regarded. He's a multi-award winner within the ZZT community, with three "Classic Game of the Month" awards being presented to Daemon Riff, Blood Oath: Trials of the Wyrm, and Defender of Castle Sin. With so many other games credited to him, the vast majority of which look to be set in fantasy worlds, I had to admit I was very curious what a sci-fi space opera of his might end up playing like.
Being already familiar with his iconic visual style and well-coded if not necessarily well-balanced engines, I was really curious what he'd be offering in Space Fighter. This is one that leans a little on the early side, so I wasn't expecting too much honestly, but with Nivek on the team I was at least confident that there would be some solid ideas here. Perhaps underdeveloped, but I expected at the very least something that hinted at the kind of more seasoned works he released after this series.
Of course, this is a joint authorship here. According to the text file for the first game, Nivek is responsible for the spaceflight engine, which to no surprise is a core feature of Space Fighter. It's very difficult to say who was responsible for what with the rest of this, as it all looks very Nivek to me. Looking at the style of what's credited to DarkMage combined with the fact that this series isn't the duo's only collaborative work and it's a lot more difficult to tell.
So what's this series all about? In both games you take on the role of a fledgling intergalactic mercenary for hire "Captain Rodite". Rodite has a spaceship and earns his living by doing dangerous work on behalf of others. By far the weakest point of the games, and especially the first one, is the real lack of personality to the character. It would be easy enough to make Rodite be the stand-in for the player, but there are enough little details that make it seem like he's supposed to be a more distinct character. The trouble is that it's always presented through narration rather than words coming out of Rodite's own mouth. Personality is simply assumed based on the sci-fi boxes ticked and the player's familiarity with other science fiction stories.
I can't tell you who Rodite is, where he came from, what he believes in, or why he does what he does. No, what I can tell you is about his cool space ship. The game opens by telling the player that they're Rodite before going into details on is first class afterburner, large storage space, and class five energy shield. For a game whose primary form of gameplay comes from astral dogfighting, the attention being put on the ship rather than the pilot is reasonable enough, but as the game progresses and a civil war becomes the main focus of the story, having Rodite show nothing but a poker face to anything that happens to him (or more accurately, around him) really keeps the player from getting to actually participate.
So instead because you're a mercenary with a cool ship, a blaster, and no interest the outcome of a war between rebels and an empire I assume that Rodite is just ZZT Han Solo. Except Han Solo's personality is a major part of why the character is so popular. I think Nivek and DarkMage are just assuming that by providing a few similarities between the two that the cult of personality will logically follow.
The First Mission
The game begins onboard a space station where an officer provides Rodite a job to destroy a prototype battleship "Talon" deep in Niaboc (the first of many musical references and backwards names) controlled territory before it is unleashed on said space station. Rodite silently accepts the offer and the generous up-front payment of 1500 credits.
Getting paid in advance is critical as Rodite starts with absolutely nothing other than his ship, not even any ammo for its weapons system. While you don't start with any ammo, torches, etc., the first spaceflight board does provide some meager supplies. However as you're doing your shopping unaware of this, the impulse to spend is one worth giving into.
This opening board hints at an underlying structure that's completely reasonable to expect. Take a job from somebody on the space station, spend some credits on the supplies needed, blow up some hopefully bad guys, and return to collect your profits. Well, Space Fighter doesn't actually follow this format. This should be good thing, as while there's no real issue with a simple looping gameplay mechanic, getting missions from other folks while out on your current mission should offer up a lot more opportunities to tell a compelling story, make the galaxy feel larger, and introduce new styles of gameplay. While this is closer to what actually happens, it's going to be very cut and dry from start to finish.
Rodite runs into trouble right away as he encounters a small fleet of Niaboc ships. Luckily for him, they're hostile, but unarmed. This first board is a nice introduction to how the game works. Your ship is represented with a thin arrow character that points away from the direction you're moving, but hey it matches the design seen in the space station quite nicely. The engine surrounds the player to capture input from the arrow keys by touching different objects. Left and right are used to rotate the ship, and up is used to fire in the direction you're traveling.
This isn't much overall, and is easily the sort of engine a young ZZTer can figure out pretty quickly, however it is admittedly still more than I was expecting. Having grown up playing yenrab's Dogfight (endlessly) I was fully expecting the more common "Space Invaders" design with movement on just one axis. Having free-form flight like this definitely adds some more complexity.
It doesn't take long to realize why the other style is more common. It is a tremendous pain to hit the erratically moving ships multiple times. This is still troublesome in other ZZT shoot-em-ups, but the one axis movement lends itself to having larger sized ships that fire multiple bullets at once. There's much more precision required here and little opportunity to employ it.
There is a bit more to the flying engine than just moving and shooting. Pressing down brings up a list of special commands that try to bring some more complexity to the gameplay.
Firstly, are your shields. Normally crashing into an enemy ship, wall, the game's HUD, or the board edges will result in losing ten health. The same thing happens when you're shot by enemies that actually shoot at you. Shields let you spend a gem of energy to stop your ship in place and surround it with solid walls for a moment before erasing them and resuming flight.
These good intentions are tragically defeated by poor execution. It's easy to imagine a large battle cruiser firing a barrage of lasers at your ship only for the ace pilot Captain Rodite to bring up the shields just in time, sparing his ship from total destruction. The shields have a big caveat: in order to prevent you from accidentally destroying objects (or comically tunneling to the exit passage) the ship checks if it's blocked in any direction, and if so, the shields do not raise. Any last second save is inherently doomed as an adjacent bullet means you can't pull up the shields in time. Space Fighter: Mercenary goes on to miss out on a good opportunity by also not actually having any giant walls of projectiles to shield yourself from. It'll have plenty of big ships, but the weaponry is always spaced out such that whether fighting a tiny fighter or massive cruiser you're going to be better off just dodging enemy fire entirely.
If you do find yourself using shields, you've got a bit of a wait as well. You can't manually disable them which also means it's quite possible to have your shields immediately go down in time to be hit by some more bullets.
The second unique capability of your ship is the use of afterburners. Again, there's a good idea here that fails on the execution. Your ship moves at cycle two which with the playable region of the board being so massive ends up feeling fairly slow. The afterburners address this problem with a cool mechanic where you burn through fuel (torches) and can move at cycle one instead. A 2003 review of the first game calls this feature out as not being useful, and I was ready to disagree. Running your ship at cycle two means that any command issued to your ship via the controls might execute immediately, or might take an extra cycle if the ship doesn't get to tick that cycle. I fully expected to be running afterburners as much as possible to get more responsive movement, even in situations where going fast might be detrimental.
My apologies to you Max. The afterburners are indeed not useful. They do make the ship move faster, but there's a pivotal flaw in the engine.
Your control objects are set to the default cycle three
That's VERY BAD. That potential delay at cycle two is already happening more severely just by trying to issue a command in the first place! At the normal speed you can in theory touch a directional arrow have to wait two cycles before the object responds to it and tells the ship to change directions, and then have another cycle of latency before the ship actually makes a turn. At high speed your ship becomes a nightmare to control, and at low speed things still feel very awkward. Nivek's programming here is not yet at the levels I'm used to it being, and the space combat suffers significantly because of it.
Despite my complaints, it still took me fewer than two minutes to get through the first encounter. That might not be a lot of time in the grand scheme of things for a ZZT board, but boy does every second feel like ten when you're down to one last ship that you have to hit.
Randomly moving ships are just one of the many foes Rodite encounters, with many of the fights being against larger ships like the Talon here. In this case you can breathe a lot more easily with stationary targets that are a lot easier to land hits on. Talon here has dense shields that keep the player from flying around to the boss's weak point behind the ship. The expectation here is to shoot a few important bits on the wings to destroy the shields, then take out the back piece before swinging around the front again to finally expose and destroy the core.
The enemy shields are kind of interesting as well. It's not just water to let shots through but block your ship from getting around. It routinely flickers into invisible walls for a moment before changing back which means it can actually block your shots as they hit a solid wall rather than water. Again, it's a neat idea that doesn't get explored at all. All it means in practice is that you have to shoot extra shots to ensure enough get through to your target.
With all that done, Rodite turns around and safely returns back to the space station victorious. This is identical to the combat sequences, except there are now extra options available to slow the ship down, first to cycle three, and then to cycle seven. It's a bit excessive given that the ship begins properly aligned with the landing area and only has to make a single turn to fully pull into the hangar. Even here a crash only results in losing ten health so feel free to just smash into the station and adjust from there.
Upon arriving back at the station, the officer who gave you your mission thanks you, gives you a tip of some extra credits and supplies, and suggests that you head to the bar and buy yourself a celebratory drink.
Normally, I wouldn't have bothered to include this board, but I love the snoozing shopkeeper.
The bar doesn't look like much, but it's without a doubt the weirdest part of the series. You can of course talk to any of the bar's current patrons, which include cameos from Nivek (who warns you that DarkMage will give a stupid speech) and DarkMage (who gives said stupid speech about the company's other games).
The real stars are the characters included to let the player know about the authors' taste in music and television. This includes a guy listening to Nine Inch Nails, Trent Reznor himself, and Monty Burns from The Simpsons singing half of See My Vest to silence. Needless to say it's all amusingly out of place in a game which has been devoid of humor prior to this, but why not have a little fun with some NPCs that are only there to fill a room?
It's only when you speak with the barkeep that things get moving again. Now we're getting somewhere! Rodite is offered a job doing some arms smuggling to rebels with some hefty pay and an upgrade to his ship's firepower. How could he refuse?
He can't. The exit is blocked until the mission is accepted. Still, it's a good way to move the story forward. What could be more classic sci-fi action than rebels fighting a corrupt empire? It's a common trope, but it's one that will give Space Fighter the chance to broaden its scope a little. Rodite accepts and receives 2000 credits up front with instructions to reach the planet Ekul, (no doubt named after Mr. Reklawyks,) find a man named Skorpian, and perhaps see if he has any jobs as well.
Nivek and DarkMage steadfastly refuse again to offer any glimpse at Rodite's personality. His only dialog here is the player's selection of "Okay" to take the mission. Is he sympathetic to the rebels? Does he support the empire? Does he support the empire in the sense that these conflicts are money-making opportunities?
He'll never tell.
Leaving the bar takes you to your ship where a group of mechanics are working on it. The bartender is there and explains the he decided on including the chain cannon up front since you'll probably need it. I certainly can't complain about getting my new weaponry early, especially after seeing what shooting down a target was like before!
However, there's one problem here. The shop was closed before, and there's no opportunity to visit it now. Rodite has no opportunity to restock his ship.
The afterburners and shields might not be worth investing in, but this means you may be dangerously low on ammo depending on what you bought at the start of the game and how much you managed to carry over to this next mission. Really you should just be spending all your money immediately, but there's no way to know that this shop is a one time affair or have any idea if you'll specifically need money for a mandatory purchase later.
Before you leave, you also get teased with this cutscene for taking off. The only animation that actually happens is the door opening. I suppose that's to be expected for a game of this vintage, though I could have sworn I came across a game before which started in a hangar and had the walls vanish and start using a scrolling star-field effect as the ship took flight. Maybe I'm combining things in my head here as the closest I can find is the introduction in Agent Orange's retro-styled 2021 space shooter Metal Saviour Bia. Holding it to the standards of a game released more than twenty years later isn't exactly fair, but even just a thruster igniting and the landing gear disappearing would have done wonders for this scene.
This time the obstacle isn't enemy ships, but an asteroid belt. Rodite receives a transmission, presumably from the barkeep threatening to kill Rodite if he doesn't get to Ekul. He explains you can probably blast the asteroids to pieces and then just need to get into the "transportal swirl" in the corner.
The asteroid field looks like it's just going to be a crude maze to navigate, but the majority of the asteroids move randomly. At least this time they don't actually have to be destroyed so there's no frustration here in terms of trying to hit targets. The asteroids directly surrounding the portal, despite being visually identical do not move, nor can they be destroyed. This forces the player to squeeze in through a small gap in the northwest corner. I couldn't help but appreciate that the mixture of shapes did a good job making the way in a little hard to notice. It does a nice job making it feel as if Rodite is indeed doing some tricky flying to find a way through.
The suggestion to just blow away all the asteroids seemed like a great opportunity to try out the new chain cannon Rodite's ship received. The alternate weapon can be toggled through the options menu and changes the way the ship shoots. Instead of firing a single shot straight ahead, the ship automatically moves into adjacent columns (or rows when moving vertically) to fire a spread of three shots. It costs three ammo to fire, which is reasonable enough for having triple the firepower of the normal weapons.
And you know, it's once again almost a good idea. The player now has the option to fire in a wider arc, making it more likely to hit a target, but knowing that the other two shots will almost certainly miss. When dealing with groups though, you might end up landing hits on multiple enemies. Alternatively, they can stick with the default weapons which requires more finesse to hit a target, but can do so with fewer wasted shots if your aim is solid. The ammo trade-off could be an interesting option to explore. The problem is that it's very easy to already be dangerously low on ammo like I was, and if that's the case you simply can't spare the ammo, and so the chain cannon becomes yet another tool to ignore.
Ah! But this is what I was hoping to see with Space Fighter: Mercenary. This art board of your ship flying out of the transportal to the Ekul system is what I expect to see from a game credited to Nivek.
That glimpse of something enjoyable doesn't last. Actually making it Ekul means fighting flying saucers, another large ship, and another landing sequence. It establishes that the empire is aware of your cargo and prepared to stop it from arriving, but it all plays just as it did before. The only thing to really note for the battles is that the saucers try to attack by throwing stars, something that not only can objects like your ship not be shot by (though I suppose you could crash into them), but they focus on the actual player element nestled in the controls at the bottom of the screen.
In keeping with the theme of undercover rebels, security is high at the docking bay. Actually leaving the place requires a conversation with some of the workers there. So how will Rodite get by? Subterfuge? Intimidation? Bribery? Jedi mind tricks?
It turns out honesty is the best policy here. If you make up a name it won't be in their records. If you come up with a lie for why you're here they won't believe it. This mission is not going well. At least "I came to deliver some goods" is ambiguous, but you know, presumably these people are well aware that contraband is being smuggled in to support the rebels.
Perhaps they're double agents working for the rebels. The city you're meant to be in while searching nearby for the rebel base is is named "Leber" after all...
There's also a little bit of detail added by having another ship docked here. The pilot offers to sell afterburner fuel, but boy I really wish he was offering ammo instead.
While the vortex was exactly the kind of art I had hoped to see in a Nivek game, the twin moons of Ekul here are more what I was actually expecting. Again, I can't say for certain which author was responsible for the art here, but this is a bit more "early Nivek". In a game so demanding of the player's imagination to do the work, here it's welcome. The perspective here providing so much more focus on the sky than the trio of soldiers makes this board far more iconic of an ambush scene than it would be otherwise.
The soldiers demand you surrender and allow yourself to be imprisoned for running contraband. Rodite, in a change of pace actually speaks up with a simple "Go to hell!" before the firefight breaks out.
As an action sequence, it's absolutely nothing. The three soldiers move and shoot at the player. The player shoots back. Friendly fire can easily do most of the work for Rodite making this scene the easiest combat yet. Despite the simplicity, I had to appreciate the inclusion of some action that wasn't solely happening from the pilot's seat. For all of Space Fighter's flaws, I can appreciate that it didn't go the route of having an engine and doing nothing but using that engine on every board.
The base is uncovered and the authors take a moment to show off their sci-fi vehicle designs. The man in the back is Rich-Ul, the leader of this base or possibly the entire rebellion. He's more than happy to talk about the vehicles kept here: a "TX-500 hovercraft", and some camouflaged "HX-230T Transports" going into details about their capabilities. He also explains his role of helping to build army to start the rebellion proper. I suppose it means this group isn't really much a threat to the empire yet when even the rebels admit to things being very much a work in progress.
The base feels very gloomy, probably because it's so vacant. Kurt here accepts the shipment and offers Rodite to stay for some food before he leaves Ekul. This should be the part where we learn about the rebels and what they're trying to accomplish, the crimes of the empire, or anything of that nature. It's an opportunity to learn about Rodite's thoughts. This should be the scene where the cool space mercenary says he doesn't care about war or the empire's tyranny, he's just trying to make a few credits and move on to the next mission.
None of that happens though. We don't learn anything, and there's not even an attempt of recruitment. No "we could use a pilot like you" or anything. Despite this, my imagination was doing it's damnedest to fill in the blanks of the story, so I did at least imagine a hilarious scene of a guy being offered a hot meal, coming across a table with three plates set out at different spots, and then eating all three, changing his seat for each one.
Well, so much for that rebellion. Space Fighter: Mercenary uses the same technique here that I was quite fond of in Baloo Episode 1, The Thunder Road where the player would frequently have to move to a new board, and then turn back around as a trick to advance time on the original board. In Baloo this works rather nicely frequently having the protagonist go to sleep and then wake up in the morning when it was previously night. Here it's used for a bunch of soldiers to attack this rebel base. It still certainly moves time forward, but now the implication here is that a gunfight broke out in the next room while Rodite was stuffing his face blissfully unaware.
Kurt yells for Rodite to escape through the vehicle exit rather than help out and fight. Again, this could be a test of Rodite's moral compass, but all the objects are actually immune to bullets. Rodite really does just get to be an outside observer and run. However, having already been a target of the empire there's no doubt they'll be after him too.
Except I suppose there is doubt because this game isn't telling me this and I am once again just making assumptions to make the story more interesting to me. The only thing that's actually happening here is Rodite is told to leave and he does.
Assumptions are proven true at least as while Rodite's initial walk out of the base is conflict free, numerous soldiers are already waiting for him to return to his ship. Funny that they didn't leave the security laser on for this.
Astute observers may notice that Rodite's ship doesn't have a passage element near it, while the other pilot's ship does. Here, when danger reared its ugly head, Rodite bravely turned his tail and fled. You can actually shoot all the soldiers in the way of your ship, but if you reach the actual door you'll discover it's been sealed shut.
The only reason I can jokingly frame this thought process as cowardly response is because Rodite just doesn't have enough personality for any interpretation to be particularly valid. Maybe he's being a cool collected bad-ass and instantly solving the problem with some uncaring grand theft astro. Death of the authors, except the authors are just asleep at the wheel.
Escape From Ekul
This leads back to the bread-and-butter of space combat, just now in a new ship. Your ammunition, afterburner fuel, shield energy, and hull integrity remain the same. The new ship is the same too which really makes Rodite's theft over shooting his way out of the situation feel meaningless. This ship has the same chain cannon and everything.
I wouldn't have even minded it if this was used as an opportunity to manually tweak the player's stats. I am horribly low on ammo by this point, and it's almost a certainty that I'll run out.
There is at least one saving grace to Rodite eating three meals on Ekul. They made his health stop being a multiple of ten. This shouldn't make a difference, but thanks to an all-too-common coding oversight, the ship is now invincible.
#take health 10 is the simple offending line here. If you have ten or more health, this line will remove it. The intent is that you get shot, hit zero health, and ZZT puts things into game over mode automatically. When you're only working with multiples of ten, this works fine. However if it isn't, eventually your health will decrease to a number between zero and ten. In that case, the code won't "take what it can", it will take nothing, resulting in my five health lasting forever.
The fix is trivial too, you can add a label to jump to or command to execute if the operation fails. All you need to write is
#take health 10 #endgame and the issue will be fixed.
It's always been strange to me how common this issue is as putting an extra condition after a
#take command is needed quite often as well. It's used properly at the start of the game to make sure the player has the score they need when purchasing supplies. Now it's just one less thing to worry about. Unless something gives us health to make it a multiple of ten again, that is.
There's very little to say at this point. Our authors have shown us everything the game has to offer, and now it's just a series of slow-paced fights whose only drama is how long my ammo will last.
This particular fight is the one that requires cheating. These ships fire and fly to the left side of the screen, turn around and fire again resulting in a simple loop. The trouble is to keep them properly zipping back and forth exactly as they should, these enemy ships
#lock themselves once they're been hit. They then immediately head east until they can safely unlock restart their code from the beginning. They take multiple hits, but you have to wait quite some time between each shot as locking prevents any external messages such as being shot from being processed.
Despite the predictable movement patterns that make attacking the ships significantly easier than any other small ships seen previously, this ends up taking the longest. With no feedback to the player I had to open up the code to figure out why these ships didn't seem to be capable of being destroyed.
The next encounter is made worse by looking nearly identical to the previous, but this time the small ships actually are invulnerable! These little sentries as the objects call themselves act like the previous red ships, but this time you're meant to shoot the tip of the triangle they fly back and forth between. Each time you hit that one, one of the sentries is destroyed. Once more, if this were presented with any sort of flavor it would be far more interesting. Imagine fighting against unkillable flying sentries that have to be defeated by destroying the mother-ship's communications antenna in order to make them lose their bearings and go flying off harmlessly into space! I think a fun scene could be created, but it's just more quiet repetition.
The final scene isn't even all that exciting either. It's another asteroid belt, or "meteor belt thing" as the game describes it. Like before the goal is to reach the swirl. This time though, the meteors are just recolored un-moving bullets, easy to destroy if you have any ammo.
The swirl art is reused with the new ship drawn in. I think it looked a bit nicer with the first swirl where your ship had the appearance that it was flying out of it. Here it looks more like the ship was just drawn facing the bottom of the board rather than as if it were trying to fly out of your monitor. Ah well, they can't all be winners.
The ending is cute at least! Rodite gets a well earned vacation on a tropical planet that looks so bright and pleasant after a game of dreary grays and browns.
Credits roll and the game ends.
It's a letdown really. Space Fighter: Mercenary doesn't really meet my expectations. We've got a reasonably talented duo here, but only the most simple sci-fi shooter out of their efforts. There's just way too much that the player has to imagine in order to get something out of it. If the game's subpar story was more developed I could see myself tolerating the subpar space combat. If the game's subpar space combat was more developed I could see myself tolerating the subpar story. You just can't win here.
The sad part is that there's clearly potential here. The idea of pulling up shields to dodge a barrage of attacks, zooming away from danger with afterburners after landing a good hit, and weighing whether to fight guns-blazing with a chain cannon or favor precise shots to conserve ammo all sound like really fun mechanics that while ZZT certainly can't do as well as non-ZZT space combat games, it surely should be able to implement better than what happens here. The fact is that you do need to use your imagination with a lot of ZZT games, but this one isn't providing anything for your mind to latch onto into the first place.
Rodite also gets a rough deal here. The poor man just kind of winds up having to flee a corner of the galaxy and retire lest an entire empire's military come down upon him. I know next to nothing about Rodite. He likes beaches. He likes large dinners. He will take any mission he's offered?
A more complex game backed with some better space combat could offer a wider ranger of missions for Rodite to pick and choose from, at least allowing the player to decide on his personality if the main story won't. At the end of the game here, I can't even tell you if he regrets taking that smuggling job or if he thinks this is all just the cost of doing business.
And this empire! Who are they? What are they doing? They're described as "the government" here, but there's no information on why they have people rebelling. Are they blowing up planets? Working people to death? Doing shady experiments? Do they control Ekul and its surrounding space? The solar system? The galaxy? Everything presented is so bare bones that you can't get invested.
For as much as I will decry this game, you can certainly do worse. Things generally work, if not well. There's the framing of a story, a shadow of a good spaceflight engine, and a few bits of decent art peppered throughout the adventure. The name recognition makes the game's failures hit harder, and Nivek at the very least certainly did improve from here. This is just a tough one to suggest anybody goes back to for reasons other than "I want to see how Nivek's skill developed over the years".
Anyway, there's obviously a sequel.