Application Programming Interface: Difference between revisions

no edit summary
No edit summary
Line 1:
{{Useful Notes}}{{trope}}
{{quote|''The wonderful thing about standards is that there are so many of them to choose from.''|'''The UNIX-HATERS Handbook'''}}
 
Line 22:
There have also been cases of newer graphics cards omitting or otherwise breaking little-used features that some games during the Direct3D 7 and prior era used, either at the driver or hardware level, so don't expect perfect backwards compatibility. Sometimes you might just have to build an old computer to run a suitably old game well, or even at all.
 
==== {{smallcaps|Direct3D}} ====
 
Direct3D is Microsoft's baby, and, thus, it's only available through Microsoft Windows operating systems, the [[X Box]] consoles, and through very careful and questionably legal reverse engineering schemes. It is often referred to as DirectX even though DirectX is an entire suite of APIs for dealing with more than just rendering (sound, input).
Line 30:
In case you're wondering where's DirectX 10, it was released with Windows Vista. Since it offered very few quality advantages over DirectX 9.0c and was only compatible with Windows Vista, nobody really cared about it.
 
==== {{smallcaps|OpenGL}} ====
 
[http://www.opengl.org/ OpenGL] is Direct3D's primary competitor, and in many ways the tool of choice for cross-platform gaming (though, in truth, it is the only tool for cross-platform game development). OpenGL is a graphics API, so it only technically competes against Direct3D, the 3D portion of DirectX; most Windows games that use OpenGL use the non-graphics part of [[Direct X]] for other tasks, while other operating systems use different APIs for other tasks (for example, OpenAL for audio acceleration). Many individuals feel it's much easier to program in than DirectX. The open standard certainly made it more expandable, and many OpenGL games such as [[City of Heroes]] are made up of more extensions than original standard code.
Line 38:
The latest version of OpenGL is 4.4. For older hardware (hardware limited to DirectX 10), there is version 3.3. For REALLY old hardware that is (huge fake GASP) 3+ years old, there is OpenGL 2, which roughly corresponds with DirectX 9.
 
==== {{smallcaps|Running alien software}} ====
An API is an interface, so it's only natural that people tried to let a program interact with a translation layer, resembling an OS sitting on top of the native OS - thus allowing a program to work under an OS it wasn't made for, as long as less flexible things (like CPU commands) are all the same. Naturally, x86 is the most interesting for a majority of users, as Windows and Unix (Linux and OS X) are the most desirable targets. True emulators and virtual machines eat a lot of resources, but API translators are much less voracious. Results are good, though this approach isn't a universal silver bullet and ''some'' performance is always sacrificed for translation.
* [http://www.cygwin.com/ Cygwin] is a Unix-like environment for Windows. It's ''not'' a way to run native Linux apps on Windows. You have to rebuild your application from the source if you want it to run on Windows. However, apps for Linux tend to be open source, so "rebuild" usually means just one or two extra commands as part of the installation process. It's free and open source.