*******************************************************************************
*                                                                             *
*   Demo:   Small Effects      Type:    Amstrad CPC Emulator DSK File         *
*   Author: Odiesoft           Webpage: http://www.odiesoft.de                *
*   Size:   1 * 194816 Bytes   Date:    25. February 2004                     *
*   File:   Odiesoft Shorts - Small Effects (1989).dsk                        *
*                                                                             *
*******************************************************************************

Title: Small Effects
Year:  1989 - 1993
  

On this page I have collected a number of effects and small programs that I have
created over several years. Actually most of them were created while I was still
learning how to program the CPC - so don't expect too much of these effects.

 
Jupiter and Moon Animation

This intro was created after I had discovered how to use a mask to paint only
specific parts of a rectangular sprite on the screen. In this intro I actually
created a mask that specified not which parts of the sprite shouldn't be drawn,
but rather these parts that had to be drawn (i.e. the round body of the Moon/
Jupiter graphics).

In this intro I wanted to display a rotating planet. The rotation was
accomplished by scrolling a rectangular graphics horizontally across the screen
and having the mask display only a circular part of this rectangle. The first
graphics I painted was a set of horizontal color bars that eventually looked
like the Planet Jupiter.
 
Then I created a graphics that was supposed to look like the Moon with various
craters on its surface. But there the limits of this routine became obvious.
Since there is no real rotation but just a plain scrolling the Moon graphics
exposed the effect and destroyed the impression of a rotating planet.


Zooming Starship

I was working on a fast zooming routine for some time since I intended to create
a game with real 3D graphics not just with line graphics. I figured that a good
zooming routine was essential for believable and fast 3D graphics.

This zooming Starship is actually just a fake. It does use a zooming routine,
but first of all this routine just doubles the number of pixles or divides them
by half. Secondly the zooming animation is pre-calculated, so that it looked
faster.

The Starship was taken from the title screen of a CRL game (I don't remember the
title, though) since I wasn't very good at painting graphics.

 
Star Animation

The idea for the star animation was borrowed from the Amiga. I had seen a demo
that painted various forms with lines of stars instead of regular vector dots
and lines. These stars flickered on and off and by doing so morphing into
different forms. I wanted to find out what this looked like on the CPC and I
created a mixture of Assembler and Basic to give it a try.

The result is a little slow, but looks nice. I thought I could use it for a demo
later, but when my abilities improved I had better things to do and created
different and better effects...

 
Planet with a rising sun
 
I've always tried to simulate natural phenomena on my CPC. This rising of the
sun animation is an early example of this quest. I wanted to create a believable
light and shadow effect with spheres in space: that is, the sun comes out behind
the planet and starts to illuminate the planets' surface.

I figured out a way so that I could change the color of a circle segment on the
screen. I've created several different hues for different phases of the
illumination process. The program uses these hue information to subsequently
illuminate different circular parts of the planet to create the feeling that the
light of the sun reflects off the planets' surface.

The movement of the sun and the illumination of the planet ran on an interrupt,
so that the main processing time was still unused and available for other
programs. Some time before I created this animation I had written a routine that
was able to zoom any rectangular sprite whatsoever to almost any size.

I used this routine to create a space ship that was coming from the planet
flying away into deep space. But all in all I was dissatisfied with the result.
The circle segment that illuminated the planet didn't change its radius. It
should become an ellipse the farther the sun moved, to give the illumination a
three-dimensional look. The way I had created it, it just looked like a ring of
color would move across the planet.

The zooming of the space ship looked okay, but I didn't bother to remove the
artifacts it left on the screen while getting bigger. Now it looks like it
leaves a trail behind, but that isn't intended.

 
Water Effects

Believable water effects are also a favorite of mine. I've tried several
different ways to create a real water effect. I think the best water effect I
ever did was the Wishing Well. Before that I had tried several others. Here's a
selection of them...

One of these effects was meant to look like moonlight reflecting on the waves of
the sea. Basically it's just some white dots that spread out to short,
horizontal lines and then go back to the dot again and disappear. It's a simple
idea, that makes quite an impression. Unfortunately I wasn't very good at
creating a good random seed and thus the waves always concentrate on a few parts
of the screen.
 
With another water effect I tried to copy the end-credits of Don Bluth ("An
American Tail") movies. In this ending credits a feather is slowly falling down
the screen and lands on the surface of a puddle of water. Then the words "A Don
Bluth Film" appears in the subsequent waves.

I tried to do a similar thing with my Odiesoft logo, but while if tried to
figure out how to do this effect I had the idea to start with a simpler effect.
So I painted my logo on a red lit water surface and then had horizontal waves go
through it, so that parts of it are distorted to the left and right. This wasn't
really what I was trying to do, but I figured out that the real three-
dimensional waves from the original ending credits were too hard for me to
program.

 
Storm waves

Some years later I tried to do a similar thing again. This time I knew a lot
more about programming the CPC and this time I wasn't satisfied with just having
a few waves go through my logo. This time I wanted my Odiesoft logo appear on
the surface of a stormy sea.

I wanted to pre-calculate the waves and then use the remaining processing time
to mirror my logo on these waves. But after I had created several different
version of these waves I realized that I wasn't happy with calculated waves -
they just looked too artificial. I should have painted them, but that was too
much work. So I didn't continue this idea.

Even though these don't really have much in common with the other types of waved
I tried to create, I still thought they are worth mentioning. One set of these
color bars is actually performing a waveform and also has the right color. The
other set are just some color bars rotating around a big static bar in the
center of the screen.

Compared with other color bars these two demos weren't much indeed, but they
were my first real color bars with correct timing and no flicker.


*******************************************************************************
*                                                                             *
* 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!                         *
*                                                                             *
*******************************************************************************

