Part 4: You are on the west end of the beach.
2025
Update 24/06/25 < click 2 jump

This story begins in the mid-1990s, in a Dartford bedroom with popcorn wallpaper.
I have always been a little nerd who likes adventure games. I remember spending ages playing through my dad’s Ian Livingstone books as a child and drawing felt tip pictures of winged, one-eyed monsters straight from a fantasy bestiary. My own mind, for better or worse, is my theatre and my sanctuary, and it always has been.
I was a little kid, maybe 5 or 6 years old, when my dad got a secondhand Amiga. It was set up on a mock-mahogany desk in my bedroom. I still remember the whirr, the odd yellow-grey colour of the plastic, the clunky click of the mouse. I was too small to really know how to use it, but it fascinated me. He had a hundred or so floppy disks housed in one of these cases. The kind of thing you haven’t seen in so long, you can’t remember the last time you did - if you’re even old enough to have seen one at all.


I used to love the tactile sensation of flipping through these, the rhythm of the plastic, helping him pick a game. Each one had a solitary handwritten title on a generic label, so when we played, we had to choose what sounded interesting based on that alone.
I remember particularly liking Eye of the Beholder II: The Legend of Darkmoon (so began my lifelong yet casual love affair with the Forgotten Realms), I wasn’t very good at it, because I was tiny, but I loved making parties, rolling for stats and equipping weapons. I loved imagining myself as a beautiful half-elf mage, creeping through the forest.
I liked K240 (a thrilling fusion of space combat and ... mining logistics) and Valhalla: Before the War. These two were particularly engaging to me because they talked - as in, there were speaking voices in the games. Valhalla’s protagonist would break the fourth wall and speak directly to the player. The voices were grainy and weirdly compressed, but not unsettling. Warm, somehow.
The Amiga had superior audio for its time which made real sampled speech possible thanks to its built-in ‘Paula’ sound chip. Mid-1990s was perhaps a little late to be blown away by this, but these were the first games I remember seeing, a little while before we’d get a Playstation 1, so hearing speech was a genuine thrill for me. These things imprinted themselves permanently in my memory, unforgettable for my little brain, soaking up as much novelty as it could find. I loved spending time with my dad.




One of these afternoons, I remember pulling a game from the pile with a title that absolutely nobody could resist. The best title I’d ever heard, scribbled in blue ballpoint pen:
I Was a Cannibal for the FBI


You’d be forgiven for finding the game itself underwhelming, given the title. It’s a very short puzzle game. You are an agent working for the FBI. You wake up on an island. You have a certain number of turns to figure out how to escape before the cannibals find you and boil you in a big pot. The first iteration of the game was made in the 80s. For now, let’s try our best to overlook the uncomfortable colonial overtones and ‘savage native’ tropes. It was aiming for something pulpy and camp.
Here is what I recall about playing this game. We spent a long, frustrated afternoon on it. For those unfamiliar with parser text adventures from this era, you’d type commands - CLIMB TREE. PUSH BOULDER. BREAK GLASS. Sometimes you’d need to figure out which specific verb the game was looking for to perform a certain task. I distinctly remember that we never managed to finish I Was a Cannibal for the FBI because we couldn't work out how to tell the game that we wanted to get into the beached canoe and leave the cannibal-ridden island, resulting in increasingly desperate back-and-forth, like so -
use canoe
You cannot do that to a canoe.
step into canoe
You cannot do that to a canoe.
jump into canoe
ILLEGAL COMMAND.
Years and years later, in 2022, I was thinking about this game again. It’s one of those memories that sticks. It floated back into my head like a soggy log on that cursed beach. I remember tracking down the names of the games I remembered from my childhood at some point in the early 2010’s and I’d messed around with an emulator for a couple of hours, confirming they looked the same as they did in my memory, so I knew I hadn’t dreamed it up. I looked it up again.
What I discovered about it was very exciting. Okay, I know that’s subjective. I happen to think it is exciting.
Aegis Visionary (1991)
In 2022, thanks to the Hall of Light, I found out that this silly little cannibal game was made for a reason. One I’d had no idea about.
[1] Written using Aegis' adventure writing language VISIONARY. The game was a companion to THE VISIONARY PROGRAMMER'S HANDBOOK (included as an optional extra with VISIONARY or sold separately), but was nevertheless deemed freeware by author John Olsen. The source code of I WAS A CANNIBAL FOR THE FBI is available on the original game disk. Alternatively, it can be found in Appendix A of the handbook, which includes a detailed step-by-step analysis of the source code used to create the game.
It was a demonstration, an example game for an authoring system. You could buy this Visionary software and manual and make your own adventure games from scratch. Cannibal was just a helpful tool for learning the language, rather than a weird standalone release. I have no idea how we missed this information at the time, since it is plastered all over the game, but memory is funny like that.


As soon as I learned this, I knew what I had to do. I had to go find some things on eBay.
A history lesson
Aegis Development was a pioneering software company founded in 1984, known for early contributions to graphics, music editing, and animation. Aegis had been behind tools like Sonix, Animator, and Videoscape 3D (a precursor to LightWave 3D, part of the Video Toaster suite). They also played a central role in establishing the ANIM file format, one of the Amiga’s lasting multimedia legacies.








Over time, internal changes and market pressures mounted, competition got the better of Aegis, and so the company sold its entire catalogue to Oxxi, Inc. in 1989, and ceased operations. Oxxi, founded in 1985, was a California-based software publisher that built its business by acquiring and distributing titles created by other developers. Oxxi re-released many of the titles under the Aegis name but they also began expanding into new software, including an ambitious adventure game development toolkit: Aegis Visionary.
Kevin
Programmer Kevin Kelm had been building the foundations of Visionary since 1987. He had grown up coding on a PET and C64, but it was a university-era encounter with a UNIX version of Colossal Cave Adventure that sparked the idea that led Kevin to build T.A.C.L. (The Adventure Construction Language) - a flexible language for building adventure games more easily. I managed to track him down a couple of months ago to ask him about it.
“There was an epiphany where I realized I knew how to make my own implementation work, but the idea of hard coding everything in the software was untenable, so I wrote TACL as a game development language to write games in instead.”



T.A.C.L. was developed by Kevin and his collaborator Rhett Rodewald under the name Alternate Realities. It was produced in 1989 through Micro Momentum - a tiny publisher based out of a garage in Connecticut. It was truly born from that era’s DIY spirit.
I had fun exploring the T.A.C.L. disk and compiling the example games to try them out.


Eventually, Kevin connected with Oxxi-Aegis, who were looking to make an expanded, multimedia-rich version of T.A.C.L. for wider release. Kevin received test machines - an A500, an A2000, and others - and began working on Visionary.
John
Writer John Olsen came on board to help transform Visionary from a toolset into a user-friendly experience. He adapted one of his own C64 adventure games (I Was a Cannibal for the FBI) into Visionary format, adding graphics and sound, and simultaneously, he wrote The Visionary Programmer’s Handbook, a 384-page guide which walked users through the art of storytelling, design thinking, puzzle structure, and narrative craft, as well as each line of the Cannibal source code, all with warmth and clarity.
“While I continued development and testing of the software,” Kevin explains, “John was there writing all the early test games and the user manual. We collaborated significantly to make everything more user-friendly… He was integral to the development process.”
John had been writing and publishing text adventures since the early days of cassette magazines. He was also a middle school teacher who loved pulp serials, old horror radio plays and mystery cliffhangers. Early home computing gave him a way to turn those influences into playable stories, like ‘Frankenstein Adventure’ (1980) and ‘King Solomon’s Mines’ (1982). His games were full of treasures, crypts, jungles and graveyards - strange, haunted places full of danger and delight. In a 1994 interview, he described owning more than ten computers, including five Commodore 64s (one of which ran a bulletin board system nonstop for nine years), an Amiga 1000 and 500, and a then-new Macintosh LC-475. He couldn’t bear to part with any of them. By the early '90s, John had over 100 magazine articles and games published.



I love screenshots like this one. It’s like poetry.
In late 1989, John bought a copy of T.A.C.L. and quickly wrote a trilogy of horror games with it. That enthusiasm led to his involvement in beta-testing Visionary, and later being asked to write its handbook. He wasn’t the engine underneath Visionary - that was Kevin’s - but he was the soul of it. The storyteller who showed what the tool could do for consumers.
In 2025, I tried to find John. I emailed around to no avail. I sent him a letter. A real one in a black envelope with labels in Topaz font. I used Visionary syntax on the return address label. It was designed to be noticed.


I told him about my memories and how I was thinking of using Cannibal for a project, and I asked for his blessing. Sadly, I never heard back.
Maybe the address was out of date. Maybe he simply didn’t feel like replying. He’d be in his mid-seventies now. I still hope that he might see this somehow. I would love to speak with him if I could.
[If anybody out there knows how to get in touch with John, please let me know!]


Visionary's launch was niche but ambitious, consisting of boxed software with a full printed manual and a proprietary scripting language with 70 commands. You also got:
- Visionary Interactive Editor: a full-screen editor where you can type your game code out directly.
- VCode: Encrypts your image and sound files to prevent them from being scraped or modified.
- VCoord: A tool to help locate the co-ordinates of specific parts of your screen, so you can specify in your code where clickable objects and buttons appear in your game.
- VComp: a custom compiler that takes all your source code and compiles it into a pair of binary files, containing your game’s logic and vocabulary, which an Amiga can process. This makes your game playable in test mode within the Visionary Editor.
- DBug: Opens your compiled game in debugging mode to check for problems.
- VLink: links the files made with VComp and turns your game into a distributable, executable version that you can sell or share.
It was a complete toolkit for building rich, narrative games on the Amiga, but it never found a mainstream audience. As Kevin puts it, “anything programming-centric is a hard sell for the general public… more than one end user was vexed at the effort necessary to make a game.”
Oxxi released a few more software titles, but officially closed in 1995, following Commodore’s collapse.
Visionary may not have been a hit, but it was bold and strange and lovingly built. It feels, to me, like a fitting swan song for the Amiga’s weirder, more imaginative era. I think it’s worth remembering. I think it’s worth preserving. I even think it’s worth resurrecting.
Closing the loop
When my ebay purchases arrived, the first thing I wanted to do was solve a problem so old it could be having its own mid-life crisis.
get into canoe
OK. It is a comfortable fit.
row canoe
Not while it is beached on the sand.
push canoe
OK.
get in canoe
OK. It is a comfortable fit.
row canoe
Using the shovel, you row the canoe out to the freighter. You are taken aboard and enjoy your leisurely trip back to civilization and your job at the FBI. Congratulations on escaping the island!

But it was so much more than that.
It seems absurd that something like I Was a Cannibal for the FBI could have made such a lasting impression on me that I still carry it thirty years later. Of course, games like this feel simplistic and dated now, relics from an innocent time. You really have to adjust to a slower and less dopamine-driven mode of engagement to enjoy them.
I had been looking for a way to make things again, and I needed that to be slow. I’d grown weary of trying to respond in real-time to internet phenomena and social media trends. I’d been swallowed up and spat out by algorithms. I wanted to return to something that takes patience. I missed when I owned the things I paid for. I missed knowing they would work as long as I looked after them. I missed when the screen was a warm, familiar place I chose to go, instead of something nightmarish and addictive that follows me around.
I know most of that fantasy is coloured by the pink sunset of nostalgia, I do - everybody’s childhood was a simpler time, because that is childhood. Nevertheless.
I do think sometimes life gives you little signposts towards a good idea. It feels like that anyway. Finding out this game had a solution, and not only that - this game had a solution printed in black-and-white open source code in a book - felt like one such signpost. I had a way to reach back in time, grab my own loose-end and tie it up forever. A loop through time. I thought that could be a good concept to develop. I could get inside the game and intervene, I could fix it for my past self, add some more verbs to the parser, or alter the ending completely. I could use Visionary to tell a new story, maybe. I could ‘learn the video game equivalent of Latin’ as one friend put it. I could take something obsolete and forgotten and give it life. I could make something so retro that it’s borderline unplayable and do it with purpose.
Kevin: “Those early days for me on the C64 and Amiga were filled with the warm thrill of discovery, of possibility, and a technology that was only barely out of my grasp at the time, at least in terms of how it actually worked. Today’s computers may as well be designed by aliens, as complicated as they are. But the endless hours of exploration and wonder in those days fills me with an indescribable warmth that I sort of suspect kids don’t get from it anymore (I could be wrong).”
So that’s how I decided to make a game for the Amiga, using Visionary, in 2025. I knew I was getting myself into something big, long and probably infuriating. That was part of the charm.
I’m Still a Cannibal for the FBI
That’s the name of the sequel I have been working on.

The first thing I did was see if I could make a small change to the existing Cannibal game. I just wanted to change the intro text, or swap one of the room images for a different one. If I could do one thing successfully, I could change the whole game eventually, right? I gathered together all of Cannibal’s source code files and its images and sounds. The first thing I noticed was that the images couldn’t be opened in software that should be able to display .iff images - and they came out all corrupted when I tried to convert them to .jpg.

I quickly realised this was because they’d been encrypted with Visionary’s VCode utility. How this works: you run VCode from the command line interface by typing something like this:
vcode image.iff password image2.iff
VCode runs and produces an encrypted image (that Visionary can still understand and display), saving it under the second filename.
So - no matter, I thought. You define the password for your game elsewhere in your source code, so I can just use John’s password in his code - jroj - to decode them again. Right? Nope.
They must have been encrypted with a different password, to stop people like me from doing exactly what I was doing. So, I had no choice but to... respect the author’s wishes and leave them alone? Or... reverse engineer VCode and figure out how it works and what it does to encrypt files.
It took me two days.
A cryptography lesson
Every image file was scrambled using a type of cipher called XOR. If we think of a file as a brick wall, it’s made up of long lines of bricks called bytes. In an IFF-ILBM image (the format used on the Amiga), the first few hundred bricks make up the header. This tells the computer things like the image’s width, height, number of colours, and how the rest of the data should be read. These first 390 bytes were left untouched. Then, starting from byte 391 onward, everything was flipped using a single-byte XOR key. For John’s images, it was 0xE2.
Hexadecimal: 0xE2
Decimal: 226
Binary: 11100010
The XOR process takes each byte (a sequence of eight binary digits - ‘bits’) and compares it to the key. Each bit is flipped (0 becomes 1, 1 becomes 0) only if the corresponding bit in the key is 1.
Original byte: 00000011
XOR key: 11100010
Result: 11100001
And so when you do this a second time, it flips everything back, like using the same key to both lock and unlock a door. It’s just enough to keep tinkerers out. For 34 years, it did.
I was able to unmangle the original images, and more importantly, I can now edit them for use in my sequel.


















You might think after this little diversion, I’d be off to a running start, and you’d be dead wrong.
You are on the west end of the beach
I made one small tweak to the code and changed the first bit of text that pops up when you start the game. I touched nothing else. I recompiled it, and something really odd happened. I couldn’t leave the first area (west_end_of_beach). Entering a direction command to move rooms just returned me to the room I was already in, printing the room description text, like so -

I am not sure this game wants me to close any loops. It seems to really like loops.
This drove me absolutely insane. I spent days and days on it. The problem persisted, even when I compiled the game from the original, untouched source code directly from the disk. It’s what led to me to find Kevin, so I could ask him for help. I thought it was perhaps a problem caused by using emulators, but I had tried several different ones, and this result was the same every time. What is especially puzzling is that every single other aspect of the game works as intended. All the other commands - examine, get, dig - worked perfectly. It even behaved properly for exits that didn’t exist, for example:
W
You can't go West from here.
but for any legitimate exits, it would reprint the description of the current room instead of transitioning. Since everything else was working and the parser could recognise actions, I couldn’t put the error down to some weird encoding compatibility issue with the emulator. It didn’t seem to be something that might have changed between versions of Visionary. It was bizarre. I checked the .rooms file, where the code that should make this work lives, and all seemed to be in order:
room west_end_of_beach
attrib
started N
ForcedReturn N
endattrib
default
s sand_dunes
e east_end_of_beach
n unused
enddefault
So I thought, perhaps it’s just an issue with Cannibal. If I try to recompile a different Visionary example game (there are two more - The Magic Potion and Catacoombs), would the same thing happen again? If I tried it with even the most basic of test games, a single room linked to another, could I move?

Aaaaaaarrrrrgh!
Let’s just take a second now, to enjoy the unearthed graphics from those games though, because the digital archeology aspect of this obsession is really amusing for me. A delight to see the name Jim Sachs!








I tried so many things. In the end, I found a hacky fix. You can add custom vocabulary to Visionary games. I added one for the word ‘warp’, which would tell the game to take me to another area. This worked.
action warpFrom there, I was still unable to move, so I knew it wasn't a problem exclusive to the initial room.
go sand_dunes
endact
The way I finally got it working was by adding the directions as actions in my vocabulary file, just like my test above. I had to fiddle around a bit to sort out some conditional stuff involving a ladder and a boulder, but I now have an editable game that functions as closely to the original as I could get.
action e, east, go east, move east
if player in west_end_of_beach then
go east_end_of_beach
elsif player in in_the_shack then
go meadow
elsif player in meadow then
go top_of_the_cliff
elsif player in by_the_boulder then
if boulder is moved then
go in_the_cave
else
$tx := "You can't go East from here."
call print
endif
else
$tx := "You can't go East from here."
call print
endif
endact
I really hate unsolved mysteries though (not the TV show, I LOVED that). It doesn’t make any sense to me. How could the original, untouched Cannibal source code, fresh from the disk, produce a game with broken direction commands? Visionary is supposed to handle this automatically. Kevin said it was ‘strangely vexing’.
People did successfully make games with Visionary in the 90s. Michael Zerbo made quite a few (all quite scary!). I wonder if he had any of these problems. His source code isn’t public as far as I can tell. It would be useful to see that. Perhaps I’ll track him down next. Still, I really can’t see it being a bug in the compiler that nobody noticed during testing, or in the years that followed. That seems very unlikely to me.




The ultimate test would be to buy myself an actual working Amiga and compile Cannibal on that, the old school way, but that is a daunting, expensive job for another day.
If you actually read all this, my sincere thanks for sticking with me! Especially through the XOR stuff. Well done!
My work on I’m Still a Cannibal for the FBI continues, and I won’t say anything about the plot. I’m hoping to have it done by the end of this year. It’s relaxing knowing there’s no pressure to get it out quickly. It’s already taken me decades, in a sense.
Bye for now!
Bex
✴ ✴ ✴
Update: You are walking through the sand dunes (at last!)

Very kindly, Amiga expert Ed Brindley has solved this mystery for me. It turns out I’ve been using a corrupted version of Visionary all along. It was the only one I could find online (in here), and I didn’t want to risk spending money on a floppy drive, since there’s no way of knowing what kind of state my eBay disks are in. I don’t know where they’ve been living all these years. Probably next to a giant magnet, knowing my luck.
Ed pointed me towards a different disk image, and just like that, no more broken directions. I get why it went against my instincts to assume it was something like this. I’d dismissed the thought that my version of Visionary might be wonky, because after all, more complex aspects of the game worked fine, surely something as simple as navigating around the map would be the last thing to break, not the first? I’ve realised now that this kind of bug doesn’t really obey logical expectations. It seems more like a scratched record where all the tracks play beautifully except that one little part that jumps, wherever that part happens to be. There’s a lesson in here about not blindly trusting a beginner’s instincts when they’re based on very little.
It feels SO good to be working clean at last. Thanks Ed!!


