Welcome Guest



Remember me

[ ]
[ ]
[ ]


Listeners: 5 (Peak: 38)
Songs: 33085, Authors: 5467
BitJam 214 - Out Now!

Search BitFellas

Search BitJam:

Search Modland:

Scene City

content search


15 An Alternative Story to Happiness Is Around The Bend

on Sun 25 Jul 2010 by menace author listemail the content item print the content item create pdf file of the content item

in ZINE powered by BitFellas > ZINE #14

comments: 0 hits: 6004

An Alternative Story to Happiness Is Around The Bend
by Navis of Andromeda Software Development

Download the pdf here

Back in August 2007, just after presenting Lifeforce to the world, I told everyone to slap me with a baseball bat if I ever went near a compiler again in order to make another megademo. This is a true story. I was fed up with over-the-top productions that drained me and the rest of the group for months. Surely, I thought, this is the end of the road for this format; a final goodbye to all 8-minute leviathans, whose making would haunt my early mornings and late nights. Also my wife said she would kill me.

"My first tests were a disaster. Absolute, total, pitiful failure"

We followed Lifeforce with several demos that were very different: in Metamorphosis, Size Antimatters, even in Rupture, there is a single unifying theme that is explored through similarly themed graphics and music. I quite liked this new direction: at least nobody would claim that the new demos are not "unified" enough, or have "mismatched design". Additionally, they need less effort to plan and make. Fans loved them. We love them too.

And so "Happiness Is Around The Bend" started in November 2009 as an experimental mini-demo for an unspecified summer party. There was still no idea about direction or a "theme". It had to be based on a single "effect", just like Rupture and Metamorphosis. It would run out of steam at around the 4 minute mark. The effect I had in my head was one that would trace the contour of every frame of a rendering of a simple scene (lets say of a rotating torus on a plane) and render that contour in an aesthetically pleasing way. All in all, a concept not that different from the one explored in "The Evolution of Vision", a demo we wrote years ago. The difference was that all of the image processing would take place on the GPU rather than on the CPU. This way I could massively increase the load and complexity of the rendering; in theory, that is. Because in practice my first tests were a disaster. Absolute total, pitiful failures. It looked like something made on an old Amstrad (no offense). There was simply nothing interesting in this effect, no matter how much I played around with the shaders and colors. Then I remembered that I had exactly the same problem 4 years ago, when I started writing Lifeforce. Lifeforce also started life as an abomination, with no clear direction or any solid effect base. And yet, somehow, as if by magic, a way out was found. This is how some demos are made, by chance.

"The parallels between the making of this demo and Lifeforce were too strong to ignore."

With "Happiness Is Around The Bend", the way out of this mess had a very short name: SSAO; or, if you like, (screen space) Ambient Occlusion, a computer graphics technique that can, potentially, make 3D rendering more realistic by darkening creases and folds. I was working on a volume rendering version for work and I was surprised by the extra boost of quality that I could achieve by adding a layer of SSAO. So, as a test, I tried my hands on the 3D graphics pipeline version in OpenGL; it worked straight away. I then knew that I had a winner in my hands. The parallels between the making of this demo and Lifeforce were too strong to ignore: we were going to make an Assembly megademo again!

I wrote the script in a very short amount of time, working on a single piece of paper for a couple of minutes just before going to bed. The way I did it was this: Rather than thinking of a story, I put down all the elements I'd like to see and then connected the dots. My list looked like this: "Escher buildings", "water", "last supper", "ants" etc. Progressively (over a period of a month when I was doing nothing but thinking of script and effects, doing no coding whatsoever) I found the unifying theme.

The demo narrates a journey through the subconscious of the ASD-universe's protagonist; it goes deeper than before; its colors are earthly, dark and unnerving, with short intermissions of more ethereal settings. Many elements seen before in various demos are here. Everybody and everything tries to run away from an unspecified danger, or "shift" its shape to deter recognition from this unknown hazard. The demo starts where Lifeforce left us (last moments of death of our avatar), but ends on an optimistic note. The question is, naturally: What IS this menace? It is implied that the menace is the universe of the demo itself.

As such, the demo is aesthetically unified (textures, palettes and shapes are very similar) in order to give the impression of a long journey through a single, large, surreal machine (as in Metamorphosis, Midnight Run and Chameleon), from which there is, or isn't, a possibility of escape. A lot is left open for the audience. I called the scenario and setting "gothic". Our first gothic demo.

Over time I realized that the earthly (introduction, toy shop, last supper) and ethereal (snowy landscape, labyrinth tank, eagle, ant chase) scenes would intertwine nicely and create an interesting dichotomy: the antithesis is not only used in palettes and textures (shades of dull brown vs. striking, reflective blues) but also in theme. The ethereal scenes complement the earthly ones, and show the same world, but from a different angle. In these scenes there is always more action, the settings are more surreal, the relative scale of things is always off by factors. The two dream-worlds merge nicely at the final scene of the demo when we rewind back to the beginning (the blue of the sea belongs to both).

"My plan was to work every day and add about 5 seconds of content every day"

Programming and modeling (and there is a lot of it) started in early January. My plan was to work every day and add about 5 seconds of content each day. That would get us nicely into early July with an extra month to spare. In reality things happened much faster. The demo was finished within less than 3 months, giving us plenty of time to fine-tune. Programming-wise, there is nothing interesting or important to report in those 3 months: it felt like a day job. I added the content with clockwork precision, working exactly 2 hours every other night, usually between 9 and 11pm. No dramas or panic. Just me, the compiler and spotify, all on auto-pilot.

Modeling was a more tedious affair: there was a lot of work to be done on Wings3d as there are nearly 100 different models on display. Most of them were fairly easy to make (buildings, some of the vehicles) while others were copied by eye from various sources (including our own demos), sometimes vertex by vertex (it is very annoying to find the perfect free model only to discover that the winding of triangles is all irreversibly wrong). As always, I only used Wings3d, which is firmly welded to my neurons. What made this experience a lot more palatable was the fact that I didn't have do any UVing (auto or manual UVing takes forever on Wings or Blender) or associate meshes with fancy textures. Indeed, not a single object has its own UV map, but rather relies on my version auto-UV generation from within the vertex shader. This is good enough since there are no pre-baked light maps (their use is now obsolete since I'm using SSAO).

"This is the perfect way to produce a megademo: Plan very early"

It was one of the easiest demos I've ever written, nothing like the hell that was Lifeforce or Dreamchild, or even Size Antimatters. I cannot attribute this change of fortunes to something specific; I may have just been lucky with ideas. It is probably a combination of more experience, better hardware (my new pc and monitors make development so much easier), and some programming trickery, that helped with compilation times. There were also far less resources to play with (less textures, less breakpoints in music).

I reached the end of the road while the music was still being developed by Leviathan and Amusic, sometime in early April. After that date, I buried the project from my memory, hoping to recover it just before the competition. This way I would try something new in demo development: by forgetting all about it and then watching it with a fresh pair of eyes, I would be able to spot all of my aesthetical mistakes. When the time came, there was nothing important that needed a remake. I found that strange! Maybe it was luck again, maybe fate. But come next time (and I now believe there will be a next megademo in the far future) I've decided that this is the perfect way to produce a megademo: plan very early, do the job like a Brussels bureaucrat, leave ample time for your eyes to cease remembering, then fine-tune.

A recipe for success?

(Happiness Is Around The Bend ranked 1st at Assembly 2010. -ed)

Please log in to post comments, if you are not registered please sign up now
Render time: 0.1391 sec, 0.0912 of that for queries. DB queries: 78. Memory Usage: 1,142kb