Slashdot Mirror


Teaching Kids to Make Games?

FreakerSFX asks: "My son has shown an avid interest in video games like most kids his age. What's different now is that he insists that he wants to learn how to build his own game. He's 9 and fairly gifted from a mathematics and computer standpoint and certainly capable of learning basic programming. What tools/books are recommended for a neophyte computer game programmer?" I remember one of my first exposures to computer languages was Logo, which was a language that seems perfectly suited to young children. There is a Windows version available here that seems like it would be perfect for the development of simple games, especially for youngsters. What languages, and language resources, are you aware of that might be suitable for youngsters with an interest in creating games, and learning programming?

134 comments

  1. Assembly. by ianashley · · Score: 2, Funny

    Assembly. Yup. Definitely Assembly.

    1. Re:Assembly. by unixbum · · Score: 1

      I learned assembly at 10, (notice the UserId), and im 14 now and learning 3rd generation languages. Although I would not recomend assembly as a first language, it is a powerful tool to be able to use. First teach the kid some basic computer science (ie boolean algebra, how to use xor and not or to make stuff :), then let him try out a few languages. --Joel

    2. Re:Assembly. by Anonymous Coward · · Score: 2, Funny

      For your next language, I would suggest English.

    3. Re:Assembly. by Anonymous Coward · · Score: 0

      Not to take the piss or anything, and I see why your post is funny, but I started 6502 assembler at 7 (although I gave up within 6 months), and was proficient with x86 at about age 12.

      I post anonymously only because I don't want to look like a smartass, but I wanted to let people know that there are plenty of kids with the mental capacity to tackle assembly.

    4. Re:Assembly. by laird · · Score: 4, Interesting

      I used to teach kids programming (at the Computer Ed summer camps in Boston) and I had kids programming in all sorts of crazy languages. I think that it's wonderful what kids can achieve when they're excited about learning.

      A few random pleasant memories:
      - I was teaching a little girl to program in C. She was pretty good, given that we were using pretty primal tools (I think it was Turbo C on my Osborne Executive). The best part was that she was so tiny that she had to reach _way_ up to hold my hand when we crossed the street that ran through the camp. That just blew my mind -- one minute this brilliant kid was coding a sort routine in C, and the next she was a timid little girl holding my hand crossing the street.
      - I had a whole gang of kids using the Lisp built into the BBC Micro (Acorn?). We had great fun writing an adventure game with a simple parser, so that kids could move around a simple network of rooms, pick stuff up and move it around and drop it. Some of the older kids implemented locking and unlocking doors. Pretty good for a two week, one hour a day course.
      - A bunch of the older kids learned 6502 assembler on the Apple ][, using a simple assembler and the ROM debugger. Unlike the x86's, the 6502 is so simple to program (very clean design) that by the end of the class some of the kids were reading the binary straight rather than disassembling it. We wrote killer video games -- they had snakes running around the screen, gobbling "apples" and growing longer, until you hit a wall and the game ended. That was two weeks at 2 hours a day, so it was only for the most dedicated little geeks.
      - Programming Robot Wars -- that was a very simple assembly language that controlled simulated robots. They loved coding their robots and seeing whose robot won. The modern robot simulators are superior in every way (e.g. alphaworks' Robocode, but Robot Wars was nice and simple and fun.
      - Logo, of course. It's an amazing language. People usually think of it as a simple language for teaching, and it's great for that, but it's actually nearly identical to Lisp, so you can do all of the cool recursion, etc., in Logo. The usual stages of the day were Logo for little kids, then BASIC, then Pascal for the advanced students. I found that kids that went straight from Logo to Pascal did 100% better than the kids who were taught BASIC -- the BASIC kids had so many stupid ideals drilled into them that they were almost incapable of programming. But straight from Logo to Pascal was easy -- though the kids did complain about having to wait for things to compile. :-)
      - Logo turtles -- the ones that were little robots that ran around on the floor, with a pen and an optical sensor. Those were fun...

      Man, that was fun. I've got to get back into teaching.

    5. Re:Assembly. by JohnFluxx · · Score: 1

      Agreed. I was doing assembly on the spectrum at 10.
      By 12 I was doing City and Guilds qualifications at college.
      Throw them in at the deepend I say.

      Of couse, back then I didn't know how to convert mnemonics into the hex values for assembly. But did have a programs to do vice versa. It make coding a very slow and trial and error process.

    6. Re:Assembly. by Dreadlord · · Score: 1

      Nah, Assembly is a way too much n00bish, I recommend starting with:
      copy con program.exe (Win32)
      or
      cat > program (*nix)
      Real men do it in binary.

      --
      The IT section color scheme sucks.
    7. Re:Assembly. by phaggood · · Score: 0

      >Man, that was fun. I've got to get back into teaching.

      Really? Little kids or (vocational) high school? Are you anywhere near Detroit, MI? Availabilty by Fall 2004?

    8. Re:Assembly. by Anonymous Coward · · Score: 0
      Somebody please mode this parent up to a 5!!!

      P.S. I'd like to second the suggestion to teach the kid to write a RoboCode robot. This is something that anyone mathematically inclined can be taught (because you can start with modifying an existing bot), it's graphically appealing, and it buys into the whole "robots blowing up each other" factor (a guaranteed hit with children of all ages).

  2. Control expectations by flabbergast · · Score: 5, Insightful

    *flame suit on*
    Since I don't know too many nine year olds, I can't fathom what games they're playing (Pokemon still? Yuyu Hashuko?), but my suggestion is to first control his expectations. What I mean is, you should be aware that even though he is gifted in math and has an interest in programming, that he won't be able to recreate Max Payne 2 or WarCraft III. Or even Pokemon on the GBA. That simply requires money. Some of the simplest games like Tetris aren't instantly easy to program.

    Deep breath.

    With that out of the way, I'd suggest writing a text only RPG or something like that. You can learn a lot about how games work coding up MUDs and such, and you don't have to worry about making the eye candy to go with it. When I was nine I coded up a mud in Basic (of course that was in the late 80's but whatever). Once you've got a fairly fun text RPG, you can try making it into a 2d world (a la Zelda) which wouldn't be too hard to implement.

    I realize I haven't answered your question about programming languages and websites mostly because that usually leads to flame wars ("Nu uh! Ruby/VBA/C++ Rocks! Python/C/Java Sux!"), but if he's try interested in programming a game, I think a mud is a good place to start. I have a preference for Python, so you may want to check out pygame.org as well.

    1. Re:Control expectations by flabbergast · · Score: 1

      Sorry to reply to my own post but I also remembered Alice put out by CMU's CS dept.

    2. Re:Control expectations by Otter · · Score: 1
      That's an excellent point -- when I first learned to program, there wasn't that great a gap between what even a little kid could code and the games you bought in the store. A lot of us wrote little Breakout clones that weren't much worse than the Atari 2600 version (written, IIRC, by Steve Wozniak, who had Jobs pocket half the money from the sale without telling him).

      Today 1) games are so much more sophisticated and 2) readily accessible programming tools like the BASIC that came with PCs (wow, Gates and Wozniak really did lay the foundations, huh?). Nonetheless, putting a bar up on the screen and making it move under your control is still pretty cool, I bet. One of the BASIC implemenations people mention would probably do nicely.

    3. Re:Control expectations by peragrin · · Score: 1
      Control Expectations defeintately. but in the late eighties, I was creating all sorts of 2d games. RAcing games were the easist. two joystick controlled sprites. I forget the rest, all I remember is that I created one so large(LOL) I over filled the 32k of ram the ti994/a and locked up the system. GOOD times.

      I still can crash a system just because. though windows really shouldn't count should it?

      --
      i thought once I was found, but it was only a dream.
    4. Re:Control expectations by mrzaph0d · · Score: 1

      i'd have to say that depends on the kid. one kid i know thought he was "really into computers". he asked me what it would take to get a job working on games. i told him basically a lot of hard work (especially since he played lots of games, but had very little technical knowledge). he decided against it. he was 16/17 at the time.

      another kid i know started writing IRC bots when he was in 6th grade, and now in 9th grade is exploring assembly on his TI calc.

      some kids will use the limitations they are given to do more than anyone would expect. others will say "that's too hard" and give up.

      --
      this is just a placeholder till i send back my real sig from the future.
    5. Re: Control expectations by carsont · · Score: 1

      With regards to MUDs, I can heartily recommend LambdaMOO. It has a very simple object-oriented programming language, and unlike many MUDs, it's all interpreted, so you can program new stuff live with the server running. The server also automatically parses player commands with English-like syntax (direct objects, prepositions, and indirect objects) and passes them to the verbs (functions).

      The downside compared to MUDs is that LambdaMOO is designed primarily as an educational/social environment, so any RPG functionality will have to be coded from scratch, although there are some ready-made RPG systems available on the web.

      Something else to consider is shareware RPGs that allow user-designed scenarios. Blades of Exile, written by Jeff Vogel and available for Mac and Windows is a classic 2D tile-based RPG with a very simple graphical editor that allows you to create new scenarios. The author is also working on a sequel, which will use a newer isometric engine and feature a C-like scripting language for greater flexibility. Ambrosia Software publishes Escape Velocity, a 2D space trading game with a modular plug-in system that allows users to expand or modify the game universe or build a total conversion from scratch. These games were originally written for the Mac, where plug-ins are made very easily using ResEdit; the third game has recently been ported to Windows, and I'm not sure how plug-ins are made on the PC.

      At any rate, this all depends on whether the kid in question is more interested in the technical challenge of programming a game and getting it to work, or in the design of challenging battles, puzzles, or whatever. I imagine someone who wanted to experiment with different level designs, enemies, weapons, and how they balance would get discouraged pretty quickly if they had to first spend days writing and debugging the basic engine behind it, and vice versa.

      --

      Ubi dubium, ibi libertas.
    6. Re:Control expectations by battjt · · Score: 1

      When I was in 5th and 6th grade I wrote a 2D "lunar lander" program. It just read key strokes and applied acceleration to the lander (not speed) up, left and right. The lander had to land on a pad with less than a certain speed (both lateral and vertical). It was pretty easy to do with character graphics on the TS1000, then I recoded it with sprites and sound on the C64.

      I also wrote a simple drawing program (not gimp :-). Using a toolkit like glade/gtk it could be a real learning project. I learned all about trig and geometry by implementing all the spirals, flowers, circles and arcs fromt he front of my Mom's "little blue book" (some early 1960's college math reference).

      Concentrate on the logic, not the programming.

      I had no mentor to ask questions of, just Byte and some old books. I definitely wasn't "gifted from a mathematics and computer standpoint", so I'd expect that anyone with interest could get the job done in a couple weeks.

      I think the big thing to realize is that a program is a design. There is always room for improvement, so it is never done. It takes many little iterations to get it right.

      I've seen too many people dump programming after one class because the dialog panel with the two button that took them a whole hour to produce isn't very exciting. What they don't understand is that every program is like that. There are huge chunks that just take a lot of work, but don't seem very useful.

      That's all I've got for a precoffee lecture.

      Joe

      --
      Joe Batt Solid Design
    7. Re:Control expectations by redog · · Score: 1

      *Whew* For a second there I thought you suggested teaching him RPG to create his game.

      Coffee need more coffee.

    8. Re:Control expectations by ChaosDiscord · · Score: 1
      ...my suggestion is to first control his expectations.

      It's a good point, but I wouldn't worry too much about it. My experience is that simply getting a simple pick-a-path-to-adventure type text game working is a huge thrill for most (geeky) kids. Sure, it may not be flashy, but they get a feeling of control and power, something they don't normally get (being kids and all).

      Furthermore, armed with a good game creation toolkit (I'm woefully out of touch at the moment), you can in fact create neat graphical games while still doing lots of interesting programming. Focusing on specific languages just isn't important at this point, learning some specialized language for a game engine is fine. (It's possible that there aren't any good toolkits out there now, which would be unfortunately... hmmm, that would be a fun project...)

    9. Re:Control expectations by AvitarX · · Score: 1

      Programming Linux Games from Loki is pretty good for getting graphics into things.

      I am a wanna be programmer, and read that and can move stuff around the screen easily.

      I would recomend doing a text based RPG in C to learn about compiling etc. and then a bood like that. It goes through making a simple game too.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    10. Re:Control expectations by vidnet · · Score: 1
      Like you say, the simplest games aren't instantly easy. Text-only RPGs are certainly no exception. They require knowledge of data structures and grammar parsing, or you'll end up with a bigass tree of if statements, and thus probably a rather stateless environment.

      Who says you have to worry about eye candy in graphical games? I'd start off with a bouncing ball and then make Pong out of it.

  3. Why even start with Logo? by sinergy · · Score: 1

    I was in a school program that taught us BASIC in 3rd grade. We were all writing 500+ line BASIC programs by the time we were done with it. Pascal and C came later. It seems like a more natural approach. Though, in those days, Pascal wasn't something to laugh at.

    --
    ...
    1. Re:Why even start with Logo? by Anonymous Coward · · Score: 0

      It doesn't count as 3rd grade anymore when it's your 5th time through the class.

    2. Re:Why even start with Logo? by localhost00 · · Score: 1
      What kind of school did you go to????????

      --

      Calling atheism and agnosticism a religion is like calling bald a hair color.

    3. Re:Why even start with Logo? by sinergy · · Score: 1

      Just a public school. I was in the "gifted" program. The teacher we had was amazing. We had that same teacher for grades 3-5.

      --
      ...
  4. try PureBasic by beernutz · · Score: 1
    I am VERY impressed with this compiler! It is cross platform as well. (Windows, Linux, Mac)

    here is a little blurb from their page!
    purebasic

    PureBasic is a programming language based on established BASIC rules. The key features of PureBasic are portability (Windows, AmigaOS and Linux are currently fully supported), the production of very fast and highly optimized executables and, of course, the very simple BASIC syntax. PureBasic has been created for the beginner and expert alike. We have put a lot of effort into its realization to produce a fast, reliable and system friendly language.

    In spite of its beginner-friendly syntax, the possibilities are endless with PureBasic's advanced features such as pointers, structures, procedures, dynamically linked lists and much more. Experienced coders will have no problem gaining access to any of the legal OS structures or API objects and PureBasic even allows inline ASM.

    The main features of PureBasic

    - Huge set of internal commands (600+) to quickly and easily build any application or game
    - All BASIC keywords are supported
    - Very fast compiler which creates highly optimized executables
    - No external DLLs, runtime interpreter or anything else required when creating executables
    - Procedure support for structured programming with local and global variables
    - Access to full OS API for advanced programmers
    - Easy but very fast 2D game support trough dedicated libraries (DirectX, SDL, ...)
    - Easy and high quality 3D support based on OGRE
    - Optimal use of the available hardware by using highly optimized (assembly) commands
    - Source code is fully portable between AmigaOS, Windows and Linux, for both games and applications
    - Dedicated editor and development environment
    - Integrated debugger to easily trace programming bugs.
    --
    (stolen from DaBum) I am dyslexia of borg - your ass will be laminated.
    1. Re:try PureBasic by El · · Score: 0, Flamebait

      How well does the DirectX dedicated support library work on Linux and AmigaOS?

      --

      "Freedom means freedom for everybody" -- Dick Cheney

    2. Re:try PureBasic by beernutz · · Score: 1

      Actually pretty well from what i understand. It maps to the direct frame buffer routines in linux (i am sorry, i dont remember the name of the linux library)

      I dont know about the Amiga, but i suspect somthing similar.

      --
      (stolen from DaBum) I am dyslexia of borg - your ass will be laminated.
  5. basic computer programming by innocent_white_lamb · · Score: 3, Insightful

    I learned programming by typing in code from books like "100 BASIC Computer Games" and so on. David Ahl's books, Compute!, and the like.

    I don't see why a kid today can't type in a page of BASIC code out of a book. Once he sees the structure and gets the idea of how things fit together in a logical flow, the next steps should fall into place naturally.

    --
    If you're a zombie and you know it, bite your friend!
    1. Re:basic computer programming by monopole · · Score: 2, Interesting

      I too learned a great deal of programming from "100 BASIC Computer Games", and it took many years to unlearn the bad practices. While the code was facinating 20 years ago, at that point BASIC was a viable language and we worked with 1 MHz 16KB machines. Frankly, the majority of the games were hideous even back then. When he sees the structure and gets the logical flow of that completely unstructured spagetti code he will renounce programming for life!
      I strongly belive that teaching children BASIC as a first language should be classified as "contributing to the delinquency of a minor", please use a modern language such as python or java

    2. Re:basic computer programming by vasqzr · · Score: 1

      I don't see why a kid today can't type in a page of BASIC code out of a book.

      Why not?

      Computers don't book up to a prompt like this anymore:

      OK?

      Microsoft really should include some sort of Visual Basic with each copy of Windows.

  6. Get it started right by DrunkBastard · · Score: 1
    You should just get them started on the right foot. C, all the way. I'd be okay with C++, but keep 'em away form the evils (read banging head on ceiling trying to make it work) of stuff such as Visual Basic, or C#.

    Everything that needs to be done, can be done with C. Done.

    1. Re:Get it started right by Smidge204 · · Score: 1

      but keep 'em away form the evils (read banging head on ceiling trying to make it work) of stuff such as Visual Basic, or C#

      Riiiiiight, like there's absolutely nothing in C that could possible confuse a kid who knows nothing about programming, right? Nothing that could possibly make it difficult and frustrating to get it to work at all?

      Like hell.

      Everything that a 9 year old that's trying to learn basic game programming can be done in VB with probably less difficulty than C, if for no other reason because the language syntax is almost english.

      I won't argue that choosing a first language is important, but I will argue that C is the right choice. Performance and efficiency are simply non-issues when you're first getting started. A first language should encourage structure and teach fundamental concepts like variables, loops and conditional statements. More importantly it should not get in the way of exploring these basics by requiring lots of syntax. If you actually *learn* how to program properly, then switching over to another language is typically pretty easy because the basic concepts are the same.

      This is what makes LOGO so great as a first language.
      =Smidge=

    2. Re:Get it started right by shaitand · · Score: 1

      MOST of what makes C difficult for people to pick up is their experience with "almost english" programming languages.

      Your basic, vb, and pascal type languages make learning C style languages difficult. The reverse is not true. A c programmer can pick up those style of languages fairly easily (not that they are all that worthwhile to add to your portfolio).

      Don't get me wrong, give them libraries that make it possible to write programs that DO SOMETHING the first day, don't hand them raw C. But do make it C or a C-like language like java.

    3. Re:Get it started right by phaggood · · Score: 0

      God! You people! C!?! Assembly?!? WTF?!?

      If he wants to learn how to create games, he needs to see how they're assembled. Hand-writing a console-mode checkers or tic-tac-toe in assembly isn't going to show him squat about how modern games are put together.

      Give him this link, download the cheap (or free) version and have at it. Also download this and this so he can do things like create sprites and graphical models (free tutorials abound, use google).

      Once he can get through a few 3dRad tutorials likethis one, he will be ready to tackle this book on game programming in C++.

      Maybe a lot, but it's winter; what else is he gonna do besides stay inside watching tv?

  7. SEUCK! by TinheadNed · · Score: 1

    I haven't seen the Shoot-Em-Up Construction Kit for a while, but that was great on the Amiga.

  8. Hmmm by Anonymous Coward · · Score: 0

    Give him a floppy with bootnet.img on it and an old computer with an unformatted hard drive and tell him to have at it. At least, that's what my dad would have done.

    1. Re:Hmmm by Anonymous Coward · · Score: 0

      And look at the result:

      Most of the leading games today list Anonymous Coward in the credits. Why you even got the byline on this post. Your dad must have been some kind of genius.

  9. Encourage his interest! by L.+VeGas · · Score: 2, Funny

    It is very important to use the carrot instead of the stick approach. First, get him the most advanced workstation you can afford as well as a 21" monitor minimum. Make sure he takes plenty of breaks, and when he does well, reward him with something nice like a trip to the zoo or a soothing massage. Above all, have fun TOGETHER!

    ------
    Michael Jackson

    1. Re:Encourage his interest! by Anonymous Coward · · Score: 0

      It is very important to use the carrot instead of the stick approach.

      Agreed. However, most people using this approach forget to eat the carrot at least an hour or two before starting. This is important because you will need it for energy as you beat the child with the stick.

    2. Re:Encourage his interest! by laird · · Score: 1

      And then run Squeak! Squeak's Morphic is a fantastic teaching environment!

      Squeak Smalltalk

      Morphic Tutorial

      But rather than read about it, download and run it. It's fantastic!

      Morphic is approachable to little kids, assuming that they're old enough to read a bit (or you sit with them to tell then what's what). And Smalltalk is deep and open enough that they can learn as much as they want. Want to understand how the event handler works? Walk through it in the (source level) debugger. Since the entire environment (including the Smalltalk virtual machine) is open source and written in Smalltalk, it's completely open to exploration and experimentation. Very liberating!

      To get started, run Squeak, open one of the "worlds" and play around in it. Check out some screenshots.

  10. try mods by josephgrossberg · · Score: 1

    Why don't you start him on mods, scripts or skins of a game he already plays? A non-trivial (i.e. attractive and fun) game is going to be hard for him to build from the ground up.

    An addition to a game (even if it's just putting Pokemon artwork on someone's armor) is more bite-sized.

  11. Really need books? by HalfFlat · · Score: 1

    I guess it depends on his attention span.

    If he can already code, then probably he's best off with a language/platform reference that isn't too dry, and lots of example code that other have written so he can get a feel for how people put programs together.

    Let me pull out my walking stick and reminisce about the Old Days (programmers with a longer history are of course free to run over me in their wheel chairs.) BASIC on something like the VIC20, Apple II or C64 was a great learning environment: immediate feedback from the language and well documented guides to the Operating System were readily available. Hacking in 6502 assembly was also pretty straightforward. In this sort of environment, where there were also many available printed books containing code for games that you could type in, learning how to code your own games in BASIC or assembly was almost inevitable.

    So my suggestion is to try and recreate a similar environment in today's world!

    Oh, another point: start small. Before jumping into some huge ambitious project that will never get finished, encourage him to start with warm-ups. eg: for basic game structure and AI write a naughts and crosses program. Start with a dumb version that uses text, and gradually embellish it to use graphics and make it a learning AI. Then perhaps try something like a real-time lunar-lander variant, to get the hang of non-turn based game structure. To get familiar with graphics and sound, encourage him to try writing graphics demos (start small, with a spinning cube or somesuch) or a simple music composition program. The latter would also help to learn about more complicated user interfaces.

  12. BYOND by Van+Halen · · Score: 3, Interesting
    Disclaimer: I'm partial because I'm involved in this project. Take that for what it's worth, but I really do believe in it.

    You might take a look at BYOND (Build Your Own Net Dream). It has a simple tile-based graphics engine, an object oriented language that is easy to learn, and automatic networking so you don't have to do any extra work to get multiplayer games. And it's completely free to download and use.

    We've had a number of kids around the junior high age get involved and create their own games using BYOND. For most of them, it's their first introduction to real programming, and serves as a great springboard for getting into more advanced languages like C++ and Java. In fact, the success in that age group has almost become a problem -- the community is swarming with young adolescents and we adults feel like a minority there sometimes. We're even thinking of pushing it as an educational tool somewhere down the line...

    Browse around at some of the games listed on the games site to get an idea of the system's capabilities. You won't be making first person shooters, but it could be just right for someone your son's age. Puzzle games and RPG/adventure style games do particularly well in BYOND. Once you've downloaded the client (Downloads link, obviously), you can even connect to any games that are currently online. Just beware the ones in the Unpublished section - they may or may not be up to snuff, and may be hosted by immature 13 year olds looking to be rude.

    Then take a look at the programming guide and jump in to see if it will work for you. I'm not sure if 9 years old is too young for this, but your son sounds very smart, so he may pick it up just fine. Good luck!

  13. Pygame by fredrikj · · Score: 1

    Python and Pygame. Python is not only easy to learn but also a powerful real-world programming language. It might not be quite as ideal for a 9 year old as languages/environments designed to be more playful and task-specific, but it's probably the best "real" language out there for the application. Besides, from what I've heard, a lot of people learned Basic around 9 or so and Python is definitely easier (if not to grasp the basics of then at least to do anything useful with) than Basic :)

    1. Re:Pygame by Anonymous Coward · · Score: 0

      Good suggestion. The guy might decided that programming *is* a game :-)

    2. Re:Pygame by !the!bad!fish! · · Score: 1

      Pygame also has some great docs and tutorials. I found suprisingly fast to pick up and get some sprites flying.

      --
      Kids today are tyrants. They contradict their parent, gobble their food, and tyrannize their teachers. - Socrates 400 BC
    3. Re:Pygame by sjbrown · · Score: 1

      While on the topic of Pygame, you should check out the Pygsear project, which is aimed at making things very simple for novices.

      Perhaps your son can make a silk purse with it.

      Pygsear
      The book that goes along with it

  14. Interactive Fiction by Charles+Dart · · Score: 2, Informative

    I was just looking into text only games [Interactive Fiction] recently for the first time in a looooong time. I found some fun ones that were done in the TADS language which is apparently made just for that. The site I downloaded the runtime environment from also had a compiler. Check out tads.org For some background. I think an IF game is a perfect starter for a kid.

    1. Re:Interactive Fiction by iantri · · Score: 1
      TADS and Inform (the mainstays of moderm Interactive Fiction, and yes, it does exist) are rather difficult for a 9-year old, I'd think..

      I reccommend Alan, which is very easy to use.

  15. Simple.. by lordmoose · · Score: 1

    trySiMPLE

  16. Do what I did: by Anonymous Coward · · Score: 1, Funny

    Tell your child that he needs to learn and learn fast. Tell him that he is in danger of being replaced by an Indian child that you are thinking about adopting. Calmly explain to him the economic benefits of having a child in India as opposed to in your own home (less cost for food, housing, etc.) If you can explain all this in words that he understands, I think you will be amazed at the progress he will make.

    1. Re:Do what I did: by Matt+-+Duke+'05 · · Score: 1

      by far, the funniest comment i've ever read on \.

      --
      -Matt
      Duke '05
  17. Make them learn the same way we did... by Anonymous Coward · · Score: 0

    ... by hacking into the school computer and changing their grades!

  18. Memories by Kobal · · Score: 1

    I first started using a computer when I was 8 (1986), when the government provided all schools with Thomson comps (6809 processor, 1 Mhz) processor. If I remember correctly, there were four languages available: basic, assembly, forth and logo.
    Logo was too simple and limited to be interesting.
    Basic (MS Basic 1.0) was easy, and the interpreter made it a hands-on, "sandbox", experience. I don't think I would have been hooked by a compiled language back then. On the other hand, it's pretty limited and what is learned with basic won't help much later.
    Assembly was hard, especially because a single mistake meant a complete reload from the tape. Tweaking routines into basic programs was interesting, though, as was disassembling the available games and deciphering the code.
    Forth was mainly "wow" but I never really got to fully use it, since unlike basic, the documentation coming with the machines was scarce. But I still think it's simple enough to be an interesting starting point for a child.
    On the other hand, if you want your child to stay clear of computer programming for the rest of his life, show him C, perl or ADA first: Satisfaction guaranteed.

  19. 101 BASIC Games and Realistic Expectations by xanthan · · Score: 1

    Has anyone done a modern version of 101 BASIC Games?

    That said, you may want to start by working with some realistic expectations. Does you son understand the sheer amount of work necessary to do the games that he probably plays? Does he understand that the first few games that he does are likely to be very simple in nature? When my wife started learning how to program, she was an avid user and excited about the possibility of becoming a programmer. She was dissapointed at how a full day of working could only produce trivial little DOS programs that were nothing like the apps she used. Unfortunately I wasn't able to better set her expectations and she ended up frustrated with programming and hasn't seriously looked back at it. Today she has a much better view of what it takes, but that first time experience still keeps her from making any serious headway...

    As for ideas, start with simple things first. E.g. simple screen saver type animations on the screen that can be brute forced. This gives good visual feedback without concern over input processing or timing. Move on to simple role based games where the program can wait for input from the user before acting on it. E.g., board games (connect-4, tic-tac-toe, etc.), simple D&D type games, etc. It's probably worth getting WarGames on DVD to show that real systems/big games did look like that at one time. If you have an emulator of a 8bit PC (Commodore/Apple2), try to show some older games that were interactive like that. From there, look into adding graphics (e.g. Myst). At this point, he'll probably be ready for making the leap to a action game that requires concern for real time keyboard/mouse/joystick input and live screen updates.

    Being a dad, I'm sure I don't need to tell you this, but be ready to spend a lot of time helping him with it. Those first few debugging sessions are going to be really frustrating...

    Best of luck with this endeavor.

  20. Flash or game level editors. by larry+bagina · · Score: 3, Interesting
    Pick up starcraft or NWN or some other game that allows you to build your own levels. They usually have event triggers and a mini scripting language, so you can focus on how that logic works and not have to deal with artwork and music.

    You could also take a look at Macromedia Flash. They have a usable scripting language and you can draw or import graphics and sounds from elsewhere.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  21. modding instead of coding from scratch by Lepruhkawn · · Score: 1

    He might be interested in modifying existing games or game engines. That is, he can start by modifying game content instead of starting from scratch writing programs.

    You can create your own levels and such for many state-of-the art titles. It's challenging and rewarding. Some people get into the industry this way.

    There are many games/engines that can be modified.

    Garage Games took this mod idea in an interesting direction by taking the technology used for Tribes 2 and marketing it as an engine for a small fee. The fee is higher than the Tribes 2 price but you get more for your money.

    --
    Jesus saves....And takes 1/2 damage.
  22. Suggestions by Sparr0 · · Score: 1

    I know you said he wants to make games, but start him out on other sorts of programming that are fun but also much more instant-gratification-esque. I would suggest one of the many games where you can program robots/tanks/gladiators/etc, specifically Robot Battle, C++ Robots, or Core Wars. If he is still interested in programming, get a copy of DarkBASIC for him, its a great way to get started programming good looking 3D games (skip the textual stuff, its just as good to learn with 3D apps and a lot more gratifying and fun).

  23. Squeak, squeak! by MountainLogic · · Score: 2, Interesting

    Consider the Squeak environment. It's an open, highly-portable Smalltalk-80 implementation. It is really friendly place for kids to get started and smalltalk is a good language for kids to start with.

    1. Re:Squeak, squeak! by stoborrobots · · Score: 1

      Definitely... and be sure to take a look at the SqueakLand kids site

    2. Re:Squeak, squeak! by nado · · Score: 1

      I second that! Even though the interface is horrible at first, it's very addictive once you get into it.

  24. Pygame, Python, etc. by dstone · · Score: 1

    Being nine years old with an aptitude for math and computers should allow your son to grok much of Python and especially the Pygame modules for easy game writing in Python. Pygame runs well in both Linux and Win32 (based on the SDL libraries, also free). There are plenty of short, easy examples of graphics and sound and animation using Pygame.

    LiveWires has some Python courses specifically for non-programmers and young people, some with a slant toward games.

    You might also look at Guido van Robot, a Python-based robot programming environment for children. Maybe it won't allow for 'real' game writing, but the concepts seem sound and it might be a more gentle intro.

  25. Hunt The Wumpus. by Anonymous Coward · · Score: 0

    You can write a simple version then start extending the hell out of it. I might recomend something a long the lines of a different flavor than the typical (I chose for my version Hunt the Wampa, Han Solo goes into the Ice caves to save Luke).

  26. Echo? by TitaniumFox · · Score: 1

    Try this.

    --
    -- I'd say your post was about 3 monkeys, 18 minutes.
    1. Re:Echo? by Anonymous Coward · · Score: 0

      HAHAHAHA, Cliff blathered on about Logo in that story too.

  27. Game Maker by Anonymous Coward · · Score: 0

    I came across this a while back but didn't do much more than glance at it. It allows one to create games "without the need to write a single line of code" (quoted from the home page). It uses a lot of GUI elements to define logic. Windows based. I was considering it as a way to entertain my niece but decided it was too complicated at that stage.

  28. Go For It by polyp2000 · · Score: 1

    I learned to program very young when I was seven or eight. My brother had a ZX81 . I got the bug from programming listings from the ZX81 manual and various magazines. I guess the way forward is to learn by example. It doesnt matter what language, its the techniques and the understanding that are most important. At that age just provide a sandbox that gives a basis to learn from. By the time he gets a bit older he will more than likely have the gift ... so just go for it!

    --
    Electronic Music Made Using Linux http://soundcloud.com/polyp
  29. For the love of jebus, not a BASIC dialect by Strike · · Score: 1
    Lest we not forget our buddy Dijkstra:

    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.


    I vote Python or Scheme.
    1. Re:For the love of jebus, not a BASIC dialect by ClosedSource · · Score: 1

      Ahh, Dijkstra. One of the giants of the gaming world.

    2. Re:For the love of jebus, not a BASIC dialect by damiam · · Score: 1

      While a catchy phrase, it's still bullshit. I know plenty of perfectly decent programmers who started with BASIC, and quite a few more who have "had a prior exposure to BASIC". An intelligent person can learn BASIC quite easily, and it does not destroy their mind.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    3. Re:For the love of jebus, not a BASIC dialect by AltaMannen · · Score: 1

      Oh, the days before A*

    4. Re:For the love of jebus, not a BASIC dialect by laird · · Score: 1

      "An intelligent person can learn BASIC quite easily, and it does not destroy their mind."

      Keep in mind that modern dialects of BASIC are really closer to interpreted Pascal than the BASIC that screwed up so many kids back in the day. So aside from a few random leftovers, modern BASIC is a pretty decent language (though it's still crappy compared to Ruby or even Perl).

      So, in the context of the primal BASIC that the poster was referring to...

      I used to teach programming to kids; the official sequence then was Logo for little kids, then BASIC, then Pascal. The kids who went straight from Logo to Pascal had no problems at all, other than getting bored waiting for the compiler -- Logo and Pascal are conceptually quite similar. The kids who wasted a year learning BASIC had to spend _ages_ unlearning stupid ideas like "computers know what line to go to next because of the line number" and "string variables end in $" and "you can't indent" and "subroutines start with line numbers in thousands so you can remember the number". And there was actually _nothing_ that they'd learned from programming in BASIC that wasn't in Logo. It was really frustrating several times every day having to leave half the classroom bored (the Logo kids) so that I could straighten the BASIC kids out, over and over again. Recursion? To Logo kids its obvious, and to BASIC kids it's impossible. Graphics? Variable scoping? Dynamic data structures? Inline commenting? Named subroutines?

      Yes, people can eventually unlearn all of the stupid things that BASIC teaches you. Heck, I did -- I started with DEC BASIC, then TRS-80, then Apple ][. But why make the kids suffer through a meaningless waste of time (and worse, that makes it harder for them to learn anything useful later) instead of teaching them something constructive? It's not like anyone uses BASIC for anything significant these days (unless you're really excited about using VBA to write Word Macro's).

    5. Re:For the love of jebus, not a BASIC dialect by Sparr0 · · Score: 1

      The beauty of BASIC, and the reason I still us it in various incarnations (VBDOS, DarkBASIC, and VB.NET), is that it is an interpreted language with an integrated IDE (yeah, i know, sounds redundant, but its not, C++ IDEs arent really integrated the way I am talking about). I have never used another language in which it was EASY to break out of the program, modify the code, and then restart execution FROM THE BREAKPOINT, all without losing any of the data in the running app. BASIC allows for faster development and debugging than any other language I have used. Sure, it lacks the flexibility (no pointers until VB3 iirc) of other languages (which is exactly why I learned C in the first place), but thats not at issue when youre first learning. I think the nature of debugging in BASIC is one of the prime reasons many BASIC programmers have trouble moving to other languages, they dislike giving up such useful functionality.

    6. Re:For the love of jebus, not a BASIC dialect by son_of_asdf · · Score: 1

      I concur with laird. I learned BASIC on the Apple II+ and C64 way back when, and then left off programming around 1987. I picked it back up again in 2000, and started learning Perl. It took me forever to get over the idea that a program should have line numbers to function correctly, among other brain-damaged ideas.

      Have mercy on the kid, and keep him away from BASIC at all costs.

      --
      Don't Panic!
  30. BASIC du jour by Nom+du+Keyboard · · Score: 1
    My first language was BASIC on a B-5500. It was the Basic of the day.

    Let this kid learn the Basic of this day: Visual Basic .Net 2003!

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
  31. Python and PyGame by monopole · · Score: 1

    The PyGame (pygame.org) module for Python provides a reasonably complete binding of the Simple Direct Layer (SDL). It is sufficently high level to allow for the coding of reasonably good games win several pages of code. Using this in combination with the Python binding of VTK allows for the coding of real time interactive 3D apps in 3-4 pages of code. For folks who cant wrap their heads around VTK there is always pyGL
    As a result it is possible to easily write games in python while promoting good coding pratice.

  32. On a related note by stoborrobots · · Score: 3, Informative
    Some links which may be useful...
    • GameDev, and in particular the How do I make games? and Game Programmer's Beginners Guide
    • for the hardcore out there, a Win32 Assembly Tetris Clone how-to guide, with full source code and commentary...
    • A programming language called Euphoria which is so unlike "real" programming languages, that it might just be easy enough for a kid to pick up and learn in a couple of days... (I got into it a few years ago, well after I learnt to program)
    • XBasic - a decent BASIC for graphics support... (Win32 graphics... I got it because it was a step up from QuickBASIC!) There's a linux version, and it's all GPL these days...

    That's all I can find in a quick scan of my bookmarks from way back when...

  33. Forth by A+Big+Gnu+Thrush · · Score: 1

    eom

  34. Text Adventures by Discoflamingo13 · · Score: 1

    Hard enough to be interesting, easy enough that you don't have to teach them about collision detection. There is also an engine called COG which was specifically designed to for non-programmers to make games, although I don't know how far it's come since I last checked it.

    1. Re:Text Adventures by Hubert_Shrump · · Score: 1
      just what i was going to suggest.

      tads or
      • inform
      (no link jumped into my hands) are decent toolkits.

      might try the interactive fiction archive for more along these lines.

      it'll hone the storytelling, which is pretty durn important against the graphics and whatnot. kids games are jawsome!

      there was a pretty neat one using claymation from a few years ago, as an adjunct to the text. i think it was in Tads - a quick look through the competitions from previous years and nothing rang a bell for me - maybe someone else knows it.

      --
      Keep your packets off my GNU/Girlfriend!
    2. Re:Text Adventures by Thing+1 · · Score: 1
      there was a pretty neat one using claymation from a few years ago, as an adjunct to the text. i think it was in Tads - a quick look through the competitions from previous years and nothing rang a bell for me - maybe someone else knows it.

      I believe that game was The Neverhood -- ring any bells?

      --
      I feel fantastic, and I'm still alive.
    3. Re:Text Adventures by Hubert_Shrump · · Score: 1

      mmm... i'm pretty sure the one i'm thinking of was written in TADS and was about aliens in the backyard - it may have actually been called 'the back yard', or somesuch.

      it was a one-guy effort, and was in the running for the interactive fiction competition...

      not to take the limelight from a perfectly good alternate. ;)

      --
      Keep your packets off my GNU/Girlfriend!
  35. my experience by Hythlodaeus · · Score: 1

    I can only recommend what I learned to program with growing up. Unfortunately, they're not all that easy to find anymore.

    I think HyperCard was the ideal introduction to programming. You some simple GUI apps in a WYSIWYG way, and every kid who learns to use it immediately grasps its potential for making games. It requires 0 programming knowledge up-front, but as kids start wanting to do more elaborate things, they can jump right in to the HyperTalk language, whose syntax is more English-like than any programming language I've seen since.

    Take a look at this sample code:

    on mouseUp
    answer "Should I add up the first N numbers?" with "Cancel" or "Continue"
    if it = "Cancel" then
    exit mouseUp
    end if

    ask "Add up the numbers from 1 to what?"
    put it into TheLargestNumber

    put 0 into SumOfAllNumbers
    put 1 into NumberToAdd
    repeat TheLargestNumber times
    add NumberToAdd to SumOfAllNumbers
    add 1 to NumberToAdd
    end repeat

    answer "The sum is" && SumOfAllNumbers & "."

    end mouseUp

    Unfortunately, Apple has pretty much abandoned HyperCard.

    The other language I learned with was QBasic, since it came free on DOS systems at that time. It's not a language to use for any serious purpose, but it makes a good language for kids to learn because it doesn't force the issue about functions, data types, objects, etc. up front. Kids can just learn those things as they go. It is also a big advantage to have high level things like graphics, music, random number generation, etc. as basic parts of the language not requiring external libraries or much knowedge of types, objects, functions, etc.

    There are almost certainly other languages out there with similar advantages for first time users, such as Perl maybe (though it would need libraries for a lot of things built into QBasic.) Basically anything that requires no more than one line for a "hello world" program should fit the bill.

    Just as important as the language is your role in teaching. Don't just drop the kid off with a manual, but don't teach it like a class, either. Just show him a few things like console i/o, for loops, and while loops. If he's really interested he'll churn out a library of little "games" with just those structures (plus random number generation.)

    Avoid introducing concepts until he can see the use for them. I remember being very skeptical of arrays until I was trying to write a program that needed them. Generalizing that, I would present a programming challenge, and after he's chewed on it awhile, introduce the language feature that makes it possible.

    --
    For great justice.
    1. Re:my experience by Anonymous Coward · · Score: 0

      whose syntax is more English-like than any programming language I've seen since.

      Have you seen AppleScript?

  36. GW-BASIC to Perl by CyberVenom · · Score: 1

    how I became a programmer:

    GW-BASIC
    Maybe not the most elegant solution, but certainly a reasonable starting point at the end of the microcomputer era. This is how I leared. Of course having an uncle who could also code in BASIC and a father who occasionally dabbled helped too. I still have my old book "Using BASIC" from Que, well worn and loved, which I received for a birthday sometime around 8 or 9. The book itself had some mediocre tutorial value, but the real value was in the quick reference at the back. All of the basic commands' syntax laid out in a simple, easy to follow manner.
    I had also studied Logo in school, but was frustrated by the inability of the language (at least the subset of the language that the teacher taught us) to handle user interaction with the program. Sure I could make the turtle draw circles and other more complex pictures, but what good is that if I can't read input from a joystick?
    Today, there may be better starting points than BASIC, especially for learning good coding practice, but I still found BASIC invaluable in teaching the (very simple) usage of variables, loops, conditional statements, pixels, input, and simple logic. The immediate feedback was nice; no need to compile before you knew what was wrong, and a step debugger built into the environment. GW-BASIC was also fairly compatable with most of the programs I found in books and magazines that I received as hand-me-downs or in the DD 001 section of the library, which was nice. Lots of examples.
    When I outgrew GW-BASIC, my next step was QuickBasic. I was thrilled by the ability to compile .exe files, and by the removal of line numbers. I soon ran into limitiations even here, such as the inability to use mouse input (although oddly enough, it supported lightpen input!).
    My next step was assembly (of the x86 variety). I explored this first as a means to write QuickBasic libraries to handle mouse input, but later began using it for other small projects in DOS. At this stage, I found the DOS interrupt and BIOS quick reference guides from Que at the local library. These were superb! They had the same quick reference structure I had liked in Using BASIC, but without the rest of the bulky book attached. I also read the articles in Mark Feldman's Game Programmer's Encyclopedia (probably still available online if you google for it,) and I downloaded documentation on DMPI and played a bit with that.
    My work with assembly and study of demo-making techniques taught me a lot about optimization. Throughout my assembly experimentation I tried several assemblers; TASM was pretty good. MASM was insane. MagicAssember (a freeware project available on the web) was very goot for small .COM TSRs and boot sectors. NASM was the most robust and sensible assembler. I also used the DOS debug command a little.
    Finally I decided to try C. Microsoft C to be exact. I wanted the ability to write windows programs. I had trouble finding a good reference to use for MSVC, and much banging of head against walls ensued. I still haven't perfected my C, but it has improved a bit. I probably would have done much better with a Borland compiler and a good book.
    I did a some work with JavaScript, and it was fairly simple at the beginning, but the Browser Wars killed it.
    Finally I was introduced to the Unix Swiss Army Chainsaw, Perl, and the best computer book I had ever used, the Perl Black Book. Even though it may not be the fastest or cleanest language, it is the most usable language I have programmed in yet. Basic Perl syntax is fairly simple, advanced syntax features are available if you need them, and almost everything you would ever want to do with it short of a GUI is accessable with the built-in functions. If you want more, of course, there is all of CPAN waiting to do your bidding.
    Don't get me wrong, other languages like C and Assembly are still invaluable in certain cases, but Perl is versetile enough to allow me to do almost anything well enough to get the job done.

  37. Over limit by 2 chars! by CyberVenom · · Score: 1

    LOL!

  38. Why not C/C++? by Jorkapp · · Score: 1

    I see no reason why a 9 year old cannot learn ANSI compliant C or C++.

    --
    Frink: Nice try floyd, but you were designed for scrubbing, and scrubbing is what you shall do.
    1. Re:Why not C/C++? by damiam · · Score: 1

      That works great, until you get to pointers, classes, enums, templates, structures, etc. While I have no doubt that some nine-year-olds are capable of wrapping their heads around those concepts, the vast majority would be better starting off in a higher-level language.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    2. Re:Why not C/C++? by parksie · · Score: 1

      Ironic considering your signature's non-standard-ness.

  39. Learn Java or buy a C=64 by John+Harrison · · Score: 2, Interesting
    I taught myself to program the Commodore 64 when I was 8 using the manual that came with it. My younger brother and I would spend hours making games and little demos in Basic. I didn't know at the time what a demo was though.

    A few years later my dad got us a copy of Kids and the C=64 but the games in that didn't seem as fun as the ones we were making, which were more graphical.

    Learning by making games is the way to go. Kids can learn some algebra concepts by learning the simple graphics libraries and learning to do simple animations.

    A few years ago a 12 year old sent me an email and asked if I would help him make a video game. He had seen one of my others games on the web and wanted to learn. I thought it was cool that he dared to ask, so I took him up on it. We decided to code in Java since it is freely available and you can put your work up on a website for others to see. The result is at http://www.angelfire.com/games4/anirak/. I did most of the programming and he did the design of the game and the graphics. We went over the code using instant messenger he understood it and would modify it to try out different things. It was a lot of fun for him.

    After that I started writing a pacman type tutorial on the same site, but only recently have I made any progress on it. Unfortunately the stuff I have done recently is pretty complex. It is probably easier to stick to shot-em-ups that don't involve complex boards or AI when using the game as a learning tool for children.

    If you want to use any of the code on those sites for educational purposes feel free to do so.

    1. Re:Learn Java or buy a C=64 by TheMysteriousFuture · · Score: 1

      I just played Anirak for about 20 minutes. It's addictive! :)

      Does X5K MaStEr X5K (the kid) ever read slashdot?
      Has he done any other programming since making Anirak?

      BTW my high score was 308000...If you've tried it, post yours.

      -TMF

      --
      .sig
    2. Re:Learn Java or buy a C=64 by John+Harrison · · Score: 1
      As far as I can tell by the questions he occasionally asks me he is using a Java decompiler to look at the client source for various online games, making changes, and then cheating at those games. So yeah, I guess he has become a little cracker/hacker. At least he is writing code instead of using someone else's tools. :) I don't think that he reads /. regularly.

      I just played and barely reached level 40. Score was (oddly enough) 3,080,000.

      There are several tricks to it that aren't listed on the webpage. The first is listed, but nobody bothers to reader it. The ships that look like yours are power-ups. Collect them. Tap the 'L' or 'K' key to see what they do. You can go up and down. This is helpful in dodgin/collecting things. You can wait at the end of a wave with one enemy left and collect all the power-ups you want. Your shields are replenished a little after killing the boss, and this effect is greater in the later levels.

  40. I second DarkBASIC by Larry+David · · Score: 1

    It can produce games which look like the cheap ones in the bargain bin (which is good enough for a beginner!) and it doesn't require TOO much effort. A great stepping stone for a budding young programmer.

  41. Programming? by saberworks · · Score: 1

    Has he expressed an interest in programming or just game creation in general? There are fan sites for virtually every popular game. They host user-created addons, tutorials on every aspect of modification (from level design to texture creation to in-game scripting to ai, animations, modelling, etc.). Encourage him to find sites like these and start making addons. Lots of people have been hired out of our community alone (site up there ^^). Hell, a lot of our visitors are 13-15, and most of them are far more talented than I am, and I've been programming "professionally" since 1998. I would hire any of those kids in a heartbeat over the 25 "professional web developers" we interviewed recently at the company I work for.

  42. 3d gamestudio by xagon7 · · Score: 1

    I used this sytem for 2 years before switching to the Torque engine (simply to delve deeper into the engine). It is by far the easiest and most rewarding system available for a newcommer without prior programming knowledge.

    www.3dgamestudio.com

  43. Stagecast (was coca) by jayrtfm · · Score: 1
    Before OSX, Apple developed a K-12 programming environment called Coca.

    It's now cross platform (java), and available from Stagecast
    Looks like it gives a great intro to OO programming, since every character is an object to which you can assign properties and behaviors.

    1. Re:Stagecast (was coca) by bill_mcgonigle · · Score: 2, Informative

      Just to clarify for those doing searches, it's Cocoa (just like the OSX/NS framework).

      And mods, this is the direct answer to the Ask Slashdot question, the tool built for expressly this purpose. A friend taught his 8-year old daughter how to use it and she was absolutely delighted.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  44. Pseudo-programming language... by Txiasaeia · · Score: 1
    ...TADS. Allows him to build the basics of a game without worrying about graphics, and forces him to focus on the STORY, which is bar none the most important aspect of a video game. Very easy to pick up, and is an easy lead into more advanced progamming languages. There's also tonnes of TADS games with source code.

    Of course, I might be biased as I used gwbasic to write a text adventure game when I was a kid, but who knows :)

    --
    Condemnant quod non intellegunt.
  45. Alice perhaps? by Klowner · · Score: 1

    If you're not afraid of ramming object-oriented design into the kid..

    check this out:
    http://www.alice.org

    I'm 21 and extremely interested in game development, always have been. My uncle brought over a copy of Alice for me when he was visiting for Christmas, I played with it for about 15 minutes, I found it to be a little simplistic, but I can see how a kid might just go crazy over it, especially one with little to no programming skills.

    The nice thing about Alice, is that it teaches well structured programming, while eliminating the possibility of syntax errors (sounds crazy? I'm not kidding), plus it lets you see the output of your program in a 3D environment (exciting, flashy).

    That or buy the kid a C/C++ book and throw him at a text editor & compiler :)

    ( I hope this made sense, I'm half asleep )

  46. Jumping into games too soon? by localhost00 · · Score: 1
    I think at any age, a kid should get reeeeealy comfortable with a programming language before tackling a potentially complex project like creating a game.

    My programming language of choice is WinBatch, and I did once try to make a network Poker game.

    As soon as my nephew moves back to my locality, I am going to expose him to Linux and WinBatch.

    Speaking of Linux and WinBatch, has anyone confirmed whether or not Wine will run WinBatch?

    --

    Calling atheism and agnosticism a religion is like calling bald a hair color.

  47. One or the other.... by DerekLyons · · Score: 1

    Does he want to be a programmer or a game designer? The two are not quite the same thing.

    That being said, get him started with making board or card games, and learn the basics of rule creation, game balancing, etc.. early on.

  48. Use Alice by EnglishTim · · Score: 2

    Alice is a free simple 3d system based around Python - I can highly recommend it, my two ten-year-olds and even my six-year-old have been playing on it.

    It's developed by Carnegie Mellon University, and at it's simplest is directed towards telling interactive stories. It's sufficiently flexible to allow a wide range of applications, however. The interface is intuitive, and it has a large library of pre-built objects to get started with.

  49. Interpreted and interactive by wowbagger · · Score: 1

    I think you are on the right track with Logo, since Logo is an interpreted and interactive language.

    When the kid outgrows Logo (which he will do fairly quickly), then I'd suggest moving him on to other languages that are interpreted* and interactive - that is, that allow you to type commands at the command line to see "What happens if I do it this way".

    TCL, Python, Perl, Forth, Ruby, (gack)Basic(gack again) are all good ways to go in this regard.

    Of course, you want to teach the kid the value of looking at somebody else's code too - just make sure you explain the difference between "extending" and "plagarism".

    * Yes, technically all the modern languages are bytecompiled at runtime, but for all intents and purposes they are interpreted in that you don't have a seperate "compile/assemble/link" phase.

  50. Robocode! by rmpeters · · Score: 1

    I didn't see robocode mentioned. It's an IBM developed, java-based project intended for people who begin to learn programming. And it's a game.

    1. Re:Robocode! by rmpeters · · Score: 1
  51. every little kid by Anonymous Coward · · Score: 0

    from about the age of nine to 30 thinks that they want to write a videogame.

    they go around trolling on programming sides and a stupid questions, and then when they are pointed to book ora web page with information, they spend about 10 minutes and then give up because it is too hard.

    The ones that actually try to do something for a little while and up with a piece of crap they try to lay on to everybody they know. That is when they realise they have no creative talent, as is often the case with us programmers.

  52. simple physics games by Clover_Kicker · · Score: 1

    Lunar Lander is a great suggestion.

    Another simple game to code is "artillery". It doesn't even have to be interactive in real time.

  53. LogoMotion and CodeRally by mark99 · · Score: 1

    I got LogoMotion for my kid when he was 9. It has Turtle graphics (like logo), only it is more like Java. Unfortunatly it is no longer supported and you are stuck with the old versions. If I had to do it over I would use the Logo you found (and buy the book for him).

    Now he is playing with CodeRally with Eclipse and Java. He is 11 and can solve most problems you set him (like make the car go to the nearest fuel depot), but his friends haven't a clue so it is hard to maintain his interest.

    I figure the success his social life contributes more to his being happy than being a kick-ass programmer at an early age, so I don't push it. At least he'll know the basics when he needs it.

    1. Re:LogoMotion and CodeRally by mark99 · · Score: 2, Interesting

      Err, that would be LogoMation

      http://www.magicsquare.com/LM2/

      and CodeRally is at:

      http://www.alphaworks.ibm.com/tech/coderally

      BTW, he mastered LogoMation quickly and loved the colored patterns he could product.

  54. Look where Linus got that way... by Anonymous Coward · · Score: 0

    Linus Torvalds learned Assembly by typing his Grandfather's code in for him.

  55. Dark Basic by Xian97 · · Score: 1

    For beginning game programming I would recommend Dark Basic
    http://darkbasic.thegamecreators.com/

    It is geared toward game programming and there is a beginners book available. A version of basic would be a good start for a 9 year old. At least they would learn some programming structure and concepts that would build the foundations for learning more complex languages in the future.

    Others of this type are:
    http://www.ethosbasic.com/
    http://www.click team.com/English/jamagic.htm
    http://www.blitzbasi c.com/

  56. All these nerds want the kid to end up like us? by Glonoinha · · Score: 2, Interesting

    Lets see here - he is already gifted in math and computers, just like most of us (are / were at that age). Lets assume the kid has just a touch of autism (which is good for computer guys) and already knows his way around a keyboard and a development environment.

    Programming isn't about syntax, and it isn't about variable scope or recursion or data structures or loops or any of that crap - it is about expressing, simulating, or recreating real world ideas in a digital format. The biggest problem most programs have isn't that the programmer didn't use the correct syntax of some computer language - it is that he didn't understand the business problems or real world ideas that he was attempting to address digitally in the first place, or he wasn't able to bridge the gap between the real world and the digital recreation of those ideas.

    He wants to program computer games, teach him project lifecycle development :
    1. Imagine
    2. Define
    3. Architect
    4. Develop
    5. Deliver

    The imagine phase doesn't happen on a computer, it happens in your brain. Add a box of crayons and some paper, have him sketch out a storyboard to help him envision the flow of the game. The difference between good usable software and crap that nobody likes happens right here.

    The define phase doesn't happen in a programming language, it happens in English in Word or OO - or possibly even verbally, have him define it to you so you can help him shape it. Define all the different parts of the program, what all he is going to do. The difference between bloatware and good focused software happens right here.

    Architect phase happens with Legos or Crayons - or a whiteboard with colored (easy erase) markers. Could be simple, but doesn't have to be. The difference between web sites that can / cannot handle a slashdotting happens here.

    Develop - now he starts coding. Look at what he has designed, how he architected and THEN pick a platform, language. If he wants to code a stock market game then Logo isn't your language. If he wants to make a first person shooter then GW-Basic isn't going to cut it, and ANSI C probably isn't either. Tip here : pick a language that you know so when he needs help you can help him. If he got the first three right, this one pretty much has to succeed.

    Deliver - could be deploying it to your ISP if it is a web based game, could be burning it to a CD if it isn't.

    Software development doesn't start with 'what language do I want to use?' It starts with 'what EXACTLY do I want to accomplish?' If you fire up VB.NET in an IDE and plunk him down at the keyboard while his goal is still a simple 'make a game' then the poor kid is fuxored. That works if all you want to do is teach him syntax and bad programming habits. If you want him to be good - then show him how the development process starts not with his hands on a keyboard, but with a box of crayons or a whiteboard.

    --
    Glonoinha the MebiByte Slayer
    1. Re:All these nerds want the kid to end up like us? by splattertrousers · · Score: 1
      He wants to program computer games, teach him project lifecycle development :
      1. Imagine
      2. Define
      3. Architect
      4. Develop
      5. Deliver

      I would be wary of teaching stone-age software design concepts to impressionable young minds...

    2. Re:All these nerds want the kid to end up like us? by Glonoinha · · Score: 1

      I am open to suggestions, recommendations, and revisions.
      By all means, share the development methodology that you use here - don't just detract, contribute.

      --
      Glonoinha the MebiByte Slayer
  57. try:an almost identical 'ask slashdot' from 5/2003 by avi33 · · Score: 2, Informative

    Try this post:

    "I have been asked to teach a week-long class on Computer Game Design for a small group of computer literate kids, around 9-13 years old. My plan is to have them create a simple game, while exposing them to aspects of story design, artwork, animation, and simple programming. To this end, I'm looking for a 'game construction kit' that is simple enough that they can have a working game by the end of the week with some guidance. Anyone remember the 'Arcade Game Construction Kit' on the Commodore 64? Adventure Game Studio looks good, but it may be too complex. The genre is flexible, but it does need to generate a distributable Win32 binary that they can take home. Are there any Windows packages, public domain or otherwise, that can do this, especially any designed for kids?"

    god i need a fscking life...i've tearned into jeeves.

  58. SDL by (trb001) · · Score: 1

    SDL is a GREAT graphics library that is cross platform and easy to use. Simply amazing what you can do with it, and how easily. There are libraries out there for TTF support, along with networking and multi-threading. Really, everything you need for a simple 2D graphics game.

    Project 1: Make a puzzle game, maybe one of those image sliding things where you divide an image up into a 5x5 set of tiles, mix them up, remove one and you have to shuffle things. Additions to this would be to make the tiles 'animate' (slide, as opposed to just move), let the user choose an image, record high scores/times. Advanced stuff would be to make it a client/server program and have two players compete with each other for fastest times. Add chat features so they can talk before/after matches.

    These are all basics, but they're really, REALLY hard to learn at first when you've never done anything and the concepts are foreign. My first client/server game took me months to debug and get working right, and that was an 'eat the apple' type of game.

    --trb

  59. Tetris took 3 days... by Nicolay77 · · Score: 1

    In pascal, when I was young. And I bet some slashdotters could have done it in much less time.

    I believe that simple games that give graphical feedback of WTF is happening are much better for children that any text game.

    BTW, programming the sound took another 3 days.

    --
    We are Turing O-Machines. The Oracle is out there.
  60. C-64 by Frogg · · Score: 1

    How about a Commodore 64, a 1541 (or similar) disk drive, a copy of the original manual and, of course, a copy of the C64 Programmer's Reference Guide.....?

    It can be easier to get going with only the bare basics of a computer, it's a simple enough system that a young teen (ok, ..got a few years to go) can understand the /whole/ system inside their head.

    Start with Basic, move onto Assembly language when you run out of power (or get very bored with Basic).

    With a C64 you'll soon also be messing with hardware registers and stuff too (POKE is just about the only way to do anything at all - even change the border colour, etc) - you'll learn boolean operations when you need to peek/poke to set a bit, and that'll also get you into binary and hexadecimal too.

    The same could apply to other old 8 or 16 bit home computers too, but my favourite was the '64.

    The lessons learnt from hacking such a machine are invaluable if you're gonna try to program a game.

    My view is at least somewhat biased: I was a professional games programmer for ~10 years, mostly on the C64 in the early days.

    On the other hand, if 'making' games is the goal (as opposed to programming them), maybe you should look for some kind of 'construction kit' type software, or look at using a high level language and some decent library code -- I've got no real advice to offer on either of these though, sorry.

    Good luck!

  61. Check this article and Game Maker by -Surak- · · Score: 1

    I posted a similar article almost a year ago for a class I was doing for kids about that age. I ended up using Game Maker, which worked very well - it let them experience various aspects of game design, such as graphics, sound, gameplay, collision detection, without having to do it all from scratch in a low level language. We just used the graphical interface, but it also has a scripting language for more complicated programming. After 10 hours of class time, the kids were able to take a fully playable game home with them.

  62. HTML, then Macromedia Flash by Embedded+Geek · · Score: 1

    For an experiment, see how he feels about putting together a puzzle/"choose your own adventure" style game in HTML. Have each page represent a new location or result from an action and link them all together ("Click here to turn left down the corridor or here to drink the potion on the table"). This will teach him a bit about game structure and let him throw in a few (admittedly, static) graphics, all with a very low technical knowledge threshold. It will also introduce the idea of scripts, embedded objects, and hyperlinking (which, naturally, are useful in many other endevors beyond game construction).

    If he does well (e.g. actually finishes the dang thing), you should look at Macromedia Flash (as others have suggested). Newgrounds has a ton of flash games & cartoons that are unsuitable for a nine year old, but there are two stop motion lego cartoons that I suspect will fire up your son: a basic Lego pirate movie (no sound, very short) and a Lego Treasure Hunt Game (which is an incredible bit of work - I've wanted to do one myself for a while now). I personally like the stop motion animation aspect of both as they level the playing ground for the artistically impaired (such as myself).

    Good luck!

    </My Two cents>

    --

    "Prepare for the worst - hope for the best."

  63. D'ho! by Embedded+Geek · · Score: 1
    very low technical knowledge threshold

    I forgot to mention the obvious: You can do this with any authoring tool or even with MS Word (which I'd suggest over teaching him to manipulate an HTML file with a text editor at this stage).

    Also, the kid can upload the pages to a Geocities site and share it with his friends, generate some web traffic, start a company, go public, become a millionarie, and buy for a villa in Tuscany for his parents!

    Sorry. I had a 1999 dot-com flashback there for a moment. This is stronger coffee than I thought...

    --

    "Prepare for the worst - hope for the best."

  64. 9 y.o. Flash/HTML programmer by Anonymous Coward · · Score: 0

    My 9 y.o. son has enjoyed Flash, and the book "Cartooning with Flash" and "Flash MX for Dummies" ... He's going to do this computer summer camp to pick-up more. My approach is to throw things that work at him, and let him pick them apart and learn them. For example, he's got an updated flash game at his web site www.averywilson.com that was a restructuring of a space invaders tutorial.

  65. Klik n Play / Games Factory! by sailracer6 · · Score: 1
    Why use code at all? When I was that age I was very excited by the release of Klik n Play, which used a graphical interface for its (admittedly limited) capabilities. Some people did amazing things with it though. Games Factory, Klik n Play's successor, is still available here:

    http://www.clickteam.com/English/tgf.htm

  66. What is the License, Dumbass? by Vagary · · Score: 1

    If I have to look at one more piece of software that doesn't mention what license it's published under, I'm going to kick your ass.

    You sucker kids into creating content linked to your shitty libraries, then even provide some kind of hosting scam, and in the end all they're left with is a few cents in their PayPal account, right? While you "adults" keep all their blood, sweat, and tears in little plastic vials.

    Considering that the software doesn't even have a disclaimer of liability, maybe I should just sue your ass because it doesn't accurately reflect my dreams or some trump charge like that? Get a clue: we live in a litigatious world, the least you can do is tell people what they're buying into or you might find yourself checking out.

    1. Re:What is the License, Dumbass? by hoggoth · · Score: 1

      > doesn't mention what license it's published under, I'm going to kick your ass
      > the software doesn't even have a disclaimer of liability, maybe I should just sue your ass

      Jesus Christ, LIGHTEN UP!
      These are some people having fun learning to program games, mostly kids. They probably don't have a lot of LAWYERS working with them, and hopefully don't have alot of jerks who want to 'kick their ass' or 'sue their ass' because of it.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
    2. Re:What is the License, Dumbass? by Smidge204 · · Score: 1
      LEGAL NOTICE

      Copyright 1996-2001 Dantom International. All Rights Reserved.

      BYOND is free, and may be freely distributed, so long as it
      is distributed in its entirety and free of charge. No parts of
      BYOND may be distributed individually, nor may extraneous
      parts be distributed with the package, without written
      permission from the authors (*email of author was here*).

      In no event shall Dantom be liable for any damages whatsoever
      arising out of or related to the usage of the software or
      information contained within or pertaining to BYOND.
      IANAL, But I think that's clear enough to be legally binding.
      =Smidge=
  67. Depends on what the kid wants by ReyTFox · · Score: 2, Informative

    A lot of the people here are advocating the hardcore, learn-to-program approach.

    But not everyone that wants to make games wants to learn programming, and this was a source of some frustration in my own younger years, because although I had tools available, I saw what I was going on, and I had plenty of ideas, my drive to actually create code was almost zero. So I let things sit quite a long time, and was almost entirely dependent on finding tools that minimized the amount of structural work needed(graphics routines, objects, tile engines) and maximized the amount of control I had over the critical segments of gameplay, like collisions and shooting. The best free one around like that today is Mark Overmars' Game Maker. It allows you to do some very complex things with a C-subset scripting language, while at the same time providing a strong IDE and toolset. It's unfortunately tied to DirectX and Win32, though, and it's also not an opensourced project(for a $15 registration fee you get a couple more options), but the free version is by no means crippleware, and for what it does it's very good. Also the forums are quite funny because the majority of the posters are kids playing at game development, and not even really having the smarts to do well with such a great tool.

    Now I'm a freshman in college and plan to get at least a BA in CS, not because I like it, but because it's going to keep pushing me to advance my skills until I'm well capable of making games of all complexities. (I plan to go into shareware/independent gaming, so learning all skills equally well is a Good Idea. Also a good recipe for using up all my spare time.)

    I've moved on from Game Maker to Pygame since I started college; my current greatest accomplishment with it is doing a scrolling tile engine(with all sizes, screen border etc. adjustable); it took three times for my code to be really anything close to clean, and after the second time I decided OOP is not a magic bullet for anything. My next project is to add a modular framework that includes the tile engine; using this framework, users will be able to make maps that play differently, because each map will load some Python code and objects in addition to settings for the tiles. It's kind of confusing me, which the tile engine did too, the first time, but I think that if I keep at it I'll get somewhere, and from there it'll just snowball until all of the sudden the game I'm planning is done hehe ;)

  68. BASIC language != GOTO statements by tepples · · Score: 1

    If you're referring to "Go To Statement Considered Harmful" by E. Dijkstra, I find that paper's condemnation of the BASIC programming language a bit outdated. Modern BASIC doesn't use GOTO much anymore. Instead, it uses IF ... THEN ... ELSE ...END IF, DO WHILE ... LOOP, DO ... LOOP WHILE, FOR ... NEXT, SELECT CASE ... CASE ... END SELECT. These came ultimately from the same language where C and Pascal ripped off their control structures: ALGOL.

  69. dont need a language! by Anonymous Coward · · Score: 0

    Get something like Multimedia Fusion. Its easy to learn and has a lot of included graphics/sounds to use in games. There's also older "versions" of it out there, like Corel Click & Create, The Games Factory, and the original, Maxis's Klik & Play

  70. NetLogo by lcall · · Score: 1

    NetLogo (google for it, related to starlogo) is a nice logo implementation that comes with many fun simulations prebuilt--covering a really interesting variety of topics. With some adult guidance a kid could imagine and do a lot of things with it, then use their programming skills on a robot kit like the cricket or something.

    --
    A Free, fast personal organizer for touch typists: onemodel
  71. Concorrent Logo by fnc · · Score: 1

    StarLogo is a programmable modeling environment for exploring the workings of decentralized systems -- systems that are organized without an organizer, coordinated without a coordinator. With StarLogo, you can model (and gain insights into) many real-life phenomena, such as bird flocks, traffic jams, ant colonies, and market economies. -- from the website. http://education.mit.edu/starlogo/ Another similar is NetLogo http://ccl.sesp.northwestern.edu/netlogo/download. shtml Both are written in Java and run in Linux.

  72. Perl by ikekrull · · Score: 1

    This might sound like an oddball choice of language for game programming, but since Perl has bindings for GTK, SDL and probably anything else you might want to use to construct a game, it has all the basics in place.

    Documentation for the language is widepspread, copious and mature, and perl also makes a great general purpose language.

    Also, Perl's syntax and language constructs tend to favour people who are exploring and playing, rather than implementing a rigid design they already have all mapped out in their head.

    This sort of goes against what is considered good programming practice - you should be clear about what you want to implement before you implement it - but kids arent interested in what is good programming practice - it is far better to learn this yourself the hard way than to have a set of rigid doctrines bashed into you from the start, in my view.

    Perl comfortably supports pretty much any approach you take to getting the job done, and thats just one reason why I love Perl and prefer it over more structured (but equally useful) languages like Python.

    --
    I gots ta ding a ding dang my dang a long ling long
  73. take a look at Andre Lamothe's books by 1iar_parad0x · · Score: 1

    Take a look at Andre Lamothe's books. I know lots of programmers flame his books. However, I think his books are great for hobbiests. I think they're great for kids. I think this kid would love the Xgamestation. From what I have seen, Mr. LaMothe seems to geniunely want to help his readers.

    I started to studying programing (C and a little ASM during the summer of my high school graduation) by reading his old Tips and Tricks of the Game Programming Gurus.

    You might want to take a look at the Bebop to the Boolean Boogie as well.

    --
    What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
  74. Jiggle by BigZaphod · · Score: 1

    I know this discussion topic is pretty much dead by now... But I'm working on a project I call Jiggle which (currently) merges JavaScript with OpenGL. Eventually I want to turn it into a powerful game/toy development enviroment for beginner-types.