Sign in to follow this  
Luciano

New to game programming. newb question

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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++.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Quote:
Original post by Content_dog
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.


lol i dont think anyone here would make a game for you. it takes a while for you to learn how to make a game depending on what kind of game and if its going to be in console or not. you would also need to learn graphic design after learning a language. its gonna take awhile before you can get there. but its never too late to start.

Share this post


Link to post
Share on other sites
Quote:

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.

If you want to give yourself a name, you will need to put forth effort
yourself. No one will make the game for you simply because games are
complex software.

The complixity level depends on what type of game you are making.

Coinsidering you dont know anything about game development, how are
you going to respond to questions users of 'your' games ask about?

I recommend learning yourself. Learn a programming language (C++,Java,C#,
Visual Basic, Python, whatever), then an API (DirectX, OpenGL, Win32,
SDL, etc.) Then learn Ai and collision detection. Then you will be able
to create a *Simple* 2d game (Mabey 3d)

For 3d, I recommend having knowledge with (at least) linear algebra, vectors,
matrices, and trig. All of these are very important in 3d.

You can also use a game engine, but you will still need to write your
game that uses the engine.

And of course, you can post your game project to recrute more developers in
the Help Wanted forum, but I recommend waiting on it until you have a grasp
on basics of game development.

Share this post


Link to post
Share on other sites
Working in the industry, every single codebase I've ever seen was entirely C/C++ with a few of the projects lead by "optimization wizards" inlining assembly code in a lot of performance critical areas.

With that said. You'll be hard pressed to find much C++ in build pipelines, rather you'll find scripting languages (C#, perl, etc...) used alongside some sort of text docs for configuration(XML, txt, etc...).

Lots of games are database heavy and use full SQL (or something else) queries.

There's room for all sorts of programmers in the game industry. The real key is to not necessarily learn a language, but to learn how to program. The good thing about C/C++ is that it is easy enough to get the basics of in a couple years and it challenges you enough to really understand how and where memory is being allocated, how the stack works, pass by reference vs. pass by value, and a lot of other things.

As for it dieing out? I don't see it happening until at least the end of the PS3/XBox360 generation (and even then there will be a lot of stubborn people with a lot of experience that the games industry doesn't particularily want to lose). For business applications it seems less and less popular to use C++ (I work in the games industry and so do all of my friends so forgive me if I am totally off base), but for games it'll stick around for quite a few more years.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this