[GD-General] C# versus C++ for game engines
Brought to you by:
vexxed72
From: Colin F. <cp...@ea...> - 2003-02-20 12:44:02
|
2003 February 20th Thursday I strongly believe that C# is a worthy successor to C++, and my experience of programming in C# has been positive. The DirectX 9 demonstration programs in C# are impressive, mostly because they show Microsoft's comittment to making it easy to use DirectX API's in C# applications. I may continue using OpenGL for rendering (via my own wrapper) because I find many aspects of Direct3D annoying and backwards (like the left-handed coordinate system, lost surfaces, bugs in API that can crash your application, and general pointless complexity). I am wondering if anyone has been seriously burned or frustrated with their own attempt to code a game engine or complex real-time application in C#. One of my own concerns is that I wasn't able to immediately execute a release build version of a C# application under Windows 98. (MSCOREE.DLL is the first required DLL to not be found. There are potentially dozens of DLL's required to get a release version C# application to run under Windows 98. I haven't explored this yet.) Yes, Windows 98 may have an "End Of Life" status. Nonetheless, I am interested in supporting a platform that still has a significant percentage of the gamer market. (On a side note, I will AVOID upgrading from Windows 2000 to Windows XP as long as it is practical, because I do not like the information gathering, "calling home", and some other "innovations". I am not anti-Microsoft, but I don't like the lack of respect for user privacy or security embodied in certain products. Okay, maybe I'll get Windows XP for "platform testing" since XP is perhaps the top OS for today's gamers.) I am also concerned about performance. I have done some Google searching for performance test results. The few test results I have encountered seem to indicate that the raw processing speed of C# is comperable to C/C++. However, the "non-deterministic" (as far as the programmer is concerned) garbage collection seems to lead to a quadratic increase in execution time, and large spikes in memory usage, for applications that do large amounts of memory-related operations. I guess the only way to really know the facts is to write applications in C# that capture the essence of what I intend to do in a more elaborate application and see how well it turns out after trying my best to code in the C# idiom and optimize. And then there's the issue of supporting Windows 98... Maybe that's as absurd as a rendering engine that is capable of falling back on software rendering to cover the case of a person who doesn't have a $49 GeForce3 card. But I'd still like to learn about any success / horror experiences with C# "real-time" game coding anyone might have. --- Colin cp...@ea... |