Sign in to follow this  
lordmenace

I really want to learn C++ with a passsion but...

Recommended Posts

lordmenace    144
I don't know what program I am supposed to use. I have downloaded Microsoft Visual C++ express edition 2005(free). Is that all I need? I have seen a package (expensive) called Microsoft Visual Studio 2005. Is dev C++ good? Which is better? In terms of web design, you can make an html/php page with notepad, but notepad is a light weight compared to Microsfot Frontpage. Microsoft frontpage Doesn't hold a candle to Macromedia Dreamweaver. If I google "Learn C++" what software will they most likely be using for their tutorials? Thanks. I am so happy I found this community. Life dream to code a game ^_^.

Share this post


Link to post
Share on other sites
jflanglois    1020
[edit] Since this is your first post, welcome to GDNet :)

Visual C++ 2005 Express is a great piece of software, free or no. You will be missing some of the features of the other editions, but if you are just learning C++, then it is more than enough. Just make sure you have read this and you should be good to go.

In the end, though, you should try Dev-C++ as well and see if you prefer it to VC Express. They are both good IDEs with good compilers (I prefer VC++ because it has a great debugger; I recommend you learn how to use one as early as possible, although it is not your first priority).

As for a good tutorial, take a look at Correct C++ Tutorial.


jfl.

[Edited by - jflanglois on May 18, 2006 12:44:04 AM]

Share this post


Link to post
Share on other sites
GamerSg    378
Since you have already decided on your language, your next step would be to learn to use your language. Also i recommend reading this if you have not. Once you are fairly comfortable with C++, you could move on to using a library/engine to create your game.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
if you are a beginner, it is probably a good idea to really check out the various alternatives to MSVC++ (i.e. DevC++ or CodeBlocks), simply because you are much more likely to learn MS specific C++ stuff that may not be applicable to or available on other platforms when using MSVC++.
DevC++ and CodeBlocks however do not directly support this stuff when using the MingW/GCC compiler suite, so you are sort of forced to learn the generic stuff first. Nevertheless, if you chose CodeBlocks, there won't be any problem switching backends (compilers) if you should have to, as it supports several compiler suites natively.
So, if you are interested in learning C++ in a fashion that is generally applicable to most settings, I would recommend not to use MSVC++ right from the beginning. Nevertheless MSVC++ is a great IDE and you are likely to miss a lot of features when programming in a different environment.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Quote:
Original post by lordmenace
If I google "Learn C++" what software will they most likely be using for their tutorials? Thanks.

Usually, tutorials will start out with developing console applications, that is it shouldn't matter what compiler you are using as long as it can be run from a shell and supports most of ISO C++.
Anyway, your safest bet would probably be the GCC compiler suite, simply because it is widely available and supported, and sooner or later you'll appreciate having learnt one tool for all platforms, rather than dozens of different compilers for each platform you may be interested doing development for.

PS: google for "C++ tutorial" too, as well as check out the GD.net resources, there are plenty of references available here.


Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Anybody wondering what approach to take or what tools to use when learning C++, check out the following webpage:
http://www.goingware.com/tips/fundamentals.html

Share this post


Link to post
Share on other sites
pulpfist    528
Most programming examples and library source code out there is written with VC++ version 6.
VC++ 2005 express is able to open and convert a VC++ 6 project so thats not a problem.

This explains what you need in addition to the MSVC++ 2005 express IDE.
If I remember correct you need to upgrade to SP2 and install Microsoft Platform SDK.
Update some files and settings (as described in the link) and your good to go.

Personally I have both CodeBlocks and MSVC++ 2005 express installed.
CodeBlocks is fast and less CPU/Memory intensive than MSVC++ so I prefer it for simple test applications and small projects

Share this post


Link to post
Share on other sites
quasar3d    814
There really isn't that much language difference between gcc and visual c++ anymore. the 2005 compiler is very standard compliant, so don't be affraid that you learn wrong c++ or something.

I really recommend you to use visual c++ express edition. With the open source ides like dev-c++ and code blocks, you will get all kinds of weird problems, which have some obscure reason, and it would be a shame if you get discouraged because of a bad ide. Visual C++ just works, and you can really focus on the actual c++ programming. Plus the things like having a good debugger and intellisense really make your coding experience a lot better.

Share this post


Link to post
Share on other sites
Adam Hamilton    271
Quote:
Original post by quasar3dand intellisense really make your coding experience a lot better.


I agree that the intellisense provided by C++ has been quicker in writing out function definition parameter lists however I think the intellisense is quite poor. Visual Studio Express does not come with support for macros or add ins so Visual Assist X is out of reach.

I use it anyway because the express edition is good and you are allowed to distribute your .exe legally (I think you can even sell the software you create with express ed.)

Share this post


Link to post
Share on other sites
rohde    432
The MS Visual C++ Express is heaps better than DevC++ (IMO). The compiler is more standard compliant than other compilers on the market at the moment. The IDE has better features than DevC++ etc. Further much code on the net is made in VC++ workspaces/solutions which you can open in VC++ Express. In my world there's not even a contest here. DevC++ was great back in the day when MS didn't release a free VC++ version, and the MS compiler stunk. Not so anymore.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Quote:
Original post by quasar3d
There really isn't that much language difference between gcc and visual c++ anymore. the 2005 compiler is very standard compliant, so don't be affraid that you learn wrong c++ or something.

http://www.informit.com/guides/content.asp?g=cplusplus&seqNum=221


Share this post


Link to post
Share on other sites
jpetrie    13132
I'm not sure if you are the same AP that said "because you are much more likely to learn MS specific C++ stuff that may not be applicable to or available on other platforms when using MSVC++," but if you are that link does not really support your point, because it illustrating (primarily) changes made the IDE and compiler that made it MORE standard compliant. The exception would be in the first paragraph when they mentioned that some changes related to proprietary Microsoft APIs will break existing code. But that deals with MS-proprietary APIs... not language standards compliance.

I've got new for you: every compiler in existence supports non-standard extensions. Its just as easy to find yourself a C++ tutorial that advocates the use of #pragma once (potentially compiler-specific) as #ifndef guards. Or one that illustrates structure packing via #pragma pack (VS specific) or __attribute(pack) (GCC specific; but I may have the syntax incorrect).

An easy way to recognize compiler-specific extensions and keywords is that they involve #pragma's or identifiers starting with reserved tokens (such as __). That's what those mechanisms are there for. It's not the compiler that's going to make you more likely to learn compiler-specific extensions, its a bad tutorial or book that uses them without pointing out the dangers of doing so. Trying out multiple IDEs to get a feel for which you like best is an excellent way to discover if a tutorial has misinformed you about the "standardness" of a given keyword/operation/whatever.

To the OP, I suggest you try out VS Express, DevC++ and Code::Blocks which are easily the top three IDEs for the Windows platform. "Correct" C++ will work identically on all three (so hopefully you've found a good tutorial or book); experiment with all three and pick the one you like best.

Share this post


Link to post
Share on other sites
Zahlman    1682
Quote:
Original post by lordmenace
Life dream to code a game ^_^.


In that case, please consider the possibility that you do not in fact want to learn C++. There are lots of options out there.

Share this post


Link to post
Share on other sites
lordmenace    144
Wow, thanks guys for the amazing responses. I will play around with a few tutorials, and then when the C++ workshops come in, I will begin learning fully. Thanks.

Share this post


Link to post
Share on other sites
Spoonbender    1258
Quote:
Original post by Zahlman
Quote:
Original post by lordmenace
Life dream to code a game ^_^.


In that case, please consider the possibility that you do not in fact want to learn C++. There are lots of options out there.


Quoted for emphasis.

Repeat after me, please. You don't need to start with C++.
It is not "better" to start with C++.
It is not "faster" to start with C++.
It is not "easier" to start with C++.
It will not make it easier to get into the industry if you start with C++.
C++ will not let you make "better" games.

Got that? Good, now let me explain.
First, yes, C++ is widely used for professional games for various reasons.
But that doesn't matter. Every good programmer knows more than one language anyway. What you learn in one language can easily be transferred to other languages, and the more languages you know, the better. It'll even make you a better C++ programmer, because your thinking won't be restricted by what features C++ programs typically rely on.
And while this might sound odd, you can start with, say, Python, and then learn C++ afterwards in about the same time it'd take you to learn C++ as your first language. So starting with C++ is not even a shortcut.
Second, learning C++ can be needlessly hard, frustrating and discouraging. It forces you to spend too much time fiddling with weird syntax errors and subtle pointer errors that don't actually teach you anything about programming, but rather takes time away from it. these issues are much easier to tackle if you already know some programming. That is, if you're already familiar with another language. Then you can focus on C++'s quirks rather than try to learn programming *at the same time* as you're struggling with those.
And yes, C++ is the industry standard. But other languages are widely used as well. Python is used for scripting in many games (Civ 4 relies heavily on it, for example). Learning that is valuable too. Don't assume C++ is the ticket to a job in the industry. It isn't. Being a good programmer who knows the tools they use, is a good start. But they use more than just C++.
And last point, you can make great games in any language. Crash Bandicoot was made in Lisp.

In the long term, it doesn't make any difference what language you started with once upon a time. But in the short term, it's a lot easier to get to grips with other languages like Python or maybe C#. They'll get you started faster, meaning you'll be able to see results, and make games faster. And they'll make it *much* easier to learn C++ later on.

Ok, this little pep talk should hopefully have dispelled any of those vague impressions beginners always get that "There's C++ and then there's everything else".

Of course, it's possible to start with C++. Plenty of people have done it before. I'm not arguing that you can't do it. I just want to get rid of the silly notion that you *have to*, or *should* learn C++ if you want to make games.

In the end, the choice is yours though. There are plenty of people here who will help you with any language you choose.

Oh, one final piece of advice. Don't rely on tutorials. Buy a book instead. There's a huge difference in quality.

Good luck. [wink]

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