This title screen is all it should take to get you interested in Commodore's 2006 release, Angelis Finale. It's visually very striking, looking unlike anything we've seen so far throughout this series, mostly by using a customized font to alter ZZT's graphics. This game's art is very stylish. There's a level of detail that it enables that lets this game be one of the few that really feels like something other than a ZZT world.
But while the graphics may just by eye-candy, what we're going to be looking at here today isn't just another nice looking game with nothing to back it up. Angelis Finale is a ZZT game that does action right. I've played plenty of action games for this series, including subpar works like Doom and Goldeneye ZZT, and they've always left me wondering if maybe making a good action game was simply an impossible task within the confines of ZZT's mechanics. Commodore has absolutely proved me wrong here, creating a game that works its way around ZZT's weak gunplay and enemies that constantly shoot each other more than the player. There are other ZZT worlds out there that you'll almost certainly enjoy playing more than this one, but Commodore has taken one of the most common genres of ZZT games and absolutely crushed the competition.
Checking out the font, I was quite surprised to see how little was changed. The letters and numbers are thinner, and the smiley faces have stopped smiling, but aside from that, the only major changes are the addition of a lot of angles for linework.
Commodore masterfully works with these to create some stunning board designs that make Angelis Finale feel like an artsy cyberpunk film, or perhaps more accurately, Sin City, which was released a year prior. The entire game is in monochrome whenever possible, with exceptions only for blood, the player, and passages. Commodore is so successful with his design work here that you'll likely forget you're looking at a ZZT game in many places.
One final thing to note, is that after a moment on the title screen, you'll get a message warning you to run the game at maximum speed. Unlike Plankton: Undersea Adventure, which gave a specific setting to play the game with in DosBox, Commodore just says to set it to full and go from there. Without a reference point, it's difficult to actually say for certain how fast the game is meant to run, and combined with some boards being more demanding on the CPU cycles than others, one of the few flaws of the game is that the speed will definitely vary.
Before we get too far, this game's going to have some stronger themes in it. Plenty of drug use, some sexual content, and a bit of modified ASCII nudity. You won't lose your job, but you might get some weird looks!
The following content contains material which may be offensive to some audiences. This material does not necessarily reflect its creator's current opinions /behaviors.
Specifically, content following this notice contains depictions of or references to:
- Drug Use
- Nudity
There are a lot of ZZT games out there with masturbation in them, but this may be the first time it's not played for laughs. It's a jarring introduction for sure.
Just a beautiful city skyline.
We don't know much about the protagonist, but a classical hero he ain't.
It's time to use the Internet to arrange a hookup.
I feel like comparing ZZT worlds to movies isn't something that's done often, but this game just comes off as so cinematic. The perspectives used on these art boards feel like stills from a film more than the usual rigid drawings you'd get. The minimalism necessitated by ZZT's object limits, the monochrome palette, and the still very simple lines offered by the custom font all combine to create scenes that are just stunning to see.
A night of lovemaking turns south fast as the man's partner overdoses and she winds up lying dead in his own bed.
Again, we're treated to something unlike any other depiction of a person in ZZT. With just a few lines, Commodore creates an illusion to break free of ZZT's typical blocky self.
the man's arrival was unexpected.
rather, he expected the police, but in
their stead came this one.
-the past, the man said, is most
important to us. both the recent past,
and the distant. still, the past is only
a tool which we must use to forge the
future.
-what are you getting at? he demands.
-you once served your country as an
elite soldier.
-my country died years ago under a
mushroom cloud.
-perhaps your concept of a country is
somewhat limited. The united states still
has many supporters, even here, in the
east. in fact, this is where we are
planning to revive our beloved country.
the situation of the refugees here
certainly places at least a few stones on
our side of the scale.
-you can't make me do anything. i've
retired.
-your recent escapade has not gone
unnoticed. it would be a shame if the
police got wind of it.
-you wouldn't dare!
-still there is the matter of your
addictions. i suppose by now you figured
out who the supplier really is. the
military stimulants your body got used to
do terrible things in withdrawl.
-what do you want?
it was then the man opened the case
for him to see. now, a pistol stares up at
him, gleaming slightly along its polished
edges. he can almost hear its report
ringing in his head.
-i never want to touch one of those
again.
-but you must! the fate of your
country depends on it. the fate of your
life as well. we are not terrible people,
but circumstances have forced us to do
terrible things. now, we can't send you
on dangerous missions without first
warming you up, so we have a little test
prepared...
• • • • • • • • •
And so we get to the main thread of the game. You, this former soldier for the now destroyed United States, are being blackmailed to help some unknown persons accomplish their goals towards reviving the country.
On a personal note, I really like the "We are not terrible people, but circumstances have forced us to do terrible things." line.
he approaches the factory where he was
told resistance is the most minimal. he
swears as he slids a clip into his pistol.
terrorism. blackmailed into terrorism. in
his russack is a small, yet potent,
explosive device. his orders, plant the
device in the main computer core of the
factory. he's told the factory workers are
armed, which makes this not the simple
factory it appears to be. but he didn't
ask questions, simply took his bag of
drugs and watched the man leave.
still, he must clear his thoughts of
this, and concentrate at the job at hand.
• • • • • • • • •
Time to avoid getting in trouble for accidental murder by committing a lot of murder.
You finally get control of the player just in time for this factory mission, and once more get treated to a wonderful looking board. A brick fence with barbed wire lining the top, several large trucks parked outside, plenty of barrels and crates, and some added visual flourish with the asymmetrical linewalls across the top. (I believe these may be inteded to be conveyor belts to load the trucks.) So much of the artwork here brings a level of detail that would usually be reserved for writing a desription of an area rather than actually being able to show it.
Nobody said you had to be stealthy. Walking past the tiny shack for the factory guard results in an immediate confrontation. As another added detail, the doors open, not by vanishing instantly, but with an animation using half-characters to show them actually "moving".
So thus begins the first gun fight. Normally this goes down pretty much the same way in every ZZT game. The player finds a wall to hug to coax the enemy towards them by limiting their possible ways of moving, and depending on ammo either blasts away wrecklessly or steps aside momentarily from any of the slow moving bullets that travel across the screen.
But here in Angelis Finale, we're running ZZT at its maximum speed. Bullets now whiz by at such high speeds that you'll hardly even see them. It's not hitscan, but it's certainly close. At this speed, enemies are significantly more threatening. You won't be able to fire a shot and step aside and wait patiently to find out if it hits. If you want to take down a foe, you line up, and hope you're quicker on the draw than they are. It's not perfect, but it works extremely well, and far better than anything else I've ever seen in a ZZT game.
The guard's main loop looks quite different from what you'd usually see in these sort of action games:
@guard
:loop
#cycle 75
:touch
#walk rndp seek
?seek
?seek
?rndp rndne
#shoot seek
#walk rndp seek
?seek
?seek
#shoot seek
#walk opp seek
?rndp rndne
?rndp rndne
?rndp rndne
#loop
The guard begins by constantly moving via "#walk rndp seek" perpendicular to the player rather than towards them. (This is a vector and is calculated once.) There's still some movement towards the player and a little bit of randomness there to ensure that objects don't just wind up in corners far away from their target, and then the first shot after moving randomly. Depending on how that random movement went, there's no telling whether the player will still be aligned with them (assuming they even were to begin with). The walk direction updates to help stay on track, but this time the movement is entirely towards the player without any randomness. By mixing these two moves before firing, the enemy feels less predictable, and the completely random movements afterwards let the enemy maybe get some distance without disengaging entirely.
The random movements become even more potent with the object having a direction it walk in as well. In ZZT, moving via #go and #walk are two different things which allows objects to move twice in a single cycle by doing both. By combining directions like this, it's possible to fake diagonal movement by walking in one direction and moving perpendicular to it, or have the object end up opting to not move at all if it chooses to move in the opposite direction it walks, cancelling the changes in position out. This makes enemies feel like their movement patterns are far more advanced than they appear by just reading code.
In effect, the shootouts become defensive for the player. The best strategy feels like keeping your distance, but always being one step away from being lined up. Wait for the enemy to fire, then quickly jump in and take a shot yourself. It feels satisfying. Something fighting objects in ZZT pretty much never has. It's also worth calmy firing away when you do take your counterattack. The code takes several steps before the object will fire at the player, so a steady stream of bullets will let the player keep them from getting another chance to attack.
The basic guards take three hits to kill, and leave blood and 10 ammo behind. A switch in the guard's shack opens up the front doors and lets the player proceed.
The first room in the factory continues the unique visuals. On the left side is some weird machinery that exists only to put something in the background. The walls of the complex are made rrom a really nice effect that at first glance might appear to be linewalls, but is in fact something a bit more complex.
Were linewalls used, they would all connect with any adjacent line walls, turning the distinct strips of each color into something more grid-like. At the same time, using objects for all this would involve too many stats. Instead, Commodore takes advantage of a normally inaccessible element, the blink wall ray. A stock puzzle element of ZZT are blink walls, which fire rays intermittently that damage the player, and then erase them as well. If you place the rays themselves via an external editor, or editing a save, it's possible to get the rays without a corresponding blink wall, and without a blink wall, nothing will ever erase the ray. This allows all the strictly horizontal and strictly vertical lines to be replaced with rays. The corners can then be made from objects without having to worry about the stat limit.
By highlighting the objects on the board, you can see most corners are replaced with objects. (Some are something else entirely, which we'll get into later on.)
Meanwhile the room also introduces "elites", a tougher enemy with similar code, but the major change of pausing before firing six bullets in a row via automatic weapons. They take a few more hits, and move a little faster as well making them a greater threat. If you get in their line of fire, you're likely taking 20 or 30 damage before you realize it and can dodge the rest of the assault.
You'll note that Commodore keeps the two enemies spread out. There's really nothing that can be done about friendly fire between the enemies beyond designing level geometry in a way to make it less likely.
Adding to the list of details that make this game stand out is that all this blood is dark red and not bright! ZZT won't let an object place dark red (or more accurately, black on dark red) fakes, so most blood in ZZT games is bright if it's being generated during gameplay. However, if you don't specify a color and just have an object place a fake wall, it'll take on the color of the tile it overwrites. Commodore has taken the time to replace every empty on these boards with black on dark red empties, allowing him to pull this one extra color out when needed. With the advent of external editors, this is actually really easy to do and I'm actually surprised I've never seen it anywhere else. Perhaps Commodore's just the first person to realize the possibility!
The door to the right is locked, so there's only one way to proceed. The next room continues to up the danger with three guards. With your standard ZZT guard code, this board would be very prone to crossfire as the lower two guards make their way south and the one on the left would frequently shoot to the right in their attempt to shoot towards the player. Commodore's decision to have these object walk perpendicular to the player really help mitigate the risk by keeping them moving in a certain direction instead of exclusively working their way towards the player.
After killing the first guard, something unexpected happens! I managed to make a dark green fake wall. Usually with ZZT blood effects, the object either simply turns into a red fake, or surrounds itself with red fakes. Commodore goes for a bit of realism by having defeated enemies stagger away from the player and leave a trail of blood towards the player.
In order to prevent important things from being destroyed, a lot of ZZTers would first check that the object wasn't blocked in a direction before putting the red fake down. Commodore even does this here with a single line of code for the blood effect: #if not blocked seek #put seek fake It's a single line, but "seek" is calculated independently each time! If the player isn't aligned then seek is going to be randomly chosen between two directions, which is what happened with our dark green wall.
And the reason for that, is because of ZZT's object limit once again. You'll notice this game has a lot of different looking walls that aren't just the equivalent of solid, normal, breakable, water, and line that make up basically every wall in ZZT. This can't be done with objects, and is instead done with ZZT's text elements. Text is the closest thing ZZT has to custom walls, but text is coded different from every other element. Instead of storing its color, the same byte is used to store its character. There are 7 different text elements, one for each of ZZT's seven default colors, and there's no way to get any more. So white on black is basically the only practical one when doing custom walls.
So Commodore's black and white style, while an excellent aesthetic, is also a practical one. The game couldn't look the way it does if every color was being used. And since the fake wall is going to take on the color of whatever its placed over, in the case of text it'll use the character instead!
Next is this board which offers the player a moment to breathe. The background is full of more abstract machinery looking components. I can't begin to guess what this factory actually makes, but it does a great job of painting a picture of it being a place that's very crowded and full of constantly moving parts that nobody can really be sure of what purpose they serve.
This board has two keys (one's been picked up in the screenshot already), but unfortunately for the player, there are also some forcefields, represented by an animated sort of crackling electricty looking effect that appears when the player tries to cross their path. The second key as well as all the health and ammo are kept out of the player's reach initially, enticing them to keep exploring and find a way through.
If you want your abstract background machinery to be woven into the foreground, Commodore's got you covered. Opening the door and defeating the first guard reveals a typical ZZT transporter, but framed as being some massively complex technology in the game's world. Teleporation exists in this world, but it's by no means easy.
Upon reaching the top of the screen, the player notices the factory's power core, and how out of place it seems here. Again Commodore loads up on detail as the power core shimmers as it does its thing.
A switch up top allows the core to be shut down and switch to reserves. This stops the shimmering of the core and opens up access to the last room of the factory.
The computer itself is actually kind of underwhelming after everything else so far. It too is animated, though rather than using objects, the gray solid characters are in fact two centipedes which endlessly circle the computer's innards. The computer may not be much to look at, but I do really like the massive nest of wiring that spreads from the computer throughout the entire factory from here.
There's something powerful here, and it's time to blow it up so as to not be convincted of manslaughter.
Well, blow it up from somewhere else since it's so blatantly protected here. The other door is still locked, but the key has been seen earlier.
After shutting off the power core, the forcefields dissipate and the player is free to collect a surplus of health and ammo. Each of health kits restores 10 health each. I personally found the game to be a bit on the forgiving side in terms of supplies given, however from the reviews there are a few who disagree and found the game to be extremely challenging. This can probably be explained by the variable speed any two computers would run the game at. I wouldn't be surprised if a Windows XP machine in 2006 that could still run MS-DOS programs without DosBox would play differently from an emulated environment that's known for not quite keeping up with ZZT on more demanding boards.
The other exit from that first room connects to the computer allowing some much more direct access.