Technology and development

The technology that moves genereAvventura: The Terrific Menace of the Invaders from Audiogalaxy (GA:TTMOTIFA)
is Flash-based. Our intention to publish our game on the web reduced our field of choice between Flash and Shockwave.
Since Flash is more widespread than Shockwave it was a very easy decision. Develop a gaming engine from scratch and everything needed to make the game work has been a long and complex operation that required pieces of knowledge which we acquired during the development.
There follows an interesting behind the scenes of the development which may be useful to those who want to start a similar project. Have a nice read.

What you see

The graphic development has
followed the most classical road.
First of all, the work of art direction
and designing has been made
with pen and paper, working with the
sketches of the main characters,
of the rooms and of the items.
Once finished with that part, everything
had to be scanned for further editing.
Here we used different software
and methods (and different versions
of the software, since the development
lasted more than 3 years),
according to the final result we needed.
At the end of this long process,
everything was included in Flash
and made so it could be used
by the gaming engine.
Some of the software we used includes,
besides the aforementioned Flash,
FreeHand, PhotoShop,
Fireworks and Painter.

A matter of style

While trying not to exaggerate with
hubris, we tried to recreate a style that
had a certain similarity to
Day of the Tentacle, due to the
deformed perspectives and the technical
licenses that can be taken when realism
isn't the first priority.
Our aim was to create images that
were coloured and funny, coherent
from zone to zone and that wouldn't
confuse the player with too many
details, but not too bare.
In addition, everything would have to
be light to download because the
distribution media, the internet, is still
slow compared to other physical means.

The Scenery

After an initial approach in which we
imported the scans in FreeHand to
reproduce them in vector graphics,
we cut a lot of development time
converting all the work into Flash.
FreeHand has been used again to
quickly draw complex vector shapes,
an area in which Flash is still lacking.
Every single drawing, then, has been
scanned, imported into Flash
and edited directly onto the stage,
ready to appear in the game.

In order to keep more easily a stylistic
continuity among the different zones
we created a small color palette
so that we could define some basic
hues to use during the development,
just like the way it was done with
the limited palettes of the old computers
(the infamous 16 colours of the C64).
Our basic hues were then lightened
and darkened to make
light and shadows on objects.
In the end, our palette "only" had 85 hues.

Before the new rendering engine of
Flash 8 was introduced, all the rooms
were broken into pieces, converted
in PNG and then rebuilt again to
optimize the performance, but then
the files weighed too much.
Fortunately for us (we could say that
Flash 8 was made just for us!)
the new rendering engine allowed
us to keep all the files as vector
pictures, keeping the low weight of the
files but with the same performance of
the raster version.

The Characters

After we finished making all the
locations in the adventure,
it was time to populate them.
Even in this case we did the paper-digital passage,
but only for the main characters and
some secondary characters.
So, after many design and expression
studies, it was time to open Flash
again and confront our very first real
problem : animation!
Trying to learn the tricks from
traditional animation movies,
thanks to the Flash tools and some
improvised motion capture sessions,
where each of us impersonated the
action, we could bring some life into everyone.
The final result is a mixture between
traditional animation and Flash
animation, with tweenings and
rotations, typical of these productions.

What lies beneath

The engine that operates the game
has been written from scratch
for a very simple reason:
no matter how powerful and flexible
the traditional engines are, they
forced us to think according to their
own schemes and presented more or
less annoying "limitations".
By choosing to build one just for
this game we overcame these problems, allowing a development centered on our needs which let us reach the desired results.
The development started on Flash 6
which, thanks to the introduction of
a stronger and better version of
the ActionScript language,
was the ideal environment even
for the classical coders,
because it brought practical
and quick tools to be productive
in a short time.

Code! Code everywhere!

The first attempts to build a complete
engine were very disappointing, mostly
due to the inexperience in the Flash
environment, rather than the intrinsic
difficulty of Actionscript (the statements
are almost identical to javascript's).
The character could move, the inventory
and the locations were managed but
the interface was very lacking and,
technically, the code we had written
wasn't very reusable.
Also it was highly inefficient.

After a pause, when the project was
reopened we rewrote everything from
scratch, this time using the
object-oriented programming model.
Having gathered experience in
the developing environment,
the new version had been designed
to be more modular.
Also we developed some external
tools to generate the .as files
to include and compile, including
information on rooms, items and characters.

When the engine was almost ready
we had to upgrade to Flash 7,
which wasn't completely painless
due to more restrictive syntax in the codeing (the parser was now
case-sensitive). After this, the switch to
Flash 8 brought other "problems" due to the new optimization to the managing
of the graphics through scripting. After we solved these problems,
the engine was done.
Concerning Flash 9, it's enough
for us to know now that it works.