The Making of Llamatron
This article was originally published on Way of the Rodent, but the page no longer exists on the site. An archived copy is available in the Wayback Machine, so in the meantime, I have replicated the text here until the original article returns.
Diary of a Classic
Of course it all really started with an advert in the Newbury Weekly News, placed by the small arcade in which I occasionally used to lurk with my mates, telling of the arrival of the latest Williams coin-op, shortly followed by a trip on my bike to Newbury, swiftly followed by a complete and thorough kicking at the hands of the purest, most aggressive and challenging videogame ever made. Llamatron eventually turned out to be something slightly different from Robotron - not quite so intimidating or unforgiving - but I cannot deny that it owes a great deal to Huge Euge and the excellent influence that all his works had on my subsequent career.
Of course back then no hardware platform I was working on had the balls to do a game like that justice. There were simply too many objects moving onscreen, too fast. And... the way they exploded... no way to do that really right on a sprite-based system like the Commodore 64, at least not with the kind of speed and ferocity that was necessary. So I got on with my own work, making games more suited to the limitations of the hardware I was working on and the limitations of my own programming expertise, and Robotron was something that was worshipped in its rightful place - the arcade.
A few years later and the Atari ST became my system of choice, and it was good to be freed from the constraints of hardware sprite generation; on the ST you had to do all the work yourself to make sprites happen, but you could build up an impressive amount of them onscreen and still run at a decent pace. I did an extended version of Gridrunner on the ST, and a remix of Andes Attack, one of my first Vic-20 games. And they were OK, but I was still fascinated by the way that objects exploded in Robotron - the way they broke apart into slivers and shattered off the screen - that was truly excellent.
I honestly didn't start out to do a Robotron clone - not at all. I just wanted to emulate that marvellous exploding technique, and so I started experimenting with code to do that, and started sketching out a little game to go along with it. The game in question was something I tinkered with in between "major" projects of the time, and the idea was that it would just be a simple little shooty game in much more of a Galaxians style - no subtlety, just blowing stuff up in a spectacularly pretty style. It had a little ship at the bottom of the screen controlled by the mouse, and enemies swooped down from the top in traditional bottom shooter style. I called it "Die, Filth!".
That game never progressed beyond more than just a single demo wave. It did have something of the Robotron explosion style in it, but it definitely needed more work, and eventually it got sidelined while I worked on other games such as Atomic Tadpoles vs. Savage Mutant Weirdoes from Basingstoke (released as Photon Storm by ARC) and eventually Defender II (also done for ARC and the first time I ever got my hooves on an "official" Williams license).
After those two I was considering what to do next, and I remembered that I had the source to Die Filth around somewhere, and having just done Defender, I thought it might be nice to have a go at doing something that actually was like Robotron on the ST.
So I sat down and created a llama-shaped player character and started putting the bits together in a Robotron-shaped manner. I made the llama rez in nicely. I wrote code to generate the arena, and adapted the proportional font stuff I'd been using to print text in a Robotron stylee. I added in bullets and worked out a control mechanism that would work with a single joystick (I did write code to support dual-joysticks too but at the time I didn't have a joystick setup I could really play or test the game properly with in dual-joystick mode, so all the actual development and testing was done with the one-stick control method). I added in Electrodes in the arena, created little llamas, sheep, goats and camels to wander round to act in lieu of Humanoids for you to rescue, and then started to add enemies and a wave structure. And there it was - Llamatron version 0.0.
There was only one problem - it played like shit.
It was just too slow. By the time you had sufficient electrodes, beasties and enemies onscreen to make a satisfyingly crowded level, it was just running too chunkily and slow to be any fun at all to play. Reducing the amount of things on screen alleviated the speed problem somewhat but left the levels too sparse and unchallenging. I made four or five levels but it was still feeling and playing like arse, and I was very close to canning it and moving on to do something else.
I decided I'd have one last stab at rescuing the game, and went in to look at the shattering-sprite stuff I'd written for Die Filth that I was using for the new game. Looking at it, it was really pretty poor code. There were a good few tricks and shortcuts I could use to improve things, and I figured that if I went in and overhauled that code maybe it'd buy me enough performance back to make the game viable. So I went in and spent a few days stripping out the old crufty sprite engine and replacing it with faster code.
The difference was amazing. My five test levels ran fast and smooth even with lots of things onscreen and exploding everywhere. The Llamatron project came back from the brink of oblivion and it was Game On again.
With the issue of sufficient speed resolved I was free to settle in to actually designing the game itself. Now I loved Robotron, but the thing about it is that by the time you've been to the tank level you've already seen all there is to see in the game - from that point on it's a case of "harder, faster, more" - beautifully done for sure, but there's nothing more to discover. And given that there was a lot more room in a 16-bit system than there was in the old 8-bit coinop, I decided to help myself and add stuff to the design. Loads of weird little enemies went in. Powerups came in in the shape of bubbles that got released every few enemies shot. There were no bosses, but I did want some iconic enemies to appear along the way. At the time I was fascinated by fractals, so a play with the Handy Hendy Bendy Many M-set generator written by my mate Hendy the Mad Mathemagician yielded a large M-set-shaped enemy that took several shots to dispatch. The levels started to pile up and I departed further and further from the straightforward purity of Robotron and it turned into an extended romp through Yak-land. Levels guarded by giant flapping toilets that fired bog rolls at you and exploded in a shower of flying turds when defeated. Enemies that generated lasers that criss-crossed the screen. Mutant enemy sheep that hid amongst your flock and invited you to collect them by accident. Cannons that flanked the screen and spewed out a huge amount of bullets. Enemies that turned into mines and respawned if you died. I was having fun.
There were a couple of developments in particular which I believe imparted to Llamatron a lot of the character which gave it such staying power once it was released. For one, I acquired a sound sampler for the ST, and I figured out how to hook sample playback into the game without taking too much of a hit in performance. Prior to that I'd just been using the bog-standard sound chip noises from the ST's sound chip, which were OK in a bleepy bloopy kind of way (I'd even developed a moderately involved little sound effect scripting language that let you design sound effects as little programs stored as strings), but it didn't give you the flexibility that samples afforded, and most importantly such effects lacked the punch that made Williams arcade games so sonically distinctive and satisfying to play. I wanted some of that goodness, and with my own sample playback working on the ST, I could have it.
I began by ripping the samples out of some Amiga game which had clearly itself sampled a Williams coin-op. I converted those into a format I could use and began assigning them to events in the Llamatron world - and at that point Llamatron really started to come to life. It was fast, there was loads of shit onscreen attacking and exploding, and now it sounded right, too.
Of course, using samples allowed for much more fun to be had. I sampled a tape of an old Hitch-Hiker's Guide to the Galaxy radio show - specifically, the bit where Zaphod falls out of his spaceship drunk and emits a long, drawn-out scream. I set that one to trigger whenever one of the M-set enemies took a hit - and the Screaming Mandy was born.
Towards the end of the game's development, my mates came up for the weekend and we spent a good amount of time playing the near-completed game and indulging in beer and the occasional recreational cigarette. One thing we noticed was that whoever was playing would frequently swear quite vehemently when killed. I noticed that people would be particularly inclined to swear if it was near the end of the level where one might have hoped to survive - so, I thought, why not have the game swear for you?
Of course I couldn't have the release game swear or I'd be letting myself in for a world of "disgusted of Tunbridge Wells" hurt. However I could make it partially swear. So I gathered my mates round a tape recorder and we sat down to swear together. At first it was just a good, heartfelt chorus of "Oh, fuck!". What I planned to do was time the sample playback so that it'd go "Oh, f-" and then another sample would kick in. Recording that was fairly simple, and I hooked it into the game and it worked pretty well.
That wasn't enough though. I thought I might as well produce a little private version for us to play which featured some full-on cursing. I figured that since this one wasn't for release I could use one with more than 1M of memory, and use more memory for samples. We sat around and had a couple more recreational cigarettes and worked out a list of choice phrases from which the machine could choose when it came swearing time. The script we worked out called for the following: "Bollocks! Pissflaps! Cunt, cunt, cunt, cunt, cunt! Fucking shit! You bastard! Fuckpig!". And we all gathered round the tape deck to swear together again.
The trouble was that by then we were all pretty much in a silly giggly mood, and it must have taken a couple of hours of takes during which we'd lose the plot and end up laughing like bastards before we got the take just right.
The end results were, in a rather puerile way, excellent. Upon swearing being deemed necessary, the program would choose one of the phrases and utter it. Occasionally it would launch into "tirade mode" and emit the whole lot in one foul-mouthed stream. I eventually sent a copy of the rude version to my mate Richard Miller, who was working at Atari in the US at that time. He told me that when he put it on his office TT and started to play his secretary heard the game and came in to look, attracted by the cute baaing and mooing and "I Love You!" noises coming from the game. Just as she arrived Richard lost a life, and the game chose to go into Tirade Mode whereupon she rushed out of the room, sorely offended and, for all I know, never to return.
The second major development in the game came out of the nature of fierce shoot-em-ups in general. Now I loved the genre, but they were notoriously exclusive to a lot of players who weren't used to that kind of hard-as-nails gameplay, and who would get discouraged at starting a game only to find themselves with their arse handed to them thirty seconds later. I wanted to include those players, to give them a taste of how good it felt to be in the thick of a big crowd of bad guys and prevail despite being hugely outnumbered. I'd already made the game two-player simultaneous cooperative as an option, and so I decided to extend that to the single-player game by providing a computer-controlled ally, the "AI Droid", which would play alongside the player rather than against them, and allow beginning players to have a degree of support on their side while they got used to playing. This worked really well, and once the game was released I had many letters from players telling me how much they enjoyed playing Llamatron even though they "didn't normally play that kind of game".
I also changed the emphasis a bit - collecting Humanoids was always an important part of original Robotron but I wanted the actual collection of them to have more of a positive immediate benefit to the player, so in came "hot bullets", which would be activated for a couple of seconds after collecting a beastie and which would slice through enemies instead of being stopped by them, and would inflict multiple hits on enemies that were shielded. This led naturally to my favourite powerup of the whole game, the "Love You" powerup. Upon collecting the powerup a voice would say "I *love* you!" and for a while all the beasties on the screen would get little love hearts over their heads and rush towards the player. Being mobbed by besotted beasties proved to be essential to the game's strategy - having the beasts rush towards you when you were in a tight spot, and bring with them the accompanying Hot Bullets goodness, was sometimes exactly what you needed.
Eventually I rounded out the game at a nice even 100 levels and finished it off with intro screens, demo modes and a hiscore table, and I was pretty happy with the results. There was only one small problem - I had no publisher for it, and publishing a game had got far too expensive for Llamasoft to do it itself. I called around a few of the existing publishers and explained that I had an excellent game that was somewhat like Robotron which I thought was my best yet but nobody was interested. I had an ace game on my hands but no way to get it out there which was, to say the least, a little frustrating.
At about that time I'd read about something that Jerry Pournelle mentioned in his column in BYTE magazine, something called "shareware". The idea was that you simply allowed your software to be distributed freely, and simply asked that if people actually found it good then they sent you payment for it. It sounded hopelessly idealistic on the face of it, but Jerry P. seemed to indicate that it could in fact work and that people were actually making reasonable money from it in the US. I thought to myself that I had nothing to lose, having already done the hard work, and decided to give it a shot. I had to spend quite a lot of time trying to explain to my parents what i was doing and why, and I am sure that they thought I was quite bonkers at first, but we eventually agreed to give it a try.
Distribution, in those pre-internet days, was still a problem, but there were options other than the traditional publishers. It was fairly common then, as now, for magazines to have a disk attached to the front cover with demos, public domain software and other assorted oddities. I approached ST Format and asked them if they would be interested in giving away my latest game for free on their coverdisk. They were very keen on the idea, and so they became the primary vector through which I would get Llamatron out into the world.
The final job before releasing the game was for me to sit down and write a long readme file to be included with the game. This went into great detail explaining the concept of shareware, which was little-known in Europe at that time, and asked people to please freely copy the game and give it to their mates, but always include the readme file too - and asked them to please pay me £5 if they truly enjoyed the game. To further sweeten the deal I offered a copy of an older ST game of mine, "Andes Attack", to people who did indeed pay the £5 registration fee.
Finally the game was complete; the final version was sent off to ST Format to go out on the following month's cover disk, and I sat back and waited wondering what the hell was going to happen.
The results were astounding, completely exceeding any expectations I'd had for the release. Floods of registrations came in, and with just about every one, came letters that people had written, thanking me for the game, thanking me for having trusted them to pay for it. They paid willingly. Some of them paid twice because they felt it was worth it (the cost of a "proper" commercial release at that time was around £20, so Llamatron was cheap). At the height of it I was getting through a roll of fax paper a day as my mum was faxing me copies of all the letters coming in each day. That amazing response saved Llamasoft, and is something that I still count as one of the most moving things ever to happen in my time in this industry.
I have rarely felt so good about a release as I did about Llamatron.
And over a decade later Fuseball made me a lovely MAME cab, and installed upon it an ST emulator with a copy of Llamatron set up on it for dual stick play. Finally, after all that time, I got to play Llamatron the way it should be played - with twin sticks - for the first time. It was a perfect moment and, I must say, almost had me in tears.
Llamatron trivia (swearing-related) - I *did* get one "disgusted of Tunbridge Wells" letter, albeit a mild one. The release version contained the whole "Oh, fuck!" sample, but the game was set so that a certain time after that sample was triggered, another explosion sample would be triggered, cutting off the swearing appropriately. But Mr. Mildly Disgusted had discovered an oversight - if you hit Pause in between the time the swearing was triggered and before the obscuring explosion was triggered, the whole "Oh Fuck!" sample would get played.
You may enjoy these articles...
If you look inside many Amiga games, secret messages have been hidden by the programmers. Richard Aplin was the king of hiding messages in the startup-sequence file, and his Line of Fire and Final Fight startup-sequences have become legendary! The Sensible Software team were also prolific at hiding messages in their games.
A collection of technical interviews with Amiga programmers that worked on commercial software in the glory days of the Amiga (late 1980s to early 1990s!)
The Ultimate Amiga Graphics, Level and Map Ripper!
A random assortment of rants relating to the Amiga!
An explanation of how many famous Amiga games utilised sprites in weird and interesting ways