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

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

degibson

Golden Member
Mar 21, 2008
1,389
0
0
lol@ this thread.

For crying out loud:
Code:
scratch.mit.edu
This.

If for some reason that doesn't work, and your kid likes to play Starcraft, Warcraft III, etc., or any game with a decent triggers-based map editor, go there next. Much more gratifying to change the behavior of something that's already fun than trying to make something new and fun.
 

wwswimming

Banned
Jan 21, 2006
3,695
1
0
i think it would help if he did some programming early on that was FUN - and created something he can show his friends. I think that can happen with the Blender game engine and maybe with Flash.

the first 3 are 3D, the last one (Flash) is 2D.

* Blender
dowload Blender from
http://www.blender.org/

for Blender Game Engine -
http://www.tutorialsforblender3d.com/Game_Engine/Tutorials_index.html

good tutorials with quick results - which will make learning more fun - even though the games don't do a whole bunch.

* Unity3D.
http://www.unity3D.com/

http://www.3DBuzz.com/
used to have some good & free Unity training videos.

* MS Visual Studio.

Dan Waters is a Microsoftie. He has an online tutorial where he shows people how to create a simple game named "Guitar Matey". He uses Softimage's free modeller to create the 3D files for the pirate's hat & body.
http://blogs.msdn.com/b/dawate/arch...free-video-tutorial-series-now-available.aspx

* Flash - good for 2D games, loads of tutorials. Learning curve for Actionscript will be medium steep - your son would need to have some programming ability. But there are loads of tutorials to guide him. e.g. at Adobe, and at
http://www.lynda.com/
http://www.gotoandLearn.com/
 

Net

Golden Member
Aug 30, 2003
1,592
2
81
if he's 12 years old start him out with visual basic.

i made my first game in high school with visual basic. you can draw the gui with tools they give you and put code behind it.
 

BoberFett

Lifer
Oct 9, 1999
37,562
9
81
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.

<12yearold>WTF is iostream and namespace?</12yearold>
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
<12yearold>WTF is iostream and namespace?</12yearold>

And? Does that little fact really take a full weak to understand?
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello World");
        }
    }
}

And this is any easier? (Default C# console application in visual studios with "Hello World") Remember, this is what people are proposing over C++ because it is "easier".

Now granted, C# is going to be easier for graphical applications, but for simple text based games there isn't really going to be a significant difference between C++ and C#.
 

PsiStar

Golden Member
Dec 21, 2005
1,184
0
76
Hand him a book(s) on scientific programming in C for real space/time/gravity effects. Get links to the gnu C compiler, and say, "knock yourself out".

Or find the nearest engineering school & pay some com sci student to teach your son. AKA ... the student just won a free scholarship.
 

BoberFett

Lifer
Oct 9, 1999
37,562
9
81
And? Does that little fact really take a full weak to understand?
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello World");
        }
    }
}

And this is any easier? (Default C# console application in visual studios with "Hello World") Remember, this is what people are proposing over C++ because it is "easier".

Now granted, C# is going to be easier for graphical applications, but for simple text based games there isn't really going to be a significant difference between C++ and C#.

Where did I recommend C#? I recommended a simple language designed for creating games. Something where there's a screen with graphics displayed after an hour of work. That's the kind of progress that will keep him interested.
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
Where did I recommend C#? I recommended a simple language designed for creating games. Something where there's a screen with graphics displayed after an hour of work. That's the kind of progress that will keep him interested.

Where did I say that you recommended C#?

You can't escape programming logic when it comes to making games. If someone truly wants to learn to make a game, regardless of age, they are going to have to learn the fundamentals of programming. No simple game making programming language is going to make that go away.

Now, granted, maintaining interest might be key, so something interactive like a scripting language for a game might be better. However, I just don't feel like that actually will end up leading to him making games.
 

BoberFett

Lifer
Oct 9, 1999
37,562
9
81
Where did I say that you recommended C#?

You can't escape programming logic when it comes to making games. If someone truly wants to learn to make a game, regardless of age, they are going to have to learn the fundamentals of programming. No simple game making programming language is going to make that go away.

Now, granted, maintaining interest might be key, so something interactive like a scripting language for a game might be better. However, I just don't feel like that actually will end up leading to him making games.

Then your snarky comment about how C# was no easier was just a strawman?

I'm done arguing with you. You're wrong and everybody else in this thread knows it. Yes, we get it, you're a goddam child prodigy who was writing comilers in the womb. Get over yourself.
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
Then your snarky comment about how C# was no easier was just a strawman?

I'm done arguing with you. You're wrong and everybody else in this thread knows it. Yes, we get it, you're a goddam child prodigy who was writing comilers in the womb. Get over yourself.

My "snarky" comment about C# came from the fact that people, in this very thread, were saying that "OMG, you recommended C++, I can't believe you would say that C++ is sooooooo hard, C# is so much better! It would take a full week to get a C++ hello world program up and running!". The point being that for the basic stuff, C#, and just about any language, would be no better than C++.

I used C# to back up my statement. You made the comment "<12yearold>WTF is iostream and namespace?</12yearold>" I was responding in kind. I gave an example of another language that had been said to be easier in this thread and asked the question "Would a 12 year old find this any easier?". Would they have? Or would they have made the same comment that you made above.

I don't know when I pissed in your cherios. Just relax, I don't think ill of you nor do I think that I'm absolutely right. I'm only trying to defend the position that C++ wouldn't be a terrible startup language for a 12 year old. That is it. I'm sorry if I came off as a know-it-all, or I sounded like I was trying to get you, that certainly wasn't my intention.
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
If you have an Xbox360 you can check out Kodu Game Lab from the Indie Market.... It similar to that MIT scratch product (albeit probably more limited), however they will teach program flow and actions as opposed to some clumsy syntax that will be hard to focus on for a 12 year old.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,539
10,166
126
I disagree completely. His kid hasn't expressed an interest in becoming a programmer. He wants to be a game programmer. If you throw him in front of a C compiler with a book and tell him to spend months writing Hello World and other stupid beginner programming crap he's going to be bored out of his mind and lose interest.

The idea is to nurture his interests. Let him see some progress. If he sticks with it he'll realize on his own that whatever simple language he's using has limits and move on to C++ on his own.

I often learned best, when I had a project with a concrete goal. I wrote a lot of games in HS, both on the school's VAX with VT220 terminals, and at home on my 386PC w/VGA. I ended up writing my own game programming libary for DOS in ASM, that handled blitting sprites and tiles, and handling keyboard and joystick input.

Nowadays, things are so much more complex, lots of APIs to learn. DirectX requires a passing knowledge of COM for example. IMHO, it was actually quite a bit simpler to learn how to bit-bang the hardware directly. But that was when VGA was the standard, and it would work on all hardware. Nowadays, graphics cards are so advanced and so proprietary that it requires using an API.

There was a book that I picked up, and I didn't learn directly from the book, but it was somewhat helpful. I think it was something like, "Learn Game Programming in 30 days", by Andrew LaMoth. It teachs you how to write a ray-casting engine (think Wolf3D, from the 286 days.) It requires a working knowledge of C.

I wish that there was a stronger game-oriented version of BASIC these days. It's pretty easy to pick up and use, although it does tend to teach sloppy programming techniques too. C++ requires more discipline.

If DOS was still a viable platform, I could dig out my game library stuff and make it available. But I don't think that you can find a good 16-bit DOS compiler any more. (Visual C 1.52C for DOS?)

Edit: I agree that you have to learn to walk before you can jog, so getting him to learn elementary programming skills, before he embarks on actual game programming, is a must. BASIC is the easiest to pick up, and he can write some simple question-and-answer programs, dealing with input and output, and some basic logic skills in-between.
 
Last edited:

Zensal

Senior member
Jan 18, 2005
740
0
0
We did something called AI War for a final project in my programming class.

http://www.tacticalneuronics.com/content/aiw3dnew.asp

Your job is to program your "bug" to hunt down and kill the other bugs. It's basically AI programming. Back when I did it, they had a sliding scale of "tutorial" bugs that you had to defeat, as well as putting your bug up against other people's programmed bugs.

For example, the first tutorial bug you just had to program your bug enough to shoot. The next bug might dodge your shots, but would be vulnerable to melee attacks, so you had to teach your bug to move in close. The third bug would try to shoot you, etc, up to some bug that could predict your next movements and detonate grenades in proximity to you.

It was pretty awesome and had some great, quick feedback on what you were doing. Also, you could do it with him and challenge your bugs to battles. Competition always helps. Give it a shot.
 

TanisHalfElven

Diamond Member
Jun 29, 2001
3,512
0
76
Ok, i don't know jack squat about programming a game

But i would recommend something with a pretty structured (but well explained) tutorial.
Its how i learned all of my programming

Good luck
 

yottabit

Golden Member
Jun 5, 2008
1,470
465
146
I started off with HTML and Javascript which I tought myself about that age from tutorial websites... you can make some games in javascript.

My parents paid for me to have lessons in C but it didn't work out so well at that age, but Java was a lot easier for me (especially using a GUI and everything)
 

QueBert

Lifer
Jan 6, 2002
22,537
827
126
Get him going on a fairly simple scripting lang like TADS (for making text games) And kill 2 bird with 1 stone. He can get a real low level start with something that's not really programming but headed in that direction. And maybe in the process he'd pick up an appreciation for text adventures. I'm not a programmer but when I got into TADS like 15 years ago it definitely felt like something that would be a good into to an actual programming lang like C+ or something.
 

Monster_Munch

Senior member
Oct 19, 2010
873
1
0
---> scratch.mit.edu

Trying to teach java or C to a 12 year old with no programming experience will probably scare them off programming for life.
 

KIAman

Diamond Member
Mar 7, 2001
3,342
23
81
The OP needs to make clear how much programming the 12yo has exposure to. If he had little to no exposure, he won't benefit from learning a new language from the ground up.

What he can do is play programming "games." I can't find the references until I get to work but there are plenty of "robot" games where you learn to automate your robot to do simple things like move, interact, detect then to more advanced things like attack and defend. The list of commands are small and they are all focused on automating the robot.

Some of these allow you to place your robot against someone else's pre-programmed robot to see how you did.

Pros: The language is simplistic and it teaches the basics of programming such as conditions, loops, cases, data structures, sequencing, timing, exception handling while keeping the list of commands small and simple. AND IT'S FUN! For a typical 12yo, this is important.

Cons: Very narrow and only teaches sequential programming.

In my opinion, learning a language is not very hard. It is finding the meaning/motivation to do so that is hard. Learning the concepts behind the language should be priority then finding a language that can express those concepts should come next.

Get that 12yo to understand all the programming concepts then open his world up to all the various languages that allow his expression. He'll do a lot of reference checking, hell we ALL still look up references but he'll have a clear understanding of what he is trying to accomplish and not be lost on how to even get started.

scratch.mit.edu <-- excellent
 

Train

Lifer
Jun 22, 2000
13,572
66
91
www.bing.com
...

What he can do is play programming "games." I can't find the references until I get to work but there are plenty of "robot" games where you learn to automate your robot to do simple things like move, interact, detect then to more advanced things like attack and defend. The list of commands are small and they are all focused on automating the robot.

...

You are probably referring to light bot:

http://armorgames.com/play/2205/light-bot

Version 1 lets you do functions and looping. Version 2 introduces conditionals. It's actually quite challenging at the higher levels.
 

TechBoyJK

Lifer
Oct 17, 2002
16,699
60
91
Does he want to do coding? Or make levels, maps, etc.

If he wants to get into level creating, get him a decent rig, and buy Crysis. It comes with their SandBox editor and it's a blast. He'll be making maps, placing trees, enemies, vehicles, etc. in no time.

This would be a great hands on way for him to learn, and it's only when he starts to trying scripting some stuff will he really WANT to learn some basic/c# or w.e
 

beginner99

Diamond Member
Jun 2, 2009
5,228
1,603
136

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
The OP needs to make clear how much programming the 12yo has exposure to. If he had little to no exposure, he won't benefit from learning a new language from the ground up.

What he can do is play programming "games." I can't find the references until I get to work but there are plenty of "robot" games where you learn to automate your robot to do simple things like move, interact, detect then to more advanced things like attack and defend. The list of commands are small and they are all focused on automating the robot.

Some of these allow you to place your robot against someone else's pre-programmed robot to see how you did.

Pros: The language is simplistic and it teaches the basics of programming such as conditions, loops, cases, data structures, sequencing, timing, exception handling while keeping the list of commands small and simple. AND IT'S FUN! For a typical 12yo, this is important.

Cons: Very narrow and only teaches sequential programming.

In my opinion, learning a language is not very hard. It is finding the meaning/motivation to do so that is hard. Learning the concepts behind the language should be priority then finding a language that can express those concepts should come next.

Get that 12yo to understand all the programming concepts then open his world up to all the various languages that allow his expression. He'll do a lot of reference checking, hell we ALL still look up references but he'll have a clear understanding of what he is trying to accomplish and not be lost on how to even get started.

scratch.mit.edu <-- excellent

I'd just like to say I agree. Programming is much less about language (syntax) as it is more about fundamentals of logic at his age... Robot programming as said by KIAMan would teach him the fundamentals of logic. And then he can gauge if it's something he is interested in, and if he has the patience level to get things right. 12 yo kids sometimes lack that... Debugging code and logic can take a day to figure out even if you know what you are doing. If he gets stuck on a problem, is he going to sit there for a day trying or give up due to lack of patience?

Thats the problem I had when I programmed at his age. I could do the programming ok but when I couldn't get something right, I gave up, and usually asked my older brother to help me out (he was 6 years older than me, and was going to programming college.) If he wasn't available, I usually just quit programming for awhile. I didn't really get more focused in the problem solving area until I was older 16-18ish.
 

sandorski

No Lifer
Oct 10, 1999
70,191
5,771
126
Civ IV (don't know about civ v) is based heavly on Python and a lot of things can be changed using Python (eg. all the mods out there). I assume that there are also some tutorials around how to do it. Yes there are:

http://forums.civfanatics.com/forumdisplay.php?f=177


http://forums.civfanatics.com/showthread.php?t=374238


Don't know if it is suited for a novice, was just a spontenous thought I had about programming and gaming. He would also need to know and be interested in Civ.

There's a lot of good Programming advice in this thread, but I really got to wonder if a kid wants to spend all that time learning languages that are far removed from actual Gaming related Programming.

Which is why I quoted Beginner, because it is Programming and cuts to the quick of being Gaming Programming. I was going to suggest learning UScript(UnrealScript, C/Java like language used for Programming Unreal Engine Games/Mods) myself. All the formal stuff can be pursued later if the kid wants it, but learning how to Programming a Game Engine from scratch(what others seems to be suggesting) is very likely not going to be fun.

Here's a link to a website that covers many aspects of Gaming, from Programming, to 3D Modelling, and more: 3D Buzz
 

Kirby

Lifer
Apr 10, 2006
12,028
2
0
He'll probably give up when he realizes programming games aren't near as fun as playing them. :awe:
 
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/    |