14
\$\begingroup\$

Right now, I feel I am strong in both Java a C#. (Not much of a leap from one to the other really).

While I don't expect a game designer/programmer is an attainable goal early on in my career, This is a goal I will reach later on in my career.

With this in mind, I feel that ignoring C++ and game design tools associated with it are eventually going to hurt me or slow me down in my ability to reach my goal.

Is this the case? Or can I continue to hone my C# skills using XNA and WPF for personal projects that can elevate me into such a career?

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Go look at positions at game companies and tell me what you see. You'll probably find that you have the web/facebook game crowd who are mostly looking for actionscript/php devs, the desktop crowd who look for c++/lua and the i-gadget crowd who use objective-c. It depends on what you want to do really as to whether or not you're hurting yourself. (This is coming from somebody who is focusing on C# and python and ignoring c++) \$\endgroup\$
    – Ken
    Commented Sep 29, 2011 at 21:25

6 Answers 6

21
\$\begingroup\$

IMO, yes, you are likely to be hurting yourself. First of all, rightly or wrongly there is a perceived hierarchy among programming languages -- and C++ generally has a higher standing than Java or C# (e.g., questions like yours are fairly common -- the reverse is virtually unheard of). If you apply somewhere that uses C# or Java, and you know C++, they're unlikely to question your programming ability. If you apply somewhere that uses C++ and you know C# and Java, there's a pretty fair chance, they will question your programming ability, at least to some degree. That's not to say the perception can't be overcome, but you're still putting yourself at a disadvantage.

Second, at least among the independent game developers I know (admittedly, not very many), there's some basic dislike of C# just because it's from Microsoft. Sun was viewed a lot more positively, but since the Oracle buyout that doesn't seem to be the case anymore at all. Most see "Oracle" and "cool games" as about as close to exact opposites as humanly possible.

Finally, from a practical viewpoint, games are one of the places where C++ is used most heavily. If you don't know C++ to at least a reasonable degree, it simply restricts your options considerably.

\$\endgroup\$
0
5
\$\begingroup\$

It isn't entirely clear, but what are your goals? To be a game designer? What do you think that position is/does?

In the basic case, as long as you're not writing actual code, not knowing C++ specifically won't hurt you. Of course, having a fundamental understanding of programming itself (object oriented design and being able to think in terms of conditionals, etc) is going to help you. What C++ itself does compared to C# or Java probably isn't going to matter when it comes to helping design game rules that are easy to describe with code.

\$\endgroup\$
0
3
\$\begingroup\$

It really depends on what your goals are. If you want to move into design as quickly as possible and work your way up there to be a director, the technical background you have knowing Java and C# well will be more than enough.

If your intent is to work your way up to a senior / lead programming position and move over to a director position from there, you'd better learn some kind of unmanaged language. Not necessarily C++ - C, Objective C, or something more fringe like D would be fine. But even working at higher levels of abstraction in C#, it's hard to be a great programmer without understanding pointers and memory management, without being able to read assembly and memory dumps, without being able to understand or even really implement low-level optimizations.

I should also add - if you're not in the industry now, planning 20 years out is silly. Maybe you'll find out you hate it; maybe you'll find out you don't want to be a director because of all the non-development crap involved, and you'd rather just stay a senior designer or programmer, working under a director but with lots of freedom in a specific domain you enjoy.

\$\endgroup\$
2
\$\begingroup\$

You will probably be fine using the languages you know; C# with XNA is popular right now since you can develop to XBOX360, Zune, and PC. Java's popularity is coming back because of Minecraft's indie success with it.

I was in a similar position as you though, and decided to "start over" so to speak with C++, and 2 weeks ago I purchased "Beginning C++ through Game Programming." It is NOT a game programming book, but a C++ beginner book that covers everything you will need to know in C++ when programming games with another API or Library, and substitutes boring projects with more game-related ones. It was a great read.

Now I am moving on to DirectX and purchased a book titled "Programming an RTS Game in DirectX" by Carl Granberg. It has fantastic reviews. I'm still not sure if I made a bad decision with DirectX over OpenGL, but we'll see.

\$\endgroup\$
2
\$\begingroup\$

Learning more languages will only be to your advantage. Even if nearly all pro engines use--or should use--scripting and/or extensive tools for designer ease-of-use, you're correct in that it helps greatly to have a project that you have specifically worked on. Even if your interviewer doesn't pay attention to your projects (which is already unlikely,) working on even one personal project will be a huge learning experience.

For designers and artists, the portfolio is arguably even more important, since you can't take programming tests or have straightforward tech interviews. So, I'm not saying that you should freak out and learn everything there is to know about C++.

Rather, you should be able to show a few games that have good design potential (think small, clear game concepts like Limbo or Portal,) whether you developed them yourself or you made them using Flash. Use coding as a tool, not as your primary weapon. Make sure they're easily accessible on your site with gameplay videos, screenshots, and available downloads.

Above all else, polish everything you make, no matter how small or what kind of project you have. If programming is about robustness and usability, then designing is about fun (people often forget this) and showing that you can really nail the details.

\$\endgroup\$
0
\$\begingroup\$

C++ is the originator and the creator of some of the most widely used languages which includes Java. By learning C++ (whether for game dev or otherwise), you'll be able to learn almost any language with speed and ease. That's the magic of this language. C++ gives you more control of the code as compared to Java. So if you want to really be a true master of your code, then you'd be in a much better position learning C++

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged .