Sign in to follow this  

[.net] WIN 32 API DEAD

This topic is 4300 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi Guys, I'm curious to know if the win 32 api is dead considering how everything is going towards .net?

Share this post


Link to post
Share on other sites
No, it isn't dead. Some people still use it, and are likely to continue doing so for at least a few years.

Share this post


Link to post
Share on other sites
It will be around for quite some time actually. Since pretty much everything needs it that was written over 2 years or so ago. A lot of that is valid software still and will be for awhile.

I am choosing to develop our tools in Win32 instead of learning a whole new language that, at this time, I have no interest in. Yes I know C++ and it would likely come to me fairly quickly, but I still lack the interest so for now, Win32 it is. Plus I have a wrapper I made myself that lets me get programs up and running fast.

Share this post


Link to post
Share on other sites
APIs never die. They just stop getting used as much.

If you plan on creating a large GUI app, I would avoid Win32, unless you're targetting a pre-.NET OS like Win95 or Win NT 4.0. You will get work done much quicker in .NET.

As for games, I would still lean towards C# w/ Managed DirectX (or Python w/ PyOpenGL), but C++ w/ Win32 and Unmanaged DirectX is still heavily used (edit: until Vista comes out, anyways), and probably will be for quite some time.

- Mike

Share this post


Link to post
Share on other sites
The last few comments = silly semantic commentary

Ok, fine, it is "depreciated" and "not used very often" but for all intensive purposes... and to irritate some people, this basically means it is dead. By this reasoning it has been "dead" for quite a while now (nobody ever liked microsoft's API anyway -- it was too evil :-))

Share this post


Link to post
Share on other sites
Actually a friend and I raced my Win32 wrapper vs his .Net skills (think he was using 2.0) and I whooped his butt when making a small editor (coded from the same design doc)(he also makes apps for a living via .Net so wasn't a hobbiest). If you're having to code it up in raw Win32, yeah slower deal. But I'm targeting 98+ (whatever DirectX version is supported). If you want flat out speed, C++ is still faster, if you can spare 10-15% (according to others I've not tested it nor care I'm happy where I am) .Net could be the way to go for you.

Right now, for me C++/Win32 is much faster then the time taken to learn .Net/Forms for making an editor honestly. Then again I barely see Win32 code... *shrugs* I think .Net for commerical games development is quite a ways off (1-3 years or so before any major games are started with it as the core language).

I'm honestly one of those people who believes "best language for you, to do the job". Right now that is C++, I'll learn .Net after this project in my spare time and go from there.

@hplus0603: Exactly. In a very simplistic way .Net forms are just a wrapper around the Win32 implementation. I just prefer to use mine (made it so I know it).

Share this post


Link to post
Share on other sites
Quote:
Original post by medevilenemy
for all intensive purposes

I always love it when people think that's how it's spelled.

Quote:
this basically means it is dead.

Not really. The fact is, not everyone is doing native-GUI document-oriented application development. If all you need is a WinMain and a WndProc (which is commonly the case if you are, say, a GAME DEVELOPER), the Win32 API is fine precisely because it doesn't get in your way. No, people probably aren't doing much GUI stuff with bare Win32 anymore. But that hardly indicates the death of the API as a whole.

Share this post


Link to post
Share on other sites
"Dead" is a fairly subjective term when used this way. Its an API that will be supported for a long time to come, thanks to all the software that has been written to it. But, many newer programs are being targeted at .NET, and so it isn't being used directly quite as often as it used to be. I wouldn't be surprised if Microsoft started officially deprecating parts of the API in the next two years. Especially since the new APIs that Windows Vista is coming out with pretty much obsolete most of whats in the win 32 API. And, the new APIs like WinFX are not being written on top of existing APIs. They sit directly on top of the kernel, unlike most of the original .NET Framework libraries.

Edit- also, Microsoft probably isn't going to be adding much new to the win 32 API, since all the goodies are being put into the .NET. So, as far as new innovation goes, you could say the API is "dead", if you want to call it that.

Share this post


Link to post
Share on other sites
Quote:
Original post by nimrand
"Dead" is a fairly subjective term when used this way. Its an API that will be supported for a long time to come, thanks to all the software that has been written to it. But, many newer programs are being targeted at .NET, and so it isn't being used directly quite as often as it used to be. I wouldn't be surprised if Microsoft started officially deprecating parts of the API in the next two years. Especially since the new APIs that Windows Vista is coming out with pretty much obsolete most of whats in the win 32 API. And, the new APIs like WinFX are not being written on top of existing APIs. They sit directly on top of the kernel, unlike most of the original .NET Framework libraries.


Some valid points but again, a long ways off from happening and some hooks to Win32 will even likely exist in MS's next OS. This is one reason MS moves so slow, they're support for legacy code. Whereas Apple just says "that's it" and cuts out the old stuff cleaning up the code base a lot. But to each their own.

Dinner time!

Ha, just noticed Sneftel's little "for all intensive purposes" comment haha. For all intents and purposes, maybe? ;-) This is for you Sneftel! http://www.wsu.edu/~brians/errors/intensive.html

Share this post


Link to post
Share on other sites
Quote:
Original post by gp343
Hi Guys,
I'm curious to know if the win 32 api is dead considering how everything is going towards .net?


Depends on what your long term programming goals are.

If you wish to write DX9 applications for example, the Win32 API provides a quick shortcut to establishing the base component of virtually all DX9 applications, i.e. a window upon which you can draw your game onto.

The Win32 API will also take care of housekeeping duties in the background, while your DX9 app is running, such as window messages, of which you can pretty much ignore most if not all of them (most are simply sent to DefWindowProc which provides default message handling on your applications behalf).

I'm sure .net can provide this stepping stone too, to the DX9 API, but to be honest, that would seem a bit like overkill in this context. Whereas Win32 to me seems a lot more slimmer, with a smaller memory foot print.

If you wish to write purely windows GUI applications, then perhaps .net would be the wisest choice (although I've never used it myself... Personally, I'm a Win32 API man).

Share this post


Link to post
Share on other sites
Why'd you have to check "Check here to be notified by email whenever someone replies to your topic." for a post that's sure to get a bazillion replies when your mailbox is full?!?
Quote:
RCPT TO generated following response:
552 RCPT TO:<arlef@lineone.net> Mailbox disk quota exceeded



Original message follows.

Received: from AspEmail [216.185.96.234] by zwave.com
(SMTPD32-8.15) id A0A6B1700EC; Thu, 06 Apr 2006 20:30:14 -0500
FROM: "webmaster@gamedev.net" <webmaster@gamedev.net>
TO: arlef@lineone.net
REPLY-TO: webmaster@gamedev.net
SUBJECT: GameDev.Net Discussion Forums - Reply to your posting
DATE: Thu, 06 Apr 2006 20:36:02 -0600
Message-Id: <200604062030680.SM00988@AspEmail>

Hello, gp343!

You have received a reply to your posting on the GameDev.Net Discussion Forums from sneftel regarding the subject "WIN 32 API DEAD".

You can view the reply at http://www.gamedev.net/community/forums/topic.asp?topic_id=385788

Share this post


Link to post
Share on other sites
Quote:
Original post by medevilenemy
The last few comments = silly semantic commentary

Ok, fine, it is "depreciated" and "not used very often" but for all intensive purposes... and to irritate some people, this basically means it is dead. By this reasoning it has been "dead" for quite a while now (nobody ever liked microsoft's API anyway -- it was too evil :-))

Actually, Win32 is still used more than .NET. It has not been depreciated (that's mere speculation), and it is still being updated - as recently as March 2006.

So, no, it's not dead by any stretch of the imagination. And if you think it's evil, try Xlib.

Share this post


Link to post
Share on other sites
i doubt we'll see .net used for professional games. In addition to the loss of power that other posters have already mentioned, portability is another issue. I wouldn't be suprised to see a future xbox console that has the .net framework, but if companies want to port their games to other systems, they're going to have to write at least one version of the program in C or C++, so they might as write the xbox version in C++ as well and squeeze out all the power they can get.

Share this post


Link to post
Share on other sites
For all intensive purposes and with fragrant disregard for anyone's feelings, it's deprecated, NOT depreciated!!!

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
What do you think .NET is implemented on top of?


QFT.

Win32 API isn't going anywhere, not until 128 bit computing is prevalent and Microsoft is tired of supporting Win16, Win32, Win64, and Win128. :P (Commodore models, anyone? Need a Plus/4 and Vic-20...)

C# not used for "professional" games? I beg to disagree. Sheesh.

My opinion: too much emphasis is placed on "engine speed", "glitzy graphics", "sound effects" - these are the things that make elitists decry C# as a "game programming language." Know what? Maybe folks should learn how to make a fun game first... and how to make it look and sound better second.

Share this post


Link to post
Share on other sites
I personally don't find Win32 to be coined as dead yet, because pretty much what has already been said. People are still using, alot of applications are still built from Win32, but don't get me wrong when I say built. They aren't complete Win32, but there is some Win32 in the source. Doesn't OpenGL have Win32 in it, but yet you don't have to code the Win32 part in OpenGL? DirectX previously/currently has Win32 code. I'm currently making a game in Win32, before I move to DirectX. = ]

I'm just curious, I'm not trying to start a C++ vs C# war, I just want to learn. But are there any professional AAA - A, or even published games I can get at my local game store that are made out of C#?

Share this post


Link to post
Share on other sites
Quote:
I'm just curious, I'm not trying to start a C++ vs C# war, I just want to learn. But are there any professional AAA - A, or even published games I can get at my local game store that are made out of C#?


Unfortunately, no [smile] That's one of the most frequent things you hear why not to use C# for your game, but it's hardly a valid argument for the proposition that C# is inherently unfit to code games in.

MDX and C# have only been around for a few years (iirc 2.5 and 4 respectively), which makes them 'new technology' which no big company will risk using until it becomes 'proven technology'. With the advent of .NET2.0, I'd say the .NET platform as a whole could very well be qualified as proven/mature by now. MDX however has had a few startup troubles and in my opinion it only really kicked into gear since Summer 2005, with finally a committed MS team being assigned to it only since the GDC 2006.

So from this point of view it's still too early for companies to risk using MDX as the prime platform for their final games, but you hear a lot about big players already using it for their studio tools (confirmed, but I'm not sure if it's ok to disclose). That should be a clear indication that MDX has its place in the industry and I feel it's only a matter of time before C# games will be coming out, especially now with XNA and the prospective ability to ship on the XBox360.

Here we touch upon another real downside to developing in .NET, that again has little to do with the fitness for game coding of the platform itself. As pointed out before, .NET games aren't as portable across consoles as C++ ones can be. I think this might just be the biggest issue for AAA title developers. IIRC, consoles constitute about 90% of the games market out there, so with the current limitation that MDX can only be used on Windows, these developers won't invest in making a game for such a small market.

Now if the potential market for .NET games could be increased to say 30% with XBox360 publishing in about a year, things will become more interesting. It's still not an ideal situation for AAA developers, but with MS owning quite a few of those through MS Game Studios and since these mainly publish on MS platforms (ie. Windows and the XBox360 by next year), the .NET platform and MDX may become much more interesting for them. Not to mention to quite a few indies who probably would be more than happy with the prospect of the ability to reach some 30% of the market.

Hope this satisfies your curiosity :)

Share this post


Link to post
Share on other sites
Sorry for hijacking the thread, but I had a question about a CLR being implemented on the XBox360. Does this mean that indy developers will be able to develop games for the 360 without having to obtain a license to do so? In which case I would find it very beneficial for someone to start out with C# and MDX considering the ease of production this combination presents. However the only other concern I've had for a while is how long it is going to take for a mass of resources/middleware to be release for MDX. There are some that exist, Purple#, Axiom and Irrlicht.NET to name a few, but I'm having a hard time locating any engines for manged code with good documentation and community interaction. Please correct me if I am wrong, however.

Share this post


Link to post
Share on other sites
Quote:
Original post by medevilenemy
Ok, fine, it is "depreciated"

You have to write it off on your tax returns?

Share this post


Link to post
Share on other sites
Also you have to remember a lot of people are doing graphics programming other than just games..such as 3-d visualization, CAD & MAYA work, super-computing stuff etc etc and their userbase is interested in software development that can be run on multiple platforms, including Linux, SGI and the MAC..so beyond just the scope of game programming Win32 is used less. If linux ever gains ground in the gamer market then you will then see more cross-platform games being written to accompany the linux crowd.

Share this post


Link to post
Share on other sites
Quote:

Here we touch upon another real downside to developing in .NET, that again has little to do with the fitness for game coding of the platform itself. As pointed out before, .NET games aren't as portable across consoles as C++ ones can be. I think this might just be the biggest issue for AAA title developers. IIRC, consoles constitute about 90% of the games market out there, so with the current limitation that MDX can only be used on Windows, these developers won't invest in making a game for such a small market.


Anyone that says Win32 is dead or that C# cannot/will not be used for game development is out of touch with reality. Talonius provided links to games using it. When I said it wouldn't be used for a few years I ment, like remigius actually said, that because it's not portable (and I doubt Sony will be supporting C# anytime soon ;) ) a lot of big studios will be slower to adapt it, if at all.

@Talonius: Totally agree, build fun games first. I also say use the tools you feel the best with and that work best for you. If you're not comfortable with something you're less likely to write decent code or be able to solve certain issues. Pick that which works best for you.

@Dave Hunt: Flat out LOL

@dmreichard: No you cannot publish for the xbox360, even as an indie without Microsofts permission. There were some articles, I believe, on GameDev (interviews) about this. Or it was someplace else, sorry no longer have the link. But Garage Games is in so it is possible. You have to submit your game, a party on behalf of MS reviews it and then I think MS reviews it. Then if they both like it, you get an offer or something to sell it on their downloadable games section (no quoting I read this awhile ago and only really skimmed it).

I believe more and more smaller studios will develop games using C#/MDX for the speed advantage in developing products and getting them to market. The speed difference isn't that great between C# and C++ unless you're writing something like the Unreal engine or Project Offset etc (my opinion). Don't count it out because it's new.

Share this post


Link to post
Share on other sites
The Win32 API is sort of like assembly langues. It's just lower level than .NET. Is it dead? Is assembly dead? No. It's just that companies like productivity, and whatever gets the product out the door fastest will most likely be used.

A better question most likely would be is it worth learning. Do you want to know the inner guts of how the .NET framework works? If you don't, or don't need to, maybe it's not worth spending the time learning it. (Despite people who claim certain things are worth learning, it comes down to priorities. If your boss wants the product out the door next week, you have to determine whether learning something and not meeting a deadline is more worthwhile than getting the product finished. Most likely the latter wins out. Of course in a perfect world, everything is worth learning).

The emphasis is being phased away from Win32, but even in my last job when I was designing in C#, I ended up having to throw in some Win32 stuff, because certain things just weren't implemented in .NET.

In the end though, it will officially be dead only when Microsoft severes all the connection to it, and everything built upon Win32 is officially built upon something else.

Share this post


Link to post
Share on other sites
Sign in to follow this