Showing posts with label iconoclash. Show all posts
Showing posts with label iconoclash. Show all posts

Tuesday, 3 August 2010

Stella's review of The wind under my wings and comparisons

I got Stella to do another interview after watching "The wind under my wings" (yes, she watched it without even twitching. Her attention span is, still, longer than us youtubers).

Notice:
  • The total silence after my question "what was in this demo"
  • Her making fun of my Greek accent (it was one of these rare occasions when I spoke to her in English, which she found quite amusing)
  • What happens at the end of that demo? "Wow and colors"
  • Her revealing that she likes both demos equally: wind and iconoclash

Here is the file.

Sunday, 1 August 2010

Stella's review of Iconoclash

I asked Stella (my daughter, who is 3 years old) to watch "iconoclash" and tell us her opinion, in English.

Here is what I got out of her.

Saturday, 31 July 2010

Burning the midnight oil

Not that much time left now. Found a massive bug that causes cpu crash on random machines. Got to be careful with all the graphics cards from different vendors - who is going to throw white triangles on screen first, nVidia or ATI?

Running the demo again and again trying to fit visuals with music, one of the hardest tasks (but thanks to Leviathan and aMusic this can be done in a couple of nights).

Oh and writing this post while waiting to get to the final scene of the demo; no FF on this engine I'm afraid :-(

Monday, 26 July 2010

The wind under my wings and Iconoclash

We got some very mixed (more like negative) reviews for our latest demo "The wind under my wings" at pouet. This is understandable, as I have mentioned before the audience for demos like that is quite small. Let me come back to this issue after I give out some details on the concept of "wind":

  • I've been trying to make a demo exactly like that for maybe 7 years. This is more time than for anything else we ever planned. To be precise, this production started my interest in trippy ambience and controlled noise; but I had never been able to transfer that into one of our productions. "eon", "aphorism for the masses", "walls of eryx" and "captive" were steps towards "the wind under my wings". I'm happy that I have resolved this even if it took so long. The future is open for further experimentation.
  • There is an underlying theme, very obscure (and it is even more if you haven't seen "Iconoclash" yet, which I'm sure you haven't): "The wind under my wings" continues the "rupture/chameleon" saga, in which the hero/avatar is chased away from this world into the unknown. Rupture/chameleon left us at complete destruction (presumably death), after a journey through the real world (objects of the real world functioning as they should, motorcycles run, helicopters fly etc.). Twinned Wind/Iconoclash demos continue in the "ether-world", or what I imagine lies further. Lets call it the spiritual universe where memories and thoughts are all messed up as in a dream.
  • Wind/Iconoclash more or less describe the same thing (with some cross-referenced elements) but with some important differences, other than the style and computer graphics techniques: while Wind is futuristic and expresses despair and anxiety, Iconoclash belongs to the past: it is gothic/baroque and depicts horror and confusion.
  • The choice of music (with the vocals) for Wind has already found lots of enemies. I believe it helps to create the element of anxiety I described above. Maybe the same would have happened with an ambient/noisy track - but that would have been quite predictable.
I find it much easier to immerse into "Wind" after having watched this demo (as you would expect) hundreds of times. Maybe it is that the brain needs to work out the patterns and rhythm slowly, one step at a time. Some demos need that, require your full attention and your devotion.

What started as an awkward attempt to break a 7 year curse has grown up considerably inside me. Maybe it will grow on you too.

Tuesday, 13 July 2010

Return of the prodigal son

So I went on holidays with my family last month and forgot to return home.

We went to Greece, to do what common people do there:
  1. Wake up at 10:00, have breakfast
  2. Drive to the beach, swim and tan for a few hours; drink a bit of coffee
  3. Go home, have lunch at 16:00, have a siesta for the next couple of hours
  4. Visit family, have dinner out
  5. Put baby to sleep, have a drink out, watch the world cup together with thousands of Yugoslavian tourists. Paradise!
  6. Go to sleep as the temperature just dips below 30'C
Would be nice wouldn't it. Only this is the life of a tourist. The reality is slightly different for many who live and work there:

  1. Wake up at 7:00, have a strong coffee
  2. Work in an air-conditioned office either making shitty java plugins or selling overpriced clothes to the nouveau poors
  3. Go home to wash and watch some crap on the tv, laced with a million of commercials for things you never needed anyway
  4. Go out to see friends and moan together about the crooked politicians, when it was you who voted them and your parents who, long ago, benefited from this chaos
  5. Go to bed wondering how you can afford one day to have your own children, your own house and your own furniture. Say goodnight to mother who looks after you.

Anyway, the first and last seconds of "Iconoclash" (our assembly demo... remember that?) are copied and pasted from my swimming experiences in Greece. I'll try now to post more often (although I'm going away again in 2 days) and keep you up to date; only 3 weeks left!

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!

Thursday, 6 May 2010

Bad news

Oops... seems like I've lost part of the demo when I foolishly deleted some files yesterday. Serves me right for storing everything in a directory called "temp".

Oh well, it's frustrating but we'll survive. :-(

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.

Friday, 19 March 2010

Nominations and news

It is just a week to Breakpoint and the scene.org award nominations are out! We got quite a few this time for our demos Rupture and Chameleon. We thank the jury for considering our demos and look forward to the award ceremony itself. Have a look at who is nominated for what here.

So it is a week until Breakpoint opens its door, but I won't be going there. I'll be in Greece with my family, celebrating the orthodox easter which falls on the same weekend as the catholic one. I'll try to watch as much as possible on a stream (I hope there will be one).

Before travelling to Greece my plan is to finish a good "beta" of iconoclash, with all the timings/cameras/effects/animations finished. No music yet, but I'll record the demo on a video to give the musicians an idea of the mood of the later stages. Also before I go I'll post something on my blog that our hardcore fans may appreciate: the original draft of Lifeforce, written about 3 years ago in English. Why was it written in English and how much of the storyboard made it into the demo? you'll discover soon.

Friday, 12 March 2010

Look ma! no cubes!

Cubes in demos have dominated our screens since the beginning of time. It is easy to see why: they are very easy to model, UV and render efficiently. With cubes you can make tunnels, emulate physics (by stacking them, for example, then pushing the bottom one and watch them crumple as in jenga) , or create more complex objects by putting thousands of them in a voxel-space like arrangement.

For me cubes is a turn-off, unless it is done with extreme finesse (like in Debris and Stargazer) . It is very hard to replicate the wonderful effects in these demos, so, I won't be bringing any cubes with me this time then.

Wednesday, 10 March 2010

On typography

Traditionally, typography has an important place in demos. We use text for various reasons:

  • To name the demo (i.e. "Dreamchild")
  • To name our group ("ASD")
  • For all credits ("code: navis, music: Amusic" , or shorter: "navis, amusic etc.")
  • To greet other groups ("rgba, fairlight, mfx etc.")
  • To name the event (i.e. "presented at Assembly 2003" )
  • To write scene poetry ("We used to exist.. used to dream.. blahblah")
Adding text is an easy way to add 30-40 seconds of content and give your demo a chance to take a short break from its usual flow. Everybody expects to see at least the name of the demo, group, credits and greetings, it is part of the demoscene conventions.

But I do have a problem with it. When I present demos to the public, people always ask me "What/how the hell is fairlight, rgba, mfx etc." and then I have to explain. That was one of the reasons why there were no greetings in Rupture (the other, more important, because there was no place for them).

I haven't made my mind yet about what will happen with all the typography in "Iconoclash". But if you don't see your group greeted don't worry - yet again, function follows form.

Tuesday, 9 March 2010

Rendering a face

In my previous message I described the pipeline for rendering a frame. Today I will talk about the common material shader I use for pretty much all objects in the new demo.
  • I use Lambert shading, almost all faces are flat (hard edges in Wings3D). However, object are well tessellated.
  • There is an ambient component, a very slight diffuse (the difference in intensity between the face looking towards the light and away is less than 20%) and in most cases no specular.
  • UV coordinates for texturing are calculated on the fly, based on direction of normal (vertex shader). I never store UVs in a file (although I could, using wings3D's auto-UVing, but it would be a waste of time: I get a very good result with my own auto UV-ing anyway). Needless to say, all textures are tileable. I do a couple of passes adding different octaves of textures to reduce any sense of repetition.
  • Shadow mapping is performed as usual with projected texture look-ups. Sometimes I do more than one passes with slightly different projection matrix to smooth-out the artifacts on the edges of shadows.
  • On top of everything I project and multiply a "Gaussian blob" texture in the direction of the camera. This adds a slight spotlight effect and improves realism quite a bit. An extra step here is to alter the projection matrix by a factor determined by the texture underneath. This way I can emulate pretty well a very soft "bump/gritty" effect. You can see this effect in the bathroom scene in Lifeforce.
  • Then there is an element of fog - furthest objects appear darker. Pretty easy that.
That list covers, more or less, the vast majority of material shaders that I use.

Saturday, 6 March 2010

Graphics pipeline

I will describe today our new graphics pipeline:

  • One or more passes (from a different camera) of the geometry is done to produce the shadow map(s).
  • Using flexible buffer objects I then render the scene into 3 buffers: one buffer holds the lit & textured objects, another the normals, and another the depth map.
  • If needed, another pass calculates the relative movement of all objects during the last frame and stores the direction of all moving pixels in a 2D "velocity" map. This is used to emulate the motion blurring effect.
  • They are all combined (in what could be called deferred shading) by a 2D pass - in here we get the screen space ambient occlusion and occasionally some other minor effects (the effect in rupture is done in this pass).
  • The output of that pass (a 2D texture) is passed to a "blur" and "radial blur" filter, in much lower resolution (a quarter in each dimension). There is a per pixel flag (stored in the alpha channel and calculated in the second step) to determine which pixels are blurred and which are not.
  • The combined output of all that is passed to a further "depth of field" full resolution 2D effect. This pass also does the per pixel "smearing" that is easily calculated using the velocity map. Additionally there is a very light full screen motion blurring effect to enhance the "handycam" effect.
And then you have a frame. Enjoy.

Thursday, 4 March 2010

Progress

Magical "5 minutes" reached. The beginning of the end is near!


I like it when a big project reaches that state. I can now concentrate and try to wrap it up properly. No need to panic, plenty of time till August. All the hard work, with regards to texturing, animation and modelling, has now been done.