Well, when it came time to check the final results of the latest Closer Look poll, I was not expecting a three-way tie for second place, and a winner by just one vote. Goldeneye ZZT Demo came out ahead, and the game is exactly what it sounds like. An incomplete, but still playable attempt of converting one of the Nintendo 64's most successful games to ZZT.
I don't think I need to tell you that it doesn't do a good job. Daniel Hutson falls into the same trap that so many ZZTers fell into of trying to shoehorn something that won't work with ZZT's mechanics into a playable game. Maybe that's why we're left with a demo and nothing more to show of it.
At the same time though, when compared to Doom, which was looked at almost a year ago, we can see there is a better effort at trying to bring over a first person shooter to the overhead perspectives of ZZT.
There's a definite urge in young ZZTers to try these things, not for the technical challenge, but just because they love these games and want other people to get a chance to enjoy more of these games the only way they can. With some games, you can get away with it. Hercules and Hydra78 created some entertaining ZZT worlds to create their own King's Quest and Quest For Glory games, but the adventure genre is one that ZZT excels at.
Sidescrollers like Super Mario Bros. or first person shooters like Rare's Goldeneye, suffer immensely from the transition, and the more faithful these fan-works try to be, often the less fun they are to play.
So let's check out Goldeneye ZZT and see what it tries to carry over, what it disregards, and how it manages to try and design its way around ZZT's action game flaws.
The game opens up to a menu, allowing the player a chance to play the single player campaign, or play various combat challenges. Goldeneye on the Nintendo 64 was a milestone in local multiplayer gaming and definitely benefited from the console's four control ports, but here in ZZT there simply won't be anything like that. Combat challenges will be explored later, but offer something unique to try and make up for the lack of one of the source material's most notable features.
One thing that does get kept is the use of mission objectives. In my own childhood, I had only really played Doom and Quake prior to Goldeneye, so suddenly having a goal beyond finding an exit was a pretty big deal. It works to this ZZT game's benefit. One of my big complaints about Doom ZZT was that the locations felt so lifeless, and not like Doom at all. Here the objectives help ground the levels a bit. You've got something to do here other than just survive.
You also have zero story whatsoever. This may be because it's a demo, or because like a young me, the author just mashed through all the text prior to starting a mission in Goldeneye.
Before entering the passage and beginning the first level, Bond gets to pick up some ammo. There will only be one weapon available here, the same ZZT gun used pretty much everywhere else.
And so Bond's mission begins. The dam is about as faithful as a recreation as you can get, and since I've had so much experience with the N64 game, I found it very easy to read the visuals and connect the ZZT boards to their locations in the original.
As this is an action game, Bond will mostly be shooting a bunch of guards as he makes his way to his mission objectives. The guards seem very basic, but looking at their code was pretty enlightening to me:
#go seek
#go rndp seek
#shoot seek
#restart
#end
:shot
#put n red fake
#put s red fake
#put e red fake
#put w red fake
#die
I've never once though of combining the "random perpendicular to..." movement command with "seek". This makes the guards move out of the way of the player making it harder to hit them. It's pretty smart, but at the same time, I honestly didn't notice they weren't just alternating between moving towards the player and moving randomly.
Oh hey, this image is zzt_007.png. How appropriate.
The first board ends with a passage leading to the tunnel portion of the level, and if you weren't already familiar with the original game you'd have no chance of making that connection.
True to the game's source material, almost to a fault, even the quantities of enemies remains the same as on the Nintendo 64. In that game, two guards on the first level is absolutely a reasonable way to slowly introduce the player to more dangerous situations, but those guards have the luxury of guns which are hitscan rather than ZZT's projectile based gunfire.
Here in the ZZT world, a big open room with two guards means that the player can generally just walk on by without even thinking. You're almost certainly not going to get hit, and at most it will be a single time compared to actually trying to shoot the guards instead.
Still, I have to say "almost" to a fault because one other luxury Goldeneye 64 had was that the guards also wouldn't constantly shoot each other instead of James Bond. The more breathing room guards are given, the more likely they'll hit their intended target and not their buddy. This is the catch-22 of ZZT action games, where all too often the player's best strategy is to wait for half the enemies to die off while the player hides in a corner somewhere.
And then there's this poor guy who is so obviously not a threat.
Exiting the tunnel leads to a large group of guards. This is actually one of the biggest firefights in the entire game here. Again though, most of the guards are far enough away that they'll be killed without the player's intervention. Had the tunnel exit been a bit narrower, the player could at least be corralled by the environment and have to make their way through a more compact and dangerous path, but it's trivial to just run up top and away from everybody.
Along the bottom of the screen is a green gate that I first thought was going to be a flashing message instead. There's also a locked door up top which limits the player to entering one of the buildings. Goldeneye 64 had multiple routes even on these early levels to let the player make their way through however they liked, and with proper coding there's no real reason this game had to be any different, but instead we'll see that it's going to remain extremely linear for the sake of the mission objectives.
The inside of the building does match the position of the outside, which is good attention to detail. It would have been cool to see the rest of the outside area still, similarly to how it's done in Edible Vomit.
Also it's a dead end, blocked off by another key? Did I miss something?
Making my way back through the dam, I discover that I did in fact miss a board with another building to enter. This would be the tower where you can get a sniper rifle in the original. Here it's weird to get to because the first board ended with a passage in the lower right corner, but in fact had two normal board exits as well! Heading to the right would bring the player here, and heading south would take them directly into the tunnel, the same as the passage. Or at least it would if the connecting tiles weren't all solid walls.
It's kind of a mess really.
Again the inside is positioned to match the outside. This detail is made even more strange by how the outside area is so disjointed that there had to be an extra passage added to get to the tunnel.
The other exit leads to the upper levels of the tower where Bond can finally interact with one of those red circles which happens to be an alarm. Shooting it will destroy it, and in this case give Bond a white key. Goldeneye ZZT ties level progression directly to progress on mission objectives which means that unlike the original, it's not possible to get to the end of a level while just ignoring all the objectives.
The key allows me to make progress back at the other building, and discover what this yellow club is.
Some much needed supplies. Goldeneye ZZT has to do what a lot of ZZT games do where "armor" is just more health.
The top of the tower gives Bond access to the second alarm and the next key.
That key can be used to open a door and activate a switch to open the gate. Progress!
Now here things get messy. The first thing you'll likely notice is a different looking object that appears to be a new enemy! Nope, they have the same code as all the other guards so far. The second thing is that the building those guards are in has two entrances. One is a door, and the other is just wide open. Looking at a longplay video, it should be a big garage door, which ZZT can't do very well.
The final alarm is also here, which results in being told the objective has been completed. No flag is set or key dropped, so you can get away without actually shooting this last alarm.
And finally, the location to install the modem is here as well. Like the last alarm, it doesn't actually do anything, however it does try. It sends a message to an object named "Gate" to open. Except there is no object named Gate.
This nameless object is probably supposed to be named Gate. Fortunately, shooting it causes the gate to open and allows the game to proceed. Hutson may not have a very solid grasp on ZZT-OOP yet.
With the contextless mission completed, all that remains is to bungee jump off the dam.
This is done via a very simple cutscene where the object takes a single step over the edge and walks straight down. This happens pretty slowly, as the object is still at ZZT's default cycle 3, and from the rest of the code it's apparent that Hutson doesn't know you can change cycles, as everything in the game is cycle 3.
The next level is of course "Facility". There's plenty of objectives once more, and a restoration of health and ammo before the level begins. I'm just not a fan of how it handles that. It may just be the author's limited knowledge on coding, but one of my favorite game mechanics from Rare's Goldeneye is that every level is a fresh start, and that your health can only go down. Even in ZZT it would be easy to reset the player's health and ammo between levels. Instead, we get a continuous amount of health and ammo, which to be fair is going to be the standard for how to make a ZZT game, but this would have been a nice opportunity to incorporate a source mechanic and give the game a unique feel to set it apart from other ZZT games.
Like the original, the facility level begins with Bond in the air ducts, ready to drop down in a bathroom and begin his mission.
Good news: This game adds one-liners
Shooting guards in bathroom stalls is definitely an iconic moment in Goldeneye and it's no different here. After a few moments the guard dies without the player needing to shoot at all.
The guards here have slightly different code than before, being told to go randomly north or south, then towards the player, and then shooting. Since this guard is blocked north and south, they'll never be able to execute the movement command and just stand there frozen while James Bond watches. Even better is the fact that the player can't shoot objects at point blank range so this guard can never be killed. There is a perpetual stalemate in this toilet stall.
The other guards aren't so lucky. Neither are the walls due to the code not checking if the object is blocked in a direction before spawning some red fakes for blood. There are definitely points where you could manipulate this to skip portions of the game.
Once outside the bathroom (which wow has a lot of guards now that I think about it), the level conversion gets rougher. The dam is mostly a flat level, but the facility is a multi-story building. The most you get of that in a 2D world like ZZT is the use of linewalls to simulate a railing, but during my initial playthrough I didn't make this connection and was trying to figure out how it mapped to the N64 game.
There's also that completely empty room in the lower left. I don't recall and wouldn't be surprised if there were some rooms whose purpose was solely to make the levels larger and more difficult to explore, but in ZZT you can see inside in advance and just opt out entirely. Here a direct conversion comes off as confusing.
One of the rooms has a switch which temporarily opens a door to the next area. It's the only actual exit from this screen, despite it looking like there would be some connected boards.
The timing is actually incredibly tight on getting to the door in time to the point where I shot away breakable walls that made up the level architecture to cut the corners a little tighter. Most of the problems come from the doors opening at cycle 3, which is pretty slow when you're trying to race down a hallway.
Now for the secret lab within the building. At this point, you're kind of running entirely on memories of the Nintendo 64 title because otherwise it's just a bunch of empty rooms with some boxes.
The red guys behave like all the other enemies on this level, so still no variety beyond what type of random movement is selected.
The entire left wing is pointless. You can't interact with the boxes or scientists, not even to shoot them, which is odd because _not_ shooting them was a mission objective in the original game. They just pace back and forth in a panic.
On the right side however, is our scientist friend Dr. Doak. He drops a key to the bottling room and leaves.
This next room is pretty loaded with enemies which may seem scary. Except three are locked in a room together making them harmless, and the others are spread out, removing any challenge you'd have here.
The lower left corner has more body armor and what I thought were buttons, but they have no code at all, so I guess they're just decorative something or others. The last guard also gets frozen in place in that hallway as they endlessly fail their attempt to move north or south.
One of the weirder design decisions is the way walls get replaced when the doors move. There's no way via ZZT-OOP to produce dark gray breakables, so Hutson goes with... placing an object?
When you #put w empty
, since there's no color
specified ZZT uses the default color for that element. In the case of empties,
they default to black on light gray. Then the door moves over the empty,
eventually closes, and rebuilds a wall with #put w
object
. Objects have a default color of "Whatever color is already
there", so a black on light gray object is produced. The object also has a
default character of 0, which is a blank character and so what looks like a
gray wall gets produced.
But objects have stats, so this method is not the wisest. You can also get light gray using sharks, though putting something over a creature will cause a sound effect to play. There's no solution for this that works 100% without issue, but at the very least just putting a breakable wall instead of an object would have looked a little cleaner, especially if the colors of the breakables had been changed to something more ZZT-OOP friendly.
The doors on the sides here are also on a timer set when the player hits the yellow or green control panels in the center room. Here there is simply not enough time and it becomes necessary to cheat through them if you want to proceed.
This is the final room of the facility, and it's also the most populated. Once more, most of the board is empty areas that the player has no reason to ever go near, including the big room in the center with a bunch of guards. It's far easier to just walk on through to the exit without even firing a shot.
Finally, the bottling room. There's even a time limit on the board that isn't really necessary.
The game provided zero context for any of this.
Once Alec and Bond are done talking, Ourumov and some more guards show up giving Bond 10 seconds to escape. Except he can't escape because the door doesn't actually open until the countdown ends, which is fine because the countdown ending doesn't do anything other than opening the door and making Ourumov fire a bullet to the south a single time.
You're supposed to destroy the bottling tanks in here, but never actually do that. You still get a message for completing the objective though.
Bond casually struts out the door and onto the next level. This is the final portion of the demo, and is a pretty reasonable place to end things storywise.
Wait, I lied about the room with the most enemies. I forgot all about this one because I just held up and ran past everything. The now different looking guards are still the same north/south moving guards from the facility.
This plane is cute though.
And that's all for the demo!
I'd wrap things up now, but there's still the combat challenge from the main menu.
I didn't really know what to expect going into this mode. The combat challenges are various multiplayer maps littered with guards that the player has to kill to complete the challenge and proceed to the next one. It's basically a compromise on the lack of multiplayer.
The player can pick up ammo in units of 500 from the ammo object on the right side. There's no restrictions on how much can be taken, though even just 500 ammo would be more than enough.
The first challenge is the temple, and it's way more crowded than anything the main campaign offered. It suffers immensely from the issue of objects just shooting each other which really keeps it from being any sort of challenge.
Some of the enemies drop a key when killed, and the goal is to collect all the keys to be able to exit the level. Once again, the enemies are no different than the north/south moving guards in the facility. There's really not much to say about these.
Well, I will say that they're bugged, as the scroll at the end doesn't actually give the player a key. For quite possibly the first time since I've started replaying ZZT games, this is in fact, not the author's fault, but a bug with ZZT itself. There's an off by one error with the put command which prevents it from working when the element to be put would appear in the bottom row of the screen.
You can always just zap your way into the library. It's probably the nicest looking board in the game. Here there are only 7 enemies total, so every one will have a key. They're also spaced apart much better so for the most part the player will have to shoot them all himself.
Each of the combat challenges provides ammo within the level, but there is no way to regain health, which ends up making this segment more difficult than anything in the main game really.
Now that the exit is a little higher, the scroll can produce a key. That the first challenge is broken doesn't bode well for whether or not this demo received any testing.
Also there is no "Complex" level even listed in the combat challenge menu, let alone it being the next one.
Instead, the player gets to return to the facility, where a now crate free room instead has seven guards.
Each of these guards drops a purple key, and there are no exits. This is how Goldeneye ZZT ends. Just James Bond and his 007 keys.
Final Thoughts
Goldeneye ZZT is really about all you'd expect it to be. It's a game that's not able to capture what makes the original work, and it's held together by very fragile code. You've seen everything the game really offers in the first 30 seconds of play.
But, it still tickles that nostalgia in its own simple way. Doom ZZT didn't feel like it was Doom at all. Goldeneye may be as barebones as it gets, but by attempting to port over the maps accurately, it succeeds at feeling like a watered down original. That's not to say it's good, or even all that fun. All the entertainment really comes down to just recognizing the source. If you haven't played the original game then you're getting extremely limited gameplay without any context. There's no story told in the game, and nothing about it would make you think it was even James Bond if not for 006 addressing you as such.
Games like this feel like they only check a few boxes. There are some rooms with some guards and some bullets to shoot them with. Nothing about it feels like it was done with any thought in mind. If the objects happen to shoot each other, so be it. Rooms need enemies, so the rooms have enemies. Why they're there is of no importance so long as there's a game in the end. This isn't a flaw with Goldeneye ZZT in particular any more than any other ZZT action game. Enemy placement just always feels like an afterthought since you can't get anything better than random or towards the player movement.
It is just a demo though, and maybe the extremely repetitive nature was something Hutson realized and scrapped the project because of it. Or maybe he got bored porting Goldeneye maps. Or maybe he couldn't beat the 4th level and thus couldn't continue making the ZZT version. (Okay, I'm being needlessly silly there.) The reality is that no matter why the game was left unfinished, it doesn't feel like there would have been anything new in the rest of it. Though I am worried about if there'd be an attempt to have the escort missions with Natalya. Those would be rough.
Goldeneye ZZT is unfinished for a good reason. It was doomed from the start. You're just not going to be able to favorably capture an FPS in ZZT by copying it directly.