*******************************************************************************
*                                                                             *
*   Game:   Helicopter Game    Type:    Amstrad CPC Emulator DSK File         *
*   Author: Odiesoft           Webpage: http://www.odiesoft.de                *
*   Size:   1 * 194816 Bytes   Date:    27. January 2003                      *
*   File:   Odiesoft Games - Helicopter Game (1991).dsk                       *
*                                                                             *
*******************************************************************************

Title: Helicopter Game
Year:  1991

In 1991 I was often playing the Broderbund Amiga Game "Wings of Fury". In this
game you were playing the pilot of a Hellcat, a 1944 World War II airplane, in
the Pacific and had to destroy Japanese military installations. It was a
vertical scrolling shoot’em up game that obviously also was ported to the
Amstrad CPC (as I’ve just found out while looking for more information on that
game in the Internet).

You had to shoot Japanese airplanes either on the ground or if you weren’t fast
enough and the planes were able to take off you had to shoot them out of the
sky. It was always quite an achievement if you have been able to follow a
Japanese aircraft for some time, do all the same turns and finally been able to
shoot it often enough so that it fell out of the sky.

You also had to destroy some bunkers and other installations on the ground with
bombs or your machine gun. Often if you started shooting the buildings on the
ground little men came running out of it and you were able to shoot these down
before they entered another building. I admit this sounds very brutal, but on
the other hand it was plain fun to see those little animated somethings fall
down when they were being hit. After finishing your job you could cruise around
to take a look at the devastation you’ve left on the ground.

I didn’t knew that Broderbund had produced a CPC conversion of that game, so I
thought about creating a similar game myself. But instead of planes I wanted to
use a helicopter as the weapon of choice. I figured that you could do even more
damage and have more fun with a helicopter. I wanted to create a mixture of this
game and the helicopter fighting game Silkworm (which I also liked a lot,
especially due to the two player mode!) and I wanted to use real hardware
scrolling so that the whole screen could be used for the action and not just a
small part of it, like in so many other games.

I started by drawing a plane and creating the sprite routine to display the
plane on the screen. I’ve created special sprite routines, so that the plane was
either in front of everything else on the screen or behind it.

Afterwards I drew a fighting helicopter. I didn’t use any specific helicopter as
a exemplar to my helicopter, I just drew something out of my mind. I remember
that painting the various images of the helicopter rotating to take a turn were
really hard. But I was really pleased with the result of that. I wrote a small
program in which I was able to move the helicopter around on the screen and then
I also added the helicopter image to the sprite routine that was able to display
the helicopter before or behind the other stuff on the screen.

Then I created two more things for the game, before I got somehow stuck (or
disinterested, I don’t remember which reason brought this project to an early
end): I’ve created the hardware scrolling routine to see if the CPC was able to
do the high speed scrolling I had in mind. In this routine the first real
problem began to surface: the painting of the new graphics on the left or the
right border of the screen was too slow, so that you were often able to see some
of the stuff that’s been scrolled out of the screen entering on the opposite side.

The other thing I tried out was the movement of the enemy soldiers on the
ground. For this I’ve created a small BASIC program that animated 10 soldiers
and I was able to shoot those soldiers by pressing the Space bar. This created
some (invisible) bullets on the screen that hit random spots on the ground. If
anybody was walking on that very spot on the ground he was being shot and fell
down. You were able to shoot the soldiers from the front or from behind and they
would fall differently.

In the original version of that BASIC program a screen with a small forest was
being loaded first, so that the soldiers were sometimes covered by the trees.
But during the porting of the data from my Amstrad CPC 3" discs to the PC this
image got lost.

Also I had an additional BASIC program in which I animated a soldier being
thrown through the air as a result of an explosion in front or behind him. But
this routine also got lost.

Probably the reason for abandoning this project was the hardware scrolling
routine. Since the mere painting of the new background elements on the screen
wasn’t fast enough to be done in a single frame I probably thought that it would
be impossible to scroll the screen, paint the helicopter and all the enemy
planes, helicopters and soldiers.

With what I know today I could have easily improved the performance of my sprite
and scrolling routines. I still think this would have made a nice game on the
CPC. But alas, after starting to study I just didn’t have that much time for
programming anymore...

*******************************************************************************
*                                                                             *
* This program can be distributed freely and without the need of a written    *
* of a written permission by Odiesoft, as long as it is distributed free of   *
* charge!                                                                     *
*                                                                             *
* If you had to pay for this, you've been ripped off!                         *
*                                                                             *
*******************************************************************************

