1. Background
When
the team was founded, BoyC already had experience with writing an
introtool, and the reincarnation of the first a.D.D.i.c.t.
(advanced Digital Dynamite intro creation
tool) was already half done. The first a.D.D.i.c.t. was written
in tmt pascal, after mekka & symposium 2002's dissappointing
17th place. Zoom already had a look at the old version in the summer
of 2002, but apart from a weird scene he made there was no cooperation
between iNQ and DD. (And that scene was never used anywhere either)
The much advanced C reincarnation of the tool had a new and more
comfortable GUI, which made it more usable.
2. Preparations
Having a half done introtool made the best shot of the team clear:
a 64k intro. The decision was not hard to make, although
it raised new expectations on the code side: namely some sound generating
package, which was written by Gargaj, and of course the rapid development
of the introtool to a usable level.
3. The Concept
The
size of the project was determined by BoyC, because he was the one
who had any idea of the limitations of the tool. The decision fell
to try and show as much of the tools capabilities as possible,
thus creating a product with much varied content. The content was
arranged intro three main parts, a non figurative abstract design
part, a 3d flyby part, and a fast, dynamic tech part. Later came
the ideas of having the group's logo before the show, and the credits
on the
very end, mostly to provide a big surprise to the hungarian sceners
on the party. There were many ideas, one of them was from the beginning
on a gear scene, which later took form in a rebuild of the machine
from the "13 ghosts" movie. The first ideas for the end
of the third part were a museum corridor, with screenshots from
the intro as paintings on the wall, and the Conspiracy logo in a
vitrin at the end of it. Later in a conversation about Planet Potion,
there was talk about the reaction of the polish sceners at m&s2k2,
how they were waving the polish flag. This gave the idea to have
the hungarian flag as the last scene, before the credits, aiming
more to surprise the hungarian attenders of the party. This, of
course was not accepted to be done in a poor sine-wave like style,
as it would have ruined the feeling of monumentality after the three
parts of the intro. Thus the only real effect in the intro was chosen
to be written: realtime cloth simulation.
4. The Flag
The
Flag effect was the first to be ready, although by the most members
it was welcome by the most scepticism. BoyC, writer of the effect
is not too good in physics, so they really had a point. Writing
of the effect took only an afternoon, which resulted in an executable
with an ini file, where one could set every environment variable
of the flag. The resolution of the grid, gravity, wind, etc. Zoom
spent a whole weekend playing with it, until he finally came up
with a somewhat enjoyable configuration. Seeing the waving flag
in just this short time gave new power to the team, and the production
went on.
5. Music
The main concept behind the sound-generation package
was a basic sample generator which is able to create a variety of
musical samples, from which the musician is able to create a tracked
module. After that, by removing the samples, the coders could create
a very small executable, containing only the patterns and module-data,
the synthesizer, and the synthesizer parameters, saved by the tool.
The sample generator tool wasn't really complicated, it used a very
trivial way of generating samples: taking some basic waveforms (such
as sine or square), filtering them (a 12db one-pole one-zero
state-variable filter and a resonant lowpass was used), and applying
a simple distortion. Most of the parameters were either alterable by
hand, or automatically interpolatable by an envelope generator.
The sample's frequency was also adjustable using a small sequencer
tool, which was able to do little melodies or basslines with a small
16-note pattern, using a separate envelope for the notes.
6. Texture Generation
The
texture generator part of the tool is basically a 1:1 implementation
of the Aardbei (www.aardbei.com)
texture generator, done by reverse engineering the fileformat, rewriting
the effects based on Ile's Hugi #18 article (www.hugi.de),
and inserting it's gui into the a.D.D.i.c.t. If you're looking for
tips on texture generation, we recommend you to read Ile's article,
combined with the sources included in the Hugi bonus pack it has
everything one needs to write a good first texture generator.
7. Modelling
The modeller tool was basically written
to easily support a custom _small_ 3D fileformat. There are
no vertices or polygons stored in the format, only basic generator
data to generate primitives, and their modelview matrix. Basic
primitives were only topped by displacement maps. As Zoom
became familiar with
the tool, the quality of his scenes started to improve. Many
early scenes were thrown out, because of two things: they
didn't fit the concept, or they were not good enough. The
first adaptation of the gear scene suffered too, when the
csg functions had to be thrown out of the introengine, mostly
because they were large, buggy and slow. Mesh smoothing had
to be thrown out too. There were three concept videos for
the last part, each from movies: The first one was one of
the beginnings of the
famous Outer Limits series, this had a dynamic hyperjump style
start which was only waiting to be done in the intro. The
second one was the gear scene from 13 ghosts, and the third
one was a cut from a part of the Stargate-SG1 series, featuring
some replicators, anarchid like robots made from blocks. This
last concept was skipped because of the lacking abilities
of the keyframer to easily animate such characters. The first
scene to be ready was the landscape with the flagpole. The
very first screenshot amazed the group very much, it looked
like if it was
some kind of concept art made by Zoom in photoshop... And
when it turned out that it was already a screenshot from the
tool, we couldn't believe it. This happened later too once,
with the first picture of the planet. It really looked like
if it was some scanned illustration of the Artreides home
world from a Dune book. 2nd scene to be done was the pipe
corridor, which immediately took Gargaj's attention, and as
soon as the keyframer was that far, he started making wild
camera movements.
|
|
Compositing |
|
The plain textured scene. |
|
Simple distance fog added. |
|
Clouds added. |
|
Hovercars added. |
|
A transparent layer with a subtractive
blend to create the illusion of reflections. |
|
Final composite with post effects. |
|
8. Putting it all together
The
keyframer was a quick hack as time was getting short, and the group
needed to have an indication of the size, so BoyC started working
on the intro editor timeliner tool asap. It was working by the second
meeting, two weeks before the party, but a crucial element had to
be written on the meet: the render to texture event for the timeliner,
which allowed the usage of feedback , and Mrc's 2d grid effects.
Also the saving of the keyframes in the editor format was done at
the meeting, and as soon as that was done, the timing could start.
Last thing to be written was the moving of the
gears, as the keyframer couldn't handle such stuff yet. Some extra
last small fixes, and the party version was ready.
Some statistics:
The final version contains 131294 triangles and 82441
vertices in 490 objects, 22 of which are distorted
in some ways, in 47 scenes (47 scenes in the editor,
some of these were used together, rendered in multiple passes).
The largest scene is the gear scene, containing 36508
polygons. For timing and synching, 416 events were
used, 26 of which were used to render to a texture,
these 26 events covering 75% of the timeline (Thus
75% of the rendered scenes was postprocessed with some 2d
filter). For the visual improvement of the objects, 53
textures were generated, each with 4 layers (atg stye, this
sums up to 39.75 megabytes of raw image data), but
only 100 of these 212 layers were used as materials,
the rest was used as buffer during the texture generation
process. All the graphical data (the scenes, the textures,
the animation and the timing events) are contained in a 57035
byte long projectfile, which occupies ~22k in the final
compressed executable. 41 samples were generated for
the music, with the total length of 4165666 bytes.
The music itself is 9:14 long, which would take about
100 megabytes in a 44.1khz 16bit stereo wave file.
The music, the player and the sample generator take 18k
in the executable (stub included), and the engine to do the
rest (generate textures and 3d geometry, render, animate,
handle the window, and play back the project file) is 24k
with the flag effect included. |
|