He'll probably give up when he realizes programming games aren't near as fun as playing them. :awe:
Nah, he'll persevere until he gets a job, and then give up after two or three years of being asked to work 90 hour weeks for $50k/year.
He'll probably give up when he realizes programming games aren't near as fun as playing them. :awe:
/facepalm
Don't give a 12 year old a book about C++ and OpenGL. You'll destroy any hope they had of ever writing a game when they haven't even blitted a couple of bitmaps together after a month of staring at books.
Look at some kind of simple 2D oriented BASIC style language. Something where there are built-in constructs for handling graphics and sound and they only thing the kid has to worry about is handling input and moving a couple of images around the screen. Have them start with something simple and manageable like a Combat style game. It's a single screen, can be as simple as four objects (two tanks and two bullets) and can be built upon as the kid learns, adding buildings that block shots, item pickups, etc.
After he's comfortable with basic programming concepts then maybe start thinking about moving on to lower level languages and APIs.
Edit: Something like BlitzBasic (http://www.blitzbasic.com/Products/blitzplus.php)
LOL,, you gotta start much simpler than that ... how bout calculus, linear algebra, then proofs,,, LOL If you don't have the math DOWN, you'll never be more than a code monkey. Not that there's anything wrong with code monkey-ing, they just don't get paid much, and the whole job-insecurity.
This.
I am currently a 2nd year CS student at Purdue and you need to take CALC I, II, III, Linear Algebra, Differential Equations, Game theory, Number theory, and Numerical Analysis.
I would make sure he has fluent algebra skills before he learned any programming. If you lack those skills, you can forget about getting a CS degree.
Kids shouldn't be worrying about degrees, complex math, or careers. They should be having fun and finding what get them excited.
That is why I recommended scratch.mit.edu. It's simply enough to learn without any time investment and compelx enough to do impressive sprite based gaming. If the kid is really passionate it will act as a springboard into more complicated things and eventually drive his education into the math and college he needs to be a truly competent developer.
PYTHON seems to be used as a beginner programming language quite often, at least it seems that way from my local Border's bookshelf.
Is that a good way to go that at least teaches long-term, viable programming that seems to kinda lean towards the C(++?) language?
Agreed tho, SCRATCH seems like quite the interesting concept and may be the easiest results-oriented to entice further experimentation by getting the kid off and running more quickly.
12 year olds are so much smarter today (with all the easy-access info available/thrown at them) than a 12 year old was even a decade ago, n'est pas?
Kids shouldn't be worrying about degrees, complex math, or careers. They should be having fun and finding what get them excited.
He'll probably give up when he realizes programming games aren't near as fun as playing them. :awe:
PYTHON seems to be used as a beginner programming language quite often, at least it seems that way from my local Border's bookshelf.
Is that a good way to go that at least teaches long-term, viable programming that seems to kinda lean towards the C(++?) language?
Agreed tho, SCRATCH seems like quite the interesting concept and may be the easiest results-oriented to entice further experimentation by getting the kid off and running more quickly.
12 year olds are so much smarter today (with all the easy-access info available/thrown at them) than a 12 year old was even a decade ago, n'est pas?
he should start with python i find it easy.......because iam a 12 year old who is learning the basics.:awe:
Find me a language that is simpler than that for displaying hello world. Seriously, For simple console IO no language is going to be "Ohh so much more awesome" than another, save it be some esoteric language.Code:#include <iostream> using namespace std; int main() { cout << "Hello World\n"; }
#!usr/bin/perl
print "Hello World\n";
I think if a 12 year old told me he wanted to be a game programmer the first thing I would do is ask him what is it about games that he would like to create . If he thinks programming games is making action scenes and characters and levels for games, it mostly isn't. It is a great deal of staring at code and letting other people involved with art, music, sound, concepts do all of that stuff. Be sure to explain the difference between programming a game and creating the content for a game engine already programmed.
Programming attracted many younger people years ago because the games that they played were not much different from text or simple graphics that could be accomplished with lines of code. The games now are much more content oriented and without the content creation, programmers don't have much to look at to see the fruits of their labor. Doing text output programs or drawing lines on the screen with commands isn't likely to hold the attention of a 12 year old for long.
And, I too join the "LOLZ" crowd at the guy who suggested the kid start with C/C++.
Apart from the mathematical logic that is required to program, learning C/C#/C++ at such a tender age would be like entering a labyrinthine maze that is flooded. After all, a lot of programming is analogous to plumbing (aka fixing shit). It would turn off any beginner who has enthusiasm for coding/programming or game development in general.
To the OP, there are certain programs available, for example, iPhone app development for kids that ease them into the development world. I read an article about a summer camp for that age group (12-13 year olds) who get to work on game development on the iOS platform. Perhaps he can try that(?). Fifteen is a good age to start getting into the more rigorous languages. Introductory Java is also a good choice after he has had a primer in coding. And, by 13, he should be accustomed to (basic) algebra anyway.
Code:#!usr/bin/perl print "Hello World\n";
And depending on how I'm running it... I could get it down to 1 line of code.
Back on topic...
I'd have to throw my hat in the ring for the simple game based languages like Scratch. A lot of kids will give up on something that is too hard or they'll just move on. Let him make a game or two... If he is really interested he'll start learning about this stuff on his own. Trying to cram programming theory into a 12 y/o is a recipe for disaster.
Get him interested in programming and he will want to learn more on his own.
Why are C++/C#/C bad choices while Objective-C and Java are good choices? Specifically, what makes Java a good choice and C# a bad choice?
I could see an argument for Scratch as opposed to C, as it really is an easier intro to programming. I could also see it as something that ends up removing interest in coding. Scratch is pretty simple in its capabilities and hard to follow for complex situations.
Again, I'll stand by my claim that C++/C are really not that terrible for simple programming. Learning how to program console games in C/C++ is just about as easy as learning how to program console games in python, java, or C#. The hard part isn't the syntax, it is the logic that goes behind it.
Probably the best idea that has been voiced in this thread is to take an existing game that has some sort of scripting language built in, with lots of examples, and then let the kid play with those to his hearts content. That is essentially what got me into programming in the first place.
Having a kid learn "Game Programming" is not feasible IMO. They first need to learn the basics of programming before they can truly learn how to program games. And probably the best way to learn the basics for a kid is to let him change some scripts in some game he already plays.
One of my first intos to programming was from a very C-like language. It was a scripting language for "Jedi Knight: Dark Forces II".