pouët.net

Revolutionary Beehaviour by Five Finger Punch & Insane [web]

General:
This demo is for Amiga 500 OCS 512Kb chipmem + 512Kb slowmem.
It might work on other configurations, but that is not tested
nor supported :-)

The demo is crunched with Cranker and music is played using
The Player in vblank mode.
Thank you for those, Bifat and Photon!

Music sync is not done with E8x, but with a custom sync routine.
I use Milkytracker to convert Myggs tunes to 6CHN and add sync
data to channel 5. I then save the new module and run a script
that extracts just the sync data. The original module is used
for playback.

There are two modules, one for the intro and one for the
rest of the demo. Most of the graphics are packed using Imodiums
packer Punify.

Progressbar:
Just a custom modified decranker to show the Unity logo above
the progressbar.

Logo:
Five bitplanes logo. I use a xorshift PRNG to add an offset to
diwstrt and hw scroll each frame to simulate shaking. The
explosion is about 500 particles using 16.16 fixed point. Start
positions and initial velocites for the explosion are also
generated using xorshift.

Intro:
Dual playfield, three bitplanes for the flowers, three bitplanes
for the flyswatter/beeswatter(?) and the bees are sprites in
attached mode. 17 frames are used for the bees and four frames
for the flyswatter.

Sphere:
Four bitplanes 256x256 morphing dot sphere. About 300 points
rotated in real time around all three axis. Colors are based on
distance to center.

Demo name logo:
A five bitplane logo. I use a mask in BLTAFWM/BLTALWM to clear
part of the logo every frame.

Game logo:
An animated 16 color sprite drawing a path and then blitting
parts of a five bitplanes logo at the appropriate moment. And
then a storm of sprite bees. The path is pregenerated and delta
coded using 4 bits per coordinate pair.

Game level:
All data is pregenerated on the PC so this could be seen as an
animation player. Mostly a four bitplane bobroutine, some
multiplexed sprites and some color changes at the right places.
The original idea was to calculate the physics on the Amiga,
but I ran out of time. Maybe next time :-)

Forest tunnel:
All circles are drawn using Bresenhams circle algorithm.
The large circles are drawn in realtime. Only the upper part
of each circle is drawn, the lower part is mirrored using
negative modulo. The small circles are prerendered and then
blitted using copper controlled blitter. The small circles are
not mirrored, so they can move more freely in the Y direction.
The background uses two bitplanes and the circles uses two
bitplanes. Only one of the four bitplanes should be mirrored
so I use the copper to set the correct lines for one of the
bitplanes. The bee is sprites in attached mode with 16 different
sizes.

Spiral:
Two bitplanes are used for the dots and one bitplane for
the vector letters. The screen is cleared using the cpu while
the blitter is filling the letters. The tree is made of sprites.
The copper is used to set the correct color for each letter
based on its rotation.

Beehive:
Three silhouettes are shown, drawn using one bset per raster
line. Then a five bitplane logo and 16 color sprites in attached
mode. The door zoom is done with linedraw and blitter filling.

Honeycomb tunnel:
A tunnel of honeycombs in three bitplanes and a three frame
animation in one bitplane. It is essentially a bobroutine.
I predraw all sizes and colors of honeycombs and then blit them
to the appropriate position. The batman style sound effect
graphics are sprites.

Torus:
A torus consisting of three moebius strips, using two bitplanes.
Backface culling is used on the polygons making up the torus,
to calculate line colors. Each polygon is split into triangles
for the calculations. The color for each line is chosen based
on the average result for each polygon that the current line is
a part of. The background honeycombs are in one bitplane. The
melting honeycomb is done by copying a few vertical stripes
to a lower position each frame.

Credits:
The bee is the same bee as in the game level, but this time it
is a sprite. The rest is a copper chunky effect, but instead of
the normal bitmap overlay that everyone is using I used a bunch
of rotating lines. The lines are predrawn into a single bitplane
and then scrolled to give the illusion of movement. The
honeycombs and small letters are sprites and the large letters
are a one bitplane bitmap.

Beecrash:
Fake zooming of a 256x256 4 bpl image using no prescaled images.
I divide the screen into 4 quadrants, create an array
from 0-127 and randomize it using Fisher-Yates. Then I do an
insertion sort from the array onto the screen. I use the blitter
for the horizontal zoom and copper modulo for the vertical zoom.
Flash the screen and finally display the full bitmap. Then 
switch to a bitmap without the bee by copying individual lines.
And finally change to polygons looking like glass shards and
let them fall while rotating.

Dots and lines:
I saw a presentation at Mandagsklubben by Zworp about using
distance calculations in his PC demo, and decided to have a
go at it on the Amiga 500. The lines are drawn using copper
controlled blitter and get their color and pattern based
on the distance between the start and endpoint. The balls
are also drawn using copper controlled blitter. Four bitplanes
are used, shorter lines are drawn to more bitplanes than longer
lines. Balls are always drawn in all four bitplanes. The lines
are cleared by drawing them again with empty line pattern.
The line pattern is cleared by blitting directly into the
copperlist. I do not use any spatial data structure or sorting
but just do a brute force check to find any ball close enough
to each ball and draw a line between them.
There are four different types of behaviours used:
detection - just notice that the other ball is there.
repulsion - try to push the balls away from each other.
attraction1 - let the balls follow each other.
attraction2 - let the balls follow each other agressively.
I change the type of behaviour at regular intervals.
The messages are made of sprites in attached or detached mode.


Morbid/Five Finger Punch
@hypp74