I've been programming professionally for 8 years - all web and business programming in ASP, ASP.NET, and Java. I have a very solid knowledge of OO application development but I'm simply not challenged. The apps are all the same - build database, put front end on database to present data, allow data to be edited/updated, allow data to be deleted. Wash-rinse-repeat.
I've been a gamer since I was 8 and I still play games like mad (own a PSP, DS, Xbox, and XBox360). It seems to be the only thing that has really stuck with me (I know, pathetic for a 36 year old!
) and I feel like I need to modify my skillset and break into game programming.
I know that most game development happens in C++ due to its speed. Of course extensive knowledge of the C++ language and techniques takes some time to learn. After reading about XNA and the visual studio .net platform becoming the defacto development environment I am wondering if my time would be best spent learning C# as it relates to directx/game programming if my ultimate target is the windows/xbox platforms.
Everything I've seen so far pretty much points to C++. So I'm looking for recommendations and opinions, C++ or C# as a good starting point for game programming ultimately targeting windows based environments

C++ or C# ??
Brian P
This is not intended to be a determination of the most muscle per say. Nor do I intend to start a flame war.
I'd like to give myself the best possible opportunity to enter game development with the best skillset. If there is a preference of one programming language over another I'd like to know about it - especially from the source (MS).
I've got significant C# experience so it sounds great that both are supported, but I don't want to hone my C# skills and try to break into the business only to find that my time was not spent wisely because C++ is what everyone wants - or vice-versa.
Buzzby
Hi,
I am new to DX but I browsed 20 of the major studios last night to see what their job postings looked like and every single one of them were looking for C/C++ for what it's worth,
Jim
Gooddaddy
I'm in the same boat (Old gamer, stuck in a business suit) Although, I enjoy developing in C#, C++ has been on every job requirement for developing games. Have you checked out the GameInstitute It's an online training course on different aspects of game development. Currently I am stuck wondering what I should do!! Seems that everyone has an engine. It would be great to bounce ideas off each other. I want to blend audio with hand/eye coordination type of games.
later.
Sean Michael Murphy
So there is no benefit of one over the other - meaning that in the eyes of developers at Microsoft Game Studios both C++ and C# are considered equals Or does it depend on the task
Razgriz
Hi,
C# is very good programming language, I have been programming in it since 4 years. No doubt you can create games in it but it run on dot net framework and a bit slow. C# has been always best and recommend for the business oriented applications and software I mean Accounting, Database, Web services, web sites, distributed application and n-tier solutions etc.
But for the game programming C++ has been always popular because of its power. C++ has been always used for low level programming device drivers, games programming etc.
Well as for as i think if you have to develop some game then you should go for C++.... Best of Luck
WilliamTell
yea, the courses go from basic to advanced..from creating your own ".x" mesh file reader to BSP trees. Surely things that you could learn on your own. But it does help speed the process up.
I started over at the gamedev.net site and worked my way through all the tutorials and tricks. They are really helpful to keep in your toolbox when you are ready to build something.
pdressler
We support both. Use what you're the most comfortable with
Terry Rueter
I don't want to start another debate on "who" is the muscle car of game programming between C++ and C#. After reading a book or 2 it looks that C# is not used at it's full potential. Again this is my opinoin and please disregard it 'till everything will be "managed". There are a lot of little things that will slow down your rendering ... boxing/unboxing for one and so on...
C# it's a "sharp" RAD IDE and used wrong won't give expected results.
neoret
At this precise moment in time, C++ dominates game development in the professional industry, and will do so for years to come. However, graphics and game programming techniques are expressed in almost-identical fashion, whether you use C# or C++. If you are looking to enter professional game programming soon, a strong knowledge of C++, in addition to graphics and game programming, will be highly desired. If you are starting from the very beginning, you will find that C# allows you to focus on the task of graphics and game programming, rather than also having to deal with a language as fussy as C++.
ammard
Hey Tim
I have not checked into any eductional resources at this point. I actually graduate and get my BS in Computer Information Systems this Sunday (w00t!!
) so with my current level of student loan debt the last thing I need is more! Plus I'm looking forward to not having to work full time and go to school full time; might actually have some time to PLAY my 360 rather than just look at it.
I am currently working my way through Sams Teach Yourself C++ in 21 days ( great book by the way, not a typical crappy teach yourself book they typically publish) and getting an idea for the nuances of C++. I've pretty much been able to skim the first 7 days without any difficulty, although classes are done a bit differently compared to current OO languages (java/C#).
I will move into other aspects of game development (algorithms etc) after a C++ familiarization period. I want to be comfortable with the language before I try to tackle the more complicated aspects. It seems that right now we have to be patient as there is a lot to learn and no real way to speed things up.
boran_blok_edan
There's no answer that would not cause this thread to turn into an argument (search gamedev.net if you want to see the result - it happens once a month on average). There is a place for both and its something you need to make your own mind up about. One thing for the future to think about is that XNA framework which targets the 360 (though few details are public or known so we don't know when it will arrive or how it will all work) is managed only. So without a publishing deal the only way to write for the 360 is managed.
For what its worth I have suggested the following list a couple of times which tries to list the reasons you must use C++: See http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=173101
Making fast and complex games sometimes requires the edge that C++ gives you.
Use unmanaged code if....
* you need to optimise your code to the ultimate level such as CPU cycles, memory cache hits etc
* C++ is your language of choice anyway (though consider managed C++) - if so the productivity gains of managed code may not be big enough to outweigh your efficiency
* you prefer your API to be more stable (Sorry Tom, but MDX changing often does upset some folk) as the C++ API has been around longer and is more mature
* you want to go cross platform or consoles
* you believe the stigma of managed directx will cause your game not to sell or be published
* you want to get a job programming games with a big game studio in the near future (being realistic here - I just don't see managed DirectX in the jobs wanted ads at the moment)
Otherwise managed code is a valid choice.
If you are a beginner then I think managed code is a very smart choice - as Jack said you can concentrate on getting the algorithms and 3d stuff done rather than worrying about which pointer goes where.
For the most part when it comes to performance it comes down to smart algorithms. The top complex games are fast because of the occlusion and culling algorithms and the brains that design them, not because of great C++ skills. C++ may help fine tune those algorithms and they would beat C# in a head to head race, but no language will help you if you are trying to draw 200 million polygons per frame.
KnightSurfer
That is very interesting indeed.
I think it pretty much provides the direction I'm looking for. Good thing all the books I've bought so far are C++ :)