New to game programming. newb question

Started by
11 comments, last by dashurc 17 years, 1 month ago
Hey, I have just joined this community and I had a few question I was hoping some of you guys can help me solve. I have just learned some of the basics of C++ (variable, array, functions) and the reason I'm learning this is because I would like to program games as my future career. I would like to work with big companys and work on big projects. I am still in high school and the problem is I have heard from a teacher that C++ is being less used and that there are other programs that are much "better" that C++. I would like to know if this is true and if C++ is required to be a efficient programmer. I also want to know if C++ will "die" out and if some other language would be better. Thanks a lot in advance and sorry for my bad english and if I'm asking stupid questions.
Advertisement
Most commercial game companies still use C++ as their primary language.
There are several reasons for this (Legacy code, portability, speed, etc.)

Some commercial games also use Java for online games.

I dont think C++ will die out soon. imo, there are some problems
with C++, that newer languages try to solve (Java, C#), but this
also makes them more higher level (To a degree) then C++.

If you want to program in a commercial game, I recommend
sticking with C++.

This is purely based on personal opinion.
Quote:Original post by Crypter
Most commercial game companies still use C++ as their primary language.
There are several reasons for this (Legacy code, portability, speed, etc.)

Some commercial games also use Java for online games.

I dont think C++ will die out soon. imo, there are some problems
with C++, that newer languages try to solve (Java, C#), but this
also makes them more higher level (To a degree) then C++.

If you want to program in a commercial game, I recommend
sticking with C++.

This is purely based on personal opinion.


thanks a lot for the information. i think i will just stick with C++ and learn C# after that.

Just master C++ and try and get the best at it, you can always learn a new language when needed but C++ seems to be going strong right now (although i use Java). Just get good at C++ and the more programming experience, the better.
Definitely stay with c++. Theres plenty of time to learn c# later if you dont end up in the games industry. c++ will be here for a long time to come. Even though c# is on xbox, we dont use it in the industry, mainly for inefficiency, and engines are currently in c++ (cross platform, ie on pc/xbox/360/ps2/ps3/wii). A short while ago, still in C, not even in c++.
Quote:Original post by Luciano
I have just learned some of the basics of C++ [...] I would like to program games as my future career.

How many years from now do you plan to develop professional games? I bet you still have enough time to learn other languages until then :) There's no reason to learn only one language.
Moving you to For Beginners.

- Jason Astle-Adams

I can say a few things with varying degrees of certainty:

1a. In 2-3 years time more than 80% of all "big" game companies will still use C++ as the primary langauge for their core engine code.

1b. In 4-7 years time (when you get out of college) it is MUCH less predictable how many companies will use what languages. I can guarantee some will still use C++, some will use C# (or any .NET language, cause once you are .NET language doesn't matter), etc.

1c. Now, and increasingly in the future, many of the smaller companies will use higher level languages. Most small teams (if starting from scratch) are already able to realize a benifit of using a language like C# over C++, and that trend will continue into the future, allowing more languages like python and ruby to become completely viable for commercial games.

2. Over the comming years less and less of the game will be in the "engine" and will be able to be moved out into external code and plugins. We have already seen this trend with modable games. Currently unit behavior is often coded in or with the unit, map rules in the map, rulesets as plugin packages, AI as scripts, etc. And rarely are these pieces in any way tied to the language of the engine (python, lua and many others have been used succesfully, as well as custom langauges such as Unreal Script, CScript, etc).

3a. C is the language most directly representing what model a chip is abstracted to, there simply is no other usefull language that more accurately resembles how a CPU or its various subpieces (such as PS3 SPE's) think of code. As such, it is a great language to learn, if just for getting the concepts of "by-value" and "by-reference" ingrained correctly, learning pointers, and understand how memory management works under the hood. That said, it doesn't matter if you learn this language first, in the middle (after 2-3 years), or after you are a senior developer with 7 years experience. Whenever you learn it, it can help you understand things. But it won't be the language to actually get code written in.

3b. C++ gives you 3/4th of the mental benifits of C (it offers the low-level understanding, but most people use a level higher, like new/delete instead of the old crappy malloc low level stuff), while giving you 2/3th of the high-level benifits of languages like Java / C# (all the classes, polymorphism, overloading, etc ... but none of the automagic object lifetime management), while giving you 100% of the benifits of being able to model and tackle any possible program that is even theoretically possible. There is no program that cannot be successfully written in C++, just programs that are either quicker, or longer to do, and that will be either bigger (harder to maintain) or not when done.

4. You can learn to program in any order. You can start with the low level languages, then add abstraction and OO later. You can start with the high-level langauges then add deeper concerns later. It really doesn't matter. I have over 7 years professional experience and I still learn and relearn core concepts every year. You get into cycles of viewing the world a certain way, and trying something new helps you add more tools to your toolbox, giving you an option of seeing previously hard problems very differently (and often as very easy to solve).

5. I personal did mostly C++ in school, then got C++ jobs for the next 5 years, doing fun and interesting stuff, then got business oriented jobs using C# for the past 3 years. But I still write C++, C# and ruby all 3, every year to tackle something important (even though C# is the only my job makes me use, the others are usefull enough to pull out as needed). These days I use C++ least (maybe 3-5% of my time), then ruby (maybe 5-15% ofmy time), and C# nearly every day.

Everyone's path through life and development varies, and therefore everyone has a different set of things that are easy or hard to them, obvious or tricky, and fun or boring.

Much more improtant that making the "right" choice of where to start, is just making the choice to start at all, and following through with it. And then remaining flexible enough to change and grow as you journey.

Good luck.
thanks a lot for all your replys. I will definitely stick with C++ and hopefully be able to contribute to the community later on.
Please, im new, help me make a game, it would be appreciated.

I just wanna make a game and upload it to miniclip or somthing, try to give myself a name online, y'know, I want to become a game programer one day, and I know nothing about it.

please help!!!

Thanks if ya do.

cya lata.

This topic is closed to new replies.

Advertisement