Bird Strike Q&A Thread

reminisce about classic bbc micro and acorn electron games here
Related forum: adventures


Post Reply
iainfm
Posts: 448
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Bird Strike Q&A Thread

Post by iainfm »

Hi,

The original author of Bird Strike, Andy Frigaard (aka @Friga on here) has said he'd be happy to answer any questions on his game. So, ask away!

Some things I've always wondered about:

Music plays a big part in the game - from the superb arrangement of the loading music to the way the level bonus worked. What gave you the idea to make music such a big part of the game?

Were any features removed, or planned ones abandoned?

How did the relationship with Firebird come about? Did you approach any other publishers?

I'm sure I have more, but that'll do for now :D

Edit: I've thought of another! The game retailed at £1.99 from memory. Out of that had to come the retailer mark up, distribution, production, the copy-protection and loader, and the author's fee (and anything else I've not thought of). Did Firebird ever tell you how many units sold, and were you happy with what you received for writing the game?
Friga
Posts: 50
Joined: Tue Apr 06, 2021 2:49 pm
Location: Adelaide
Contact:

Re: Bird Strike Q&A Thread

Post by Friga »

The music
I wanted to build an original game, but at the time I was strongly influenced by the Space Invaders style of game, Galaxians, and Gorf that were the arcade pub games of the time. I don't think I had a clear design for the game when I started out, and the music was not top of the list.

I knew that I needed to differentiate it from the standard shoot-up the enemies and progress through the levels. Distinctive graphics was one way, but I knew the BBC had good sound for the time, so I thought that music would be another. Also RAM was so limited and music took up little space.

I am not musical, but a friend of my Dad was interested in the computer and agreed to help me with music. The idea of the planes was to progress through the ages, from WW1, WW2 etc, and have the music change to suit the era, so we started with a few melody ideas. He was David Gardener, and has the first credit in the code.

I was also trying to introduce some complexity and strategy - so instead of just clearing wave after wave of enemies, the player can get higher scores by building the tune up, which took more skill.

However building up the tune, note by note, took a while for the player, so only a couple of bars could be filled per level. Hence I stuck with the first tune, "Mine eyes have seen the glory", and used that for all the 4 levels. The tune is played very slowly, to make it a reward, and I can see that we tweaked the duration of the notes to give it more feeling. I'll pull out the parameters into a BASIC script later.

The loading music, "Its a long way to Tipperary" - I'm not completely sure if I worked on that or Firebird may have done it as part of their tape loader. Maybe it was a musical pun on the interminable tape loading process!

Will write more soon on the other questions, Iain.
Friga
Posts: 50
Joined: Tue Apr 06, 2021 2:49 pm
Location: Adelaide
Contact:

Re: Bird Strike Q&A Thread

Post by Friga »

Firebird
I was a student at the time, and didn't have any connections to anyone in publishing software. I would have sent off "demo" tapes to a few companies, I guess responses to magazine adverts. Based on the Wikipedia article, Firebird were just starting up, and focusing on budget games, so my game was probably a good fit. I already had chosen the name "Bird Strike", based on a friend who had worked in testing jet engines. Maybe they liked the "bird" connection with Firebird and Tony Rainbird! In retrospect, that was one of their earliest games, as I have their earlier name, Firefly, in one of the loader programs.

I did not have any other publisher offers at the time, so I took what they offered! I think the up-front payment was about GPB 1000, and that was based on a royalty model, probably about 20 to 30p per sale. I thought that probably paid for my time and the cost of the BBC. I had met Adrian Stephens (Killer Gorilla) at university at about that time, and was aware that there was good money to be made for the right game, but I knew Bird Strike was not going to be super-popular.

After a couple of years I had a pleasant surprise that the sales had exceeded the initial royalty payment, and I got a few more quarterly cheques, getting smaller each time. This went on to about 1988-9, when Firebird was sold off & shut down. I did get some figures on sales, but can't find that now - maybe 10,000 copies in all? I probably made no more than GBP 2000 in total, and I was happy with that, but it didn't make me think this was a great career opportunity. At that time the game industry was so small it did not seem like a serious option.
Friga
Posts: 50
Joined: Tue Apr 06, 2021 2:49 pm
Location: Adelaide
Contact:

Re: Bird Strike Q&A Thread

Post by Friga »

After a few enjoyable weeks of working through all the original uncommented code, I have posted the source to Github at https://github.com/qurm/BirdStrike . It could be interesting for anyone wanting to build a similar style of game, though I doubt that the code quality will win any awards! There are lots of "interesting" hacks and I may pull out a few examples later.

Huge thanks to Iain McLaren whose enthusiasm and work to disassemble and debug the original game inspired me to start this work.

Original source folder
These are a mix of BBC BASIC Assembler source code and some binary files containing graphics, sprites and data tables. The three BASIC files are also copied and renamed as .bas in a text file format. The original files are in the BBC BASIC format with tokenised line numbers.

The source is hard to read in the original BASIC/Assembler files. There are minimal comments and typically 2 or 3 character labels. Working memory was very limited and the shortest possible files allowed for source and assembled code to both be held in RAM. The game development started using the cassette tape file system and only the later files were developed on disk. Over the period I may have lost some of the earlier source, or just been unable to keep editing it all with limited space, so there are various patches and modifications to the older routines.

Buildable source
The Build folder has a current (2021) version of the source files that can be built using Beebasm to produce a bootable disk image for use on the Beebem emulator or a real BBC Micro.

There are minor differences to the original source, mostly explained. There are extensive explanations, comments, labels, & named constants, but no fixes or changes to the code. It will build a byte-for-byte binary that is the same as the published tape version without the copy protection and tape file loader (which had music & instructions).

There are a large number of self-modifying code routines and patches applied to the earlier code that make direct reference to specific memory locations. For this reason the files need to be built and run at those memory locations.
iainfm
Posts: 448
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Bird Strike Q&A Thread

Post by iainfm »

:mrgreen: =D>

This is great, thanks very much for taking the time to do this!

For info, the original pre-publication version can be built and run from the files in the 'Original' folder (might be worth uploading a disk image as well, Andy?) by:

Copying them to a disc image
Shift-breaking to boot (needs *OPT 4,3 if you're rolling your own disc image)
Typing RUN
Pressing F8 to start the game (or *SAVE from &1400 to &3000 with an execution address of &1E00)
Last edited by iainfm on Sun Jun 20, 2021 10:13 pm, edited 1 time in total.
User avatar
MarkMoxon
Posts: 201
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Bird Strike Q&A Thread

Post by MarkMoxon »

I agree, this is great - thanks for posting those answers, Andy. It's really interesting to hear first-hand what it was like to be one of the original "bedroom coders".
Friga wrote:
Tue May 25, 2021 9:30 am
Will write more soon on the other questions, Iain.
If I haven't missed the boat, I've got a question or two, if that's OK?
  • I'd be really interested to know how it felt when you discovered that there was a community of people out there who had not only played your game back in the day and loved it, but were also pulling apart the code to update the original? :D
  • When you went back through your original code to create the git repository, how did that feel? Did the code feel instantly familiar as soon as you read it, or did it feel like someone else could have written it? And did the code surprise you in any way?
  • And finally... was there any bit of muscle memory that suddenly leapt into your mind after all those years, like remembering a star command you haven't thought of in 35 years and wondering "How on earth did I remember that?"
Just interested in how the rediscovery has felt from your perspective, really! Sounds like it’s been fun.

Mark
chrisn
Posts: 748
Joined: Sat Apr 19, 2014 12:31 pm
Location: UK
Contact:

Re: Bird Strike Q&A Thread

Post by chrisn »

Thank you Iain and Andy for all your efforts. I used to enjoy playing Bird Strike BITD, so it's great to see this original source release, as well as the bug fixed version =D>
Friga
Posts: 50
Joined: Tue Apr 06, 2021 2:49 pm
Location: Adelaide
Contact:

Re: Bird Strike Q&A Thread

Post by Friga »

It was actually Mark's Elite site that my son saw and sent me in April, and that triggered me to read more and find stardot. So thanks for that Mark!

I was kind of shocked to come across Iain's Bird Strike thread, and it was only a few weeks old at the time. Almost as shocked to find that the game had a bug :lol: It made me wonder if people had been working on these old games for 30 years, but of course Iain had just started that so the timing was a coincidence. I can see the appeal now, running directly on the hardware with all that entails is a nice intellectual challenge, but still surprised at the amount of innovative new work going on. The emulators are really impressive - such good faithfulness and they make for such a great develpment platform.

Working in my code again was barely familiar. I could recognise a few labels, but not much of the program logic - it was very terse with only a handful of comments in the whole thing. In that sense it would be the same effort to analyse and comment anyone else's game. However the 6502 opcodes mostly still made sense, and concepts like LDA(xx),Y versus LDAxx,Y came back to me straight away. It was my first language after BASIC. I appreciated again that there is a real elegance to Assembler when you can run a function in 10 to 20 bytes and the assembled source just fits in the available RAM. That basic understanding was a great foundation for other software work over the years.

Not sure about muscle memory - certainly some memory map memory! I could remember PAGE=&900, which dates me to pre-DFS! I could still remember that screen memory runs from at &3000 to &8000, and when looking at the code that adding &278 bytes gets to the first pixel of the next row in MODE 2 sprites (&280 between rows). I am still quite comfortable thinking in hex, and all those commands like *L. *R. all came back quickly.
Friga
Posts: 50
Joined: Tue Apr 06, 2021 2:49 pm
Location: Adelaide
Contact:

Re: Bird Strike Q&A Thread

Post by Friga »

Just added a few code examples on the Programming board viewtopic.php?f=54&t=22858
User avatar
MarkMoxon
Posts: 201
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Bird Strike Q&A Thread

Post by MarkMoxon »

Friga wrote:
Mon Jun 21, 2021 12:35 pm
It was actually Mark's Elite site that my son saw and sent me in April, and that triggered me to read more and find stardot. So thanks for that Mark!
Brilliant! That's great to hear. :-)

Thanks also for answering my questions. I recently stumbled across some of my old programs from my teenage years, and they felt almost completely unfamiliar, not unlike your experience. I'm glad I'm not alone! Interestingly, I also found a bunch of ARM programs from only a few years later that I remembered a lot more clearly. I've no idea why... perhaps I’m a reduced instruction set human at heart. Certainly feels like it at times. :D

I do love the whole nostalgia aspect of retro computing. Thanks for adding to that!

Mark
iainfm
Posts: 448
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Bird Strike Q&A Thread

Post by iainfm »

As a follow up to Mark's question, Andy, what did your son make of you being the creator of a computer game?

Did he know you'd had one published before you came across the 'fix' thread here? Had he played it in the past, or has he played it since you documented it?
Friga
Posts: 50
Joined: Tue Apr 06, 2021 2:49 pm
Location: Adelaide
Contact:

Re: Bird Strike Q&A Thread

Post by Friga »

Hi Iain,

Yes I had a certain amount of "street cred" with the children when they were younger, as a game developer. They have played Bird Strike on an emulator a few years ago, but it did not hold their attention long - too retro! I actually did not get the BBC setup with a monitor until this year (was in a box all through their childhood).

Indirectly I think it helped them to have a "can do" attitude to software and hardware, and helped them to build their own games and hardware projects. Now they are older there's some appreciation of, and interest in assembler, and I should do a walkthrough so they can point out all the flaws :lol: These links are a generational offshoot of BirdStrike :D, a very nice casual game...

https://www.youtube.com/watch?v=UKJmbX1 ... kthroughHD
https://spatulainteractive.itch.io/astrogolf
iainfm
Posts: 448
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Bird Strike Q&A Thread

Post by iainfm »

Friga wrote:
Wed Jun 23, 2021 1:27 pm
These links are a generational offshoot of BirdStrike :D, a very nice casual game...

https://www.youtube.com/watch?v=UKJmbX1 ... kthroughHD
https://spatulainteractive.itch.io/astrogolf
That's the sort of game I like! It reminds me of a game called Gravity (Gravity Wars?) for the RISC OS generation machines. I can't find a video of it (I may have to make one if I can), but you had two players (an orange and a blue triangle) and a number of grey circles (planets) between the two.

The aim was to use the 'gravity' of the planets to guide a missile from your player to your opponent. It was often hilarious - the missile would take a meandering course around the planets, shoot off screen for several seconds, then come back to hit the player that had fired it!

Edit - quick video here
iainfm
Posts: 448
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Bird Strike Q&A Thread

Post by iainfm »

PS Astrogolf is amazing! :D :D :D

I take it you know the developer :mrgreen: Maybe they could do that Bird Strike ios/android conversion I mentioned [-o<
Post Reply

Return to “8-bit acorn software: classic games”