Marcus52 :
All that being said though, what is holding game developers back is the developers themselves, not any API. That's ridiculous. DX is just a tool to make life easier for you, it's not a limitation. Step out on the wild side, my friends, and expand what can be done instead of gripe about what can't be.
true that direct X was designed to bypass the operating system as a method to make the most with the processing power available.
but just as the operating system got in the way of games, direct X has gotten in the way by means of a puzzle that might not be suitable for all artistic individuals.
the article on tomshardware is pretty much talking about one thing.
direct X is a shading technique at its core level.
wanting to have objects in 3D can be had with your own mathematical programming.
3D computer aided drafting is an example of a 3D visual without using direct X
what makes direct X bloatware is all of the techniques used to lock the shader from being changed and/or manipulated.
each direct X version offers an upgrade to the amount of shading detail available.
and it's done this way to prevent game developers from releasing too much shader detail/resolution.
it wouldnt be fair for somebody to use customized shaders that appear to look like direct X 11 when the current version of direct X at the time of game release was direct X 8
with the shader locked.. you are forced (regulated really) to put a cap on the amount of shader quality.
it makes the field fair for people who cannot customize their own shaders.. but unfair for people who can make improvements to the shader.
normally people who could customize their own shader are offered a job doing something else.
their extra ability gives them higher priority to fill the job.. usually because the job requires advanced know-how.
what AMD stated is totally true.. if there is no performance boost of the graphics card to compensate for the locking mechanism of the shader, the performance will be less because the system is bloated (known as overhead)
even if you boost the performance to compensate for the lock, removing the lock (and agreeing to leave the shader alone) will remove the overhead and give a faster performance.
many of you should already know this to be true, thanks to consoles.
these games run on slower graphics cards because the entire system as a whole (cpu, chipset, graphics) doesnt have to run much of an operating system.
its the same thing as removing weight from a vehicle to make it go faster on the drag strip.
door panels.. seats.. carpet.. dashboard.. gas tank..
removing those can make the car 200 - 300 lbs lighter.
and that might be enough to lower your drag time by a full second.
for game developers, removing the bloat can give more frames per second.
and the important part of more frames per second means you can add more to the game until the frames per second go back down.
it might amount to a bigger map.. higher texture resolution.. more 3D wires
that is to say, your video game will have more details (or a bigger map) compared to another video game.
then you could use those extras as a selling point to lure in more customers.
but lets be reasonable here.
if you remove the lock and allow people to customize the shaders to whatever they want, eventually you are going to see eye-popping realism that makes the use of 3D glasses worthless.
you dont need 3D glasses to make the images appear to be visually life-like.
its all in the amount of shader detail.
anybody can draw a 3D cube.. but it takes a real artist to add shading to make the cube appear to lift of the page (or sink deeply into it)
think about what that would do to the current economy.
there are loads of new televisions that simply cannot produce the fine details to make the video look like its sinking deep into the screen.
cheap/junk lcd's have a hard time with color accuracy and sharpness.
then you want to go on and on about displaying 3,000 different shades of black?
the more shades of black that you have at your disposal.. the better your chances will be at making the picture look 3D
CRT's have come a long long long way.
you can rest your forehead up to a CRT and be mentally fooled into thinking that what is before your eyes is actually there in front of you.
all you have to do is forget that your forehead is touching the television.
state-of-the-art visual technology has moved on from 3D
you can rest your forehead up to a television and literally see for miles.
building a wall of televisions and putting a camera behind them.. you wouldnt even know that there is a wall of television there until you walked into the wall.
its like walking into an invisible shield.
if you allow game developers to produce graphics with that much clarity.. there are hundreds of televisions already in peoples homes that wont display the clarity.
you will see the true quality of the television.
and that would be a living hell for all television manufacturers.
two televisions of the same model number might have very different results.
the whole situation would look like a benchmark results graph that many of us have seen.
the only difference would be the prices that dont gradually increase as you move from bottom to top.
the results would vary all over the place like a kaliedoscope.
even the televisions that claim to support 3D glasses would have their shortcomings.
its like a bad smell coming from a bag, and you open the bag to see how ugly the situation actually is.
but i dont want to discredit the television industry too much.
i simply cannot.. because if the television can actually provide 1920x1080p resolution, the only thing holding back the television is the number of shades that the television is able to display.
there really is a downside though.
because the number of pixels limits the amount of 'mist' for shading.
if you had a cube with a shadow cast on the floor, you would want to use as many shades of black as possible to soften the shadow as it fades away.
but because 1920x1080p isnt an extremely high amount of pixels.. you simply cannot use all of the shades of black that are wanted.
you have to shorten the fade, and that means less shades used.
so what does all of this mean about direct X ?
leaving the lock in place will save a lot of embarassment.
game developers who arent capable of creating extra shades of black (or any other color) will have their lacking ability shown publicly.
televisions that arent capable of displaying all of the shades of black (or any other color) will have their lacking ability shown publicly.
the price paid for televisions might not match the ability of the television to show the shades of black (or any other color)
and that means people will be upset that they paid more for their television, but it doesnt have the same ability of another television that costs less.
by keeping the shader locked, it evens out the playing field quite a bit.
it gives the game developer more room to be unique with the maps.. and the storyline.. and everything else that makes a game unique.
the graphics have the potential to be exactly the same.. which leaves the storyline and details where all of the entertainment is at.
lets have a video game comparison.
back when nintendo was popular.. zelda had many many rooms, but most of them looked almost exactly the same.
now, current games like bioshock 2, have maps with many many different rooms.. but the copy and paste is much less.
sure, each room has a kitchen and a bathroom.. so of course you are going to see a lot of fridges and stoves and toilets.
but the living rooms and bedrooms are different.
and this doesnt really serve justice to a well refined map.
video games that are like a movie have the best example.. its possible to see every area of the map different because no two places are the same location.
anyways..
i havent yet spoken about the most important aspect of direct X and its downfalls.
since direct X is a pre-defined architechture.. that means development can be like a puzzle or brain-teaser.
just like the brain-teasers many people have learned to enjoy.
the two bent nails that must be seperated.. or the two horse shoes with chains welded onto the ends and a metal ring around the chain, the ring needs to be removed.
direct X can be just as complicated.
picture this, you have all of these pieces and all you have to do is fill out a form using those pieces.
but as with most forms.. there are words that create a sentence, and all you have to do is fill in a blank.
programming with direct X is not as easy as filling in the blanks.
you have to create your own sentences using the blank where it's pre-defined location is.
if you move the blank forward or backwards one word, you might see a performance problem.
and since the entire game engine is like a paragraph.. if you move the blank up or down a sentence, you might see a performance problem again (or even a crash)
not everybody can grasp the concept when there are too many options causing confusion.
its why people dont like to do puzzles.
you have 1,000 pieces to create one big picture.
but do you start with the edges or the inside?
do you continue working on the edge when you find pieces that connect and are part of the inside?
do you let those few pieces of inside bother you while you are doing the edge?
do you stop doing the bottom edge when you start to connect pieces for the top edge?
all of those stressful questions can cause anxiety.
and it is the anxiety that causes a person to be baffled by too many choices.
direct X is a form.. which can be seen as a limitation by those who cannot tend to the situation.
kinda like playing tic-tac-toe .. but totally confused as to which square to mark first.
its not infinite chaos.. its downright confusion.
you could start with a corner and hope the other person doesnt take the middle square next.
or you could be selfish and take the middle square first.
its unfair to say that there is a form you must abide by when the form presents too much confusion.
and it doesnt mean the person is any less of an artist, because their idea for a video game might be superb.
what must be forced is that of the hardware.
each graphics card needs a standard so that the consumer can go out and select whichever graphics card they want and it will work when they bring it home.
otherwise you would need a specific graphics card for each video game.
that kind of upbringing is counter-productive.
the low-level programming is a dictionary that all graphics cards can read.
the high-level programming is simply algebra.
3 x 2 = y
the 3 and the 2 are high-level programming
depending on which numbers you choose will select the low-level programming for you.
if the answer of 6 is too slow, you need to adjust your high-level programming until you find a number that is faster.
the low-level programming should already be perfect if and when all words are available.
splitting the words up and calling each category a different high-level programming language is worse.
when you dont have access to the perfect low-level word because you dont know the programming language to make the low-level use that specific word.. you have to go back to college and get a degree for that programming language.
and if you use only one or two words from a different category.. having to upload that entire category with all of the words you didnt use is going to tax the hardware.
maybe you use more RAM on the motherboard.
maybe you use more RAM on the graphics card.
maybe the extra words cause latency because the registry is bigger than it needs to be.. thus slowing down your search times.
latency is extremely important for video games.
its what raises or lowers the frames per second.
just like changing the steering ratio on a car will affect the ability to control the car as it shoots down the drag strip.
the car is just as fast as before, except after changing the steering ratio.. you can control the left and right movement a lot easier.
that makes the driver less scared, as it provides a lesser chance of hitting the wall or going into the other lane.
it can even help you stay on the part of the track where there is extra traction (that is usually where the rubber from other tires is at.. because rubber to rubber is better than rubber to cement or asphalt .. as long as that rubber isnt loose)
direct X makes low-level programming a standard.. but doesnt totally imply that there is only one form that needs to be filled out.
other forms can be acceptable.
and if you had to mix direct X with openGL to get things the way you wanted.. you shouldnt be forced to use one or the other.
because its the low-level programming that is important and creates the game.
if you have a specific foundation as your goal.. placing a house on top of the foundation that doesnt fit is unacceptable as it limits your desire to use which foundation you want.
i am pleased that there is a standard for low-level programming.
but i wouldnt tolerate being told that i only have three different shapes of foundation to choose from.
there is square
round
and rectangle
if i wanted to make a custom curve, the low-level language supports the curve and direct X doesnt.. i believe they call that a custom assembly (or a custom compiler?)
from what i can gather, if you have the blocks and you have the mortar, and you have the ability to lay down the mortar as you lay down a block on top of the mortar.. you should be able to make any shape you desire.
having the choice of square, circle, or rectangle doesnt adhere to a right of being unique.
but you should consider how fast the custom curve runs on the hardware.
if the visual effect is worth it.. go for it.
and if the custom curve is the only thing you can pour out of your brain.. go for it.
its just sad to see a custom curve working slow because the hardware is stubborn.
maybe one day we will see graphic cards change their operating status for each video game as the game is loaded.
it would change the name of graphic card to graphicS card (or is it graphics card to graphic ?)
there are a lot of rules of conduct that i dont agree with.
sometimes its not the actual rules, its just the way the words are presented to me.
i am a big fan of bullet points rather than paragraphs.
other times the rules of conduct have things i dont agree with.. which could be considered 'bloating'
but sometimes downright infringing on human rights (or american rights)