Building a Resume? C#/XNA/.NET ?
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.
Many games lead on console platforms, particularly most bigger 'AAA' type projects. There are two console manufacturers who's names don't start with M. Even the C++ compilers on those other platforms leave a lot to be desired.
In addition, contrary to what many outsiders think, the games industry doesn't constantly re-invent the wheel for everything, and as a whole its getting much better at refactoring and evolving existing code. Companies have established C++ and even C code bases going back 5, even 10 years.
For development of tools used in the production of games, I personally think managed and probably C# will become the dominant technology. There are still a lot of legacy tools written in the pre-managed days, but things are changing.
Pure Win32 has never been too much of a requirement, even for PC games developers. Some jobs working on PC specific system integration/engine code have required it. PC game development on the whole doesn't require much past very basic window and message handling.
Increasingly, one size doesn't fit all for a programming language and you'll find a mixture being used on a game project: MaxScript or MEL in art DCC extensions, C#/.NET for other tools, C++ for game core code, Lua or other scripting language for gameplay code, HLSL/Cg for shaders, maybe even a smidgeon of assembly intrinsics for library and engine code.
I'd separate D3D, OpenGL from all of the above. Do you want to specialise in developing low level renderers? If so, learning them properly could be useful, they're two dominant technologies that show no signs of dying any time soon. Non-MS consoles don't really use either (you can but most people aren't). If you want to just develop PC games for companies that only develop PC games, both are more useful to have.
If you don't want to specialise on low level renderers, it's unlikely you'll need to use either in your work. Companies hire specialist low-level renderer and graphics programmers (or buy in middleware) whose job it is to abstract above the graphics hardware and graphics API to provide a cross-platform interface for game code to use. Most games programmers write code that talks to the in-house, cross-platform graphics code.
What is 10000 times more important than knowing a specific graphics API, particularly if you want to specialise in graphics programming, is knowledge of key algorithms, data structures, techniques and methods related to that field.
In addition, contrary to what many outsiders think, the games industry doesn't constantly re-invent the wheel for everything, and as a whole its getting much better at refactoring and evolving existing code. Companies have established C++ and even C code bases going back 5, even 10 years.
For development of tools used in the production of games, I personally think managed and probably C# will become the dominant technology. There are still a lot of legacy tools written in the pre-managed days, but things are changing.
Pure Win32 has never been too much of a requirement, even for PC games developers. Some jobs working on PC specific system integration/engine code have required it. PC game development on the whole doesn't require much past very basic window and message handling.
Increasingly, one size doesn't fit all for a programming language and you'll find a mixture being used on a game project: MaxScript or MEL in art DCC extensions, C#/.NET for other tools, C++ for game core code, Lua or other scripting language for gameplay code, HLSL/Cg for shaders, maybe even a smidgeon of assembly intrinsics for library and engine code.
I'd separate D3D, OpenGL from all of the above. Do you want to specialise in developing low level renderers? If so, learning them properly could be useful, they're two dominant technologies that show no signs of dying any time soon. Non-MS consoles don't really use either (you can but most people aren't). If you want to just develop PC games for companies that only develop PC games, both are more useful to have.
If you don't want to specialise on low level renderers, it's unlikely you'll need to use either in your work. Companies hire specialist low-level renderer and graphics programmers (or buy in middleware) whose job it is to abstract above the graphics hardware and graphics API to provide a cross-platform interface for game code to use. Most games programmers write code that talks to the in-house, cross-platform graphics code.
What is 10000 times more important than knowing a specific graphics API, particularly if you want to specialise in graphics programming, is knowledge of key algorithms, data structures, techniques and methods related to that field.
Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site
James wrote:
>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.
1. It doesn't matter if C++ is confusing to you - it IS the standard. Maybe you're not cut out for working in games?
2. What the hell is "wasted knowledge"? FAQ 51 - http://www.sloperama.com/advice/lesson51.htm
>Will there be a place for each of these in the game industry? Will unmanaged-C++ die out in the game industry?
My crystal ball is in the repair shop at the moment.
Maybe you should not try to get into the game industry. You might come to hate it very quickly.
>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.
1. It doesn't matter if C++ is confusing to you - it IS the standard. Maybe you're not cut out for working in games?
2. What the hell is "wasted knowledge"? FAQ 51 - http://www.sloperama.com/advice/lesson51.htm
>Will there be a place for each of these in the game industry? Will unmanaged-C++ die out in the game industry?
My crystal ball is in the repair shop at the moment.
Maybe you should not try to get into the game industry. You might come to hate it very quickly.
-- Tom Sloper -- sloperama.com
Quote: 1. It doesn't matter if C++ is confusing to you - it IS the standard.
So what? More and more games are being developed with C# and other .NET languages, especially with the release of XNA. I really get sick of people saying that someone probably shouldn't be a game developer because they don't follow the standards. Who says the standard way of doing things is the RIGHT way to do things? C# can be just as good as C++ and maybe even better.
My experience is that companies don't really care about the .NET stuff. Curiously, I've been asked several times during interviews whether that stuff is going to be viable soon, what the current technical problems are, etc. I've been happy to discuss it with people, but when things roll back around to the job, it's always about C++, and usually questions about architecture and implementation rather the language itself. Nobody cares that I know how to do partial template specialization, for example, but a lot of people care if I understand how virtual functions are implemented, what the basic layout of a graohics pipeline is, how virtual memory works at various levels, and so on. I haven't gotten any Windows specific questions, or API specific questions for that matter.
My best estimate is not only will C++ not die out, it's firmly entrenched until at least 2015. And that's specifically the current version of C++; the same date applies to C++0x making any headway.
My best estimate is not only will C++ not die out, it's firmly entrenched until at least 2015. And that's specifically the current version of C++; the same date applies to C++0x making any headway.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote: Original post by darkcypher543Quote: 1. It doesn't matter if C++ is confusing to you - it IS the standard.
So what? More and more games are being developed with C# and other .NET languages, especially with the release of XNA. I really get sick of people saying that someone probably shouldn't be a game developer because they don't follow the standards. Who says the standard way of doing things is the RIGHT way to do things? C# can be just as good as C++ and maybe even better.
Who cares if it's the "RIGHT" way - if you want a programming job in the game industry today, you will most likely be using C++. If things change and you have skills in the area things end up migrating, then good for you...
In latest issue of Game Developer Magazine, Ubisoft mentioned that over 40% of their hires come from employee referrals - not from people responding to job ads. Then, there`s about 15% (or more) hires from older records/CVs (that are kept aside). So probably only around one third of candidates can get in through regular ads. Pretty low chance considering the amount of CVs they get.
And on top of that, you just had put your CV directly to bin, since you don`t have experience in C++...
Good luck fighting for the .NET positions, as few as there are of them.
And on top of that, you just had put your CV directly to bin, since you don`t have experience in C++...
Good luck fighting for the .NET positions, as few as there are of them.
VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596
This is actually really interesting; when it comes to hiring programmers I always find one thing you want to check for is 'hot-button' behavior like this.
It doesn't really matter if he's a zealot for C#, design patterns, GPL, or EMACS, but a lot of very very smart programmers have a tendency towards psudo-religious ranting on the topic of their choice. Note that this is not about having a preference (there's nothing wrong with people enjoying the simplicity of C#, or the philosophy behind OpenSource).. it becomes an issue when any questioning/deviation from the One True Path causes explosive tirades, peppered with sound-bites; what one co-worker of mine called 'going jihadi' (he was a Muslim, talking about a Chinese, so he wasn't being TOO politically incorrect).
One of my friends (probably borrowing from JPod, by Robert Copeland), commented that this might be a precursor to a form of mild Aspergers syndrome. Many Programmers, after all, have symptoms of mild autism, like lack of social interaction skills, extremely narrow focus of interest, task-level mono-focus, highly developed internal data-representations, etc. While a lot of that is very beneficial to what a game programmer does for a living, it's not always conducive to the team's working atmosphere.
Just a thought,
Allan
It doesn't really matter if he's a zealot for C#, design patterns, GPL, or EMACS, but a lot of very very smart programmers have a tendency towards psudo-religious ranting on the topic of their choice. Note that this is not about having a preference (there's nothing wrong with people enjoying the simplicity of C#, or the philosophy behind OpenSource).. it becomes an issue when any questioning/deviation from the One True Path causes explosive tirades, peppered with sound-bites; what one co-worker of mine called 'going jihadi' (he was a Muslim, talking about a Chinese, so he wasn't being TOO politically incorrect).
One of my friends (probably borrowing from JPod, by Robert Copeland), commented that this might be a precursor to a form of mild Aspergers syndrome. Many Programmers, after all, have symptoms of mild autism, like lack of social interaction skills, extremely narrow focus of interest, task-level mono-focus, highly developed internal data-representations, etc. While a lot of that is very beneficial to what a game programmer does for a living, it's not always conducive to the team's working atmosphere.
Just a thought,
Allan
------------------------------ BOOMZAPTry our latest game, Jewels of Cleopatra
Quote: Original post by darkcypher543Being a standard has nothing whatever to do with being right/wrong/better/worse. The standard programming language became the standard just because it got the job done and it was what more people knew. It's cheaper and easier to get those who don't know to learn the standard than it is to abandon the standard and get the majority to learn something new which may, or may not, actually be better.
So what? More and more games are being developed with C# and other .NET languages, especially with the release of XNA. I really get sick of people saying that someone probably shouldn't be a game developer because they don't follow the standards. Who says the standard way of doing things is the RIGHT way to do things? C# can be just as good as C++ and maybe even better.
You also have to keep in mind that just because development might be better/easier companies aren't simply going to abandon current set-ups due to the existing investment in the current system and the cost of adopting a new system (including training costs and lost productivity).
Dan Marchant - Business Development Consultant
www.obscure.co.uk
www.obscure.co.uk
C++ is the standard for programming AAA next gen console games.
However there are other languages in use in the games industry. Java is used on mobiles. Some serious games and edutainment titles use C# or Java or things such as virtools. Hell some still use Delphi or VB and I'm not talking about small indies either.
Also don't forget a lot of gameplay programmers use scripting languages anyway.
If you can program in C# though you should really consider jumping into C++. If you can already program (and by program I mean actually apply programming techniques and design patterns to solving problems not just learning some of the syntax of a language) then learning enough C++ to create a game demo isn't that difficult.
The people who say you must know C++ to work in the games industry mean if you want to work on Console and mainstream titles.
However games don't always have to revolve around PS3, 360, Wii, DS or PSP.
A friend of mine got a job this week after sending in a demo disc written entirely in C#. However he was very lucky and applied to the right company at exactly the right time. It was also a very impressive demo disc.
Knowing an API like directX doesn't neccessarily matter that much because as already said you will probably using an inhouse codebase. I got my current job by sending in a software renderer.
However there are other languages in use in the games industry. Java is used on mobiles. Some serious games and edutainment titles use C# or Java or things such as virtools. Hell some still use Delphi or VB and I'm not talking about small indies either.
Also don't forget a lot of gameplay programmers use scripting languages anyway.
If you can program in C# though you should really consider jumping into C++. If you can already program (and by program I mean actually apply programming techniques and design patterns to solving problems not just learning some of the syntax of a language) then learning enough C++ to create a game demo isn't that difficult.
The people who say you must know C++ to work in the games industry mean if you want to work on Console and mainstream titles.
However games don't always have to revolve around PS3, 360, Wii, DS or PSP.
A friend of mine got a job this week after sending in a demo disc written entirely in C#. However he was very lucky and applied to the right company at exactly the right time. It was also a very impressive demo disc.
Knowing an API like directX doesn't neccessarily matter that much because as already said you will probably using an inhouse codebase. I got my current job by sending in a software renderer.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement