By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Gaming Discussion - What DirectX is, and why you will not see it in a non-Microsoft machine.

Soleron said:
_mevildan said:
 I seriously doubt that any assembly is done on PCs anymore.

Not in graphics it isn't, because there's probably 10 post-2005 distinct architectures you'd have to target, say Nvidia G70, G80, GT200; AMD R500, R600, Evergreen, GCN; Intel Atom, Intel pre-Westmere and Intel post-Westmere. Using the DirectX or OpenGL driver abstracts those differences but I seriously doubt they are binary compatible at the assembly level.


Programming in assembly is becoming more and more of a niche approach, typically only done on very under-powered systems with very strict performance requirements. Assembly language was used quite heavily in videogames in the 1990s because a human could write far more optimized byte code than they typical compiler could. Compilers have come a long way, and processing power has increased so dramatically, which has really minimized the benefit of writing in assembly.

On a side note, with how far virtual machines have come I actually wouldn't be surprised if (within 5 years) C++ was abandoned for game development in favour of interpreted languages.



Around the Network

C++ is not going to be abandoned. Don't be silly. Interpreted languages still cannot heavily use shared resources and are still ill-equipped when it comes to memory management.

On the topic of DirectX: DX is not a language, it is a C/C++ library. Unreal does not have any machine code in it either. In fact, Epic gives away Unreal for free to colleges who do video game programming, so anyone who has been to one can view it and look for themselves.

DX is a good language to get into. It is not going downhill, it is actually becoming more and more popular because of its advancements that can take OGL extra years to implement.

Check it out for yourselves. Visual C++ Express is free, and the DX SDK is also free and lets you download free applications to compile and mess with yourself.



BlkPaladin said:

When I read comments that some people who want DirectX in this or that console it make me want to tear the little hair I have left out of my head. And it is apparent that these people have no idea of what  DirectX is and what it does.

First off before I delve into some more semi-technical aspects of what it does. I will go into what it is. DirectX is a wrapper “language” that helps developers make graphic intensive programs for the WINDOWS platform. (aka anything that runs Windows in some form) So right there you can rule out DirectX ever being used for any Sony or Nintendo product, these companies make their own proprietary OS for their systems.

Now what is a wrapper programming language and what does it do for programmers. On a programming aspect you can view a computer system that runs windows as a building with many different stories. It runs from Machine level (dealing with custom programming each and every single piece of hardware in a computer to do what you want it to) to the various API layers of Windows.

Windows is a system comprised of many layers that separates programs from the hardware layer. This helps in that you can use the generic virtual drives that Windows provides so you do not have to worry about optimizing your code to run on a specific device. The down side to it is that sometimes the layers have trouble communicating with each other and trigger the Blue Screen of Death.

What DirectX does is add another layer to this and deals with communicating with these generic drivers and messaging systems so the programmer and concentrate one make their program. This gives developers a easy entrance into programming for Windows, the down side is you sacrifice power and optimization (and in some part stability) for ease.

So DirectX in console is basically a step that allows programmers the ability to quickly make code for the Xbox. But as time goes by the DirectX portions of the engines get replaced in favor of machine code that allows the engine to run faster take up less RAM and do amazing things that just are not possible with DirectX. They may still use DirectX for items such as I/O functions since these tend to be closer to the machine level, and are optimized fairly well. (No need to reinvent the wheel.)

Nintendo and Sony do use a wrapper language for their systems, it comes in the form of the open source OpenGL/AL formats since these do not need to talk to the Windows API layers, which allows easier porting to various other platforms. (Though the OpenGL/AL in these are optimized and trimmed down for use with the systems it is intended for.)

Well that is all I can say for now. I was working on this for a book I'm writting to try and combat my major student loan issues. So I'm gathering what I learned about game development and presenting it for those who want to use it as a hobby and do it as inexpensivly as possible. (Unlike me who got taken by a "private technical collage" who took all my financing and now the creditor want their money...)

You sound like a student who found something out and thought that nobody else knew what they know now, but in reality everybody knew and just didn't care. DirectX and equivalent technologies are a nessecity in todays more complex games versus 15-20 years ago where the unification wasn't an obstruction to efficent development.

Your comments sound almost bitter and anti-microsoft more than anything else. OpenGL nowadays is the linux of operations sytems Vs DirectX being the windows of operating systems. Much as we all love linux, for an alround effective setup that can do everything without spending a whole lifetime working it out, linux is next to useless and over time becoming even more irrelevent, just like OpenGL, it just hasn't kept up. Yes I know OpenGL is only for graphics but you get my point.

Linux is only good for XBMC, everybody who isn't a free software bigot knows that. DirectX -> OpenGL, everyone who isn't an anti microsoft bigot knows that too.

Your reasoning makes sense only on the most superficial level, when you dig deeper into your work and research you'll be embarresed at the post you have made.

 

No offense / :)



i had almost forgot what DirectX was, but this isn't my area anyway, yet very informative(thanks to all who provided their insight to the topic).

good luck on your book, and may it sell milions



I don't read a whole lot of articles but I've never seen these comments before, I don't get it.



Around the Network
firelink said:
C++ is not going to be abandoned. Don't be silly. Interpreted languages still cannHot Topicsot heavily use shared resources and are still ill-equipped when it comes to memory management.

You're failing to see the core failing of C++ ...

C++ is ill equiped to handle highly distributed architectures, and is completely unsuited to be used for the kind of cross platform game development that is going to happen in the not too distant future. The Actor model in languages like Scala, Erlang and Small Talk/Squeak is far better suited to handle processors with dozens of cores that can each support multiple threads than the primitive threading model of C++; and I feel sorry for any programmer who is forced to maintain a game engine in a non-intepreted language that will run on the PC, Smart Phones & Tablets, dedicated gaming handhelds, and home consoles where there are multiple architectures and OS for each platform type.

Beyond that the "failings" of interpreted languages are mostly overstated issues that there has been significant improvements made over the past several decades. You can see how far things have come simply by looking at Android platforms where all applications and games are run in a virtual machine that is based on the JVM.



This thread would be a lot more fun if Selnor made it...



HappySqurriel said:
firelink said:
...

You're failing to see the core failing of C++ ...

C++ is ill equiped to handle highly distributed architectures, and is completely unsuited to be used for the kind of cross platform game development that is going to happen in the not too distant future. The Actor model in languages like Scala, Erlang and Small Talk/Squeak is far better suited to handle processors with dozens of cores that can each support multiple threads than the primitive threading model of C++; and I feel sorry for any programmer who is forced to maintain a game engine in a non-intepreted language that will run on the PC, Smart Phones & Tablets, dedicated gaming handhelds, and home consoles where there are multiple architectures and OS for each platform type.

Beyond that the "failings" of interpreted languages are mostly overstated issues that there has been significant improvements made over the past several decades. You can see how far things have come simply by looking at Android platforms where all applications and games are run in a virtual machine that is based on the JVM.

I see it the opposite way. I don't see desktop machines going much beyond eight threads for normal use, or phones/tablets either. Adding more cores doesn't make sense for layout reasons as well. Phones and tablets will get slightly more powerful over the next two years to the point where desktop programs can run fine without modification, so C++ projects will be even easier to maintain ports for, not harder.



Soleron said:
HappySqurriel said:

You're failing to see the core failing of C++ ...

C++ is ill equiped to handle highly distributed architectures, and is completely unsuited to be used for the kind of cross platform game development that is going to happen in the not too distant future. The Actor model in languages like Scala, Erlang and Small Talk/Squeak is far better suited to handle processors with dozens of cores that can each support multiple threads than the primitive threading model of C++; and I feel sorry for any programmer who is forced to maintain a game engine in a non-intepreted language that will run on the PC, Smart Phones & Tablets, dedicated gaming handhelds, and home consoles where there are multiple architectures and OS for each platform type.

Beyond that the "failings" of interpreted languages are mostly overstated issues that there has been significant improvements made over the past several decades. You can see how far things have come simply by looking at Android platforms where all applications and games are run in a virtual machine that is based on the JVM.

I see it the opposite way. I don't see desktop machines going much beyond eight threads for normal use, or phones/tablets either. Adding more cores doesn't make sense for layout reasons as well. Phones and tablets will get slightly more powerful over the next two years to the point where desktop programs can run fine without modification, so C++ projects will be even easier to maintain ports for, not harder.


Except that, with having hit the practical limit of clock rates, about the only way to increase processing power for general use is to increase the number of cores/threads. With it being remarkably impractical to expect programmers to be explicit with creating distributed programs with an arbitrary number of threads, and C++ being an awful language for a compiler to implicitly distribute a program accross an arbitrary number of threads, C++ is a relic that is not well suited to modern programming architectures; and as time goes on this is only going to become more clear to everyone.

This doesn't mean that C++ will disappear overnight, and we will probably see new C++ programs started for years and there will be tons of C++ work on legacy systems for decades, but I see C++ being phased out much the way C was before it.



long live Fortran! long live C! long live C++! long live Objective-C! huzza! huzza!

also based on overclocking of sandy bridge and rumors about ivy bridge it looks like there is more clock rate to pull out of cpus yet and keep the watt/volts down. i can keep mine up a 1ghz over stock with out messing with voltage. my guess is right now they are working to cut heat/power consumption more than spin up speed due to perceived changes in form factor, it has a nice noc effect for them of increasing yields ... that and AMD has given up



come play minecraft @  mcg.hansrotech.com

minecraft name: hansrotec

XBL name: Goddog