12 year old son wants to start learning game programming...

Page 3 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
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.
 

borisvodofsky

Diamond Member
Feb 12, 2010
3,606
0
0
/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.
 

Patrickz0rs

Senior member
Dec 20, 2007
355
0
0
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.
 
Last edited:

KIAman

Diamond Member
Mar 7, 2001
3,342
23
81
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.

The OP never mentioned a CS degree, just game programming and those two are not necessarily mutual.

I've personaly got a CS degree and although it was a tremendous help for my development foundation, experience in the industry moves me further and further away from core Computer Science.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
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.
 

Patrickz0rs

Senior member
Dec 20, 2007
355
0
0
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.

You're right - the kid is a 12 year old American, so there is an 8 year old Indian already coding Hash-Tables. Gotta keep up!
 

phillyTIM

Golden Member
Jan 12, 2001
1,942
10
81
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?
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,278
126
106
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?

I really don't like python (or a lot of the python advocates) I find it to be a slow and often sloppy language. People that support python are often fanatical about how much better it is compared to other languages, and yet I don't see it as being any easier/better than most languages.

The funniest thing you will see from python advocates is when you say "It is slow" they will often say "You aren't using enough libraries! It can be so much faster if you would just link it to a C library for speed!". In other words, they say their language isn't slow because it can talk to fast languages.

There are also a lot of python users that use python like a "One-size-fits all" sort of language. It isn't terrible for scripting purposes. Nor is it bad for simple window applications. It sucks where speed is needed.

I guess it wouldn't really be a horrible starter language, I just don't see it as being super easier than other languages already mentioned here. Just make sure your boy doesn't become a rabid fanatic and you should be fine.
 
Last edited:

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Kids shouldn't be worrying about degrees, complex math, or careers. They should be having fun and finding what get them excited.

Absolutely. If the kid is in to math as well, then great, but he doesn't need to complete courses in advanced math before learning to program. At its best programming is a very creative process. It's akin to tinkering with home-built machinery in your workshop, and not having to clean up later.
 

Patterner

Senior member
Dec 20, 2010
227
0
0
Land of Lisp, he'll learn a "real" language that's syntax light, get stupid amounts of experience in valuable general programming logic (specifically iteration and recursion) and he's making games from day one.

There's a book that takes a similar approach using C++ (though I agree with the (many) detractors of that idea here, but I'll include it for completeness) called Beginning Game Programming (3rd Edition).

Cogman,
I respect the fact that you're willing to revise your advice, but there are a number of languages that can do "Hello World!" more simply than C++. Python and Lisp are two of them (print("Hello World!") and '(Hello World), respectively). To my mind, especially for such a young beginner, the quick feedback loops of interpreted languages are a very large bonus.

Of course, the OP knows his son best; if he's willing to buckle down and put in the work with the (relatively) longer feedback loops required to learn via C++, then more power to him. The nice thing about the books I mentioned is that they teach "real" programming concepts (if not as well as more general introductory material, like say C++ Primer, they're doing it by getting him building games, which may hold his interest better.

Oh...also...hey all long time lurker, first (well, second) time poster.
 

beginner99

Diamond Member
Jun 2, 2009
5,228
1,603
136
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?

Python is often used as a beginner programming language because of the possibility to easy "test" commands in an interactive window. You can just type a command and it is execute like in a shell/cmd window.

Maybe it's good for first steps but I don't know about making GUI's. c#, java would probably be a better choice for that but I might be wrong.
That's why I recommended Python with Civilization. The GUI and graphics are already there you can concentrate on "game logic".
 

Modelworks

Lifer
Feb 22, 2007
16,240
7
76
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.
 

acole1

Golden Member
Sep 28, 2005
1,543
0
0
Has someone mentioned Alice (http://www.alice.org/) yet? It is designed to teach beginners programing concepts while controlling moving objects on the screen. Might keep his interest alive while teaching programing basics.
 

ookie

Junior Member
Jan 1, 2011
1
0
0
he should start with python i find it easy.......because iam a 12 year old who is learning the basics.:awe:
 

bobross419

Golden Member
Oct 25, 2007
1,981
1
0
Code:
#include <iostream>

using namespace std;

int main()
{
   cout << "Hello World\n";
}
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:
#!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.
 

Baasha

Golden Member
Jan 4, 2010
1,989
20
81
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.

Definitely the best advice in this entire thread.

Far too many people think game development is about creating sequences and events and makes things look like "that cool game I played last week".

And, to alkemyst, FullSail is the biggest fraud there ever was. They are brilliant at marketing, themselves. They make you spend, or borrow and spend if needed, gobs of money and once you're done with their degree, even a Master's, they apparently wash their hands off of grads who are trying to get into the industry. The chances of getting hired by a serious company like EA, Sony, or any number of the big game studios (Blizzard etc.) becomes very small. I've spoken to veterans in the industry who unequivocally have stated it is far better for someone to learn actual programming, that is, CS, than to get a degree in "game development". The rigor in the latter's programs are frowned upon by serious hiring managers. As a matter of fact, places like FullSail are more or less vocational training centers more than centers of education. Although, their design studios and equipment are state-of-the-art.

If someone from MIT has a bachelor's degree in CS and someone from FullSail has a Master's degree in 'game development', I'll take the MIT grad any day of the week.
 

Baasha

Golden Member
Jan 4, 2010
1,989
20
81
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.
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
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.

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".
 

alkemyst

No Lifer
Feb 13, 2001
83,769
19
81
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.

10 PRINT "HELLO WORLD"

Wanna blow your mind add

20 GOTO 10
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
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".

What I like about scratch is it abstracts away all those details you eventually need to know and just focuses on basics. You have functions, variables, objects, etc but you don't really need to understand them.

My first intro to programming was a summer school class where I learned how to make a turtle move around the screen. I think it was logo.

Of course that just sparked the interest, when I got my own computer it had basic on it so I learned basic because of how interested my first successful programming experience was. Sure it was harder, but because I had success in the past I wasn't discouraged. Basic lead to C and that led to C++ in high school. From there my job introduced me to perl and that brought me to php and the whole thing came full circle when I started using linux and wanted to write my own tools.

Now I mostly use java, php, obj-c, applescript, and python to do my jobs and hobbies.

So the biggest thing I see scratch doing is showing very basic concepts in a easy to swallow manner. It also provides immediate success which will boost confidence in trying real programming later. It also starts you out in the right mindset for gaming, which is event oriented design.
 

exdeath

Lifer
Jan 29, 2004
13,679
10
81
If he has no programming or math background at all, he should start off creating maps or mods for something like UT or RPG Maker or Starcraft to get some idea of the overall structure of games, triggers, action events, the physical resources required (sprites, textures, etc) etc. Learn basic programming concepts with something easy like UnrealScript which will allow him to get into game making right away with tangible results instead of starting from ground zero.

Most game developers don't even mess with real code, they just play with the engine that the programmers created while locked away in the dungeon. A big key in successful game development is keeping your programmers and game makers separate, and your programmers making a easy to use engine that allows the game developers to do whatever they want without knowing code. Because it is ultimately the level designers and action script writers that create games. Programmers make bad game developers (see: programmer art).

Starting from scratch learning actual programming will probably discourage him. Hate to say it but he's late to the game. If he was genuinely into programming being a part of who he is he would at least know his way around BASIC by now. If he's only interested recently on a whim, he's got alot of catching up to do.

I started with DOS and BASIC around 7, and was mucking around with C and assembly at 12. And that's just programming, just making the computer do stuff. Not programming *properly*, not making games, understanding 3D, level design, tool development, virtual machines and compilers for the scripting, etc. And I don't program games for a living because it's one of the most demanding and lowest paying IT jobs out there relatively. Game making is something you have to do because you love it, you can make 4x as much just sitting on your ass writing boring SQL.

If he's really bright and picks up on this stuff and gets into it, get him a GBA and a flash cartridge. Documentation and emulators/debuggers on the GBA hardware and ARM7 is widely available, and it's probably the easiest platform for homebrew on real hardware if game consoles are his long term goal. Powering on a retail Nintendo box and seeing your program come to life on real metal is the most rewarding thing ever.

Whatever he does, no matter if it's just a cheesy Tic Tac Toe game, the best point you can drive home with him is FINISH WHAT YOU START!
 
Last edited:
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |