Greetings from the other side of the portal!
It's been a bit, sorry. Various things popping up offline led to me being unable to get to concluding Voyage of Four as quickly as I would have liked. Nothing good comes from delaying a part two of something, especially when the entire game was played in one go to begin with. I had to give myself a bit of a refresher, and took a second run through the rest of the game to once again have the game fresh in my mind.
It's not all bad though, as my first time playing I encountered a glitch that caused me to skip over some pretty significant portions of the game unintentionally, so even if I had gotten right back to the rest of this game, I'd have needed to go back for some of it anyway.
For a quick summary of part one's story: In the world of Sool the Tor empire has begun a war in the name of conquest, seeking to expand its borders into the less organized and much more rural region known as The Outlands. The first of the four voyagers, Cyros returns home one fateful day to discover his village burned and its people killed in an attack by the Tor army. His dying wife, wanting to spare others from the same fate tells Cyros what she knows before she passes. The army is headed towards the city of Reed next. The general of this army, an unknown "Man In Red". Reluctantly, Cyros rides off, leaving everything he has known behind, promising to himself that he will dedicate himself entirely to tracking down the Man In Red and striking him down.
Upon arriving in Reed and getting an audience with its elder, Cyros is accused of lying by the blatantly corrupt elder who has Cyros imprisoned. In jail he meets James, a Daoshin monk whose village was also attacked that was imprisoned for trying to warn people as well. He also meets an old man who reveals himself to be the true elder of the city. The three hastily exploit an opportunity to escape, fight their way to the throne room, and confront the impostor, defeating him and in effect saving the city by giving them time to prepare for the upcoming assault. James and Cyros part, but fate doesn't keep them away from one another for long.
Some years later, in the eastern kingdom of Rehana, princess Chyrisa (voyager number three) wants as escape for herself. Her family's kingdom has also begun slowly invading the Outlands, something she wants no part of. Dreaming of a normal life, she is forced to confront the realities of "normal" when she learns her brothers have a plan to usurp the throne via bloodshed, with her likely on the chopping block as well. Escaping from a guard trying to escort her to her room at her siblings' request, she winds up in the Outlands herself. She quickly realizes that she is woefully unprepared, leaving her cold, hungry, and crying for help in hopes of finding her way back to civilization, even if it should mean being taken back by any of the guards sent to search for her.
Fortunately for her, she is discovered by none other than James and Cyros, who have begun traveling the Outlands, scouting out the Tor army, and racing ahead of them to prepare villages for battle. This has made them into revered peoples, as even Chyrisa is familiar with the "famous heroes" that saved Reed and have slowly begun to turn the war in favor of the Outlands. The trio begin to travel together, with Chyrisa doing her best to adjust to her new life and understand the different culture she finds herself immersed in. Wanting to help in any way she can Chyrisa studies archery to participate in battles as well as using her skills as an orator to rally villagers together, providing a significant morale boost that helps the Outlanders begin to take their lands back.
Soon enough, the Tor Empire has been pushed back almost to where they began, and the three have an opportunity to assault a Tor fortress where the Man In Red and an even more powerful foe await. Struggling to find a way to breach the fortress, hope seems lost, until a bird appears and transforms before the Outlander troops into the form of a man. This man is none other than Argyle, an extremely powerful wizard and the last of the four voyagers. He reveals that what Tor has done to be so successful in its war was to summon two powerful beings from another dimension to lead their army. One is the Man In Red, "Ogilio" and the other, a djinn whose name must never be spoken. The only way to return the world to balance is to banish them back to their own world, a task easier said than done.
Ogilio flees back home while the voyagers deal with the djinn. However, upon the djinn's defeat the portal to the other world remains open, and the voyagers are sucked inside, awakening in a world of darkness...
Password Protected
Though, if you want to check out the second file of the game, you'll need to input a password first. This is common to the vast majority of ZZT games that span multiple worlds. WiL continues to stand out when doing what many have done before him by putting together perhaps the most user friendly password prompt I've come across in ZZT.
The prompt appears on the title screen itself, getting it out the way without requiring a dedicated board for the purpose. The first file got right into things, opening directly on the first story board. Having the password entry be here allows the second file to also get right to the main event.
Various methods have been employed over the years for these additional files. Password entries have been created in ZZT that rely on touching objects to specify values, setting flags directly via the cheat prompt, as well as just picking characters from a list in a text window. WiL goes with this method, which is one of the easiest to implement, and by far the most practical for one being ran directly on the title screen before ZZT considers itself to even be in "play" mode.
Some worlds opt to present a lengthy list of letters/numbers, WiL goes for the less common limited set of possible values. What works best generally depends on why the password prompt exists in the first place. Security tends to be the first and foremost reason for such a system. Authors don't want players to jump ahead in the story, deliberately or otherwise by loading a later file. Any string of characters can be used for such a system if the code is only trying to determine if the player is allowed to play or not.[1]
Other games need passwords to try and establish some consistency between worlds. Here the password systems need to be more dynamic, with certain values used to adjust the value of counters like ammo and health to approximate what they were at the end of the first file. For RPGs and other games where flags track what equipment players have available, the password needs to also give the player the correct spells or items to match what they were before. War-Torn is an excellent example of a game focused entirely on data transferring, with a password prompt consisting of just three characters, with each character only having two possible options. A rare instance of a prompt where brute forcing may be faster than editing the world to figure out a valid password.
In 2003, My Live Hurtz created a the aptly-named ZZTransfer utility specifically to address data transfer. With this tool players could easily extract their flags and counter values directly from a save file and inject them into the next file of the game they were playing.
Alas, by this point in time, most games that took up multiple files didn't have much need to transfer specific values to the point where it would be worth requiring an external tool to be used. The RPG-boom era was over, and many games that still needed to be split up were designed around it, doing so at convenient moments where it would be easy to jettison any flags or numeric values at the end of a chapter.
What makes WiL's so nice though, is how easy it is to fix mistakes. Several of these systems left no room for error, ending the game the moment an invalid value was selected from a list, or after the final password was submitted to try and obfuscate where the error happened. WiL meanwhile allows players to at any point jump back to a previous character to correct any mistakes that were entered. He was even nice enough to provide an option to hide the password prompt for a moment so I could take a screenshot of the title screen. How thoughtful!
Though I say it's the most friendly password prompt, that's really only the case if your password is correct. If you enter an invalid password (or press "P" t play immediately), then it's quite possibly the meanest of all. Naughty players are punished with a boulder being spawned. Next to a duplicator. That then duplicates the boulder onto a player clone. This causes ZZT to try to push the boulder in the "idle" direction, where it detects the same boulder again, and tries to push that boulder... and so on until the ZZT crashes with a run-time error, booting players from the program entirely!
Maybe it's a bit mean, but it's so over the top compared to the typical game over that it's impressive in its own right.
Why Halo There
The voyagers arrive in the world of Halo, (Yes, this game predates the first-person shooter by Bungie,) and have a lot to become accustomed too. Luckily for them, much of the first file had strong themes of accepting different cultures. So they're probably going into this with more open minds than they even realize, even if much of the drama of file two stems from the challenges of trying to break down incorrect assumptions.
The two worlds Halo and Sool are presented as twin worlds of light and shadow. It's easy to see the similarities geographically and the differences in physiology. Halo is a world without a sun, a planet that seems completely alien to the voyagers. Even so, it's not all different. They still breathe the same air at least. And who's to say that the world of Halo is the alien one?
Upon arriving, the voyagers have a lot of adjusting to do. Here light and dark are reversed, with the denizens of Halo appearing as shadowy figures with little definition to their forms. The feeling is mutual, as the natives of Halo see them the same way. I do like that WiL's "dark world" is more complex than that. The usual framing of worlds like this is that the light is in some way more correct. By having each world see those from the other as creatures of darkness, there's less of a sense that Sool is somehow genuine in a way Halo is not.
Talking It Out
The biggest surprise of the second file is in how little action there actually is. A significant portion of it, especially the beginning is spent talking and learning about Halo, what has happened because of Ogilio's crossing, and what will happen to both worlds if fate cannot be corrected.
The player, and most of the voyagers are completely and utterly lost about this. The assumption is that they're going to have to fight for their lives in the deepest of enemy territory and somehow find a way home. Instead, everyone is treated to a history lesson.
The sole exception to this is James who shows a better understanding of what is going on. When the group arrives and is surrounded by soldiers, James knows exactly who he needs to speak with, a mage-lord by the name of Ugoged Asaya.
The soldiers do not take kindly to the being told what to do by an outsider that has seemingly invaded their world to spread darkness across the land. They are equally unhappy when Ogilio himself shows up and independently comes up with the idea of taking them all to see Ugoged. Due to his status, the soldiers are forced to comply.
You (as did I) are likely very confused as to who Ugoged Asaya is! This sequence is the first time the name is ever spoke, which is my biggest issue with the handling of the second file. Everything in it comes out of nowhere, dumped into players' laps with no understanding. Upon until the last chapter of the previous file, no mention is made of other dimensions, fate being broken, terms like "Taros Umvir".
In the first file, magic may exist, but its specifics aren't deemed important enough to require explanation. James is attuned to the earth and can cast magic from that. Argyle is a powerful wizard with the ability to transform. War of the Magi this ain't. James could still provide a beating with his staff and Argyle shows up so late that he could have just arrived and known some trick to enter the fortress. Everything else would have been able to remain unchanged.
But we're here in Halo now, and though the grand exposition may not have been what players were expecting to await them after storming the fortress, there's no real issue here. A little more hints peppering the earlier story would have been nice. WiL's twist is certainly a surprise, though it hardly ruins the experience.
This information is mostly provided here in a scene best described as a negotiation. Argyle (with James speaking on his behalf as always) has a proposition: Un-Make Ogilio for disrupting the balance between the two worlds. The other Halo-ites seated at the table consider this a threat, though Ugoged is quick to remind everyone that the most important thing for all sides to do is to listen and learn from one another in order to understand the real situation the worlds are dealing with.
To this end, Ugoged explains the history of the two worlds through a tale passed down for millennia on Halo that has been long lost in Sool. A million years ago the two worlds began to go their separate ways, but had a strong link between them allowing travel between them freely. As the worlds began to separate, tribes formed on each world, blessed by the gods who actively supervised things and ensured that both worlds were prosperous.
One of these worlds was blessed with learning and abundance. The other, wisdom and happiness. As eons passed, the gods were less active and so the worlds began to act without fear of their wrath. The first world found itself jealous of the happiness of the second and plotted a war against them.
This war, as is often the case, resulted in untold devastation. In order to wage their war, the first world wasted much of their abundance. The second world realized that fighting back was the only way to be able to survive, even if their wisdom made it known to them that war is a fool's game.
To cope with the loss of abundance, the people of the first adopt the wisdom of the people of the second, while those of the second develop technology to save themselves. The two effectively switch places, starting a cycle of war and reversal that has been happening for millennia.
Apologies if I got a little book-reporty for a moment. It's hard not to when this board is responsible for so much of the second file's plot development. There's a good thirteen kilobytes of text to read in this scene. Nothing in the first file comes close, with most "lengthier" conversations taking up little more than three or four, save for scenes with dialog prompts which have to handle a number of possible ways for conversations to occur. Though even these with all there permutations don't reach the length of this one fixed scene.
The entirety of the first file revolves around war and how needless it is. We see Cyros lose his family. Princess Chyrisa flees her home. The Outlanders forced to take up arms to fight in battles they'd much prefer to just not happen at all. The Man In Red's spree of conquering and pillaging is turned back on him, causing him to flee from the very world he was working to conquer. In the end, the war only brought loss to all parties, and benefited no one.
In the second file the futility of war comes off more prominently. Every character has fought to try and restore a life that was stolen from them. James, Cyros, and Argyle have lost their homes and loved ones. Chyrisa fights to separate herself from the monarchy. Ogilio is revealed to have been manipulated by the Taros Umvir (some jerks who can move between both worlds that are loyal to Halo), into beginning this war, tricking him into thinking it was necessary to return balance to the worlds.
Everyone has fought and suffered, and none of them are any better for this war having happened. Perhaps Chyrisa, though I imagine the "normal" life she desires probably wasn't one of risking her life in battle after battle.
And even if they all know they'd have been better off had none of this happened, the way their worlds were thrown into chaos have had permanent effects on them. Forgiveness doesn't come easy, so it's no surprise when an attempt at uniting everyone quickly sparks a conflict that could easily get out of hand.
Ugoged speaks of the idea that there is no "good" and "evil" world here. While they both have their differences, they have many shared values too. Honesty, fair treatment...
But then, in what is perhaps the strongest writing in an impressive world, Cyros absolutely goes off and calls Ugoged out. The attacks carried out by Tara and spearheaded by Ogilio showed no mercy. They were done in secret, were utterly destructive, and slaughtered the women and children. For Cyros, these values have yet to be seen from the Halo-ites.
Ogilio's defense is poor, and Cyros remains committed to his own values. His child's throat was cut, and he will not listen to anyone that tries to justify such a wicked act.
WiL does a remarkable job not glossing over the events that happened throughout the game in order to force a cozy plot resolution. Ogilio was used by those that summoned him, tricked into believing he was returning the worlds to balance, and it's possible to have sympathy for him sure, but that does not excuse him from the consequences of the damage he caused, whether that be spiritual, physical, or emotional. Cyros and Ogilio continue to escalate the conflict and it's very clear that as patient and willing to listen as Cyros is, he still wants nothing more than to kill Ogilio for what he has done.
ZZT's dramas rarely hit this hard. Your typical teen-aged writing rarely deals seen in ZZT tends to have any nuance when it comes to morals. Villains having motivations beyond being evil are one thing, but to acknowledge the harm that can come from good intentions, and getting characters to realize that they have committed a terrible mistake that cannot be atoned is really unprecedented here. By the end of it Cyros doesn't find it in his heart to forgive Ogilio, and how could he? Why should he?
Instead it is Ogilio who has to comprehend the gravity of what he has done. Not throwing off the balance between the worlds, but the harm he brought to Cyros specifically.
The question for the council is how to fix these mistakes. Fortunately there is a way to fix everything: exactly what Argyle suggested. Ugoged agrees that the only way to make this right, both in the inter-dimensional sense of Halo and Sool as well as the personal one between Ogilio and Cyros. The only way to avoid the wrath of the gods for traveling between the worlds and disrupting fate is to perform the unmaking ceremony, preventing Ogilio from having ever existed. Only in this way can unraveled fate ever be restored, sparing Cyros and everyone on Sool from the war that was never meant to be.
The voyagers and their Halo-counterparts are split up into groups. The ritual has not been done in ages. Failure to perform it flawlessly may allow fate to recover, though the damage Ogilio has done would become permanent. Each of the voyagers receives a different quest to fulfill.
If the game was weird before, you haven't seen anything yet.
James and Sperhe are sent out to the old laboratory of Guiru, a scientist who dreamed of unlocking the secrets of time travel and eventually succeeded. Guiru has long since passed, though his lab is still standing and may contain his time machine that will be needed.
The twins Ragzor and Kazer are sent with Chyrisa to the Elfgosian Thicket where guardian stones protect a plant that needs to be taken. It's a dangerous task that will likely require a fight.
Cyros and Ogilio get the most difficult task of them all. They must wait together. No harm may come to either of them if the ritual is to be performed, leaving them to simply wait in the most awkward silence either world has ever known.
...At least until the others arrive. Then they can travel to a specific lake whose waters are necessary for the ritual.
Lastly, Ugoged and Argyle have finished their duties as guardians and are set to leave things to the next generation.
Each task leads into the gameplay portion for the voyagers in the second file. While the first file really did seem focused on telling a story more than giving players control over it, the second gets a bit closer to a more traditional ZZT world. The game remains cinema heavy, but while the first half's idea of gameplay amounted to a shoving mini-game, and picking some dialog from text windows, the second involves a lot more of the player guiding the protagonists to their destinations plus handling what awaits them there.
The Long Wait
As everyone takes their leave, Cyros and Ogilio remain onscreen, forced to spend time with one another. The two actually manage to bond a little, with farmer Cyros wondering how crops are grown on a world with no light. Ogilio explains the nature of Halo a bit better. They rely on ancient machines to produce their food, which along with Guiru's time machine suggest a world who's history was once far more technologically advanced than either world is currently.
Cyros laments being chosen by the gods as one of the balancers. Ogilio explains to him that the gods pick randomly, breaking fate as needed. Cyros was never supposed to have to go through any of this. His fight for the Outlands was a fight for a war never meant to happen. Ogilio reveals Cyros's true fate that he inadvertently stole from him: to become a teacher.
Broken Fates. Broken Code.
What should follow is James and Sperhe's journey west to the lab. For some reason, this doesn't actually happen. I was presented with the above board, and when I moved, I was immediately flung into a passage to the next set of characters.
This board also broke! With the same issue occurring and another major portion of the game skipped right over.
Instead, the game returned me back to Cyros and Ogilio with the other characters all having arrived from their missions successfully.
These two segments break away from cinema, and actually give the player full control over the characters, something never seen in the first file beyond Cyros's initial exploration of his burned down village. Skipping over these scenes meant that the second file was essentially devoid of any user input, which probably didn't help my initial reception of the second half being a weird turn in a direction I wasn't too fond of.
It was at least obvious that something had gone wrong. You don't teleport players to a board and have them instantly leave it for another. At the time, with reduced interest from how the story was introducing all these new characters and concepts at the last hour, I just pressed forward, intending to peek at what I missed later on.
The bug looks to be a relatively straightforward passage error, albeit flipped from how the mistake usually goes. When ZZT can't find a matching colored exit passage on the destination board, the player is left wherever the initial player element is found. WiL specifically wants this to happen, with the player's position being in the middle of a small enclosed area used by the engine. However, there ends up being a matching passage used to take payers to the next engine sequence with Chyrisa and crew. The engine never gets a chance to operate, and players are shuffled forward unintentionally, and then the same bug happens again.
This is usually where I ask how such an issue wasn't caught. The usual "Hey, what gives?" applies: It's from 2001, a period when testing was the norm. It's from an established ZZTer of high skill. It's got multiple testers listed in the credits. I would love to hear any theories on this honestly as there is a single review of the game from 2003 by Zephyr that specifically praises these skipped-over engines, so clearly it's possible to get them to fire. I wound up using SolidHUD's cheats to play these boards directly instead. (And yes, I did double check with ZZT v3.2)
- [1] Given how easy it was to break ZZT locks at this time, it's a bit surprising so many people bothered. I suppose the tradition is hard to break even if the locks themselves aren't. All that needs to be done to bypass the password here is to remove a check on the next board for a flag set from the title screen that determines whether the password supplied was valid.
- [2] The game itself offers no hints as to the names of these songs, however WiL's #play compilation of his ZZT music as of the early 2000s. Track #70 is listed as the title theme, yet neither file has any music on their respective title screens. A shame, as it's another great piece. One well worth the effort of opening the world in your browser to give it a listen!