Some thoughts on 4k competition rules
category: code [glöplog]
opengl <3
kb is right.
Once we start using Win8 as the default OS on compo machines we have to think about that kind of stuff.
There are some parties which have rules like "all external libraries count into the filesize" or similar. This will become a problem for 4ks - so it's an issue worth discussing.
Once we start using Win8 as the default OS on compo machines we have to think about that kind of stuff.
There are some parties which have rules like "all external libraries count into the filesize" or similar. This will become a problem for 4ks - so it's an issue worth discussing.
Quote:
Once we start using Win8 as the default OS on compo machines
Just wondering why this is taken as a given. Surely running Windows 7 gives the choice of DX11 or DX9, so this would seem to be the better choice for compatibility.
Quote:
so this would seem to be the better choice for compatibility.
compatibility for what? Poorly-coded intros that were written without modern systems in mind?
All Amiga demos/intros are written without modern systems in mind and yet nobody blames them. ;)
Ferris: Windows 8 has been out for four days already, anyone who isn't targetting it already are clearly lamers.
Quote:
Why coding 4k is awesome needs no explanation. And your argument might as well apply to 256 intros running on several MB DosBox.
I beg to differ. You can't do any serious 256b's without raw .com but you can do serious 4k intros without d3dx and dx9 - so that's a bit of a different situation - I'm sorry for destroying all your nice frameworks - but it's time to move on.
Now what kb and ton said makes the situation even more interesting.
So maybe OpenGL is the way to go (and despite some comments here - I want to mention that OpenGL is - given that it's support comes more or less from the graphics driver - the only API which is kind of up to date and available on WinXP, Win Vista, Win7 and Win8 (not RT - but we don't care about RT).
I also tend to disagree with msqrts comment regarding backward compatibility - as long you don't use fancy *NV *ATI/AMD extensions you will be fine. All graphics APIs and shader-compilers are buggy.
For GL - all you need is a current graphics driver - and well you get that stuff via windows update - so a "graphics driver" can be considered to count into a "vanilla installation".
i dont think to abolish dx9 by force is going to cut it, too much resistance from those who are used to it (or using iqs base-framework ;).
but seeing the issues that exist on win7 already and how its not going to get better with win8 i think the progression to dx11 will be coming eventually anyway.
dx9(c) is just a beast that has been around for a long time, also because of the curent generation of consoles. its not going to disappear over night, nor is it a good idea to force it to.
having that said i have a new dx11 capable gfx card since yesterday, so bring it on ;D
but seeing the issues that exist on win7 already and how its not going to get better with win8 i think the progression to dx11 will be coming eventually anyway.
dx9(c) is just a beast that has been around for a long time, also because of the curent generation of consoles. its not going to disappear over night, nor is it a good idea to force it to.
having that said i have a new dx11 capable gfx card since yesterday, so bring it on ;D
Quote:
All Amiga demos/intros are written without modern systems in mind and yet nobody blames them. ;)
Those are static targets - so rules don't have to changes for that platforms anymore.
Windows has been and is a moving target - so we should at least discuss these issues properly.
Quote:
All Amiga demos/intros are written without modern systems in mind and yet nobody blames them. ;)
cute.
ah, las beat me to that one :)
las: I can't really see that it makes a big difference if the shader-compiler comes with your driver-installer or some Microsoft runtime-installer. It's still conceptually 3rd party code, but we accept it because it's the only way to do something interesting.
More on the situation: http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275%28v=vs.85%29.aspx
I don't see why dx 9 is different from 11 here?
Of course dx9 without d3dx is a lot less appealing, but dx11 without shader compiler, meaning only room for the most basic shaders (which you can't do without) and its large setup for graphics pipeline rendering isn't going to cut it either.
Even 64ks will be seriously limited if you have to use shader bytecode, i remember shader blobs in mb size..
GL implementations ARE a lot more buggy/undefined (even though the specs are better defined) that dx - tell me what you wrote it on, and I tell you what it runs on. (unless you are only doing very old and tested stuff).
I don't see why dx 9 is different from 11 here?
Of course dx9 without d3dx is a lot less appealing, but dx11 without shader compiler, meaning only room for the most basic shaders (which you can't do without) and its large setup for graphics pipeline rendering isn't going to cut it either.
Even 64ks will be seriously limited if you have to use shader bytecode, i remember shader blobs in mb size..
GL implementations ARE a lot more buggy/undefined (even though the specs are better defined) that dx - tell me what you wrote it on, and I tell you what it runs on. (unless you are only doing very old and tested stuff).
Win7 aint usable for textmode-demos due to its fucked-up-console, so ppl keep using XP for that.
Win8 obviously aint usable for 4ks (as we are used to), so ppl will keep using XP for that.
maybe if you really want new rules, just start to differ between XP4k (which is like a set platform by now with dX9 not getting updated anymore) and Win7+4k.
i dont care anyway, if i want to have as much content as possible i will continue using dX9 in preference to anything else, as long as nothing else makes it possible to have even more content than with dX9. ;)
if i want fancy new features i´d go for dX11 today aswell. ;)
so maybe just let ppl decide themselves what they´d like to use.
i am going back to coding my calculator now ;)
Win8 obviously aint usable for 4ks (as we are used to), so ppl will keep using XP for that.
maybe if you really want new rules, just start to differ between XP4k (which is like a set platform by now with dX9 not getting updated anymore) and Win7+4k.
i dont care anyway, if i want to have as much content as possible i will continue using dX9 in preference to anything else, as long as nothing else makes it possible to have even more content than with dX9. ;)
if i want fancy new features i´d go for dX11 today aswell. ;)
so maybe just let ppl decide themselves what they´d like to use.
i am going back to coding my calculator now ;)
Why not let the prods speak for you? Go make kickass DX<whatever version you prefer here> 4ks! I hope I'll get something done with GL in the meantime.
I actually meant just that but probably messed up my english somehow: the core versions have always worked where they should, just don't go for the latest version or NV/ATI/any vendor-spesific extensions and you'll have quite a large audience.
But like Psycho said, the support is varying - I kinda regret changing to an nvidia because it's so much sloppier with GLSL. Well, shaderanalyser and a couple of AMD-using friends help a lot.
It's also something that everyone who can run the intro has, so in the hypothetical situation where you are showing a 4k to a buddy of yours his computer will already have it, possibly unlike the DX SDK.
Quote:
I also tend to disagree with msqrts comment regarding backward compatibility - as long you don't use fancy *NV *ATI/AMD extensions you will be fine.
I actually meant just that but probably messed up my english somehow: the core versions have always worked where they should, just don't go for the latest version or NV/ATI/any vendor-spesific extensions and you'll have quite a large audience.
But like Psycho said, the support is varying - I kinda regret changing to an nvidia because it's so much sloppier with GLSL. Well, shaderanalyser and a couple of AMD-using friends help a lot.
Quote:
It's still conceptually 3rd party code, but we accept it because it's the only way to do something interesting.
It's also something that everyone who can run the intro has, so in the hypothetical situation where you are showing a 4k to a buddy of yours his computer will already have it, possibly unlike the DX SDK.
las: Windows XP is static target, too. And well... since I found myself making a separate framework/editor for every single 4k I made, you don't get credit for destroying anything. ;)
But still it might be good idea to dig up new OpenGL specs and experiment with new features a bit, as DX11 won't cut it in 4k's anyway.
But still it might be good idea to dig up new OpenGL specs and experiment with new features a bit, as DX11 won't cut it in 4k's anyway.
how about skipping 8 and metro due to insurmountable compatibility differences and just use 7 and later 9 when ms once again learned they failed and hit their "every second thing is shit" rule.
If this was a voting, I'd vote against abolishing D3D9. Yes, you need to get an ancient set of DLLs to make it usable, but that's how it has always been. (In fact, it's much better now that there are no new D3DX versions. Remember 2005-2009 when you had to install a newer version of d3dx_??.dll after each party to review the releases? Nightmare.)
It's true that D3DX is problematic for outreach ("haha, 4k my ass, I need a gazillion megabytes of DLLs to run that!"), but again: that's how it has always been.
As long as there's a significant number of D3D9 intros and maintaining a D3D9-compatible Windows installation isn't too much of a hassle, I see no need for any abolishment. And as far as I know, that situation didn't change with Windows 8. (And even if it did: Who cares? Nobody cared about Vista either :)
It's true that D3DX is problematic for outreach ("haha, 4k my ass, I need a gazillion megabytes of DLLs to run that!"), but again: that's how it has always been.
As long as there's a significant number of D3D9 intros and maintaining a D3D9-compatible Windows installation isn't too much of a hassle, I see no need for any abolishment. And as far as I know, that situation didn't change with Windows 8. (And even if it did: Who cares? Nobody cared about Vista either :)
Quote:
It's also something that everyone who can run the intro has, so in the hypothetical situation where you are showing a 4k to a buddy of yours his computer will already have it, possibly unlike the DX SDK.
msqrt: I guess we have different kind of friends. Quite a few of my friends tend to not have up- to-date drivers at all. Some of them have no drivers installed at all, and prefer it that way because "then the text is nice and big". So by that logic, every new GPU feature should be out of the window for me.
I prefer being a bit pragmatic here; D3DX clearly isn't some massive texture/mesh collection, all it contains is a compiler and some utility functionality. Yes, you can find some sneaky tricks in there, but you can find sneaky tricks in GLU and WinAPI as well. And with D3D over OpenGL, you actually get pretty decent non-NV drivers, which for me is a win.
Rejecting D3D for intros just because of some DLL-butthurt seems silly to me. Just install the needed runtimes and be done with it. Or if you don't want to do that, watch the YouTube version.
In the context of running a compo, I don't think having a Windows 7 install and a installing a couple of run-times is all that bad. Not yet, anyhow. Remember when we had to have a working 486 with a GUS around just in case some stubborn old-schooler wanted to deliver a contribution?
Meh.
I remember a time when .net entries were not allowed because it required an additional runtime not available on a freshly installed system.
Apart from the convenience of dx9 - how is that different to the time when Win8 becomes the default OS on compo machines (whenever that might be)?
Apart from the convenience of dx9 - how is that different to the time when Win8 becomes the default OS on compo machines (whenever that might be)?
kusma: Okay, our friends are different :)
I'm not strictly against D3DX or other runtimes, but (imo) it'd be the nicest to get all the dlls in the archive along with the prod itself - no hassle of finding what I need and instantly see everything that was used.
I'm not strictly against D3DX or other runtimes, but (imo) it'd be the nicest to get all the dlls in the archive along with the prod itself - no hassle of finding what I need and instantly see everything that was used.
Oh so I just can dump all my textures and samples into the d3dx*.dll that i'm redistributing? Sorry msqrt, nobody will allow that :) The prod is the executable alone. Period. Everything else should be part of the platform and not of the prod. In the end it's the party organizers who decide if d3dx is part of their supported platforms or not.
Quote:
Just install the needed runtimes and be done with it.
With exactly the same argument you could also ask for allowing the current Visual Studio standard library runtimes - which are IIRC not allowed in the most 4k/64k intro compos.
Quote:
but again: that's how it has always been.
Nope. That's not true. True is that there have always been pretty ugly hacks. But e.g. import by ordinal has been disallowed for a reason. There were already some pretty nice discussions when people started to allow D3DX in competitions, Microsoft changed their ways of distribution regarding that several times.
We are walking a fine line here - I have no problem with the usage of d3dx and d3d9 and I have used it before (In 2006/2007, and that was when such a setup could be considered "End User Default Shit" - even back than using D3DX felt pretty ugly) - but I think of it as something deprecated, maybe not yet deprecated enough.
Quote:
Some of them have no drivers installed at all, and prefer it that way because "then the text is nice and big".
Well - I'm sorry I don't have that kind of friends.
Quote:
I'm not strictly against D3DX or other runtimes, but (imo) it'd be the nicest to get all the dlls in the archive along with the prod itself - no hassle of finding what I need and instantly see everything that was used.
In case that is license wise OK - that would be some kind of a compromise. Would also help the judgement... And maybe it will motivate some of you to step away from that "old stuff".
Doesn't that slow ass dx shadercompiler piss you off? If not you have either too much free time or your shaders are that short you could also store the binary.