Showing posts with label demomaking. Show all posts
Showing posts with label demomaking. Show all posts

Monday, 7 June 2010

Demo for Euskal finished!

So let's see what is in there:

  • One day demo, I took a day off work to do some tidying up in my house but ended up doing the demo instead. It is the fastest production since EON.
  • Based on an idea I had about geometry generation through subtractive synthesis: shapes are generated through CSG "boolean intersection/difference". I wanted to do this since watching Medium ages ago.
  • No loaded textures, all (very simple) textures that you see are generated on the fragment shader.
  • Only a couple of meshes loaded and used as "noise" rather than geometry.
  • Hard camera cuts, hard visuals, not a very pretty sight.
  • This demo is not for everyone. It will either come first or last in the compo. I personally rank it very highly amongst our demos so far. I love this demo.
  • Pouet thumb prediction for first 6 months: 110 thumbs up, 25 thumbs down. Oh and 3 cdcs. You know you want to ! :-)
We still need some music for it though... but we'll get there shortly after music for "Iconoclast" finishes.

Tuesday, 25 May 2010

Timing in demos

In my previous post, I talked about aligning visuals and music by introducing "delay/speed-up taps" for DeltaT.

It was suggested that an even better solution would be to make all effects as functions of an input value f going from 0 to 1 and then scaling that accordingly. This is actually similar to what I am proposing. But whether it works or not depends on the granularity (and number) of your effects.

A "part" is a long segment (1 minute+) that consists of very many effects. I find it much easier to tune the timing of a part than of the many effects within the part. What I do now is this:

Record the demo as an .avi, then play it back (with the music) inside my engine. This is much faster to load and "scratch" (forwards/backwards). The delay/speed-up taps can then be added and their exact timing copied as is into the original real-time demo.

Wednesday, 19 May 2010

Visual/Music synchronization

Ok here is a good idea I had that will make my (and hopefully your) life easier:

Lets assume that your visuals are ahead of the music (in terms of production time). How do you make sure that they fit perfectly? I'm not talking about the easy case of a "beat every other second with a screen flash" but of longer segments that may need to fuse and they are off by a couple of seconds or more.

This is what we do: lets say that the music is slower than the visuals. You introduce a small "delay" factor that is a function of time. So:

DeltaT*=1.0-0.1*sin(max (0,min (1, (time-20)*0.1)));

this will slow down time for the visuals by the integral of this function all over 10 seconds. It is not noticeable. (Yeah I know, it is not really all that framerate independent, maybe you have a better way of doing so?).


Once you digest this piece of information I will continue with the rest.

Friday, 14 May 2010

F-F-F-F-F-F-F-F

Over the past 4 days a dark cloud is hanging above me. The new soundtrack for "iconoclash" (now almost breaking the 4 minute threshold) is my perpetual companion: the music plays in my head wherever I go. Its sorrowful melodies blend inside me when I cycle in the morning, when I shower, when I sleep.

But I'm in no emotional tension anymore. My graphics work is in very good hands. Bring on the rest!

Monday, 10 May 2010

Gentlemen; allelujah!

Finally, after months of silence we got a draft of the first 2 minutes of the music for Iconoclash, by courtesy of Leviathan. As I understand it they'll work like that: Leviathan will set the rhythm/chords, then Amusic will add the melody/orchestration. When the first draft is made then they'll add live instruments/vocals/whatever is needed.

The piece so far is very rough, as expected at this phase, but its mood is spot on. I wonder where they'll take it next!

Tuesday, 20 April 2010

Alea iacta est

Looks like there is going to be a demo for Euskal 2010 as well as Assembly 2010. Yesterday I was experimenting with different ideas and found something that can evolve into a small, solid demo.

Euskal is a great party. If nothing else you get to visit the beautiful country of Spain and eat some of its delicacies (jamon ibericon - yam!). I'll keep you posted on our progress on project "euskal 2010" and hope to see you there!

Friday, 16 April 2010

2007 and now

I was asked yesterday to explain in which way my new demo "engine" is better to work with than the previous one (the one used in, for example, Lifeforce). I have given some technical details in random posts in the past, but today I'm going to list all of the reasons that make demo-making a far more pleasant experience.

  • On a personal level I'm a happier person than I was in 2007. I have more free time ( it is easier now that my daughter is 3 years old, back then she was a newborn) and I'm completely satisfied with my job: my commuting time is less than 20 minutes door to door compared to almost one hour.
  • My colleagues in ASD (Amoivikos, iM and Ch3) have more free time. I believe Amusic and Leviathan too.
  • As expected, we have accumulated even more experience with demo-making: since Lifeforce we've made some alternative productions (such as Metamorphosis and Rupture) which tested the waters with the scene. The fact that the scene liked our direction gave us an extra boost of confidence.
  • Better equipment and hardware: I wrote all of lifeforce on a crappy 17 inches CRT monitor using a geForce 5600. I had to see things on a 400x300 pixels window. Now I have 2x 24'' monitors and a pair of geForces and ATIs. I run the demo in full resolution.
  • On a technical level: big change is moving from Cg to GLSL. It made my life so much easier as I have direct access to the OpenGL state machine.
  • Use of .obj files instead of .3ds. Now I don't have to ever run 3D studio again! textures and shaders are hardcoded in code rather than from inside the .3ds file: much faster.
  • Use of shader model 3.0 instead of 2.0: I use loops and conditionals to put a lot of the demo logic inside a big shader file. Rather than having one different shader per material I now have one shader for many materials that share some functionality.
  • Use of flexible buffer objects: a big step forward from using the inflexible pbuffers (in 2007).
  • Use of deferred shading to achieve effects such as SSAO. This means that I don't have to do any pre-baked lightmap ever again. So no more horrible Blender. All I need for modelling is Wings3D.
  • All this results in a much smaller package: Lifeforce had 12 distinct parts which were coded in separate .cpp files. Each file was around 3000 lines. So that was around 40 seconds per part and 75 lines of code per second. Ideally I want to maximize seconds per part (in order to make the demo more "tight", to rely on less camera/mood changes and things that can go wrong with transitions) and also minimize lines of code per second. Iconoclash stands, at the moment, at 120 seconds per part and 30 lines of code per second.
  • Compilation times for the project are also down to a couple of seconds (on my new and more powerful computer). I also have a way to reload shaders on the fly, so I can change shader code - press space - change again all in realtime without the need to recompile and run. It used to be the case that I had to re-ran the application once every 20-30 seconds. Now it may take 10 minutes before I have to make a change that requires a recompilation.
So that's what we've been doing over the past 3 years: making sure that producing demos stays a more and more pleasant experience.

Thursday, 15 April 2010

News and future

I have been busy with work recently and also had a rough cold after coming back from my holidays, so I didn't do much work on "Iconoclash". It gave me some time to think of the next steps:

  • At the moment all of the demo has been finished - but where is the music? Apparently our musicians are working on it. I can then work on the "emotional synch" and fine tune details.
  • Iconoclash on ATIs ? yes. And it goes like stink on my 4850. I spent a lot of time optimizing this and that, and it shows.
  • Is there room for a *second* demo for this summer? I have been invited to visit Euskal 2010. That could be an idea, *if* I think of something small and interesting to make for the party. I'll keep you posted.
  • For the first time I can think of at least 3-4 demos to be made *after* iconoclash. It is very easy with my new platform. Ironically, this new platform is far more minimalistic than the previous one (lifeforce), but somehow allows me to do more with less work. Will these demos materialize? Time will tell.
Now I need to think of a good idea for a good summer demo.

Friday, 9 April 2010

Breakpoint 2010 comments

Guess what my favourite thing is just after easter: to dissect all the recent productions from Breakpoint and the Gathering and see what is the level of competition out there. Don't take me wrong though: I enjoy all new demos for what they are - 4 minutes of audiovisual entertainment - but as a producer myself I need to know what and who is at the forefront of PC demo development.

So here are some random thoughts:

  • Pleased to see the return of satori with a demo that nobody else could reproduce. I am envious, in a good way, of Zden and I hope they make another one in the near future.
  • The farbrausch demo was interesting: in the first 20 seconds I was bracing for a "paradigm-shift" production that would leave me in complete awe (echoing the days of debris). It didn't follow my expectations (they were too high anyway) for a number of reasons. Mainly because of too much repetition, not much of a storyline and several design issues (typography being a major one). Regardless, the demo is clearly amongst the best 5 of this year (if not then it's going to be one hell of a year for PC demos).
  • The winner demo from the Gathering had almost everything that you would need in a 2010 killer production: top effect, graphics, timing with the music. Yet it is not destined for the pantheon. Why is that, you ask? This is an important question and I'll elaborate in another post, stay tuned!
  • I've expessed my admiration for the demo from Fairlight - rightful winner and a very hard demo to beat in any competition (including next year's scene org awards). "Less is more" worked really well and I'm looking forward to their next step using this technology or something similar.

For me the question was: what would happen if Iconoclash was presented at that party (assuming the music and a hundred different details left to finish were all there) ?
It would have been one hell of a compo (not that it was bad as it was): a class of two mammoth demos (ours and "rove") against the sweet delicacy from Fairlight.



...I have a fairly good idea of what would have happened to the final rankings; but I'm not going to tell you.

Tuesday, 23 March 2010

Lifeforce draft #1

The date is 26th of April 2007 and Archmage of Andromeda joined forces with ASD to work on a new demo codenamed "lifeforce"! I wrote the following storyboard in our mailing list to introduce him to the concept.

It is interesting to see how much (or little) the demo has changed since then:

-----------------8<--------------------------



Lifeforce by ASD
-------------------
A demo for Assembly 2007


Sequence of parts:


1) Desert part (part_desert). Introduction: pan over
dried landscape with a few artifacts scattered (the
skeleton fish from iconoclast) and maybe some ruins
(church/ancient). In the style of 'deformation of the
cranium'. It is dawn or dusk, the color of the sky is
blue/reddish with some clouds.
As the camera pans it focuses on a pillar (ruins?)
where several polaroids (from iconoclast) are pinned
(the move by the wind in sinuisoidal fashion). The
camera zooms in (or rather FOV is reduced) to one
polaroid. The next scene starts inside the polaroid.
Duration: 15-20 secs.

2) Introduction (part_introduction). The part with the
head-god from iconoclast. There will be some
worshippers there. This is essentially a continuation
from the last scene of iconoclast. The head opens, we
dive in, animations, the ASD logo and dive further
down. Duration: 64 secs.

3) Rainbow ride (part_afterintro). Camera pans to the
right, parallel scrolling, all objects rendered as
silhouettes. Trees pop-up, then the VW (?),
spits out the name of the demo. The rainbow strips
extends and camera traces it. Some other VWs are
riding it. Eventually only the red strip is left and
it is laid upon a hand in space. A knife cuts through
the strip. The camera changes to show the blood
pouring out and zooms into the red. Duration: 75
secs.

4) Air-bubbles in liquid (part_liquid). Black air
bubbles rise in a container of viscous red fluid. A
bonzai tree is also part of the scenery. The whole
part is again 2D, rendered with stylized vectors in
black and red. The bubbles reach the surface. Then a
tree "dives" in the liquid and the camera pans and
zooms into its roots (the tree is upside down). What
follows is probably some sort of fractalesque growing
of the roots and zoom into the next scene. Duration:
26-28 secs.

The following parts might be in a slightly different
sequence. Haven't made my mind yet.

5) Rendering of the "jones brahmins" statue
(http://www.hinduwisdom.info/images/jones_brahmins.jpg),
which will be on a plane, probably floating in
space/skybox. The rendering will be photorealistic
and it will look like it is carved out in realtime (in
2.5D), starting from a completely flat surface. Use of
bump, parallax, ambient occlusion mapping. It
should look as good as the statue in
lapsus(http://www.pouet.net/prod.php?which=130). Once
the rendering has finished the plane will rotate to
reveal something else at the back. For that I'm
thinking of something rendered with the
crystallized/refraction rendered. Probably if we could
find a model of the human heart, then I could do it as
transparent and add some blood vessels in
there. Once this is done the plane will rotate once
again. This time, instead of statue there will be a
simple merry-go round. The lights will go down and
from realistic the rendering will become two-tone
again. This is also an ambient moment for the music -
there will be some speech: the three female voices (in
different age) talking about the passage of time
(similar to the beginning of dark side of the moon by
pink floyd). As this is finished, the camera will
rotate/zoom into a feature of the merry go round which
will be a tower bell ringing. All rendered in b/w. The
ringing will be in grave rythm. This is the point of
the demo after which whatever follows is the
'catharsis' - We are beyond the midpoint. Something
like the 'blood' part in planet risk and the music box
in iconoclast. Fade out. Duration: 25 secs for the
statue, 30 secs for the heart (?), 20 secs for the
speeches and 10 secs for the bell =
85 secs.

6) Scene of the toy shop: a shop with shelves. The
shadow of a person (2?) looking into the shop is cast
upon the front glass. Camera moves past the glass,
zooms into a box which is a bathroom, all rendered
photorealistically, textures, ambient occlusion etc.
The camera goes to the floor where there is a light
bulb the goes on/off. A cable extends from the light
bulb and surrounds objects in the scene - maybe also
snakes ? The camera eventually goes into the plug-hole
of the sink/bath. The feeling here is dark - colors
are brown/ dirty.
Duration: 55-60 secs.

7) Infinite zoom with stylized vector graphics in
animation, some combination of 'infite zoom with
pixelled graphics'. The camera zooms in, pans, moves.
There is alot of energy here. Some simplified 3D in
here, all rendered with minimal colors (4-5 shades of
b/w). Eventually zoom out and next scene.
Duration 60 secs.

8) A scene similar to the first one, only now it is
water and it is night. We get out of the polaroid and
look at the distance. It is idyllic, very big moon on
the sky. From a distance a giant hand comes out of the
water and grabs the moon, pulls it down, and then a
nuclear explosion (like in second reality) happens in
the distance. All this happens within 5-6 seconds. The
heatwave/debris hits us after 4-5 seconds. Fadeout.
Duration: 15-20 secs.

9) Credits. A cross section of the floor of the sea
with rigid-body stones (with our names carved) that
sink slowly and interact with the sand (and each
other). The end.

Duration: 20 secs.


wow what a ride. Lets see how much time all this will
take: About 430 seconds, which is 7.10 mins.
Iconoclast was 8.00, so I think we are ok. There are a
couple of effects that can be interchanged, especially
in the bathroom/merry-go-round/heart scene. Now, some
will say that this is all silly. OK this is only a
demo remember. There is a common element which I'll
try to explain:

The demo is about the passage of time. How is time
affecting the living/organic things and their
constructions. I want to give it a dark/futile edge:
So, for example, while you have a rainbow with lovely
bright colors, it all ends with a knife and blood.
Several other scenes are also dark: The statue with
the humans in a philosophical pose - Not living any
more (cast in stone!) as opposed to the heart which
beats (the other side of the plane). The fact that it
starts and ends very similarly also helps the
narrative. Lets say that this is all a big nightmare,
and we want the viewer to feel numb - excited for the
spectacle (graphics + music) but numb about the
ambience.

Anyway this is a first draft. I'm working on almost
all parts at the same time but trying to finish them
in sequence. Part 6 and 7 must be done with lots of
gusto and will need some help from our graphicians.



Pls reply with your thoughts
N.



---------------8<----------------------------------

Tuesday, 16 March 2010

Fades

Today I'll talk about changing scenes by fading in-out. I use it very rarely when moving from one scene to a different one and more often when moving between cameras that point to the same environment. The list goes like that:

  • No fades. Camera just cuts from one scene to the next: useful in fast paced demos.
  • First scene plays, cut, second scene fades-in: I quite like this; there is no fade-out on the first scene, so there is no sacrifice of a couple of seconds of valuable screen time.
  • First scene fades out, darkness, second scene fades in: I use it in the rare occasions that I want to change from one scene to the next without doing anything clever with transitions. The fade-to color is almost always black but sometimes it is white or "tv noise".
  • Cross fades: very hard to do in realtime - you need to render two scenes at the same time. While feasible it will "spike" your framerate down if not done carefully.
I try to keep it so that there are only 2-3 "fade" effects per minute. I think this is the sweet-spot for megademos.

Monday, 22 February 2010

Make a demo with 3 simple rules

The other day I was thinking that the continuity of parts and effects in our demos (mostly big demos that go to Assembly and the gathering) can be expressed in 3 very simple terms:

  1. A scene/effect is established on either a plane (quasi-2D) or within a cylinder/sphere (3D). Camera moves accordingly to show the effect.
  2. Planar scenes follow cylindrical scenes and so on.
  3. Long segments of the demo are dedicated to move from one mode to another. This process is called a "transition".
I'll give you an example: in iconoclast there is a scene with a glass-like cube. Camera rotates around (cylinder) -> camera goes inside a door, underwater scene (plane) -> second reality references (cylinder) -> music box, polaroids (plane) -> shark in cube (cylinder) -> final scene and end credits (plane).

Maybe your demo follows a similar pattern too!