Digital Foundry Article Technical Discussion Archive [2016 - 2017]

Status
Not open for further replies.
64KB is quite lot for an intro, you can have several drawn textures, objects and music in that.
Those 1-4KB intros are insane when it comes to wrangling data into submission..

IE. some random entry I just found.
 
Last edited:
But how? HOW, DAMMIT!!!
One of the techniques is not to record the final artwork, but to record the steps taken to create the artwork and recreate it at load-time. I wonder if any of the techniques from these tech demos find their way back to real products, or is it just an irrelevant hobby?
 
One of the techniques is not to record the final artwork, but to record the steps taken to create the artwork and recreate it at load-time. I wonder if any of the techniques from these tech demos find their way back to real products, or is it just an irrelevant hobby?
Bu but 64KB !! Includes music and the texturing and shaders and camera angles...I get that these can be included as instructions for the PC to recreate.

But 64KB !! How? That's smaller than a notepad document.
 
One of the techniques is not to record the final artwork, but to record the steps taken to create the artwork and recreate it at load-time. I wonder if any of the techniques from these tech demos find their way back to real products, or is it just an irrelevant hobby?

Futuremark, creators of 3DMark was created by members of the demoscene group Future Crew (loved their demos back in the 90s). They've also made a few games.

A couple other demoscene groups eventually transitioned into game developers, but I can't remember which ones.

[edit] Just remembered that Remedy Entertainment, creators of Max Payne, Alan Wake and Quantum Break was also founded by members of multiple demoscene groups, one of which was Future Crew. [/edit]

Regards,
SB
 
Futuremark, creators of 3DMark was created by members of the demoscene group Future Crew (loved their demos back in the 90s). They've also made a few games.

A couple other demoscene groups eventually transitioned into game developers, but I can't remember which ones.

[edit] Just remembered that Remedy Entertainment, creators of Max Payne, Alan Wake and Quantum Break was also founded by members of multiple demoscene groups, one of which was Future Crew. [/edit]

Regards,
SB
Housemarque (was Bloodhouse + Terramarque) were originally part of the Amiga demo scene weren't they?

Edit:put proper names in
 
Last edited:
But 64KB !! How? That's smaller than a notepad document.
Rendering of a 64 KB / 4 KB intro can be implemented with just a single full screen shader pass.

Example:
https://www.shadertoy.com/view/MdX3Rr

This is 5223 characters of WebGL code (with proper function and variable names). Remove all the white space + use single character names, and it will be less than 3 KB. But it is better to compile the shader to byte code (for example DirectX bytecode or SPIR-V). This way you can fit a massive shader into 64 KB. Dynamic branching allows you to write all your shaders inside a single shader (reducing the setup code amount). Branching costs some GPU performance, but who cares if you are targeting 64 KB and the demo compo computer is sporting a GTX 980 Ti or Fury X.

Most of the 4 KB / 64 KB demos are using analytical SDF (signed distance field) raytracing. You describe the scene as analytical distance field functions inside the shader, and do sphere tracing to find the intersection points (for visible rays, shadow rays, reflection rays and ambient rays). The sphere tracing code can fit in ~10 lines of HLSL. It's the scene description that takes most of the space.
 
Rendering of a 64 KB / 4 KB intro can be implemented with just a single full screen shader pass.

Example:
https://www.shadertoy.com/view/MdX3Rr

This is 5223 characters of WebGL code (with proper function and variable names). Remove all the white space + use single character names, and it will be less than 3 KB. But it is better to compile the shader to byte code (for example DirectX bytecode or SPIR-V). This way you can fit a massive shader into 64 KB. Dynamic branching allows you to write all your shaders inside a single shader (reducing the setup code amount). Branching costs some GPU performance, but who cares if you are targeting 64 KB and the demo compo computer is sporting a GTX 980 Ti or Fury X.

Most of the 4 KB / 64 KB demos are using analytical SDF (signed distance field) raytracing. You describe the scene as analytical distance field functions inside the shader, and do sphere tracing to find the intersection points (for visible rays, shadow rays, reflection rays and ambient rays). The sphere tracing code can fit in ~10 lines of HLSL. It's the scene description that takes most of the space.

@sebbbi dropping knowledge like rappers drop beats :yep2:
 
Bu but 64KB !! Includes music and the texturing and shaders and camera angles...I get that these can be included as instructions for the PC to recreate.

But 64KB !! How? That's smaller than a notepad document.
If they can get it down to 32kb Instructions and 32kb data, the entire thing would fit into a CPUs caches. Who needs GBs of RAM?! :p

What are the working RAM requirements like?
 
If they can get it down to 32kb Instructions and 32kb data, the entire thing would fit into a CPUs caches. Who needs GBs of RAM?! :p

What are the working RAM requirements like?
Old good times it was few megabytes.. ;)
Now a days it can be pretty much anything, intros can generate a lot of data.
 
One of the techniques is not to record the final artwork, but to record the steps taken to create the artwork and recreate it at load-time. I wonder if any of the techniques from these tech demos find their way back to real products, or is it just an irrelevant hobby?

Irrelevant, as in doing rendering engines for games like Battlefield and so on? :) I think you can learn a thing or two by doing these too.
fex. Raymarching was hot in recent years http://www.pouet.net/topic.php?which=7920&page=1
 
Massively computational I believe, this year they had a Titan black and I suspect it probably only ran smoothly with that level of performance.

Last year was totally different but high impact and quite pretty. Reminds me of an old Amiga demo, (state of the art)


Df should do a breakdown of these if the developers are willing to discuss their techniques.

Though that is a full blown demo by our group + FLT. Some of the high-end productions really only run adequate on the GPU used in the competition, or a better, new'er one.
 
Rendering of a 64 KB / 4 KB intro can be implemented with just a single full screen shader pass.

Example:
https://www.shadertoy.com/view/MdX3Rr

This is 5223 characters of WebGL code (with proper function and variable names). Remove all the white space + use single character names, and it will be less than 3 KB. But it is better to compile the shader to byte code (for example DirectX bytecode or SPIR-V). This way you can fit a massive shader into 64 KB. Dynamic branching allows you to write all your shaders inside a single shader (reducing the setup code amount). Branching costs some GPU performance, but who cares if you are targeting 64 KB and the demo compo computer is sporting a GTX 980 Ti or Fury X.

Most of the 4 KB / 64 KB demos are using analytical SDF (signed distance field) raytracing. You describe the scene as analytical distance field functions inside the shader, and do sphere tracing to find the intersection points (for visible rays, shadow rays, reflection rays and ambient rays). The sphere tracing code can fit in ~10 lines of HLSL. It's the scene description that takes most of the space.
Well actually it is far away from really beeing only 64kb. You have the driver, the framework (e.g. DirectX) that does much of the work you save nowadays. So you save many resources for things that are already on your system (like algorythms on your system in the drivers, or whatever the program uses).

but it is still astonishing how small such impressive demos can be. And I really don't wanne know how much time they spend to work those things out.
 
Of course devs go for hand crafted experiences but a mixture of procedural and hand made content (where procedural content could be controlled by the artist in an intuitive manner in the content creation pipeline), could be used to reduce load times maybe... For things that are computationally expensive, results could be baked at runtime during initial load. I don't think devs would spend time on it like that though. Also games that do not have loading screens would have to spend cycles on baking that so it's easy to see why they'd want a dummy process that loads the assets instead of rendering them.
 
Status
Not open for further replies.
Back
Top