C64 Logo
Back to the Main Page

Magazines

Zzap! 64
  Editorials
  Zzap! History
  Zzap! Staff
  Zzap! Rrap
  Walkers Way

Hack to the Future

Your Commodore

Commodore User

Commodore Format

Your 64
Games
  Best of 1
  Best of 2
  Best of 3

Misc (500+)
  Game of the Month
Demos
Links

means the link is off site

Sign / View My Guestbook

Any comments, suggestions or questions, please email me at iain_black@yahoo.com

Walker's Way Logo

Diary of a Game - Citadel - Part 4

Issue 42 - October 1988

Picture Of MartinThe message needed much magic to travel such a great distance, and so the master of the wooden post was consulted. He thought long upon the problem (for it was well known that the post took great deliberation, and that people might wait until they had almost forgotten why they came) and then he produced a magic square. The man took it from the master with trembling hands, and as instructed, the magic square was attached to the message, and was placed within a box upon the green. Then he waited. Long he waited, until the shadows lengthened into evening,and then a strange craft came and removed it. The craft returned into the darkness as quickly as it had come, and at last the man heard it no more. Silence overcame the land, and he returned to his home. But a strange thing came to pass - the message soon appeared magically in another distant place, and great rejoicing was heard. 'GORDON, THE LATEST DIARY INSTALMENT HAS ARRIVED!'
 
Thursday 7th July The first music commission thrashed through the speakers all today.I have set myseIf a realistic turnaround of about two weeks-in fact it's turning out to be far easier to pace a project of this duration than a game which can be very difficult to gauge.

Another piece of good news today. The Second music commission was confirmed by telephone - none other than Armalyte for Thalamus! It's great to be back, guys, and it must give far greater continuity to a project when sound effects and music are produced by the same person.
 
Friday 8th July More thrashing (of the musical variely took place today. In fact,I suspect that this monthwill be all thrashing, as there are now two musical commissons to be completed by the beginning of August. After all, I'm setting out to provide a speedy service so this instalment should provide a day-to-day insight into the life of a computer musician (all this variety at no extra cost to the reader!)
 
Sunday 10th July I know that l said in last month's diary that I'd finished with this sound bug, but it's really 'bugging' me! Today, instead of having a complete day off I wrote an incredibly simple 10 line program to hang on the interrupt which just keeps triggering the same note rapidly. Sure enough, every few seconds after perfect 'pinging' the envelope failed to trigger properly leaving a click instead! I can't make the routine any simpler so at the very least I've certainly proved once and for all that it's nothing to do with my music player. In addition, by using location $D41C, the envelope output of channel three can be monitored and once again this confirmed my findings. Armed with all this knowledge I can now make sure that the bug is avoided at all costs!
 
Monday 11th July First job of the day is to produce a dummy compacted routine of one of the demo pieces to allow people to have a 'dry run' of installing the music in to the game. All this means is that having been given the position in memory where the player and tune data is to sit, all the gaps at the end of short sequences of notes must be stripped out, and the remaining code squashed together leaving the smallest possible 'chunk'.

After three hours the first compacted set of code was complete, and also the decision to write an automated compactor. Moving 26 seperate chunks of memory into different positions by hand is fraught with the possibility of errors, and I don't fancy doing it again. It feels rather like doing a Rubik's Cube blindfold!
 
Tuesday 12th July A mammoth session today saw the loading music cassette virtually completed - all four minutes of it. It starts off in a mysterious way with menacing strings, then slowly evolves into full blown rip-roaring blockbuster (at least I think it does!) It's certainly the best piece I've written so far, but then every new piece seems to be turning out that way at the moment. Let's hope the trend continues.
 
Wednesday 13th July Today after completing the loading music I must return to the title tune which is only about half finished. This was the intention at any rate. In fact, whilt finishing off the loading sequence it was discovered (and not for the first time! that since various groups of sequences were being repeated in each 'verse' it would be very useful (and time/memory saving in the long run) to be able to define the start and finish of a group and be abe to repeat it a specific number of times. This involved writing a modified and extended routine for the music player when it reads track arrangements. At the same time various little improvements were made to the editor, based on the expenence of using it every day for the last week-hands on experience is certainly the best way to find things.
 
Friday 15th July The first job of the day was to re-allocate instrument sounds to different places in the voicing block. When the final code is produced for the game music, all the unused instrument sounds can be deleted to save memory, but only if the wanted ones are in one neat block at the beginning. Moving the voices themselves was only a small task, but the 'biggy' was then amending every byte that referred to the old values, which had to be done by hand. Again, another boring task that took two hours altogether but made a saving of 272 bytes to the end product. It will teach me to be more disciplined in future and define all instruments from number zero at the beginning of the block onwards rather than vhere I fell like it. Another completely new section materialised for the title piece later on in the day.
 
Saturday 16th July I've changed my mind about Bionic Commando, and award it the moan of the month! Periodically I load it up and can now guarantee that the first 7 or 8 games will be aborted during the first level simply because I lose a life when something unexpectedly drops on my head, giving no warning or time to get clear. I'm not the world's greatest game player but I do expect to progress a little bit each time I play and not be ruled largely by luck! I'll just have to wait for an infinite lives poke now I suppose, to get much further than level three.
 
Monday 18th July After a momentous start, I completed the 'mission over' music arrangement today (started over the weekend) and now all three pieces for the first commission are finished waiting only for the relevant memory addresses to be supplied so that they can be inserted into the game.

The final couple of hours today were spent trying out sounds and ideas for the title music of Armalyte. In the end it went so well that the first 17 seconds of music were 'in the can' (or on the floppy as the case may be). This may not sound very much but the first few seconds establish the mood and feel of a piece, and once that is established the rest follows much easier.
 
Tuesday 19th July As all three pieces are complete for 'game one' I modified my demo routine to run these with details of each track added to the screen display. Now this module is completed I can use it to demonstrate the music for each new commission. As it happened I had a call later on today from 'SS' to see how my first project was faring. Although I haven't yet got the run time addresses they were so eager to hear the music that I sent off the demo - it should arrive on Thursday (fingers crossed).
 
Wednesday 20th July Most of the day was spent on the Armaltye title track, but I did take a couple of hours off in the morning to add two more features to the music editor (again after a need arose). Firstly so much time has been spent tapping my fingers to keep time when adding new sections to a track that a metronome seemed like a good idea. The new design emits a single pulse of light periodically (synchronised to the music being played) and can be set to any tempo. It has already proved invaluable. The other improvement is to display the current sequences being played by each channel when the music is running - occasionally after three minutes of music the channels might get out of 'sync' due to a missing note somewhere, and it's very useful to be able to study the point each has reached to find the offending sequence.
 
Friday 22nd July This morning I heard from 'SS' that the demo had arrived safely and they they are well impressed with it. When it arrived they turned off all the other noise-making machines, turned up the volumne of their 64 and started the music. Within seconds (so I was told) every office in the vicinity was disgorging people
who came to crowd round and listen. Apparently it ruined productivity for a while! Great stuff (the reaction not the productivity). Modesty prevents me quoting some of the other kind comments that were made but satisfied customers are the best advertisement for any business!!
 
Thursday 21st July Part of the player was rewritten today to help with fast changes of voicing. Every time I use the system something suggests itself as an improvement! The only complication that arose was that gating notes on and off had been modified slightly, meaning that the 'SS' music could only benefit by my going through each sequence (all 63 of them) and modifying certain bytes by hand. The result was certainly worth it, and a few extra tweaks to the voices resulted in a cleaner mix.
 
Saturday 23rd July I was supposed to have a day off today to rest my ears (poor soul!) but decided instead to update the screen display for the editor. So many modifications and additions have been made recently that it was beginning to look a bit of a hotchpotch. Out came the screen editor and a complete redesign ensued. It only took a couple of hours altogether including the changes to the editor but the result was well worth it. Finally, since I seem to spend so much time with a stopwatch timing different sections, a real time clock was added, which only took about three quarters of an hour to knock up. The whole package is now a real pleasure
to work with, which is a good thing considering how many hours I spend with it!
 
Sunday 24th July The title music progressed further today and at one point there are now five different instruments on the go including a new design of swelling string chords that themselves contain eight notes! The only difficulty is that now the music sounds so full that it is beginning to slow down the composing, since each addition needs to be made very carefully to avoid disturbing everything else. With a maximum limit of three notes at any instant it gets more like a jigsaw puzzle every moment trying to add yet another needed instrument without everything falling apart!
 
Wednesday 27th July Two more connected features were added to the editor today - insert and delete. As the music gets more and more ambitious, so the sequences and track arrangements get longer and longer. Now it is possible to amend things in the middle without having to rewrite everything following the guilty bytes. Each of these additions should save a great deal of time eventually!
 
Tuesday 26th July Well, the Armalyte title music was finally completed today, and l'm sure my most regular customers (Cyberdine Systems) will be pleased with it. lt's my most expansive piece to date, and at times sounds really vast! These multinote chords seem to be turning into a speciality - sometimes there are 16 notes multiplexing at once. If you want to hear it, wait for the release of the game by Thalamus. As with all Thalamus releases, the disk version still includes the cassette loading screen and music on a separate file, so everyone gets everything!

Actually, this reminds me of another recent phenomenon - the enhanced disk version. Several times during the last few months I've bought disk versions of games, either to speed up multiload epics (Bionic Commando) or to take advantage of extra features like the high score save on Morpheus. It would be nice to have the loading screen and music to complete the 'package', but do also bear in mind that some of the POKES published for cassette versions will not work on disk.
 
Friday 29th July The loading music is now well under way. I decided to use the rhythm of the bolero - it sounds suitably military, and builds from a slow start getting bigger and bigger and bigger. The only problem might come if I build the music too quickly and find everything going at full blast before the end of the piece! Working with the SID chip is not like using an orchestra - but then again the classical composers had even more possibilities like the firing of cannons at the climax in the 1812 overture. Perhaps if I could persuade Thalamus to provide a capgun with each Armalyte cassette and instrutlions as to when to fire it for the best artistic effect?
 
Monday 1st August Yesterday and today were spent on the final piece of coding for the editor - the compactor! After my dummy run mentioncd earlier, I knew that automation was needed to squeeze together all of the sequences used for each piece, especially since these first two commissions each used 60-70 of them!

The compactor has to search through the selected music track to find which sequences it uses. If the particular sequence has been previously found and compacted then it is ignored, otherwise its data is located in memory. Then the compactor shunts this new sequence information onto the end of the other compacted data until it recognises the end ofthe sequence by the appropriate byte values. Finally it stores the new end location of the compacted data and then continues through the track (I hope you all followed that - I may be asking questions later!) It took a lot of work to perfect a bug - free version, but it now takes a fraction of a second to do what took three hours by hand. Not a bad saving as long as I do it regularly!

 Issue 43 - November 1988

Picture of Martin Holding a DiskWith a slow sweeping cut, he parted the mist, and then leapt upward, borne by invisible wings which protected his earthly form. Askaroth hurled bolts of lightning towards him, but they passed harmlessly to each side. As the blade rent the skies, the flames enveloped the upsurper, and the mists closed once more about him. They spun faster and faster, tearing the figure ever higher. And then a great scream was heard; a long wailing cry that drew no pity. The usurper spun helplessly, his blade breaking into thousands of tiny fragments which were hurled into the void. The body flapped limply as it began to fade and then return to its own dimension. The figure of Askaroth faded with it, and with a final roar of defiance, Askaroth returned to his own domain, leaving the dust king and his subjects once more in their great hail, where they hurried to relight the smoking brands and bring light once more into the kingdom. The king stood before his throne, and smiled. 'This month's diary is a bit fierce!'
 
Saturday 6th August Well, the music to be played during the Armaiyie disk level loading sequence is complete - a floating and open ended sequence that should give a few well-earned peaceful moments during the lull between levels, allowing the player to relax the trigger finger and prepare for further onslaughts to come.
The only piece left to finish now is the 'game over' tune. This needs to have immediate impact, as most people will only be hearing it during the time it takes to enter their initials in the highscore table. It also needs to be suitably stirring to give a sense of achievement.
 
Sunday 7th August During the afternoon the game over' music was finally completed, and it only remains to add my fadeout routine (written for the demo disk) to thc actual music player, for use by the customer'. It quite often sounds better to fade the music before starting the game to give a smoother transition (more about that when the coding is started tomorrow).
 
Monday 8th August The fade routine from the demo was streamlined for addition to the player today, and at the same time I decided to add the facility to trigger a fade at any speed from within a track. The most important thing for customers is to have an easy time with installation. During the mastering of Hunter's Moon we found it very tricky to time the loading music so that it faded out at the end. Afterall, you need to find the best time to start the fade, set a timer to do it, and then keep tweaking the load speed until the track just fades to silence as the music finishes. The Armalyte loading mnsic triggers its own fade automatically and then switches the music player off as soon as the track dies away. I can even do a slow fade over 30 seconds if needed!
 
Tuesday 9th August Another sound effects commission saw me in Southhampton today, together with demo discs and notepad. It really does save a lot of time in the long run to discuss exactly what is needed before you start work - with sound effects, particularly. It's strange that programmers can sometimes have little idea what they really need until you produce some sound effects - but it's amazing that they can soon find 32 modifications that must be made. This is why I like to discuss it fully first (and of course it's nothing to do with getting treated to a free lunch - thanks Neil!).
 
Wednesday 10th August After a call from Robin in Exeter with information on some design changes to Armalyte, today saw me extending the 'game over music', and also making a few tweaks to the sound effects (Whoops! - don't read yesterday's entry guys). I've arranged to travel down to Exeter next Tuesday to see some surprise additions to gameplay, and let them see how a newcomer copes with the new features. This is a vital area of game testing - how many games have you seen that are just too hard or to easy? This one has been played over months and it shows. The big problem can be that programmers become too good at their own games, and so the feedback from an outsider can be invaluable - they all certainly gave me plenty of that with Hunter's!
 
Thursday 11th August This morning the latest Armalyte disk arrived, with various improvements and the dummy music installed. The final compilation of in- game music at the requested memory location took about an hour and a half, although I still made two mistakes which took a little tracing before the title tune burst forth at the start of the game. As the tracks themselves are only a small percentage of the total music file, I even managed to squeeze the cassette loading music into the game file, and this is going to be re used as an extra 3 minute piece during the in- game demo mode (a total of 10 minutes of music - what amazing value for money!).

During the afternoon, after several phone calls and a few hacks to install a couple of new sound effects, it became a race to get the final music and sound effect files on disk in time to catch the post back to Exeter. I made the final collection with five minutes to spare. Thinking about the expert audience watching my every move in Exeter next week, I thcn replaced the microswitch on my joystick fire button. It was beginning to feel a bit 'soft', and I'll need every possible advantage I can get!
 
Friday 12th August The new sound effects commission was started and also a decision to update the sound effects module and editor to bring them up to the standard of the music editor. The sound effects produced are fine, but the editor seems so slow and lacking in refinements after working for a month with the supertweaked music editor. The coding was completed for the module itself during the afternoon, but as I'm away to the wilds of Lincoinshire again this weekend, the editor will have to wait until next week.
 
Tuesday 16th August The big day. After limbering up my joystick trigger finger during the 120 mile journey down to Exeter, my big moment arrived at 11 am. The latest version of Armalyte was ceremoniously loaded up, and with a breathless hush descending over the assembled throng, I plunged into test-pilot mode and entered the experience. And what an experience! i just couldn't stop playing all day - the new features are stunning.

Possibly my most favourite feature is that you can play in such a variety of ways, choosing different combinations of weapons each time you play, and even swapping super- weapons in real time to deal with particularly tricky elements as you play. Every time Cyberdyne see someone play, they see a different approach. I know I've produced the music and sound effects (which Cyberdyne Systems were well pleased with, I'm happy to report!) but this game is my favourite on any machine since Delta, and that's a BIG compliment. With any luck the review should be in this issue, so you won't have to take my word for it alone - BUT MISS IT AT YOUR PERIL! I've spent more time playing this than any other game this year!
 
Wednesday 17th August Various readers from different parts of the country have been writing to me care of ZZAP! and Thalamus, and your letters make very interesting reading. Many thanks for taking the trouble, guys I'm afraid that I can't reply to them all personally ( I already work a 70 hour week and write the diary!) but would like to especially thank Chris Hester for his epics (the postman needs a barrow to wheel them up the path).

Andrew Roberts sent in many ideas for Citadel (some of your thought processes must run parallel to mine, or else you 've seen my gameplan!) Rest assured that many of your ideas were already included, and the hidden doors will play an important part in the game. Your idea of collecting 'command credits' (although Morpheus used a similar scheme) is novel in that 20 will earn you an extra ship and 30 allow you to skip the present level. Hmmm. Possibilities!

A Farrell (hi, A!) has paid me a handsome compliment in wanting to purchase my Music/ SFX editors. As you've probably realised from recent diary instalments, the music and SFX editors are being used solely by me for commissions, so I'm afraid that they won't be available commercially. The demos that were sent out are sample musical pieces only, with no editor on board (for obvious reasons.Hack! Hack!).

Your query on how to achieve parallax star scrolling is really outside the scope of this diary to answer in 'depth' (unless ZZAPI want to avoid these awful puns and give me a separate technical bit!) but briefly, it's all done with characters. By defining a single star in successive positions across one character, and then filling a whole screen with it, you could have 1000 moving stars at once with very little effort. Different layers are achieved by using several characters, each having a single star which is plotted across the character 'square' at a different rate. Finally. Keith McLeman compliments me on my Hunter's Moon sound effects, and voices a topic which is mentioned by many people - the difficulty in achieving good sound effects in games.

There really is no substitute for fiddling! I probably learnt most about producing particular sounds by using one of the early keyboard synthesisers in a band - no presets, no memories, and only one note at a time. If you got a good sound you had to remember how to make it again! The latest keyboard sounds can be so complex that many musicians don't even attempt to program them themselves, but use commercially available disks to load new banks of voices.And if it's any consolation, looking at the game inlays will show you that many top programmers have their SFX produced by specialists - I'm very luck to be able to do everything myself! Just to prove the point, today I rewrote the SFX editor and added some new features to help with the latest commission - - no commercial package could ever be that flexible. Experiment with a music utility just making different sounds, and when you get to grips with how to get a particular effect, think of ways to improve it when you write your own AFX program!
 
Thursday 18th August After producing some more sound effects (the art is knowing when a sound 'fits' and then leaving it alone!), it was back to Citadel. Since the essence of the game is triggering the traps to find equipment, keys, doors and nasty surprises(!) the graphics editor was booted up to try some designs for trapdoor opening. This sequence is im portant, since it provides most of the feeling of exploration. The timing will be crucial - if the doors open too quickly there's no nail-biting fight with your pursuers before being able to grab a vital piece of equipment:
too slowly and you can escape too easily if there's something nasty being uncovered underneath!!
 
Sunday 21st August A very interesting weekend, with a suprise guest - none other than Mr Riggers himself! As you might expect, most of the time was spent playing games, and once again out came the old Atari 800! For sheer playability, some of the old games take a lot of beating, and for the record the 'faves' were A.E. (Broderbund), Outlaw/Howitzer (APX) and Bristles (First Star). On the state of the art front, my trusty ST had a treat in the form of a first glimpse of Starglider 2. What an experience! Although I did little more than the tourist bit, wandering around having a peck at everything, there seems more than enough to keep most games players happy for weeks, if not months - it certainly makes up for the lack of depth in the original, and look how many people still enjoyed that (including me!). Finally, following a perusal of the complex Trip-a- tron (the new Minter mega package) we ended up listening to the music from Armalyte whilst having a session with Colourspace on the ST.
 
Wednesday 24th August Another few days spent in the comparative comfort of the sprite editor. It's very easy to get lost in this one, as you can not only design the little beasties but also join them together, overlay them for fancy work, and even prepare animated sequences to try out ideas! After settling in for a long session, a definitive trap opening sequence was generated.

Using the multiplexor will allow me to add background details and colour to the landscapes, as well as produce the normal baddies, using spriles. In fact, since the main problem with any multiplexor is making sure that it is never possible for more that, eight sprites to attempi to occupy the same horizontal 'strip', this will help a great deal by fixing sprites in position on the landscape. If all the sprites may be moving. the alternatives are a lot of effort to ensure that the wrong combination can never occur (Armalyte) or nasty flickers and lurchers (Zynaps, for one).
 
Thursday 25tb August The return of the cit ies! At long last a major advance for the Citadel code, namely the addition of the main collision routines to detect walls and other land-based obstacles. The coding procceded smoothy, and by the end of the day I could move smoothly through the corridors with a real sense of solid matter beneath my feet (?), The only minor bug that still needs sorting out lets MONITOR get impaled on a pipe occasionally, but that shouldn't take too long to trace tomorrow.
 
Saturday 27th August I have just experienced the weirdest set of coincidences! Yesterday I managed to trace the pipe impaling bug, and then spent some time 'gametesting' with Paul Beecher, my special visitor for the afternoon. In the evening, Belinda and I noticed a pool of water forming on the kitchen floor - a pipe had started leaking!! After attempting to stop the escaping water, we spent the night with the water turned off at the mains and listening to gurgling all over the house. Then the next morning. to cap it all, before the plumber arrived a circular dropped on the mat promising to 'Add a special magic of magic to your kitchen'! Perhaps it means a swimming pool. Groan (and yawn). I shall have to be very cautious when I add the explosion routines to Citadel!
 
Tuesday 30th August After a session which saw my latest sound effects commission nearly complete, Citadel returned to the monitor for various small improvements, in preparation for the next big addition over the rest of the week. In fact after perfecting the wait detection, I spent the evening starting my very own sound effects file with a menacing clang.
 
Friday 2nd September Over the last few days the traps have started to evolve. Since that elusive feeling of 'being there' is needed, I have decided to remember the state of all traps on a particular level so that they are still the same when the player returns to the spot. This will allow strategies to develop, since some situations will call for indestructible baddies to be lured into ambushes, once the player has discovered suitable city defences to commandeer (and has not fallen into the traps in person!). To help with the feel, the initial sound effects have been installed, and can now be tweaked 'in action'. .
 
Monday 5th September The final day of this instalment, and the start of various new routines. The player's bullets landscape sprite position updating and other vital areas all involve the multiplexor to some extent, so some study in area is needed. A lot of things are beginning to come together, so I expect to have a playable demonstration completed by the end of the next instalment. Until then, keep your eyes twitching and your joystick fingers sharp (or perhaps that should be the other way round!).


Visit Night Gem's Zzap Review of Citadel

Right Arrow
Continue Reading the Diary

Download the Game Here