Technology and developement

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 spread 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.
Follows an interesting behind the scenes of the development which could be useful to who wants to start a similar project.
Have a nice read.

What you see

The graphics developement has
followed the most classical of the roads.
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 this part everything
has been scanned for further editing.
Here we used different software
and methods (and different versions
of the software, since the developement lasted more than 3 years),
according to the final result needed.
At the end of this long process,
everything was included in Flash
and made it 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
licences 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
have confused the player with too many
details, but not even bare.
In addition, everything would have to
be light to download because the
distribution media, 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 vectorial graphics,
we cut a lot developement times
bringing all the work in Flash.
FreeHand has been used again to
quickly draw complex vector shapes,
a sector in which Flash is still lacking.
Every single drawing, then, has been
scanned, imported in Flash and edited
directly on the stage, ready to appear
in the game.

To keep more easily a stylistic continuity
among the different zones we created
a small color palette so we could define
some basic hues to use during the
developement, 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 have been then
lightened and darkened to make
light and shadows on objects.
At the end, our final palette has
got "only" 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 performances, 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 front our very first real
problem : animation!
Trying to learn the tricks from
traditional animation movie,
thanks to the Flash tools and some
improvised motion capture sessions,
where each of us impersonated the
action, we could bring some life in 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 moves 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 developement centered on our needs which made us reach the desired results.
The developement 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 pass to Flash 7,
which wasn't completely painless
due to more restrictivity in the code
(the parser was now case-sensitive).
After this, the switch to Flash 8 brough
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 that it works.