[For a Beginner] C++ express 2010 or C++ express 2012?

Started by
33 comments, last by EngineProgrammer 11 years, 6 months ago
I cannot think of any reasonable justification for a complete beginner learning C++ over something like C#. "Complete freedom" for a beginner = enough rope to hang yourself many times over.


This is such a negative outlook. Yes, C++ doesn't provide all the comforts of C# but what you might learn from repeatedly tying your own noose is invaluable.

Really C?
It isn´t even object oriented. Thats definitly not what you want to do if you want to get a game dev. Objects are the base of a game. C seems to be the worst decision for a beginner


My apologies but this attitude pisses me off. It is perfectly possible to do small projects in C. Hell, the original Quake is in C (complete with source code available online). OOP is not the be all and end of of life. People need to stop being so hung up on it.
Advertisement

[quote name='GeneralQuery' timestamp='1348598048' post='4983670']I cannot think of any reasonable justification for a complete beginner learning C++ over something like C#. "Complete freedom" for a beginner = enough rope to hang yourself many times over.


This is such a negative outlook. Yes, C++ doesn't provide all the comforts of C# but what you might learn from repeatedly tying your own noose is invaluable.[/quote]

It's a pragmatic outlook. There are far easier and more efficient ways of learning the... "lessons" C++ teaches begginers without the counterproductive baggage than starting with C++ as a first language.
Look guys (or girls) I don't know much of anything regarding programming (as I stated before) however what I do know is....

*C++ is the standard however it has a very steep learning curb (even worse for me since I'm a beginner)
*I had Java in the back of my mind for a while but I read (from other forums so don't take this as a solid point) that Java is rather dated

Since I was not so specific in my OP apparently let me ask a few other questions...

*What exactly is a library and how do I apply it into my programming?
*What is an engine? (I see on various games that it is powered by so and so's engine example - from what I understand it basically runs the code??)

[size=1]Please stop arguing... because a lot of what I've read has gone over my head (obviously you know more than I on the matter)

Look guys (or girls) I don't know much of anything regarding programming (as I stated before) however what I do know is....

*C++ is the standard however it has a very steep learning curb (even worse for me since I'm a beginner)
*I had Java in the back of my mind for a while but I read (from other forums so don't take this as a solid point) that Java is rather dated

Since I was not so specific in my OP apparently let me ask a few other questions...

*What exactly is a library and how do I apply it into my programming?
*What is an engine? (I see on various games that it is powered by so and so's engine example - from what I understand it basically runs the code??)

[size=1]Please stop arguing... because a lot of what I've read has gone over my head (obviously you know more than I on the matter)


A library is essentially a piece of code that someone else has written to perform various tasks for you, for example Bullet physics is a library that will do physics calculations so you don't have to. A library is usually a dll (on windows at least) that will be linked to your code.

An engine is similar to a library and some engines are libraries but mainly they perform the various functions of a game such as rendering and such so all you have to do is write game logic.

As for language choices, just continue with what you set out to do and don't let anyone tell you otherwise. The great part about c++ is that it can be as simple or as complex as you want it to be, c++ can even be c if you want it to. The learning curve of c++ is by no means steep. C++ also happens to be compatible with more third party libraries than most other languages. Its just a pleasure to use and definetly not a noose.

If you're smart and use libraries like SDL you could easily finish a pong game in two weeks.
Everyone keeps going back to C++.
I did hobbist programming in C++ for almost 8 years and before that worked with C for years...

I will tell you right now without a shadow of a doubt that its faster to develop games with a good library in C# than it is with the same or similar library in C++.
(At least for me)

If you you want to spend weeks to months learning C++ and all the gotcha's involved that is completely up to you. (Dealing with circular dependancies etc comes to mind)
But if you want use something like XNA with c# you will have results in no time.

C/C++/C# are all very similar/compatible in syntax so learning one would do a great deal towards learning the others.
If you're going to be a programmer you're going to learn a lot of languages. C++ can be a good starting point because if you drop by half-priced books they'll probably pay you to take away from their pile of "How to make games in C++" books from the 90s.

As far as your IDE, my only point of advice would be DON'T PAY MONEY FOR IT. Because you can get them for free and they all do more or less the same thing. Honestly, I sometimes want to take my hard disk out and throw it in the dishwasher because of some of the nonsense that VS pulls, but the auto-complete feature can make cpp coding a lot faster (that is, when it's not just getting in the way) and the at-hand windows dev tools make it worth the trouble.

When I really learned C/C++ though I was writing in SciTE and compiling with cygwin/gcc.

When you're first starting out the IDE isn't really important and too many features can cause needless confusion. Once you have a feel for what's going on you can look around the place to see what's available and pick something based on the features that tickle your fancy.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
In your case, I wouldn't worry about C++ for now. I'd download either the UDK, or Unity3D and just start making an FPS game. Both of them will let you get the base of your game up and running quickly (just walking around levels) and then you can slowly implement the rest of the functionality while not worrying about trivial boilerplate code.

*C++ is the standard however it has a very steep learning curb (even worse for me since I'm a beginner)

Nah. It's not steep. It's just long. You can start writing crappy-but-functional C++ code in like 5 minutes, but learning to get the most from the language is a continual process.

*I had Java in the back of my mind for a while but I read (from other forums so don't take this as a solid point) that Java is rather dated

It's highly portable, but when you eventually do start with C++ you'll catch a lot of flak for using Java-esque patterns.


*What exactly is a library and how do I apply it into my programming?

A library is a set of already-written code that you can tie into a program you're writing. For instance, if you want to display graphics you'll probably need a graphics library such as OpenGL or DirectX. C++ comes with several libraries for basic functionality including the 'old C' libraries and the Standard Template Library (STL) which help with things like managing data more easily, printing out text, or even connecting to another machine over the internet.


*What is an engine? (I see on various games that it is powered by so and so's engine example - from what I understand it basically runs the code??)

An engine is sort of a 'super-library'. A game engine would typically include tools for managing graphics, player input (keyboard, mouse, joystick), audio, even networking. A good engine will 'abstract' you away from any system-specific code so that you can write the game code once and the engine code will let it run on a pc or a mac or a playstation, etc, based on how you compile.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
Well after thinking it over I have decided I will go along with C#. As for the matter of IED's I am just going to use the default one.

Well after thinking it over I have decided I will go along with C#. As for the matter of IED's I am just going to use the default one.


Some free Resources:
C# Yellow Book: www.robmiles.com/c-yellow-book/Rob%20Miles%20CSharp%20Yellow%20Book%202012.pdf
C# Station: http://www.csharp-station.com/Tutorial.aspx

This topic is closed to new replies.

Advertisement