Sign in to follow this  
dadads

Questions regarding several frameworks and APIs

Recommended Posts

Hi, I need some help in understanding several concepts and terminologies... (Sorry for being too direct) 1. I've heard about APIs such as "managed win32" and "managed directX". What does the word "managed" imply in these cases? What would be the difference between a managed version of an API and an unmanaged version of an API? (e.g. What would be the differences between using managed directX and unmanaged directX) 2. Up until now, directX has been Microsoft's solution for a gaming API. How does XNA add up to this? (e.g. What improvements does XNA bring) 3. I've heard that managed directX has been deprecated and is replaced by something called XNA. Does this simply mean that I shouldn't bother studying programming with managed directX anymore? 4. Is it safe to say that OpenGL and directX are the most famous industry-standard API for games? Thanks in advance, - dadads -

Share this post


Link to post
Share on other sites
Quote:

1. I've heard about APIs such as "managed win32" and "managed directX". What does the word "managed" imply in these cases? What would be the difference between a managed version of an API and an unmanaged version of an API? (e.g. What would be the differences between using managed directX and unmanaged directX)

"Managed Win32" is something I've never heard of; I assume it is a reference to the System.Windows.Forms .NET API. In general, a "managed" API is one that is written in or at least callable from so-called "managed" code. The exact definition of what "managed code" is is kind of subtle; the basic concept is that managed code is not native code (processor-directed machine code), instead managed code is some sort of safer abstraction that is converted to native code at a later point in time (either interpreted or JIT compiled, et cetera). The Wikipedia article on the subject is rather Microsoft-specific, but the term can appear outside the realm of Windows, C# and .NET; its just that those have begun to popularize the concept.

From the perspective of using a managed versus unmanaged API, the differences are mostly cosmetic, although in general using a managed language allows you to write more robust, safer code much quicker, since a number of gritty implementation details are nicely taken care of for you.

Quote:

Up until now, directX has been Microsoft's solution for a gaming API. How does XNA add up to this? (e.g. What improvements does XNA bring)

XNA is not, in its current incarnation, anything near a DirectX replacement (whether or not that's ultimately the goal remains to be seen; some hints might be available upon the unveiling of "XNA Professional" later on). Rather, it augments DirectX in a way -- it is a managed API that does much of the same basic stuff that the old Managed DirectX API did, but most of it is done in a cleaner fashion. XNA provides the option to target the 360 (in fact, XNA is mainly a 360 API that happens to also run on Windows).

Quote:

I've heard that managed directX has been deprecated and is replaced by something called XNA. Does this simply mean that I shouldn't bother studying programming with managed directX anymore?

Switching from MDX to XNA is trivial. In general, it's stupid to worry if what you're learning is going to become outdated soon. Because it will, guaranteed. You should learn to accept that fact. Learning new APIs is not that difficult and is a critical part of being a programmer.

You can still use MDX to great effect. If you want, you can switch to XNA. Personally, since I don't care about the 360 much, I don't use XNA (I am working with it on one project, but I don't find it particularly compelling enough to switch to for general-purpose work). Eventually there may be other options for talking to D3D via managed code, such as proposed D3D10 interfaces and slimmer D3D9 interfaces (both unofficial).

Quote:
Is it safe to say that OpenGL and directX are the most famous industry-standard API for games?

Yes, although consoles don't neccessarily use these APIs in the same form you see on the PC. They use APIs that are similar to, or subsets of, these APIs (in the general case).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this