To Learn C++......................?

Discuss music production with Ableton Live.
simmerdown
Posts: 3761
Joined: Wed Oct 26, 2011 3:36 pm
Location: Northwest Nowhere

To Learn C++......................?

Post by simmerdown » Tue Oct 23, 2012 12:15 pm

this is for my kid, who came to me saying he wants to learn to code, and make games

i gather that, like Live, most games are being done with C++, is this still the case?

where to begin?...i mean the very beginning

is there a platform of some kind that you work within?

as you can tell, i know zilch about this, so any guidance, links, or ideas greatly appreciated

trevox
Posts: 659
Joined: Wed Mar 23, 2011 12:58 am

Re: To Learn C++......................?

Post by trevox » Tue Oct 23, 2012 12:27 pm

I was looking into a career change myself and looked into this. A good place to start with programming is to start with a simpler language to learn. From what I have read, if you want to become a C++ expert, you really need to be looking towards a degree in computer science (unless you are extremely good self learner, very driven and can devote a lot of time to it). It is likely to take a very long time - probably longer without any tuition. A good program to begin with would be Java. Generally you can get a good grounding and begin writing programs in 3-6 months from courses I have been looking in to. And in any case, these days most good programmers use several languages, not just C++.

Having said all of that, here is a book that I find extremely well written that outlines the fundamentals very well. And I believe it is written by one of the creators of C! I started off well, but things change and I now don't have much time to devote to it.

Author: Bjarne Stroustrup
Title: Programming - Principles and Best Practices Using C++

Hope that helps...

EDIT: That book tells you what compilers you need etc to create your C++ programs - pretty much covers everything
Last edited by trevox on Tue Oct 23, 2012 12:28 pm, edited 1 time in total.

Mr-Bit
Posts: 293
Joined: Sat Dec 16, 2006 3:02 pm
Location: The Studio
Contact:

Re: To Learn C++......................?

Post by Mr-Bit » Tue Oct 23, 2012 12:28 pm

My progrmmer mate says learn C then I'll be ready for anything but he started when he was 8yrs old. Getting a Jazzmutant Lemur was my introduction, light and satifying.

Could start here

http://msdn.microsoft.com/en-us/library/bb203894.aspx

or

http://www.microsoft.com/visualstudio/e ... o-overview

I'm playing around with web languages atm learning php/JS is teaching me allot, for me atleast its a long road!

subliminal
Posts: 23
Joined: Tue Sep 27, 2005 3:46 pm

Re: To Learn C++......................?

Post by subliminal » Tue Oct 23, 2012 12:50 pm

Following on from what trevox said.. might be worth looking at Processing (which is built on Java and can easily lead into learning the whole of Java).
It was specifically designed to teach programming, so is a little more 'friendly' than most other languages. There's also a great community around it, and perhaps best of all, some fantastic books - I learned with 'Learning Processing', which I thoroughly recommend.

http://www.processing.org/

BTW, I also did a little bit of C++ after learning processing, and found the transition quite straightforward. The principles (which are actually the 'hard bit') are the same.
Last edited by subliminal on Tue Oct 23, 2012 2:42 pm, edited 1 time in total.

Nokatus
Posts: 1068
Joined: Fri Jul 01, 2005 7:06 am

Re: To Learn C++......................?

Post by Nokatus » Tue Oct 23, 2012 1:18 pm

When actually starting to make the game, a small team (a couple of people) is usually better than doing everything by yourself. This might be jumping ahead of things a bit, of course, but something to keep in mind. You need graphics, music and sound effects - not to mention brainstorming the actual game design - in addition to coding the darn thing.

Also: even small games are fairly complex beasts nowadays. It's rewarding to code most of the game engine by yourself, but especially when starting out, reinventing the wheel and pouring huge amounts of time into that might turn out to be a downer. There are very good 3rd party game engines available these days, used in productions of all sizes, and some of them have very indie-friendly licensing terms.

For example, Unity 3D (http://unity3d.com/) is pretty much "grab and go", and the free version is a very good learning tool. Make no mistake, it's a professional game engine, not a paint by numbers toy where you click around and it spits out a game for you. It will take a lot of coding to put something really nice together, C# in this case - but it uses the Mono framework instead of .net, so it isn't Microsoft bound. For example, the new Wasteland sequel will be using this engine, and coming out on Windows, Mac and Linux.

Good luck, it will be an interesting path to take for sure :)

3dot...
Posts: 9996
Joined: Tue Feb 20, 2007 11:10 pm

Re: To Learn C++......................?

Post by 3dot... » Tue Oct 23, 2012 2:06 pm

javascript is a nice entry point..
(after that he can meddle with the Object Oriented gorillas...)
that said..
look for a program that opens up his boundaries to interesting stuff other than games
oh and start tomorow... (the younger the better for picking up languages and expression forms)
Image

ian_halsall
Posts: 1715
Joined: Fri May 27, 2011 8:52 am
Location: South London
Contact:

Re: To Learn C++......................?

Post by ian_halsall » Tue Oct 23, 2012 3:08 pm

I used to program in c then c++ then a bit of java and perl then c#.

Most high performance computing (games, music) is written in c++.

Browser games tend to be written in flash and javascript.

But c++ is a VERY complicated language and starting off with it is NOT a good idea.

Start with VB.net - you can write screens in minutes with the free version of visual studio, move onto c# for object orientation.

And if you're still with us in 2 years move onto c++ for games and music apps.

simmerdown
Posts: 3761
Joined: Wed Oct 26, 2011 3:36 pm
Location: Northwest Nowhere

Re: To Learn C++......................?

Post by simmerdown » Tue Oct 23, 2012 3:27 pm

i knew i was asking in the right place, great info so far....

he's actually 15, and is part of a group of 4 friends that have been meeting for at least a year to brainstorm and learn...he is the designated art director, cus he can really draw, but wants to know how the code part works too...2 of the 4 are graduating and going to Digipen in Seattle next year, the plan being to regroup in a few years and 'go big'. even if that doesn't fully materialize, these will def be good things to know how to do

he knows Blender (opensource animation and gamemaker prog) inside and out, and i'm teaching him Live bit by bit so he would be able to contribute in the sound design and music dept. as well

anyway, thanks all, we will get into gathering all these sources for a look this evening, so any other adds will still be greatly greatly!

ian_halsall
Posts: 1715
Joined: Fri May 27, 2011 8:52 am
Location: South London
Contact:

Re: To Learn C++......................?

Post by ian_halsall » Tue Oct 23, 2012 3:38 pm

I forgot that iOS uses objective c (there's a java to objective c translator package) and Android is java.

Long term can't really go wrong with c++ because once you know this the others are like falling off a log.

antarktika
Posts: 1006
Joined: Mon Jan 04, 2010 12:54 am

Re: To Learn C++......................?

Post by antarktika » Tue Oct 23, 2012 4:04 pm

honestly, I think just taking a non-language specific class in programming theory is the way to start. I'm still incredibly green, but I tried taking a Java class and started drowning 2 weeks in, got into a programming theory class, then C, now I'm back in Java and handling it okay. It's definitely a long journey, but I've been enjoying it thus far.

ian_halsall
Posts: 1715
Joined: Fri May 27, 2011 8:52 am
Location: South London
Contact:

Re: To Learn C++......................?

Post by ian_halsall » Tue Oct 23, 2012 4:10 pm

maybe but if you are keen on programming then visual studio is a killer environment - the free one is cool as well!

Java sucks in comparison - the IDEs are grim.

ezelkow1
Posts: 366
Joined: Thu Oct 08, 2009 6:22 pm

Re: To Learn C++......................?

Post by ezelkow1 » Tue Oct 23, 2012 4:15 pm

Mr-Bit wrote:My progrmmer mate says learn C then I'll be ready for anything but he started when he was 8yrs old. Getting a Jazzmutant Lemur was my introduction, light and satifying.

Could start here

http://msdn.microsoft.com/en-us/library/bb203894.aspx

or

http://www.microsoft.com/visualstudio/e ... o-overview

I'm playing around with web languages atm learning php/JS is teaching me allot, for me atleast its a long road!
^This, though I dont know if I would start with MS docs, more like the stroustrup books listed earlier

I do C for a living for embedded systems, and once you understand something like C where you interfacing with chunks of memory and how to manage dealing with pointers in memory and not having something clean up and guide you through possible mistakes it makes it 1000x easier to pick up any language out there.

Most people I know that do C can look at pretty much any other language out there and without formally knowing it still be able to debug other peoples issues. The reverse cant always be said, the lower level you start out at the easier it is to pick up anything higher level

ian_halsall
Posts: 1715
Joined: Fri May 27, 2011 8:52 am
Location: South London
Contact:

Re: To Learn C++......................?

Post by ian_halsall » Tue Oct 23, 2012 4:27 pm

My fave language is still c although I never program in it any more.

But I have to say that c++ is much more difficult because of the way that people write it and the half-arsed object model.

Bear traps everywhere.

Check the Scott Meyer series of c++ books - great books for programmers but seriously - it is complicated to get right.

Nokatus
Posts: 1068
Joined: Fri Jul 01, 2005 7:06 am

Re: To Learn C++......................?

Post by Nokatus » Tue Oct 23, 2012 4:28 pm

simmerdown wrote:he's actually 15, and is part of a group of 4 friends that have been meeting for at least a year to brainstorm and learn...he is the designated art director, cus he can really draw, but wants to know how the code part works too...2 of the 4 are graduating and going to Digipen in Seattle next year
Yeah, this sounds exactly like the setting I was getting at with my comment. A group of friends like that is a great starting point!
simmerdown wrote:he knows Blender (opensource animation and gamemaker prog) inside and out, and i'm teaching him Live bit by bit so he would be able to contribute in the sound design and music dept. as well
In that case, check out existing game engines for sure. Unity can import stuff from Blender directly, and I've worked with small game studios with the actual production pipeline centered around the Blender/Unity combo. Good times, in any case it sounds like your kid is set up very nicely for the future :)

darkenedsoul
Posts: 1223
Joined: Wed Jul 28, 2004 10:21 pm
Location: Massachusetts, USA
Contact:

Re: To Learn C++......................?

Post by darkenedsoul » Tue Oct 23, 2012 4:35 pm

C first to get a grounding in coding basics. If on windows get the free 2012 Visual Studio Express which can house C, C# and Visual Basic under one IDE. I am slowly trying to get the C#/C++/VB stuff but I need to sit down and spend time doing this, it ain't gonna be learned in a matter of days, esp. to comprehend everything, esp. when they get into the OO side of the fence. I've done a little C coding (Xenolink BBS program ;-)), Arexx (Amiga Rexx), Korn Shell, Bash, Bourne shell, C shell, perl, taken 2 online classes for C# to wet my feet. Java when work is slow in the office, VB at home when I get around to sitting down and picking up where I left off. I have my Python book but haven't started on that either! So settle for C to get grounded in the basics (style, flow, semantics, structure, etc) then move to C++ or Java (or both). Once you understand the concepts of OO coding interchanging between them isn't too difficult, I think C#/Java are easiest syntax-wise compared to C++. That uses some different adiges(sp) for input/outputs.

In respect to the comment on Java and IDE, you got 2 free choices off the top of my head, NetBeans and Eclipse and they are pretty darn powerful for what you can do in them. Just need your JRE 1.x.x and off and running for it.

Mike (dabbler in coding.... lol )
http://www.darkenedsoul.net - main website
Ableton Live 8.x/9.x : NI Komplete 8 : Home built 4690K 16GB 500GB SSD, 1TB 7200, 2x2TB.

Post Reply