.NET versus no .NET

Started by
3 comments, last by Ravyne 16 years, 6 months ago
Hello! This may be a foolish question, but I've seen quite a few posts around here that seem to indicate not everyone considers the .NET platform to be all that good for game development. Why is it that many people are not a fan of .NET? I have been studying C# and I have found myself being far more productive in that than I ever would have been writing an unmanaged, non-CLI C++ Windows app. I would appreciate it if someone could explain the opposing point of view. Thanks. =)
Advertisement
There's basically three types of statements leveled against .net. The first, and unfortunately more common, type are those based in (usually second-hand) misinformation. Second, are the type based on assumptions made based on the misinformation. Third, are the type which stand on more reasonable ground.

The first category includes, but is not limited to:
- But M$ owns C#/.net!
- But Java is less proprietary!
- But .net is interpreted! Interpreters are slow!

The second category includes, but is not limited to:
- But I need every last drop of speed I can get because my game is going to push any PC to its limits!

The third category includes, but is not limited to:
- For professional game development, right now, C++ is king.
- Legacy code, most libraries and middle-ware are written in C++, and hence easier to interface with C++ than C#.

The first type can, and should, be dismissed immediately as they are objectively false. Further, anyone who insists on spreading such FUD should be corrected, and failing that, rated down if they continue.

The second type is what results from the first, and are only slightly less dangerous. These types of statements should be corrected, but a personal assumption probably isn't grounds for being rated down.

The third type should be weighed carefully against the application if you're in a position to decide between native and .net. For example, if you have professional aspirations, C# doesn't really exist commercially on the consoles. In the same vein, if you rely heavily on C++ legacy code or middle-ware, it may be less trouble to stick with C++ for the game code as well.


Now, its equally foolish to make the reverse assumption: That .net and its languages are better for everyone. I really like C#, but I still prefer C++ for game development simply because I am more familiar and comfortable with it. In the end it really is a personal choice.

For those with existing experience, most will stick with what they know. For those with no experience, the main thing they need to do is just get programming in any reasonable language. C# is a reasonable choice, and maybe a better choice, but C++ is also a reasonable choice, even if it is further down the list, IMHO [grin]

throw table_exception("(? ???)? ? ???");

Thanks for the clarification!
That was very well stated, Ravyne, even though I don't share your preference of C++ over C# for game development. Have you tried out XNA yet? It's very nice.
I've played with XNA a little, and I was really excited for it in the months leading up to its release, but its just not what I need right now. I'm once again awaiting XNA 2.0, since it solves most of my issues with 1.0 -- Support for VS 2005 pro, Networking, more flexibility.

XNA has a lot of nice things going for it, and I expect it will get better -- like a lot of Microsoft products, they tend to mature after a few major revisions. I think the main things that need to happen are: The API needs to be more centrist, right now XNA is a console API that just happens to run on the PC too. Altivec/SSE need to be exposed, or at least the math components need to take advantage of them.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement