Some thoughts on 4k competition rules
category: code [glöplog]
not trolling! i'm just not in 4ks lately, either producing or watching.
in fact, i would be happy too have more 64k prods, they are way more pleasant to watch for several reasons... :]
in fact, i would be happy too have more 64k prods, they are way more pleasant to watch for several reasons... :]
In this prod the specific (as far as I know) DX features I used:
- creating cube mesh in d3dx with lockable VB/IB
- SetRenderState - set almost anything by specifying just 2 bytes
- HLSL
OpenGL has cubes (GLU), but you can't get their VB/IB that easily, so you have to store the cube somewhere. Also switching renderstates will take more space because of you do this via different OpenGL functions with differing parameter count and arguments that don't fit in single byte. And I found HLSL much more forgiving than GLSL, which translates to slightly less code (no explicit casts and float suffixes required).
And when it comes to 64k - they are now just like demos in terms of what can be done, but with 10x pain.
- creating cube mesh in d3dx with lockable VB/IB
- SetRenderState - set almost anything by specifying just 2 bytes
- HLSL
OpenGL has cubes (GLU), but you can't get their VB/IB that easily, so you have to store the cube somewhere. Also switching renderstates will take more space because of you do this via different OpenGL functions with differing parameter count and arguments that don't fit in single byte. And I found HLSL much more forgiving than GLSL, which translates to slightly less code (no explicit casts and float suffixes required).
And when it comes to 64k - they are now just like demos in terms of what can be done, but with 10x pain.
Yes, if the high and mightly las wants to take an axe to D3DX, why not glu32 as well? >_>
Wait, are there 4ks with glu? I can't say I remember seeing it anywhere..
For the record, I don't think I have been able to run a single 4k intro (any worth watching) on any of my current boxes for years. They all need stuff I don't want/need to install.
And that includes Win XP, 7, and 8.
Granted, it's been also years since my boxes are "scene-friendly" boxes, but still...
And that includes Win XP, 7, and 8.
Granted, it's been also years since my boxes are "scene-friendly" boxes, but still...
We've possibly reached the point where pretty much the only people able to actually watch 4k demos in realtime are demo coders - which is a pretty huge tragedy.
psonice: hardly anyone has a pc powerful enough to run top end demos in realtime anyway these days except demomakers, hardcore gamers and people working in gamedev/3d graphics. and most of them probably still watch the youtube version..
oh well. :)
oh well. :)
@msqrt: I have used elements from glu in some of my intros :)
To me, this is all saying we're on the wrong platform. I suspect that in a few years the traditional pc will be just for office work and coding / content creation anyway, so there will have to be a shift if we want more of an audience than the demoscene itself.
Then again, the other 'modern' platforms aren't exactly appealing for demo making, with perhaps the exception of android.
Then again, the other 'modern' platforms aren't exactly appealing for demo making, with perhaps the exception of android.
(Or of course webgl!)
I think I have enough hardware... not high end by all means, but I'd say good enough. Minimum quad cores (either i7 or phenom x4), with at least ati hd5700 (some nvidia boxes around too). It's just that I'd rather watch a 4k in youtube than having to download and install dx redistributables (and also finding the right one to install) and/or special versions of the gpu drivers.
I don't usually have that problem with demos and I like to watch them realtime whenever my hardware allows it.
I don't usually have that problem with demos and I like to watch them realtime whenever my hardware allows it.
Quote:
And I found HLSL much more forgiving than GLSL, which translates to slightly less code (no explicit casts and float suffixes required).
That's not really correct. Float suffixes as in "f" were never required in GLSL - besides that - the situation with the implicit casts has been improved since they changed the GLSL Spec to support at least some implicit cast conversions.
Quote:
Yes, if the high and mightly las wants to take an axe to D3DX, why not glu32 as well? >_>
Depends whether glu32.dll is to be spread with a vanilla windows or not.
And I would prefer it if the little mudlord would not destroy a factual discussion (even if it's biased as hell) with his "we all laughed our ass offs"-funny ironic comments. Thanks.
las: I think he was referring to ".0", i.e lacking implicit casts for constants. But that's just a "#version 120" or something away anyway.
las: I might have remembered it wrong then. But still I think you have (or had) to write "1.0" instead of plain "1", and I'm not sure whether ".5" would work, too. Also casting scalars to vectors had to be explicit. And GLSL spec changes don't do much good until drivers follow and get propagated to all end users (who update gfx drivers once per 150 years on average).
We are using #version 4XX - that one is not lacking implicit casts.
Quote:
who update gfx drivers once per 150 years on average
Same is true for certain laptop manufacturers, where you are forced to use their drivers because regular AMD/nVidia drivers won't work. (Lenovo updates their switchable graphics driver for my laptop about once a year, which has really frustrated me when I had to use a broken driver for half a year...)
Quote:
Also casting scalars to vectors had to be explicit.
That one is still true. :/ Besides that .5 and 1. always worked iirc.
But back to topic - we don't want to discuss the GLSL Specification here.
Quote:
We've possibly reached the point where pretty much the only people able to actually watch 4k demos in realtime are demo coders - which is a pretty huge tragedy.
Quote:
I'd say sticking with the runtime downloads is maybe a win for coders, but a serious lose for the scene because you're pushing people to watch the video - which might be cool, but is nothing like as cool as seeing the same thing delivered in 4k.
Quote:
I'm very sad every time I have to check a cool prod from youtube instead of running it myself :(
Imho modern demoscene productions should be allowed to be performance hungry - but not total compatibility & dependency disasters and the comments above quite nicely underline the whole issue.
So... any hints what party organizers should do about the d3dcompiler dlls in let's say about three years when demo coders finally realize there's a thing called the Windows SDK?
My only thought about the Windows SDK is that IIRC it didn't have the d3dcompiler.h which it should've had :O
Well by following the reasoning from the beginning of the thread, i'd say let's do the following for demos to avoid people having dll-butthurt,etc.
Forbid d3dx9 (a lot of people considered it to be cheating anyhow).
Since noone has and most won't be upgrading to win8 anyhow, forbid anything related to that.
While we're at it let's forbid amiga,c64,etc since most people we want to show 4k's wont have it.
Since win8 metro ?won't allow other browsers? we must follow what IE10 supports, so no webgl. (and no flash either!)
This means all demos must use html5 canvas in the future for minimum butthurt. And since you can runt demos with it http://www.baktery.com/mind/canvas.html then i'm all for it!
Forbid d3dx9 (a lot of people considered it to be cheating anyhow).
Since noone has and most won't be upgrading to win8 anyhow, forbid anything related to that.
While we're at it let's forbid amiga,c64,etc since most people we want to show 4k's wont have it.
Since win8 metro ?won't allow other browsers? we must follow what IE10 supports, so no webgl. (and no flash either!)
This means all demos must use html5 canvas in the future for minimum butthurt. And since you can runt demos with it http://www.baktery.com/mind/canvas.html then i'm all for it!
KK:
well, yes - but that's exactly why people enjoy watching them much more than usual 4ks otoh. (sorry for offtopic)
Quote:
And when it comes to 64k - they are now just like demos in terms of what can be done, but with 10x pain.
well, yes - but that's exactly why people enjoy watching them much more than usual 4ks otoh. (sorry for offtopic)
kb: my thinking on it, from the angle of 'what's best for the scene maybe isn't what's best for democoders':
1. We can accept whatever comes with windows, plus whatever comes with most gfx drivers (I think drivers are somewhat irrelevant - if we're writing for the hardware, we need the software to support it, so we have to expect reasonable drivers).
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". As it is, we currently have to say "Install this huge DX runtime from here, then run this" which is kind of bad, but mostly justifiable. Emailing a 4k exe plus a big dll crosses a line for me, where i'm either going to have to spend time explaining why 4k + ?mb is still 4k and trying to justify it - which is going to be hard.
So I can only say don't allow it, and deal with the fallout (easy for me to say :) Hopefully everyone will find a better way, whether it's webgl, OpenGL, or some dirty trick.
1. We can accept whatever comes with windows, plus whatever comes with most gfx drivers (I think drivers are somewhat irrelevant - if we're writing for the hardware, we need the software to support it, so we have to expect reasonable drivers).
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". As it is, we currently have to say "Install this huge DX runtime from here, then run this" which is kind of bad, but mostly justifiable. Emailing a 4k exe plus a big dll crosses a line for me, where i'm either going to have to spend time explaining why 4k + ?mb is still 4k and trying to justify it - which is going to be hard.
So I can only say don't allow it, and deal with the fallout (easy for me to say :) Hopefully everyone will find a better way, whether it's webgl, OpenGL, or some dirty trick.
Maybe it isn't even the "best for the scene" - regarding the amount of 4k releases that maybe wont be created because this pisses all d3d/d3dx coders off.
Actually it would more or less mean to indirectly enforce the usage of OpenGL for 4k intros. (Due the nice choices Microsoft made)
Besides that - I totally second was psonice said.
Actually it would more or less mean to indirectly enforce the usage of OpenGL for 4k intros. (Due the nice choices Microsoft made)
Besides that - I totally second was psonice said.
*what
ton: But that's also the reason we have 10x less 64k's than in times before Chaos Theory came out. But on the other side, when 64k does show it's usually a very good one. :)
psonice: WebGL is in just as bad position as D3DX is because IE doesn't support it (and it has very good reason not to, so no blame on MS here).
Anyway, I plan to refresh my OpenGL knowledge a bit anyway just because of DX11 setup cost.
psonice: WebGL is in just as bad position as D3DX is because IE doesn't support it (and it has very good reason not to, so no blame on MS here).
Anyway, I plan to refresh my OpenGL knowledge a bit anyway just because of DX11 setup cost.