I\'ve been writing .Net code since 2003 and so I am very comfortable with it now
ID: 642294 • Letter: I
Question
I've been writing .Net code since 2003 and so I am very comfortable with it now and have a fairly deep knowledge surrounding the .Net framework that I have built over the years, plus feel very comfortable with advanced programming concepts and programming in general.
I want to get into some game programming, but the last C++ I wrote was at a beginner-to-intermediate level around 2001-2002. I know that there is a lot of support for game development in .Net languages these days, but I also know that there are a lot of game libraries, resources and commercial products built on or around C and C++.
Would learning C++ at this stage be a practical endeavour for me, or would the amount of time required to become competent with C++ outweigh the productivity advantage I'd get from sticking with .Net?
One of my considerations is that I'm concerned about the massive and growing impact Apple is having on the tech world and the general complacency Microsoft seems to have with winning consumer and developer mindshare these days, which leaves me wondering, if I were to focus my efforts on .Net technologies (particularly in view of the fact that the Mono team was recently laid off after Novell's acquisition), am I probably severely limiting my potential future audience for any games I create?
Explanation / Answer
I've been tackling this question a lot myself as well, and am in a similar situation when it comes to experience.
If it helps, I'll list the discussion points that I came up with and the decision that I made.
C#/XNA
Pros:
Multiple deployment platforms with relative ease (pc/360/phone).
Easier to sell games via MS' publishing platform.
Tooling support for C# and XNA is very good.
Cons:
It's a moving target (DX has gone through 2 versions in the time that XNA has gone all of its 4+). The vast majority of books and blog entries and tutorials that you read will be of date.
DX support is 9.0c if I recall. We're at 11 now.
Don't let the garbage collector confuse you, the GC on the 360/phone only does gen3 collects so you end up having to think just as much about object lifetime as you would on an unmanaged platform.
C++
Pros:
The abundance of existing learning material, from the sdk to books to tutorials is huge.
DirectX 11 support.
If you don't want to use DX, there's OpenGL and the various 3D graphics engines that are out there, supported, and free.
Performance. For AAA quality titles, it still matters.
Physics libraries are pretty important for some developers/games. The best 3D physics library I ever used in XNA was an unfinished port of one written in C++.
Integrating scripting with languages like Lua is not only possible, but can be quite easy.
Cons:
C++ can be complicated and frustrating.
Tooling isn
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.