tag:blogger.com,1999:blog-272841972024-02-20T00:58:31.986+01:00Nerve demo systemThis is my dev blog in which I try to give some info on the development of Nerve, my demo system and first step to World Domination. :)Glowhttp://www.blogger.com/profile/13955486135289315914noreply@blogger.comBlogger85125tag:blogger.com,1999:blog-27284197.post-63777570457070197062013-05-12T17:50:00.000+02:002013-05-12T17:50:56.813+02:00Two 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 :)<br />
<br />
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 <a href="http://www.iquilezles.org/www/articles/raymarchingdf/raymarchingdf.htm">nicely described here</a>. This allowed us to generate better looking graphics much easier than before.<br />
<br />
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.<br />
<br />
<i>Astral Flux, released at Outline 2013 <b>yesterday</b>:</i><br />
<div class="separator" style="clear: both; text-align: left;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='560' height='315' src='https://www.youtube.com/embed/GxukqlSmhco?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<i>Signify, released at Revision 2013, april:</i><br />
<div class="separator" style="clear: both; text-align: left;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='560' height='315' src='https://www.youtube.com/embed/Cb0kF70ixvU?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<i>Variflux, released at Outline 2012, october:</i><br />
<div class="separator" style="clear: both; text-align: left;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/H85y_6sRQdk/0.jpg" height="315" width="560"><param name="movie" value="http://youtube.googleapis.com/v/H85y_6sRQdk&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="560" height="315" src="http://youtube.googleapis.com/v/H85y_6sRQdk&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
<i>Undercut, released at Evoke 2012, august:</i><br />
<div class="separator" style="clear: both; text-align: left;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='560' height='315' src='https://www.youtube.com/embed/XnnPqtQcMrI?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<i>Metaphorm, released at Revision 2012, april:</i><br />
<div class="separator" style="clear: both; text-align: left;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='560' height='315' src='https://www.youtube.com/embed/20Ljq4Ui9Sw?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<i>Traversing The Unknown, released at Evoke 2011, april:</i><br />
<div class="separator" style="clear: both; text-align: left;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/eHHWhj_qej8/0.jpg" height="315" width="560"><param name="movie" value="http://youtube.googleapis.com/v/eHHWhj_qej8&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="560" height="315" src="http://youtube.googleapis.com/v/eHHWhj_qej8&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
<br />
So I am actually still quite active :) Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-21207021584955162742011-08-08T22:33:00.000+02:002011-08-08T22:33:36.832+02:00A 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 <a href="http://www.guerrilla-games.com/">Guerrilla Games</a>.Which is in Amsterdam, which is quite far away.<br />
<br />
But anyway, I'm going to the <a href="http://www.evoke.eu/2011/">Evoke </a>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 :)<br />
<br />
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.<br />
<br />
<br />
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-66585512651677766132010-08-15T22:50:00.000+02:002010-08-15T22:50:16.866+02:00Lots of improvements for PandoraWith only two weeks left before <a href="http://www.evoke.eu/2010/">Evoke </a>starts I'm currently working hard on adding some new stuff to our software synthesizer, <i>Pandora</i>. 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.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxL-QIERCzkckdmPbz16xj047p28dA0VhcUc_0Qs6ASEhcyPG7bHe3yfLF9zgeMr4FmxzOWsQ6f6QhNzCEaHxIUNsgklPIn0PUiS0Jpxbtuq1acEAOufNOHovqTpGaWzoqfJ_viA/s1600/pandora1508.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxL-QIERCzkckdmPbz16xj047p28dA0VhcUc_0Qs6ASEhcyPG7bHe3yfLF9zgeMr4FmxzOWsQ6f6QhNzCEaHxIUNsgklPIn0PUiS0Jpxbtuq1acEAOufNOHovqTpGaWzoqfJ_viA/s320/pandora1508.gif" /></a>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 <a href="http://www.wxwidgets.org/">wxWidgets</a>-powered GUI on top of the playback library. <br />
<br />
<br />
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.<br />
<br />
<br />
So that's what I'm currently working on. <br />
<br />
Ohw and I'm also actively looking around for a new job now. <a href="http://en.wikipedia.org/wiki/Playlogic_Entertainment">Playlogic</a>, 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 :)Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-26026562436512924882010-07-23T22:47:00.000+02:002010-07-23T22:47:30.641+02:00Textures and shaders in mayaI 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 :)<br />
<br />
<object height="445" width="560"><param name="movie" value="http://www.youtube.com/v/408GwFu9_2s&hl=nl_NL&fs=1?rel=0&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/408GwFu9_2s&hl=nl_NL&fs=1?rel=0&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="445"></embed></object><br />
<br />
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.<br />
<br />
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.<br />
<br />
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 :)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-28939676353412513232010-07-22T23:17:00.000+02:002010-07-22T23:17:11.823+02:00A new texture generatorHmm, my last post is already from a few months ago, when we released our last 64k intro, <i>Exo</i>. 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) <a href="http://nervedemosystem.blogspot.com/2006/05/my-first-texture.html">for about 4 years now</a>.Which makes it the oldest component of my demo system.<br />
<br />
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 <a href="http://nervedemosystem.blogspot.com/2007/11/still-alive.html">my shader development tool</a>, making the creation of shaders a very laberous task, and only very basic and elementary nodes/effects are implemented.<br />
<br />
So I'm currently working on a brand new texture engine, dubbed <i>Texo</i>. 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.<br />
<br />
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.<br />
<br />
I'm doing all file size measurements using a custom IDA script. <a href="http://www.hex-rays.com/idapro/">IDA</a> 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 <i>awesomely </i>great :)<br />
<br />
Next to the static library of Texo, I've also been working on the GUI part. It's currently simply integrated into <a href="http://nervedemosystem.blogspot.com/2007/11/still-alive.html">Materialist</a>, 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.<br />
<br />
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.<br />
<br />
Ohw, and the <a href="http://www.evoke.eu/2010/">Evoke</a> demoparty is already appearing at the horizon. Only one month to go...Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-56749815411225227922010-05-03T17:43:00.000+02:002010-05-03T17:43:51.511+02:00A video of ExoHere's a video of <b>Exo</b>. Watch it with your sound turned on:<br />
<br />
<object height="340" width="560"><param name="movie" value="http://www.youtube.com/v/OB9jKKxIWBk&hl=nl_NL&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OB9jKKxIWBk&hl=nl_NL&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-29822612174891404232010-05-02T20:03:00.003+02:002010-05-02T20:10:55.503+02:00Exo releasedI'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 <strong>Exo</strong>, and we actually won the intro competition again with it (just like last year). Woohoo. <br />
<br />
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.<br />
<br />
And, yeah, if we´d only had more time we could´ve improved it much more. It´s still very unpolished in certain places.<br />
<br />
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.<br />
<br />
<a href="http://www.pouet.net/prod.php?which=54949">Download Exo at Pouet.net</a> (you´ll need a reasonably good graphics card and a recent version of DirectX to run it). <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://glow.inque.org/downloads/inque-exo-screens.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://glow.inque.org/downloads/inque-exo-screens.jpg" tt="true" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-83804769268391039112010-04-11T20:50:00.000+02:002010-04-11T20:50:16.813+02:00Working on a leader introThe past few evenings I've been working on a leader sequence that we can use for our next 64k intro. It's still very rough, and there's no sound yet, but I think it already looks kinda nice. It's a relatively simple scene (2 shaders, 1 cube mesh, 1 camera and 1 light) and I'm estimating it to add max 1kb to our final filesize:<br />
<br />
<embed allowfullscreen="true" allowscriptaccess="always" flashvars="file=http://glow.inque.org/stuff/caps/inque-leader.flv&image=http://glow.inque.org/stuff/caps/inque-leader.jpg&autostart=false&showicons=true&usefullscreen=false" height="315" src="http://glow.inque.org/stuff/caps/mediaplayer.swf" width="560"></embed>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-42410283678228077942010-04-07T20:42:00.000+02:002010-04-07T20:42:00.601+02:00... and back againI'm back again from Breakpoint. Actually yesterday already, but I didn't have much time to post something. But, anyway, Breakpoint was really fun again; although we didn't manage to finish our 64k demo. Izard and I worked on it for quite some time at the party, but there was simply too much work to do. And because we 'forgot' to get a hotel room for the first night, we also didn't get much sleep that first night either. So that didn't help much either...<br />
<br />
Luckily the <a href="http://www.outlinedemoparty.nl/">Outline demoparty</a> is already starting in about 3 weeks, so we'll continue our work on our demo and release it at that party.<br />
<br />
Ohw, and I really enjoyed the various competitions at Breakpoint. Especially these entries rocked:<br />
<ul><li><a href="http://www.youtube.com/watch?v=L5w7Gh7WBjw">Agenda circling forth</a>, by Fairlight and CNCD (full size demo, winner of PC demo competition)</li>
<li><a href="http://www.youtube.com/watch?v=k_oTQd93eRI">Rove</a>, by Farbrausch (full size demo, 2nd place at PC demo competition)</li>
<li><a href="http://capped.tv/tggc_codingcat_bluflame-imagine">Imagine</a>, by TGGC, CodingCat and BluFlame (64k demo, winner of 64k competition)</li>
</ul>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-22294903105820802962010-04-01T20:11:00.000+02:002010-04-01T20:11:11.793+02:00Packing bags for Breakpoint 2010Okay, time's up. Tomorrow starts Breakpoint 2010. Izard and I have been working on our entry the last two weeks, but as usual we haven't actually finished our entry yet. At the moment we only have our soundtrack more or less done, and (nearly) all of our tech. And Izard has already done some modeling. And best of all, we have a plan/design. So that means that once again, we'll have to build the actual 64k intro live at the party place. The good thing though is that a) we booked a hotel, so we can properly crash/sleep somewhere and b) the deadline is at sunday morning, giving us two full days to finish it. Should be enough... <br />
<br />
Anyway, I'm going to pack my bags now. Wish me luck! And btw, you can follow everything live at <a href="http://bptv.untergrund.net/">http://bptv.untergrund.net/</a>.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-27284197.post-17310614319239095832010-03-21T13:58:00.000+01:002010-03-21T13:58:45.388+01:00Next stop: Breakpoint 2010<div class="separator" style="clear: both; text-align: center;"><a href="http://breakpoint.untergrund.net/gfx/bp_banner_big.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="45" src="http://breakpoint.untergrund.net/gfx/bp_banner_big.gif" width="320" /></a></div>In two weeks I'll be going to the <a href="http://breakpoint.untergrund.net/">Breakpoint</a> demoparty again (in Bingen, Germany), so I'm currently working hard on our demosystem again to get everything ready on time. This year's Breakpoint is kind of special, since it will be the last one being organized. Which is sad, and another reason for us to try to release a 64k demo there. <br />
<br />
Anyway, the clock is ticking and (as usual) I still have way too many things to do. We're going to use nerve2 for our release, which is a completely rewritten version of our demo system. But it's still far from a shippable state...Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-39713283135012738142010-01-18T23:17:00.004+01:002010-01-18T23:25:27.462+01:00Filtered SSAOHere's a new screenie of my SSAO implementation. I've added some gaussian blurring and that really seems to work nicely.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ6QxXHIvM8UzztQar1hmVhcBMo46n3c9ZTSVk9TKXVob6HllunCcGa5EvVhr0q4Q13vD4MYKRvVwb1gMI0LUZG5VmtRXXA8SYZcAw9V9asrfeGtxczMd-PfBZxccWJnC3Ad5Ing/s1600-h/blurringssao.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 665px; height: 143px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ6QxXHIvM8UzztQar1hmVhcBMo46n3c9ZTSVk9TKXVob6HllunCcGa5EvVhr0q4Q13vD4MYKRvVwb1gMI0LUZG5VmtRXXA8SYZcAw9V9asrfeGtxczMd-PfBZxccWJnC3Ad5Ing/s400/blurringssao.jpg" alt="" id="BLOGGER_PHOTO_ID_5428208065316061970" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />The left image is lit+AO, in the middle is AO only and the right image shows lit only. My next target is to eliminate some artefacts, and tweak the blurring a bit more.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-52643502604670443282010-01-14T22:43:00.005+01:002010-01-14T22:51:06.414+01:00Struggling with SSAOAfter struggling for several nights I've finally managed to get SSAO more or less working. Here's a work in progress screenie:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoPvIf6FTpMVRAaCJmbvn7_a4DuBjemI9b7IvCQWtXCbzffFS9rTQOl3lXonXLT6qxTV_j6RZF_CVZAPpmATXrY4EgFdeMGgYobkLOWtl-4fT2Eyh645MQ7huJC_ocVQ6K7z4vlg/s1600-h/better_ssao.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoPvIf6FTpMVRAaCJmbvn7_a4DuBjemI9b7IvCQWtXCbzffFS9rTQOl3lXonXLT6qxTV_j6RZF_CVZAPpmATXrY4EgFdeMGgYobkLOWtl-4fT2Eyh645MQ7huJC_ocVQ6K7z4vlg/s400/better_ssao.jpg" alt="" id="BLOGGER_PHOTO_ID_5426715650729742786" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div style="text-align: left;"><br /><br /><br /><br />I still need to implement some filtering, and the settings need some tweaking, but it already seems to do its job. After that is done, I'll have to take a look at the performance and shader size. Atm it's a bit bloated :)<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-248811227368439892010-01-06T22:54:00.006+01:002010-01-06T23:11:33.639+01:00Best wishes for 2k10Hi, just wanted to post something, as a sign of still being life. The last few months I've been working in my sparse spare time on some new tech for nerve. And I'm currently trying out some approaches for <a href="http://en.wikipedia.org/wiki/Screen_Space_Ambient_Occlusion">SSAO</a>. Here's a first screenie of SSAO in action, it's my very first step, and it still needs lots of tweaking and improvements... but I'm already starting to like it!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8MRVo8o2ZJIe-F2eIck0hdGzlGunHIomDhitDuhF_k35C67X9bZT1P58KrurhaWnW-ub2KJQ6ar-nkFLD8wt32LPewAzqYmxe7c-h7PV8ptiQl7WZmktt7ekZ0hH_gVMQhEA7VA/s1600-h/crappyssao.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 225px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8MRVo8o2ZJIe-F2eIck0hdGzlGunHIomDhitDuhF_k35C67X9bZT1P58KrurhaWnW-ub2KJQ6ar-nkFLD8wt32LPewAzqYmxe7c-h7PV8ptiQl7WZmktt7ekZ0hH_gVMQhEA7VA/s400/crappyssao.jpg" alt="" id="BLOGGER_PHOTO_ID_5423752494758267106" border="0" /></a><div style="text-align: left;">* Btw, this is an untweaked implementation of SSAO as described <a href="http://iquilezles.org/www/articles/ssao/ssao.htm">here</a>.<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-17168510935657646782009-08-02T21:52:00.002+02:002009-08-02T22:03:17.508+02:00No visit to Evoke this year...Evoke 2009 started last friday without Izard and me. We really wanted to go again this year, but we just didn't have the time for it. Izard is working hard to finish his own house, and I am really busy with <a href="http://xbox360.ign.com/objects/142/14276258.html">work</a>... I even had to work last saturday.<br /><br />If everything goes according to schedule, both Izard and I should have enough spare time in september again :) So I'll be picking up my nerve work then where I left it off. (I was already working on lots of new stuff, but more on that later)Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-11545382268641069852009-05-24T21:15:00.004+02:002009-05-24T22:06:38.121+02:00Scatterpillar released!Wow! Outline was really nice this year. Izard and I worked hard on our 64k intro and we managed to complete it (kind of) on time without too much stress (well only a little bit). And to make it even better: we actually <span style="font-style: italic;">won</span> the PC demo competition with it! Which was really nice. This is probably the first 64k intro that we made of which we're more or less satisfied with the endresult.<br /><br />The little bit of stress that we had was caused by our issue with the file size limit. About 1 hour before the deadline we were still stuck at an (compressed) executable file size of 70kb. By removing some unused parts of code I was able to decrease this to 68kb, and luckily Izard was able to decrease this even further to 64kb by removing various polygons from our models.<br /><br />Our new 64k is called <span style="font-weight: bold;">Scatterpillar</span>, and can be downloaded from <a href="http://www.pouet.net/prod.php?which=53181">it's pouet.net page</a>. You can also download a higher resolution video there.<br /><br />Izard did the soundtrack (using our Pandora software synth), he did all the modeling (using subdiv'ed low-polygon meshes) and all direction. I worked on the code, all the shading and the overlays.<br /><br />Here's a captured video:<br /><br /><embed src="http://glow.inque.org/stuff/caps/mediaplayer.swf" allowscriptaccess="always" allowfullscreen="true" flashvars="file=http://glow.inque.org/stuff/caps/scatterpillar.flv&image=http://glow.inque.org/stuff/caps/scatterpillar.jpg&autostart=false&showicons=true&usefullscreen=false" height="315" width="560"></embed><br /><br />Anyway, we're already looking forward to our next release. I'm working on some brand new tech, and Izard is already working on some cool designs.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-27284197.post-22384044293052955532009-05-22T11:32:00.002+02:002009-05-22T11:37:12.830+02:00Outline here we comeI'm currently packing my bags for my trip to <a href="http://www.outlinedemoparty.nl/">Outline '09</a>. Izard and I have been working on our 64k release <span style="font-style: italic;">(the one we couldn't release at Breakpoint last month)</span>, and it looks like we're going to finish it on time. Which would be nice :)Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-27284197.post-78147456046812928532009-04-19T17:13:00.002+02:002009-04-19T17:27:34.677+02:00Breakpoint was nice, but........ but we didn't manage to release anything. When we arrived at friday afternoon we still had a lot of things to do on our 64k entry. So we worked hard (nearly non-stop) until the deadline sunday afternoon, but we weren't able to finish something decent in time. We simply didn't have all content ready (everything was still very rough and unpolished), and to make it worse, it didn't even fit in 64 kilobytes... it was around 77kb.<br /><br />Our new plan is to release this 64k demo at Outline 2009, which is a smaller demoparty helt in a few weeks. We <span style="font-style: italic;">should</span> have enough time to finish it up properly.<br /><br />Anyway, despite not releasing a demo, Breakpoint was really nice. The party, the entries, the hotel. Everything :)<br /><br />ps. Check out <a href="http://www.youtube.com/watch?v=_YWMGuh15nE">Elevated</a>, this years winner of the 4k competition.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-1594215331838305652009-04-08T20:26:00.002+02:002009-04-08T20:41:29.341+02:00Preparing for Breakpoint 09<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVEbxZHxfMIh7b0DixoNI18RIUbBp3GeP1whZLv7NJBrhdzvGo51KIupbDKIY0IO_2Zrw7roU98Si-q1MLGddZTzWN5mJraFhgSOLqYG9j5ID1kkbvvBfl_ovJx_0j8y5oQcFk8g/s1600-h/brokepoint2009.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 221px; height: 64px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVEbxZHxfMIh7b0DixoNI18RIUbBp3GeP1whZLv7NJBrhdzvGo51KIupbDKIY0IO_2Zrw7roU98Si-q1MLGddZTzWN5mJraFhgSOLqYG9j5ID1kkbvvBfl_ovJx_0j8y5oQcFk8g/s400/brokepoint2009.jpg" alt="" id="BLOGGER_PHOTO_ID_5322389065433204962" border="0" /></a>Well, just wanted to post a small update. Quite some time has already gone by since my previous post. I've been working on some completely new tech for nerve (but more on that in some other post) and I've been working on improving our software synthesizer <span style="font-style: italic;">Pandora</span> for our next production, which we hope to release next weekend at <a href="http://breakpoint.untergrund.net/index.php">Breakpoint 09</a>.<br /><br />Last year's visit to Breakpoint was quite nice, so we decided to pay another visit this year. But this time we're going to stay for the whole weekend, and we're actually going to release something there.<br /><br />Anyway, there's still a lot of work to be done. Hopefully we'll manage to bring it all nicely together before the deadline (which is next Saturday in the morning).Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-60101469754467753522008-10-16T20:18:00.004+02:002008-10-16T21:01:20.428+02:00A tiny bit of newsIt's probably time for a small update, since a few things happened since my previous post... I'll try to summarize them in chronological order :)<br /><br />Somewhere halfway last month, September, I took the step to look for a new job. I had been working at <a href="http://en.wikipedia.org/wiki/Coded_Illusions">Coded Illusions</a> for 3 years, and since our game project Nomos was cancelled halfway August, I thought it was a good moment to switch lanes. So I arranged an appointment at <a href="http://www.insidegamer.nl/bedrijf/ontwikkelaar/playlogicgamefactory">Playlogic Game Factory</a> through an ex-colleague (Koert) who works there. They offered me a job as a programmer on their project <a href="http://pc.ign.com/articles/902/902367p1.html">Fairytale Fights</a>, and after thinking it over in the weekend, I decided to accept the offer and start on the 1st of November. Enough time to hand over my tasks. So I thought...<br /><br />About two weeks after that it was announced that our salaries at Coded Illusions wouldn't get paid anymore, that our investors would immediately stop investing, and that within weeks the company would most likely file for bankruptcy. One of the reasons of the investors to withdraw was that due to the recent financial problems it was getting really hard to maintain the company.<br /><br />Around the same time I've heard that this year's <a href="http://www.demozone.nl/2008/">Demozone</a> party, the party for which <a href="http://nervedemosystem.blogspot.com/2008/08/demozone-2008-invitation-released.html">Izard and I made an invitation 64k intro</a>, was cancelled. Again, due to financial problems related to the current worldwide financial instability.<br /><br />I was planning on going to Demozone this year, and I was already working on<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl3A038hTMbj-2eG5u_hhsTtbPMyrCcwAE5qtmpNAtBi2FeGw_7TW_GfnvgzA-sr6K3dBLqSKhjtw5gt8EcmJmAj8i82nbSIMuqxxs-BadTNA2VmmNYqZYJKEQqchq1KIQHTW3TQ/s1600-h/coplanarity.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl3A038hTMbj-2eG5u_hhsTtbPMyrCcwAE5qtmpNAtBi2FeGw_7TW_GfnvgzA-sr6K3dBLqSKhjtw5gt8EcmJmAj8i82nbSIMuqxxs-BadTNA2VmmNYqZYJKEQqchq1KIQHTW3TQ/s400/coplanarity.jpg" alt="" id="BLOGGER_PHOTO_ID_5257822607116967266" border="0" /></a> a 4 kilobyte demo called "Coplanarity". It's a minimalistic vector art intro. I've made a designer tool for it, and a playback engine which currently fits in 2kb of packed code. So I'm still within budget; enough room for a tiny software synth and some content. Anyway, <a href="http://glow.inque.org/stuff/coplanar/movie.mov">here's a small video</a> of a scene in my designer tool. The whole intro will probably consist of such scenes (built up out of animated vector art).<br /><br />Anyway, I started my job at Playlogic Gamefactory today (instead of November 1st) :)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-23176087912811499422008-08-11T20:57:00.003+02:002008-08-12T20:01:03.713+02:00Demozone 2008 invitation releasedOkay, I'm back from Germany, from Evoke 2008. We had plans to release both a 64k demo and a 64k invitation for Demozone (a Dutch demo party that's helt in november in Utrecht), but in the end we only managed to finish the invitation for Demozone. We didn't have much prepared so we had to do almost everything at the party place. So we tried to keep our demo really simple and short.<br /><br />Here's a video of the demo. It's quite short (around 1:30), and we didn't release it as "Inque", but as <span style="font-weight: bold;">"False Idols</span>", since we weren't quite satisfied with the result. The name "False Idols" was inspired by <a href="http://www.pouet.net/prod.php?which=51125">this release</a>, which is a 64k demo that was released last week, and probably one of the best since years.<br /><br /><embed src="http://glow.inque.org/stuff/caps/mediaplayer.swf" allowscriptaccess="always" allowfullscreen="true" flashvars="file=http://glow.inque.org/stuff/caps/demozone2008inv.flv&image=http://glow.inque.org/stuff/caps/demozone2008inv.jpg&autostart=false&showicons=true&usefullscreen=false" height="315" width="560"></embed><br /><br />Anyway, we got ranked 3rd place in the 64k competition, out of 5 entries. Which is something we're pretty satisfied with. I think the demo looked quite okay, but was simply too short and simple. But that's something we could've only done better by taking more time... or simply planning better :)<br /><br />You can download our release <a href="http://www.pouet.net/prod.php?which=51216">here on pouet.net</a>, you can also find a full HD video there and read other people's comments.<br /><br />ps. This is our first release with some new tech in it. It uses subdivided polygonal meshes for the "demozone" model, precalculated ambient occlusion for the soft shadows on the models and more advanced postprocess effects (a fish-eye postprocess effect and a rgb-separation postprocess effect).Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-21768325702627845512008-08-07T10:13:00.003+02:002008-08-07T10:18:00.570+02:00Off to Evoke 2008<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEMLYk1rl2mkAnfUjo49duuSawIbQRA8PWoC3eUi7sgQQbDGUhLWmZ0K45ez9RsA6feACpNLlYulmXfAX02nJ5SqKf8uXkwMyOTTn-ZwvcC98yzMuoCkgG8uw9cwH6s6U-LvGPsA/s1600-h/evoke2008.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 269px; height: 31px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEMLYk1rl2mkAnfUjo49duuSawIbQRA8PWoC3eUi7sgQQbDGUhLWmZ0K45ez9RsA6feACpNLlYulmXfAX02nJ5SqKf8uXkwMyOTTn-ZwvcC98yzMuoCkgG8uw9cwH6s6U-LvGPsA/s400/evoke2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5231686105735035922" border="0" /></a>Tomorrow Izard and I are travelling to Köln, Germany, for <a href="http://www.evoke.eu/2008/">Evoke 2008</a>. We've been there last year and it was actually quite nice, and we won the 64k competition which made it a bit nicer too ;).<br /><br />This time we're staying the whole weekend, and we're planning on releasing some (multiple) things there too.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-10521603188818802642008-07-20T22:42:00.004+02:002008-07-20T22:57:46.429+02:00Gradient texture supportJust wanted to post a small video of a scene that uses a new feature that I've added: gradient textures. You can have variable gradients (with multiple colors), just like Photoshop has them. But only linear gradients (no support for angular, diamond, etc...).<br /><br /><embed src="http://glow.inque.org/stuff/caps/mediaplayer.swf" allowscriptaccess="always" allowfullscreen="true" flashvars="file=http://glow.inque.org/stuff/caps/flames.flv&image=http://glow.inque.org/stuff/caps/flames.jpg&autostart=false&showicons=true&usefullscreen=false" height="396" width="560"></embed><br /><br />And here's a screenshot of all the tools in action that are used for this effect (including the new gradient editor):<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcHgZ4HsFJEgyDK0oUDX8MuloMJGYlEMZJzCJgZ3jbl22oxp0XFfVS5Rys0FeXXk4hN8zHYMHCSk02wY2d0-dePjGCDCI5mDjTA06CKQxgEsBv5-Sp1zPd6qn3rQr38LlhLuDytw/s1600-h/flamesinaction.jpg"><img style="cursor: pointer; width: 229px; height: 163px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcHgZ4HsFJEgyDK0oUDX8MuloMJGYlEMZJzCJgZ3jbl22oxp0XFfVS5Rys0FeXXk4hN8zHYMHCSk02wY2d0-dePjGCDCI5mDjTA06CKQxgEsBv5-Sp1zPd6qn3rQr38LlhLuDytw/s400/flamesinaction.jpg" alt="" id="BLOGGER_PHOTO_ID_5225202325209439490" border="0" /></a><br /><br />Ohw and I'm currently working on dynamic (physics-like) cables. Those will probably be the key-dynamic elements in our Evoke demo, and it'll probably also be the last core feature I'm working on, before starting on the demo itself.Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27284197.post-80529375550844570822008-07-19T22:20:00.002+02:002008-07-19T22:27:38.412+02:00Mesh subdivision added<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7k5CLkVBAtCq-vsRxi0ZFVin2tpHNq3PoWrbS-GVXoUMueQaK6RR9Vxxpd9oVWmtC-WcN2wYyYv1W-5_P3UW2KUp6U3Ve8_ge5PMcapWHgXjbSMS_dn3eDnEkMi9jCwara39Q1w/s1600-h/polysubdivshots.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7k5CLkVBAtCq-vsRxi0ZFVin2tpHNq3PoWrbS-GVXoUMueQaK6RR9Vxxpd9oVWmtC-WcN2wYyYv1W-5_P3UW2KUp6U3Ve8_ge5PMcapWHgXjbSMS_dn3eDnEkMi9jCwara39Q1w/s400/polysubdivshots.jpg" alt="" id="BLOGGER_PHOTO_ID_5224822942574362194" border="0" /></a>Okay, I've finally implemented mesh subdivision. To be precise, I've implemented <a href="http://en.wikipedia.org/wiki/Loop_subdivision_surface">Loop's subdivision algorithm</a>. It took a bit longer than expected, since I was trying to implement the wrong algorithm ;)<br /><br />Anyway, it works great, and it really hides almost all of the geometry artifacts caused by the lossy compression of the vertices. The added screenshots are of the same polygonal model as in my previous post, but this time with 1 iteration of the subvision algorithm performed (quadrupling the polycount).Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27284197.post-63057421425562380132008-07-14T20:33:00.003+02:002008-07-14T20:47:43.167+02:00Polygonal meshes<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH_-wT50oUyOoesPTv1XmkUPNdB0xDw4rueVv_SdWKy3d8c6WiIMG2lmgqJJbIsPCTHGvvlHJExPbzedfCAJeyjuNK6GOAKWfFJs2zGn_WrJnyJs7d6wfvBkrE-AEJ4rCKsUbjvg/s1600-h/polyshots.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH_-wT50oUyOoesPTv1XmkUPNdB0xDw4rueVv_SdWKy3d8c6WiIMG2lmgqJJbIsPCTHGvvlHJExPbzedfCAJeyjuNK6GOAKWfFJs2zGn_WrJnyJs7d6wfvBkrE-AEJ4rCKsUbjvg/s400/polyshots.jpg" alt="" id="BLOGGER_PHOTO_ID_5222939662231424914" border="0" /></a>Here are some shots of a new feature I've been working on (and still am): polygonal meshes. I wasn't supporting polygonal objects before since they can really claim a lot of precious bytes, but Izard really needed them for his plans for our new intro. Luckily I didn't have to invent everything myself, since I found two really great sources of info on how to pack/compress such polygonal objects as efficient as possible: <a href="http://rgba.scenesp.org/iq/demoscene/195_95_256/how/3dmodels/3dmodels.htm">Iq's discussion</a> of his technology from the 195/95/256 64k demo, and <a href="http://www.farbrausch.de/%7Efg/seminars/workcompression.html">ryg's presentation</a> of how to code compressor-friendly.<br /><br />Anyway I'm currently using several tricks to minimize the required space: polygon strips, only storing vertex positions and indices (regenerating normals and automapping uv's at loadtime), quantizizing vertex positions to 8bit per component, delta encoding all values, and reordering streams per component. And it seems to help a lot. I've been able to store a 19800 triangle/9902 vertices sphere into 74000 bytes, which compressed to 4520 bytes. Which is good enough, since I'll be having objects op 1k triangles max probably. (But the achieved compression ratio does vary per object, since it depends on used topology and geometry.)<br /><br />There are two things I still have to implement though: auto UV generation and <a href="http://en.wikipedia.org/wiki/Catmull-Clark_subdivision_surface">mesh subdivision</a> (just like Maya's subdivs), for smoother surfaces without having to store all the polies. Both will be done at load-time.Unknownnoreply@blogger.com1