Game Development Community

Building a Resume? C#/XNA/.NET?

by James Ford · in General Discussion · 04/30/2007 (2:10 am) · 18 replies

A question about building a portfolio/resume:

I currently know more about managed directx, C#, and .NET programming than I do about unmanaged dx, C++, and win32 programming. I have heard over and over, however, that C++ the practically exclusive language in the game industry.

So, I started working on an example for my portfolio/resume with win32, D3D and C++, but I couldn't help but think, 1. this is much more confusing, 2. this may all be wasted knowledge in a few years.

How do you feel on this subject? Will there be a place for each of these in the game industry? Will unmanaged-C++ die out in the game industry? Also, I know C++ is currently an important part of an application, but what about when it comes to graphics: unmanaged/managed/xna ? And when it comes to windows programming: forms/win32 ?

Cheers,
James F.

#1
05/01/2007 (12:47 pm)
Ohhhhhh nellie. This is a hot subject and has been brought up time and time again. As of now, C++ is the main (by a huge landslide) language of choice in the gaming industry. C# will eventually replace it just like it eventually replaced C which used to be the premier choice. It will not happen in the next few years and possibly not for another 10. unmanaged is better as far as performance, but managed is much, much better as far as prototyping, ease of learning, ease of use, etc. The benefits of managed outweights unmanaged in a lot of cases which is why XNA is succeeding thus far.

Having said that, learning a language is never wasted knowledge or time unless it's vb ;) (j/j)
#2
05/01/2007 (12:54 pm)
Now Jonathon don't be dissing VB ;p

Instead of VB you could have said Pascal or even COBOL... VB for life!!!! j/k :)

But yeah James its always good to know as much as you can. Never know when it could come in handy! (lost a big job contract 4 years ago because I didn't know FoxPro :\)
#3
05/01/2007 (4:26 pm)
On the job experiance and education are going to matter most of course. Specalize in what you like. Makes work easier to do. And if you enjoy it you normally are better at it. Yea I remember Pascal on EGA monitors being elite lol, and second the notion that Mr. Stevens said abotu learning a lang is never a waste.
#4
05/01/2007 (4:42 pm)
FoxPro! Ug... I stand corrected. SOME Things should never have been built, developed for or designed to. God I hated FoxPro. Reminds me of the University days until I made them buy me a new computer and upgraded everything to asp (classic) and SQL Server. Long live scripting languages! ;)
#5
06/10/2007 (11:51 pm)
I have to chime in about the scripting languages. I say although everyone is right here by saying C++ isn't going away anytime fast... and is certainly not a waste of time to learn... never the less you should spend your time learning a few key scripting languages that will prove more useful in the coming months and years.

Python
Ruby
Lua
MEL Script
MAXScript

The later two of course being heavily focused toward the art side of things.
#6
07/26/2007 (1:01 am)
Hey James (thread hijack FTW!). I had to deal with FoxPro 3 code that was 15+ years old in my last job. That was a NIGHTMARE to support and keep running reliably. FP 3 can't even support greater than 512MB of RAM. Terrible awful craziness.
#7
07/26/2007 (6:38 am)
FoxPro, now there's a name I haven't heard for , well 15 years. Thanks for reminding me.

The nightmares have returned.
#8
07/26/2007 (8:51 am)
C++ is not going anywhere.
if you get sucked in believing MS technologies will be the only way, you will lose out on lots of opportunity.

you should have room for them all.

eg:
my job is c++, OpenGL

It took 4 years but I finally have them moving towards Linux.
and now that I have finally opened some eyeballs, a clear understanding is coming thru.

we have 0 plans to move to vista, and xp licensing is insane. so they pushed for CE
I showed them CE is Junk, and now we are finally using Linux.

Fast Graphics is where it is at, and Vista, CE are just not there.
XP is big fat and expensive.

seems there is really only one choice.

Edit:
FoxPro lol...
a simple layer on VB if you ask me.
#9
07/26/2007 (9:41 am)
Yeah , c++ is currently the main language for game dev.. but with the managed code rise on the gaming community it will be a fun alternative, i dont think it will replace the unmanaged side ever, but its good to have 2 choices to do stuff and the end of the c++ monopoly on the gaming industry.... because from now on there will be 2 sides the managed side and the unmanaged side and companies and groups will pop up using the new tecnologies , so i think neither 2 of them is a waste of time because:


C++ is already a main language that uses directx and open gl by default , the old way and the current main way, it works currently for almost everything and can be used on other operating systems, its stronger but its very very difficult to master

C# its easier,faster to develop than c++, but slower to run than unmanaged c++ due to its managed nature... but it will be an alternative that will get stronger and stronger in the future and will be a interesting alternative if you just intend develop for windows, because MS is boosting his net technologies and surely in a couple few years it will be a big good acceptable choice to future game devs


so what ever way you go, it will not be a waste of time


Cheers
#10
07/26/2007 (2:07 pm)
I think we need to be more specific here. C++ is currently the main GAME language. C# and .net are HEAVILY used in the gaming industry (based on comments from people who work at those studios) for tool creation, prototyping, etc.

C# on your resume in teh game industry is a big plus and pretty much required if you want to be a tool creator. Blizzard posted a .net position not long ago....
#11
04/10/2008 (4:00 pm)
I started out with C then moved to C++ and now best with C#.
and have started dabbling with assembler....... As far as games go.. C++ is king right now, but eventually you can not reasonably believe that managed codes' advantages will far outweighs the small if any speed improvement you will get with unmanaged eventually. that being said. C++ will give you more power but with that power comes responsibility. For a resume the more crap you can put on their the better.
#12
04/11/2008 (10:19 am)
@Michael - Are you saying managed wont oust unmanaged or vica verca? I'm not following your lats post.

To say C++ wont go away is backward thinking in my book. When C++ was introduced, people didn't flock to it right off the bat because everyone used C. As I said in my earlier post, it might not happen for 10 - 15 years, but C# will definately replace C++ as a core language. .net as a whole has made an enormous impact in the business development world. There are more .net jobs than anything else right now and have been for the last several years.

As to VB.net, learn C#.net and you can do vb. Typically what I find is that a C# developer can easily develop VB.net applications, even if they rarely or never have used vb, but the same isn't typically true going the other way. VB.net developers often have a lot of trouble building C# apps.
#13
04/11/2008 (10:35 am)
@Badguy
You said: XP licensing was insane. I thought you could put your game on windows for free.
#14
10/31/2008 (11:51 am)
Ill go ahead and re-state what my school says as far as C++ being the main language they teach. We can teach you C++ and if you are so inclined, you can pick up a Java book and learn it in a weekend. However, the same cannot be said for the reverse, in that if we teach you Java, it will be much more difficult to pick up C++.

This is so true and C++ is a huge plus to have down, and you won't get that kind of knowledge in a better package as far as usability and usefulness goes. C++ will be around for a very very long time, if not in gaming, then in lower level applications that require more control over hardware, like drivers and embedded systems or whatever you can think of.

C# however, is so incredibly enjoyable and so sexy to use its crazy. Its great being able to go from writing a windows app, to an asp.net app using the same basic skill set. Although .NET is currently only out on Windows platforms (excluding mono, which doesn't really count) it is infinitely more cross-platform compatible than C++ will ever be. Another great benefit was proven when Microsoft released .NET 3.5 SP1 which provided .NET apps a average 10% performance increase from end to end, which is incredible to be able to do.

I think I read that the performance difference between managed and un-managed DirectX was something like 7-10% which for today's PC's should mean relatively nothing when you consider all the benefit you get with being able to use all the .NET goodness, which includes cutting line count to like 1/4 of whats required in C++.

I think I may have drifted off topic a bit, but it should be relevant. The simple fact is, that if you are serious about advancing your career and getting ahead or even just doing well, you must know the un-managed side and know it well or you will be at a significant disadvantage.
#15
10/31/2008 (3:52 pm)
Quote:I think I read that the performance difference between managed and un-managed DirectX was something like 7-10% which for today's PC's should mean relatively nothing when you consider all the benefit you get with being able to use all the .NET goodness

and this thinking is EXACTLY why vista is as slow as it is.
it is why XP runs slower on a fast machine than windows 98 on a slow machine.
imagine win 98 on that fast machine?

too much performance thrown out the window causes ... a loss of performance.

basically, programming is programming.
it does not matter what language you use, it matters that your logic is sound and clean and optimized.

my suggestion would be to learn c, c++ and then once you know how to program using a super low level language that can mangle any type into its required need then you can move on to picking up the end bits, which are the API's and languages provided by the various different industries.

look at it this way, what happens if you end up in embedded development.
and all you know is .NET and C# and DirectX?

you are screwed, that is what happens, you will find support for those on embedded devices seriously lacking.

what happens if you end up on a legacy project, or legacy code and you dont know the toolset in use?

I will tell you this,

I started in c,c++,asm.
learned VB java, then learned winapi and started in on Linux.

I now have the skills to do anything with any computer anywhere in any language.
I am the goto guy and I cannot be stopped, there is nothing I cannot program, learn bleahbleah bleah....

if I was to learn C# I could learn it in a very short period of time, it is a subset of standard c++ and merely has a layer of features and changes. its basically the same shit stripped down (and bloated up)

I dont need anyone to counter that statement, I have already reviewed and played with enuff c# to know it is true enuff.

I guess I am saying if you learn it from the ground up, you tend to know alot more.
if you learn it from the top down, you might find alot of the low level stuff pretty confusing due to the nature of the high level abstractions.

Just my 2 cents, take it for what it is worth.
#16
10/31/2008 (5:08 pm)
Vista slow? Hmm, you must be using hardware from 1998. On the correct hardware (meaning almost anything you can buy today) vista outperforms and out classes XP. XP is better than Win98 by miles. Vista had a pretty bad launch and has a pretty horrible and undeserved reputation at the moment. Apps on vista having compatibility problems is 98% of the time due to crappy programmers who wrote the apps, not vista itself. And I find myself defending vista more than I should have to because so many people like you keep spreading bs about, what in reality, is a great os.

Linux is annoying and has a long way to go before it will come close to touching Windows or Mac in the main market. The only thing it has going for it, is that its free. Most people use Linux or Mac's because they want to think they are better than everyone else, which is retarded.

C# is a lot more complicated to learn than you may think, though it isn't horrible. There are a lot of things to know how to do so you don't re-invent the wheel and do a whole bunch of stuff that has easier ways of being accomplished. And I really don't care if most people don't realize its incredible potential, because employers do, and there will just be more opportunities for me. Keeping on top of the latest technology is not optional in this field, it is required, and those who fail to do so will never realize their potential.

Sorry for getting off track, I can't stand the outdated views and opinions about Microsoft. Its 2008 guys, wither you like it or not, Microsoft's products are better than most out there and they won't be stopping any time in the remote future.
#17
10/31/2008 (5:28 pm)
.NET/Mono isn't just about C#. There are a lot of languages you can write in... these languages can all interact and use the standardized libraries... and your binaries are 100% compatible across platforms with no need to recompile.
#18
01/03/2009 (6:02 pm)
Sorry to post in a old topic but i found this interesting.

Quote:
and this thinking is EXACTLY why vista is as slow as it is.
it is why XP runs slower on a fast machine than windows 98 on a slow machine.
imagine win 98 on that fast machine?

Quote:
Vista slow? Hmm, you must be using hardware from 1998. On the correct hardware (meaning almost anything you can buy today) vista outperforms and out classes XP. XP is better than Win98 by miles

I believe what badguy says to be true actually. I think you missed what he was saying. You can't take windows Vista and run it on a 1.2ghz single core processor with a pc running 512mb of ram, while with Windows 98 you can. With each evolution in the Windows operating system, it requires stronger hardware specs to run it. Does this make Microsoft the bad guy? No, it's what the market demands really, consumers will not buy a PC that looks out dated. if Microsoft does not update their operating systems with new bells and whistles, the majority of the consumer market would turn to Apple. So Microsoft competes, and it requires better hardware to run the software. Could Vista be ran on a OS with 1gb of memory and a 1.6ghz processor if coded right? I dont see how it could. I was shocked the other day when I had World of Warcraft minimized, and put my mouse over the minimzed tab in my windows start bar, and saw my game in a preview window. It wasn't a thumbnail/screenshot... The game was running, in a mini preview window, allowing me to browse the web, and checking my game from time to time, without ever hafting to maximize it. I'd like to see that happen on a PC with 512mb of ram, it would probably blow up. With each new feature that gets added to the OS, the better hardware we will need. Pure and simple.

As for Linux, it's a good operating system if you trim out all the extra goodies that come with it. When I install Red Hat or Susie on my machine (1.8ghz dual core, 3gb ram) with all it's bells and whistles, it runs slower than my Windows Vista, but if I install it with all the services and extra visual/user friendly things disabled it runs fine. One of the main problems, and it's been awhile since I really messed with it, but when I used to download applications and install them on my linux, I always had to go back online to find libraries that my installation of linux was lacking. For the most part, when you install a Windows app... it just works. With Linux, i always had to do some fiddling to get things to work. Maybe this isnt an issue anymore, i dont know.

This is a little off topic I think, but I think that for as long as Linux is free and distributed by more than 1 company, it will never gain a good share of the market to compete with Apple and Microsoft. Software developers can write a .Net application for Vista and know that it will run without problem. That same application might need to have special libraries wrote for each different version of Linux that the software will be distributed it. You dont know what version of OpenGL Red Hat uses or Susie uses, so you will have to write your code to support multiple versions of it ect. You write your software for Vista you know you need to write for DX10 and you know that all pc's will be running the same version of DX (and if not you can have your installer run the DX redist to update the pc's dx).

Well I'm kind of rambling, i'm not pro Linux or Microsoft, and I would like to see Linux do better in the consumer market, but until all versions of linux (Red Hat, Susie, Fedora ect) ship with the same version of all their libraries, I believe Microsoft and Applie will continue to dominate the market.

Just my .02

Edit: I suppose you know what versions of OpenGL each version of Linux would be shipped with, the problem lies in the fact that each company probably ships a different version of OpenGL, and so you need to write multiple versions of your graphics engine or what have you, to run on the supplied OpenGL on the users linux. All Vista PC's have DX10, and you dont have to worry about the machine not having the same version.