Some thoughts on 4k competition rules
category: code [glöplog]
Psycho - let's me repeat.
Here
Quote:
The D3DCOMPILER_44.DLL from the Windows SDK is not a system component and should not be copied to the Windows system directory. You can redistribute this DLL to other computers with your application as a side-by-side DLL.
Here
Psycho: No, the Windows SDK doesn't put anything into the system directories. Also, it's hundreds of megabytes and you really can't expect people to install it.
Quote:
2. Consider the common task of emailing a 4k to a friend. Ideally we want to just send the .exe and say "run this, you'll be blown away". [...]
how adorable. i have NEVER been able to email an exe to any friend in the last 5 years. furthermore, i have never been able to download my own prods from my own website in my own computers in basically the totality of computer i have tried to, due to antiviruses and stuff. one does not simply email or even download an intro anymore, even if (or, especially if) it's only a 4500 bytes zip.
i think the discussion will get outdated when ryg or mentor/blueberry develop a DX byte-code compressor, either as an standolone thing or as part of kkrunchy/crinkler (perhaps you can mark the section with #pragma data_seg(".shadercode") and then some different model is used for compression. i mean, the "information content" in a text based shading language must be the same as the information content in a bytcode one, ergo both must be compressible to the same final size. it's all about finding the right enconding/compression.
this might be add some bytes to the decompression code of the intro, but eh, wtf, we are gaining so much functionality-wise by being able to access DX11 features.
in the meanwhile, i'd personally say "if the compiler is not part of the standard distribution, then don't allow distributing it with the intros and don't require its installation". i'd be with lass. i wouldn't forbid DX9 intros though, just that if i was to make a party and have a compo with a DX11 intro that brings the compiler dll, i wouldn't allow it.
now, somebody, code the damn compressor.
this might be add some bytes to the decompression code of the intro, but eh, wtf, we are gaining so much functionality-wise by being able to access DX11 features.
in the meanwhile, i'd personally say "if the compiler is not part of the standard distribution, then don't allow distributing it with the intros and don't require its installation". i'd be with lass. i wouldn't forbid DX9 intros though, just that if i was to make a party and have a compo with a DX11 intro that brings the compiler dll, i wouldn't allow it.
now, somebody, code the damn compressor.
(and when i said "my own computers in basically the totality of computers i have tried to", which sounds weird, i meant computers i "owned" at different jobs or at my parents - basically all the other computers that i had to work with regularly on which i didn't have the power to tweak the config too much)
Maybe there's another way - and the fact that what we're pretty much all saying is that almost nobody can watch a 4k any more kind of points to it ;)
Get rid of d3dx, the compressor dll, the whole lot - and also drop the realtime requirement. Let the 4k just dump raw video + audio data that can be converted to lossless video for the compo and mp4 for youtube etc.
I'm semi-serious here - I'd like to see something like this alongside the realtime competitions.
Get rid of d3dx, the compressor dll, the whole lot - and also drop the realtime requirement. Let the 4k just dump raw video + audio data that can be converted to lossless video for the compo and mp4 for youtube etc.
I'm semi-serious here - I'd like to see something like this alongside the realtime competitions.
i wouldn't oppose at all to that. removing the realtime factor would be a big relieve (i'm sure many people from the outside would join while still being totally demoscenish).
So, you're basically proposing 4k procedural animation category? I quite like that idea :)
iq, it seems wildly optimistic to assume that you can compress the output from some microsoft dll to the same size as carefully obfuscated source.
I just ran an example: The shaders in this have no stitching, and is 7445 obfuscated source (2538 crinkled in the intro, 2800 .rar file). The 5 passes (that barely shares anything) compiles to (in the settings that seems to produce the smallest blobs) 61880+2184+704+5388+1124. The whole compresses to 11437 .rar. Even just the 4 small passes are 3078 .rar.
But maybe if you do your OWN shader compiler to the secret bytecode format, producing carefully packed-size optimized code it could be possible. I know blueberry got the absolutely perfect profile for that job ;)
I don't know if the blob is even the same format that is sent to the IHV compiler, in which case the format should be somewhat obtainable, even if confidential ;)
I just ran an example: The shaders in this have no stitching, and is 7445 obfuscated source (2538 crinkled in the intro, 2800 .rar file). The 5 passes (that barely shares anything) compiles to (in the settings that seems to produce the smallest blobs) 61880+2184+704+5388+1124. The whole compresses to 11437 .rar. Even just the 4 small passes are 3078 .rar.
But maybe if you do your OWN shader compiler to the secret bytecode format, producing carefully packed-size optimized code it could be possible. I know blueberry got the absolutely perfect profile for that job ;)
I don't know if the blob is even the same format that is sent to the IHV compiler, in which case the format should be somewhat obtainable, even if confidential ;)
i don't wanna offend anyone, but isn't that kinda stupid to make it a video competition? how's that gonna work? you deliver 2 files? an old-style exe that's not running due to no d3dx restrictions and an additional video file? that's kinda bs. first of all you need all that d3dx and compiler trickery to reach 4k and even if you make it a video dumper the essence of being the 4K itself is gone. so... where is that point?
sorry.. i don't understand.
sorry.. i don't understand.
Finally a real chance for OpenGL in intro coding...
iq: MS asm bytecode has lot more content than HLSL text. Asm bytecode is compiled, so not looking too far, you have additional register allocation information. And MS bytecode has some redundant info (for example, instruction length can be derived from opcode) and bits that are either unused or stay zero for 99% of the shader (like absolute/saturate modifiers, or register types). Of couse entropy may be still on HLSL level, but the decompressor that achieves this entropy would have to be too big to be of any practical purpose.
And 4k procedural animation sounds cool, too. It shouldn't be much harder to dump uncompressed video than to dump wav.
And 4k procedural animation sounds cool, too. It shouldn't be much harder to dump uncompressed video than to dump wav.
Please take the 4k procedural animation seriously.
I 100% agree on this one.
The non realtime compo is a must.
In the past I spoke briefly on other topics on this proposal, but nobody took me seriously. Basically saying that it is for what the wild compos are for... and bla,bla,bla... but that's missing the point!
The 4k limit with no extra OS stuff, just math, on a non-realtime system deserves a place in the demoscene!
It's inevitable, it'll happen, it's just a matter of who will do it first.
The platform it's not an issue, even a DOS program that generates raw images and small raw sound files for each image is is good enough.
Look... seriously, everyone watches demos now on youtube.
I think the only PCs that run some demos now are the developer PC and the machine compo LOL
The computer / device scene is changing, everyone has a lower pc spec now... not higher, because, everyone now uses a laptop, not a desktop... and everyone will use a tablet, or a mobile phone, at least in the home free time...
I'm not saying that the real-time stuff is over... far from it. I just wish that the scene could grew more on the direction of limited size and unlimited time prods.
And sure ... we need a youtube with 60 fps and 720p / 1080p with a high bitrate :) I'm sick of seeing demos on youtube at 30fps with a low bitrate :(
Seing the demos of mindcandy 3 on Bluray at 60fps is awesome!
I 100% agree on this one.
The non realtime compo is a must.
In the past I spoke briefly on other topics on this proposal, but nobody took me seriously. Basically saying that it is for what the wild compos are for... and bla,bla,bla... but that's missing the point!
The 4k limit with no extra OS stuff, just math, on a non-realtime system deserves a place in the demoscene!
It's inevitable, it'll happen, it's just a matter of who will do it first.
The platform it's not an issue, even a DOS program that generates raw images and small raw sound files for each image is is good enough.
Look... seriously, everyone watches demos now on youtube.
I think the only PCs that run some demos now are the developer PC and the machine compo LOL
The computer / device scene is changing, everyone has a lower pc spec now... not higher, because, everyone now uses a laptop, not a desktop... and everyone will use a tablet, or a mobile phone, at least in the home free time...
I'm not saying that the real-time stuff is over... far from it. I just wish that the scene could grew more on the direction of limited size and unlimited time prods.
And sure ... we need a youtube with 60 fps and 720p / 1080p with a high bitrate :) I'm sick of seeing demos on youtube at 30fps with a low bitrate :(
Seing the demos of mindcandy 3 on Bluray at 60fps is awesome!
It's a LSUT (Limited Size Unlimited Time) Demo :)
Quote:
The 4k limit with no extra OS stuff, just math, on a non-realtime system deserves a place in the demoscene!
And where exactly do you draw the line? No C-libs? No DX?
You just need to output a char
I would say no dx. DOS is a good platform :)
But yes... the platform is the issue here, i agree.
Probably a virtual machine optimized for small code would be ideal ... But I do not know if it's worth the work.
But yes... the platform is the issue here, i agree.
Probably a virtual machine optimized for small code would be ideal ... But I do not know if it's worth the work.
Unlimited time? ;)
Naive path tracing can produce great images in a small amount of code, but how many days do you want to wait for that 3 minute intro?
And if making up completely new categories, please consider that awesomeness=quality/log2(size) (more or less like proposed by kb in another thread) doesn't peak at 4k, more likely in the 8-16k range. Slowmo cpu code and simple output (i don't think windows has a builtin h264+mp3 encoder yet) would probably take less space than d3d setup, but still...
Naive path tracing can produce great images in a small amount of code, but how many days do you want to wait for that 3 minute intro?
And if making up completely new categories, please consider that awesomeness=quality/log2(size) (more or less like proposed by kb in another thread) doesn't peak at 4k, more likely in the 8-16k range. Slowmo cpu code and simple output (i don't think windows has a builtin h264+mp3 encoder yet) would probably take less space than d3d setup, but still...
The problem with 4k procedural animation is that the home viewer is not going to appreciate that it's 4k if they're just downloading a video file or watching it online. With 4k procedural graphics or music, it usually takes anywhere between a few seconds to a minute to calculate, so it's not a big deal to download the executable and wait. With an animation, you're going to be waiting a while if you run the exe on your own PC. Compo organizers won't be running the exe either, unless they get entries well in advance and save the output. So the end result is, you're watching a video and taking the creator's word for how it was created.
Quote:
Look... seriously, everyone watches demos now on youtube.
I think the only PCs that run some demos now are the developer PC and the machine compo LOL
do you all have macs or what? or are you still using DOS? a last years budget pc is all you need to watch even the newest demos in realtime.. (see my last post)
Well, for pratical reasons it can't be unlimited time...
But you could do something like this in the compo....
The rendering needs to be done in the party hours before the compo, probably at the start of the party.
Groups would have to race against time... , the longer you take to finish the prod... the shorter time you would have to render LOL
But you could do something like this in the compo....
The rendering needs to be done in the party hours before the compo, probably at the start of the party.
Groups would have to race against time... , the longer you take to finish the prod... the shorter time you would have to render LOL
For example... with path tracing an absolute end time for rendering is not an issue. We are simply left with poorer quality demo with more noise...
About the platform, I think the important thing is not to use OS stuff, using win32 is OK as long as you don't use DX ou OpenGL or other OS stuff, using multithread is OK. Using stuff like windows voice synth, or DLLs for making random images, or a graph lib like OpenGL or DirectX is, in my IMHO not OK...
Psycho, I think DirectShow has it somewhere..
This is an eternal platform, people decades from now can still be trying to compete against demos made now!
The only thing that can evolve are platforms with shorter ops, and more cores to render the thing.
The only thing that can evolve are platforms with shorter ops, and more cores to render the thing.