- - - - - - - - - - - - - - - - - - - - PART 1 - - - - - - - - - - - - - - - - - - - - An entry from the system designer's diary dating back to the very first day of this ambitious project. In case you haven't heard, Revolution Studios is currently hard at work bringing its classic PC adventure game Broken Sword, which has already appeared on the PlayStation, to the Game Boy Advance. When we first heard about the project we couldn't decide whether it was genius, feasible, or just plain silly. In an attempt to find out we've procured a diary written by Tony Warriner, system designer at Revolution Studios, detailing his innermost thoughts as Broken Sword for the GBA made the arduous journey from office joke to 'seriously cool' pocket-sized adventure. "Today is the first day of the project! Before we can do anything else we need to find all the graphic files used in the original game. Pretty soon Steve and I have a huge pile of CDROMS scattered around the floor. First we look at the CD's then we look at the GBA and its tiny cartridge. We are trying not to look visibly concerned! People keep walking past and sniggering! I type random numbers into a calculator and then use my best 'cautiously optimistic' face. One of the very first jobs must be to get some Broken Sword screens up on the GBA to see what they look like. Will they be too dark? Will the important detail be lost? These are hard questions but, after a few days of low level hacking from Andy and some frantic Photoshop work from Steve, the Paris café screen - the first in the game - pops into view. It's cool! In-fact, its 'officially' better than that as someone is heard muttering the ultimate honour - 'seriously cool!' We now create a whole bunch of GBA screens from the original to if they are as good. After a little brightness tweaking here and there, Broken Sword is finally reborn! Soon the team is back to reality however. Never mind all those screens and the 12,000 lines of speech, just look at all those character animations! There are thousands of them! Andy reaches for the compression books while Steve and I reach for the Vodka. Even George himself has nearly 1MB of standard walking animations on the PC version. That's a serious chunk of the cartridge and simply wont go. Heads are scratched, tea is drunk, and midnight oil is burnt. At last our saviour rides into town bearing the name 'Lempel-Ziv'. We don't know who he is, but the guy sure knows compression! George Stobbart is alive and walking!" Now on the developer diary, Tony Warriner, the lead programmer at Revolution Studios talks about some of the problems the team faced when they realised that the Game Boy Advance wasn't a PC and that Nintendo has no plans to release a mouse peripheral for it. "As the initial euphoria of seeing George strutting his stuff on the Game Boy Advance screen wore off, then, as sure as night follows day, the hangover kicked in. Our next problem was that when George walks around under player control his size is controlled by an algorithm and he is scaled in real time according to his position on screen - but if we do this wrong then George can appear as large as a lamppost or, at other times, as small as an ant. Moreover, when he interacts with something on screen, then the scaling is switched off because all the non-walking animations were hand drawn by the cartoon animators and these guys drew them at the correct size for the PC screen. There needed to be a seamless switch from one to the other, of course. Suddenly one problem turned into two, and the atmosphere, like the coffee, turned black. So, problem one - adjusting the real time scaling to match the GBA screen size correctly. Problem two - re-sizing the hand drawn animations to match the new GBA George. As lead programmer I inmediately assumed full responsibility and delegated the problem to Steve, the producer, declaring the issue - 'a low status graphic problem'. This left me free to think about interesting questions such as 'how do we compress an 8k save game into 512 bytes' while watching Steve draw strange diagrams of George with set-squares and a compass. Another interesting issue quickly came to light too - that of the control interface. The original Broken Sword games were, of course, mouse driven point 'n' click in the tried and tested PC adventure tradition. To some this method of control is sacred and they'll declare anyone insane who dares to question it. Death threats have been received - no joke - when the spectre of direct control is mentioned. On the GBA there is, not surprisingly, no mouse! This gave us a once in a lifetime opportunity to go back to basics and rethink the adventure game interface and it proved to be a liberating experience. What we found when we hooked up George to the GBA directional pad was that as you walked George around you felt far more connected with the character and the game. With a mouse you are stood back from the game in a sort of film director role. But when you directly control George, then you become George. When you walk up to an object it highlights just as it did with a mouse and this felt just fine. A new invention called the 'vista menu' allows you to cycle through all the interactive objects on a screen - this neatly dispenses with 'mouse-hunting' - the scourge of the adventure game! So, instead of a half-baked interface that tries to mimic a PC, we have a brand new way of playing an adventure that maybe, just maybe, is superior to the original mouse method. At this point,we quickly realised we had in our hands - quite literally - something pretty radical, a great looking 2D adventure but with a brand new way of playing. After building a shrine to the god of Nintendo, and worshiping the king of all handhelds, we returned to the next task in hand - preparing the engine for the arrival of 'the level implementers' and a doubling of the team size. The development sea was calm, but we knew a mighty storm was brewing. - - - - - - - - - - - - - - - - - - - - PART 2 - - - - - - - - - - - - - - - - - - - - "Having spent a few weeks building a basic engine the time eventually arrived for the level implementers to make their appearance. These are the folks who's job it is to actually put the gameplay together. They use a custom high level programming language to choreograph the gameplay. This language uses functions provided by the game engine to drive the game itself. The programmers write the functions and the level implementers use them to make the game. There is always much fun to be had debating how these functions are going to work. However, the screaming and shouting only really begins when we all discuss together whether or not the functions do actually work as advertised. For example, when programmers write a function to make George pick up an object, then we expect that object to be on screen when the function is called. If the GBA sets on fire because the object isn't there to be picked up, well, that's hardly our fault is it now? It is 'misuse' of the function and a pile of burning plastic is only to be expected. Lessons must be learnt! And so it was that six weeks into the project the implementer team - Ross, Dale and Jonathan - were led in and shown their new domain. After their handcuffs and shackles were undone they circled the office like lions in a new cage - pawing at the scenery, looking for weaknesses. Things started badly when, visibly smirking, we handed them their 'pink' GBA units claiming that the pink ones were best for development purposes. This proved to be a tactical mistake and they went straight onto the defensive, becoming quite unreasonably picky and aggressive. So, for programmers and level implementers, a pretty good start! Fairly quickly, the implementer team were up to speed and doing basic things with George on screen. The guys divided the game sections up amongst themselves and began to get a feel for the sheer scale of Broken Sword. This, after all, is a 2 CD game that originally took 25 people two years to produce. Pretty soon they weren't the only ones looking pale as their demand lists began to flow into the programming department. An early emergency involved a dustbin lid. We gathered around a GBA to see poor George holding a bin lid up in the air - he was frozen, unable to move. Sadly, there was no way to get George to put the lid down as we hadn't written a reverse animation function. So, off we scampered to write the code to make George reverse his animations. Next up - Nico talks to George with her back to him. Maybe this is right, we said, she is a bit stern, after all... nevertheless, off I went to write a command to make people face each other when talking. Such is the life of a humble adventure game programmer - reading demand lists and hacking out code at double speed to try and stem the flow. A simple life, yet rewarding nonetheless. And then one day up walked Steve, the producer, clutching a dozen CD-ROMs. "What are those?" I asked. "The music files..." replied Steve. "I'll get my coat..." I mumbled." - - - - - - - - - - - - - - - - - - - - PART 3 - - - - - - - - - - - - - - - - - - - - Having been reunited with the small print of my employment contract, I returned to work and carried the music CD's from my desk over to Ben's. Ben is the Revolution resident music supremo, an all round player of notes. He seemed shocked and somewhat shaken when the ratio of 250MB down to 750k was mentioned. I suggested it's a challenge anyone would be excited by and returned promptly to the safety of the logic implementation process. Not so safe as it turned out, for it was time to program Benoir - the trainee doctor! The Benoir character in Broken Sword 1 is rather unusual because he gets to follow George around the game. To do this required some special engine coding so the following aspect could happen automatically. The trick would be to get this happening without using up too much processing power. My first plan was to not bother at all, as only Benoir needs it, and so we could make it happen in a very longhand kind of way. Unfortunately, that damn Nico woman steps in again. She, it seems, requires the super smart following logic all through Broken Sword 2 - so I had no real choice but to do it properly. Out foxed once again! I felt much like George, kept in my place and bossed around by a French woman! After a few days of typing and swearing we had our Doctor friend ambling around the hospital after us, and all was well again. It was now time to think about game save and restore. A quick look back to the original game revealed a save game size of around 8 kilobytes per save game. Perfectly respectable really. Nevertheless, 8k is a lot more than 1k, which was our target GBA figure. A quick analysis of where that original 8k went pointed immediately to the global game flags. These flags record all of George's progress through the game. If George asks Nico about the Templars, then we set a flag so we know it's happened and next time around George knows to say "Tell me again, about the Templars..." and so on. The flags are a memory of the player's actions. In the original Sword games these flags were stored as bytes. However, the hand of God had been at work, secretly guiding us! We had already chosen to store these flags in 1 bit of memory this time around. So, they were 8 times smaller - and the save games would fit. My life was saved, and in response, I decided to visit church on Sunday in order to worship the almighty and offer my thanks. But Church, I quickly discovered, wasn't always the most exciting of places, but was perfect for getting in a few hours playing time - head bowed, volume down of course. Meanwhile, it had been a couple of weeks since the audio CD's were delivered to music maestro Ben. All that had been heard since then was the occasional violin note, sounding pure and shrill over the office din, before breaking up into random white noise. But finally, a breakthrough, it seemed. The opening theme of Broken Sword erupted in all its orchestral glory. All of us were transfixed. How could it be - from a GBA? We all filed out towards the sound - likes rats following the pied piper. Modern day pied pipers, however, don't lead developers to rivers - they lead them into pubs. And it was to a dark and seedy bar that I headed to meet Mr X - a purveyor of weapons grade compression systems. The music and graphics had begun to take their toll on the poor GBA cart, which was now showing signs of strain - indeed, our cart brimmeth over, and there were still a dozen screens to implement. Something 'special' was required to save the day - and the lush content that we had laboured over. As I explained our problem, Mr X nodded knowingly, but displayed no emotion. I felt drained. What could be done I pleaded? Mr X then placed onto the table an aluminium briefcase and proceeded to enter a 20-digit security code. Eventually the case sprang open and a single sheet of A4 paper was removed from it. This was 'the three stage plan'. Stage 1 - data analysis. Stage 2 - proof of technology compressor/decompressor. Stage 3 - speed-optimised decompressor. How much? I asked. Mr X looked around then wrote '30%' on the sheet of paper. I nodded. Then, without a further word, Mr X burnt the paper in an ashtray and left, via a side door. This was the dangerous, seedy side of games development that most people don't even know exists. A couple of weeks and several unmarked zip disks later, and we had recovered another megabyte of cart space. Broken Sword once more edged forward towards eventual completion. As Ross, Dale and Jonathan began to finish off the last screens, development began to shift towards play testing. One problem that comes out to bite complex games like Broken Sword is that of non-linearity of gameplay. When people drive or walk to work or school, they tend, eventually, to always take the same route each day - usually the quickest route. The same thing happens when putting a game together - every time you play, you play it the same way. But that's not to say that someone else, who picks the game up, will also take that very same route as you. Chances are, they'll go another way, especially if they don't actually know the way. Almost everyone that plays Broken Sword GBA won't have played it before, so they wont know the way through. Because of this, it was important to get everyone to swap and play each other's sections - as well as getting in new folk to play the game in different ways. Meanwhile, Andy and myself wandered the corridors, feeling slightly sad that the game, and our programming, was now almost finished. With testing nearly completed, we headed towards the final beta phase, but one last thing remained to be done. Broken Sword was to be released around Easter time, which, as everyone knows, means Easter Eggs - and Broken Sword GBA had to have one of its own. Much head scratching ensued. Most ideas centred on bringing back the infamous goat and giving him a special role to surprise the player. Another idea had George and Nico performing a karaoke rendition of 'Somewhere over the Rainbow.' Broken Sword the musical anyone? Another intriguing Easter egg, it was suggested, might give some sort of clue to what we might expect to see in the upcoming Broken Sword 3 - the Sleeping Dragon. Of course, I cannot reveal what or where the Easter egg is, but I hope you all have fun trying to find it.