Two years later...


And another two years passed without any status updates... Oops. After my previous post from 2011 I actually continued working on my demo system and I've also continued producing 64k demos; I just forgot to occasionally post something here :)

Anyway I've been quite productive since then. Together with Izard I've released 6 64k demo's until now. I changed my nerve demo system from a 'normal' shaded polygonal mesh renderer into a gpu-raymarcher engine with which we now mostly raymarch distance fields as is nicely described here. This allowed us to generate better looking graphics much easier than before.

Here's a short overview of the things I released so far. All of them are 64k demo's. The most recent one comes first.

Astral Flux, released at Outline 2013 yesterday:

Signify, released at Revision 2013, april:

Variflux, released at Outline 2012, october:

Undercut, released at Evoke 2012, august:

Metaphorm, released at Revision 2012, april:

Traversing The Unknown, released at Evoke 2011, april:

So I am actually still quite active :) 

A short update (and Evoke 2011)


Wow, my last post is already a year old. Time for a short update. A lot of personal things have happened since then, so I haven't really been able to work on my home projects. One of the reasons is my new job as a game programmer at Guerrilla Games.Which is in Amsterdam, which is quite far away.

But anyway, I'm going to the Evoke demoparty in Köln, Germany, next weekend. Izard is working hard on a 64k demo, although I haven't been able to help him with that. So I'm not sure how that's going to work out :)

The good news is that I'll hopefully have more spare time to work on my home projects again now that I found an appartment closer to work.

Lots of improvements for Pandora


With only two weeks left before Evoke starts I'm currently working hard on adding some new stuff to our software synthesizer, Pandora. For our new 64k demo Izard wants to create a soundtrack that's a bit different than the ones for our previous releases, so we made a list of features and improvements that should make it possible. One of the biggest things on the list was a complete overhaul of the mixer. We already had a basic 16-channel mixer since the beginning (we started Pandora about 3 years ago), but it was about time for some improvements.

Anyway, here are some pictures of Pandora's current state. The system consists of a VST plugin (of which the GUI is shown in the screenies), and a runtime playback library. Both are written in pure C++. And the VST is actually just a wxWidgets-powered GUI on top of the playback library.

Please note that I haven't spent much time on the GUI. It is intentionally kept ugly, because I currently rather focus on adding new features. When that's more or less stable, I'm probably going to replace the current look by a fancy skinned style.

So that's what I'm currently working on.

Ohw and I'm also actively looking around for a new job now. Playlogic, the game development studio that I've worked for the past two years, went bankrupt two weeks ago. Had a great time there, so it's kind of sad. But on the bright side it does give me lots of spare time to prepare for Evoke :)

Textures and shaders in maya


I said I was going to give some info and images of the GUI side of Texo, my new texture generator library, but I think a short video will make it even clearer. And that way I won't have to write a 10 pages blog post about it :)

So that's Maya 2008 with a single 3d viewport rendered by Nerve in realtime, where I use Materialist, my integrated material and texture editor to modify/create shaders and see them change in realtime in my viewport.

The video is just a short demonstration of some of the features of my material and texture system. But it should give a good idea of the workflow and level of integration with my demosystem and Maya itself. I already wrote Materialist and its shader graph editor some time ago, but its Textures tab where you can create texture graphs the same way as you can create shader graphs is brand new.

Anyway, I think I'll make more videos of nerve and some of its components in the future. It says so much more than words :)

A new texture generator


Hmm, my last post is already from a few months ago, when we released our last 64k intro, Exo. In the meantime I've been working slowly on some improvements on nerve. The biggest thing I've been working on is a new texture generator library. I have been using my own texture generator engine (which is called Gentex) for about 4 years now.Which makes it the oldest component of my demo system.

Over the years I've been improving it, but it never really converged to anything awesome. Its codebase is huge (it consumes 8kb of uncompressed bytes of Exo), it sacrifices a lot of precision since it uses 8bit per component bitmaps internally, its GUI is separated from my shader development tool, making the creation of shaders a very laberous task, and only very basic and elementary nodes/effects are implemented.

So I'm currently working on a brand new texture engine, dubbed Texo. It consists of a simple static lib, which is used to generate a texture by iteratively applying generators and effects on bitmaps, and a GUI part, which is used to author/design the textures.

For the first time I've been actively keeping an eye on the final uncompressed filesize. For Gentex I never performed any file size measurements, mostly out of laziness. But for Texo's static library I've started doing this, and it has been quite rewarding. At the moment my lib only occupies 2kb of space when all features are used. That's already a lot smaller than Gentex; but note that not all of Gentex' features has been implemented yet. To get to such a small lib, I've been actively using SSE. Using C++ SSE intrinsics turned out to deliver both small and fast code. Another nice side effect is that it was relatively easy to use 32bit per component floating point bitmaps. That improved the precision of the textures, and assured simpler code; no more bitshifting and masking; no more inefficient conversions between floats and chars.

I'm doing all file size measurements using a custom IDA script. IDA is a really nice disassembler/debugger which can be automated using self-written scripts. So I've made a test application that links with Texo and uses all of its features, and a simple IDA script that opens my .exe and dumps out a list of all functions and their code-sizes to a text file. This way I can easily get the actual size of every function in my final executable. There might be easier ways of achieving this, but for me this method works awesomely great :)

Next to the static library of Texo, I've also been working on the GUI part. It's currently simply integrated into Materialist, which should make creating new shaders and/or textures much easier. But I'll tell more about that some other time. I really want to show some pictures of the new GUI, but that would make this post a bit too long.

For the upcoming weeks I'm planning on adding new things to Texo, and further integrating the system with the rest of Nerve. And I have a huge list of cool improvements for Pandora, our software synthesizer, that Izard likes to have in, so that's something I'll be working on too.

Ohw, and the Evoke demoparty is already appearing at the horizon. Only one month to go...

A video of Exo


Here's a video of Exo. Watch it with your sound turned on:

Exo released


I'm just back from the Outline 2010 demoparty in Eersel (near Eindhoven), and it was really fun again. We'd been working hard on our entry for the 64k demo competition; the same demo that we weren't able to finish on time for Breakpoint, a month ago. But this time we did pull it off. The result is a 64k demo called Exo, and we actually won the intro competition again with it (just like last year). Woohoo.

It is the first demo that we made with our new version of nerve (with lots of cool new stuff in it). And once again we used pandora, our software synthesizer, to play the soundtrack. All direction, music and some of the graphics were done by Izard, and I did all coding and the rest of the graphics.

And, yeah, if we´d only had more time we could´ve improved it much more. It´s still very unpolished in certain places.

For now I can only post some small screenshots, and a download link. But as soon as my internet connection is back online again, I´ll post a captured video.

Download Exo at (you´ll need a reasonably good graphics card and a recent version of DirectX to run it).

About me

Project overview


Last posts


Partners in crime


ATOM 0.3

Powered by Blogger