I have a 10-year old who wants to program games

Any suggestions on books, tutorials, etc? Anything else that would be helpful?

He has no experience programming at all, but I believe in taking advantage of his interests to get him to happily learn new things. (He has Asperger’s Syndrome and is scarily bright, but not able to plan a learning program on his own. Nor can I really help, since I know nothing about the subject.)

Advice would be welcome, too.

Thanks!

I recommend a TI-83+ calculator.

The instruction book is quite thorough about the BASIC commands, and there is always more information online about same. Once he has progressed through making simple BASIC text and graphical games, he can move on to simple assembly games as well (note: this requires a computer). There are some quite sophisticated games that can run on this simple little device, and there is quite a bit of information online about how to program it.

Plus, in a few years it will start to become useful for algebra higher maths. You can find it at your local Wal-Mart or office supply store (or online) for around $80.

DarkBasic and DarkBasicPro are viable development environments. There is a book on it available from Amazon (Here) (I have not read it, so I can’t say if it is good or bad) and there some great graphics available for purchase to aid in development.

My suggestion:

Get him a copy of Neverwinter Nights. You should be able to find the Platinum version for about $25.

NWN is a role-playing game that comes with the easiest toolset that I’ve ever come across. The fun part for him is that it will allow him to create his own little adventures in the game, while at the same time introducing him to simple scripting and coding, as well as expose him to some core concepts of game development.

If he wants to delve deeper into 3D art and object oriented programming later, he’ll have a starting point to branch out from.

It really depends on what sort of gaming he has in mind.

Most simple web-based games are written either in Flash or as a Java applet. These are little programs that will pop up in their own windows and typically feature only simple game play, without any really spiffy graphics. Thing such as the games at Yahoo, or at thinks.com, or any easy math and logic-related games will typically be Java applets.

On the other hand, if he has his heart set on imitating the more advanced games for PCs or for the varous platforms, he’ll need more sophisticated development tools. Unfortunately I don’t know enough to recommend anything there.

I had hours of fun with RPG Maker. It’s widely available on the web, although I’m not sure about it’s copyright status. It’s a very simple but surprising powerful and versitile tool for making sprite based RPGs. The results are immediately rewarding even for someone with zero experience, and you’ll find yourself learning programming principles as you look to make your game more complex. It gives you a chance to make a self-contained and totally complete game from the get go, teaches you quite a bit about game design and programming, and allows you to get as deep in to things as you wish (for example, there are plenty of pre-made graphics, but you can also design your own.) It really seems perfect for this situation and I can’t reccommend it enough.

Spiderwebsoftware currently has a contest to design a scenario for their game Blades of Avernum. Your kid could download a demo of the game and the scenario developer (You’d need to buy the game to try out other scenarios, including whatever he makes) and they’ve got an online community to discuss problems, etc…

Does he want to make games, or to program? Programming is one part of making games, but not all of it by any means. Game pogramming itself has many fascinating divisions – graphics programming, for example, is quite different from the programming that makes a game engine work.

I’d encourage you to talk to him about what he wants to do to make games happen. What contribution does he have in mind? If he wants to “make games”, then, as already mentioned, a number of commercial games come with scripting/gamemaking tools, like Neverwinter Nights.

Taking a look at something like the Guildhall (http://guildhall.ecsrv.smu.edu/welcome.php) may be useful. It’s a college-level program, but gives you an idea of what’s involved in making games.

      • If he wants to easily and quickly make impressive-looking games himself, game modding is definitely the way to go. Many games now have modding tools available which is software included or available for download, and usually for free, that allow you to modify the game–you can make new characters, weapons and places to play, even new game types. What is easiest to do here depends greatly on what games he likes to play already.
  • If I dare say however (without malice intended) many Aspergers are “control freaks” who like to do everything themselves, and so he may want a simple language that he can write everything in. I list these on order of ease of use:
  1. MS QBasic is the classic “beginner’s” language. There are other various “Basic” languages out there but they are not all identical and the books you will find almost always refer to the Microsoft version, so the Microsoft version is easiest to use. You want version 4.5; there are later versions, 7.1 is the last common version but the install and setup is a bit mystifying. (email me if you can’t find this online)
  2. “Visual Basic” is not a game-language really, but many beginner programmers like it because it is so easy to create “real” Windows-style programs with it, with windows and buttons and all. (not free-usually :wink: ).
  3. For Java programming, the software is free: you download the SunJava JDK and can use it from a command-line window, or you can download various free graphical front-ends for it like JCreator or NetBeans, which look like “real” Windows programs. I know of one good beginner’s Java programming book: Java Programming the Easy Way by Douglas Downing. Amazon has it right now for $18.95. It is a true beginner’s book assuming you know nothing, and each chapter shows how to do one simple thing, such as how to read from and write to files. It also shows how to do “fun” things like draw pictures, play sounds and get keyboard/mouse input. It is the only book for starting Java programming that I recommend.
  4. To make games totally from scratch, you really want a C++ compiler and the DirectX SDK. The DirectX SDK you can get free from Microsoft, download or on a CD for a small fee (was $15). The C++ compiler can be any, and there are free ones for download (Bloodshed is one) but the MS C++ compiler is nice (also not free-usually).
    ~

He could take a look at the source code of some open source games, for instance stuff that was made with the simple directmedia layer library.

As for a first game, I’d suggest sticking to something simple - redoing one of the classics (pong, pacman, tetris, etc.).

Wow, this is the perfect question for me to answer. I taught programming at a computer camp for several summers, from the end of high school through college. Many of the kids I taught were the same age as your son. And moreover, unlike some computer camps which have have more of a classroom computer-science curriculum, the one I was at was based on self-motivation and kids choosing projects that appealed to them. So in other words, I spent a lot of time teaching kids how to make games.

I would highly reccomend the program Microworlds, which is a version of the programming language Logo. Unlike many of the other suggestions listed so far in this thread, Logo was a programming language specifically designed for teaching programming to kids. Also, it makes it really easy to do basic graphics, which are much harder to do in most other languages, and which are of course essential for most games. I’d say Microworlds is the best possible place for a kid your son’s age to start learning programming. (Although I’m a little biased, because not only did I teach it for several years, but that – actually the older version Logowriter – was how I first learned programming myself at the age of 11. But I guess that shows it works – from there I was able to move on to such languages as C++, Visual Basic, etc.) Microworlds is probably the sort of thing where you can sit down and learn it with your son fairly quickly-- not being a programmer yourself, that may not be true of many other languages. Also, programming can be an inherently frustrating experience at times (since fixing errors in a program often takes a lot longer than writing the program) and especially for a kid with Aspergers, I would think that you’d want to minimize the level of frustration – which is why I think that using a kid-oriented language like Microworlds would be the way to go.

I’d also recommend that you get in touch with my former boss, Karen Rosenbaum, who’s been running a computer camp since 1983 where many, many kids your sons age have learned to program. I’m sure she’ll have lots of good advice, plus she hires college students from all over the U.S. (and even a few from the UK, Ireland, and elsewhere), so she might even know someone in your area who might be willing to tutor your son. You can get her contact info off the website for her camp, www.ticcamp.com If you happen to live in the D.C. area, maybe your son would even want to attend the camp (although I should forwarn you that the fact that he has Aspergers might raise some complications. Most of the camp activities involve a lot of teamwork between the kids, which I would think might be more difficult for a kid with Aspergers. If they don’t think they can fully meet your child’s special needs, they might require you to provide an outside aide. I’m not sure what the camp’s current policy is on this, but Karen would certainly know.)

FOR THE RECORD: I am not, nor have I ever been an employee of LCSI (the company that makes Microworlds). I am not currently an employee of TIC Summer Camp, although I had a wonderful experience working there, as well as attending the camp as a camper when I was a kid.

That’s great! Kudos to him. Here are some simple game creation programs he might like. Back when I was his age I used ZZT and MegaZeux a lot, and highly recommend both of them. MegaZeux is a bit more advanced (muchly because it’s newer and just does more stuff because of it). There are user communities online for your son to join for these programs and exchange stories, chat and programming tips. Unfortunately, AFAIK most of those users are not in his age range; I was young (by a couple of years) when I was a member of the original ZZT/MZX communities and I’m 18 now. Many of the people who use those programs are from those original groups, and are in or past college by now. There may still be some younger folks around, though.

Since the programs on that page are all for DOS, they may not work too well on newer Windows versions. If you encounter problems running them, try running them in DOSBox, a multiplatform DOS emulator.

It’s been a while since I’ve messed with game creation programs, but I’ll be around if you have questions or concerns. Feel free to email or IM me.

I’ve got asperger’s, and I’ve been programming computers since I was 11. Now I’m going to school to learn how to program games and become a part of the actual game industry. :slight_smile:

Everything I was going to say has already been said by the other posters, so let me just say I recommend doing any of the other posters’ suggestions.

I started programming with QBasic. It’s a pretty good way to learn because it does a lot of stuff for you, especially relatively tricky stuff like graphics. Plus, beginners’ BASIC books are a dime a dozen. You can find tons of cool little QBasic programs on the internet that include source code, and looking at how other people programmed something is (IMHO) a good way to learn.

If I were you, I’d definitely get him a TI-83+. If your 10-year-old is anything like me, he’ll spend more time in boring lecture classes trying to debug his latest game than actually listening to the lecture. (Just watch out for those teachers who like to confiscate calculators when they think kids are playing games during class! ;)) He’ll probably need a graphing calculator sooner or later for a math class anyway. The programs that you can make with a graphing calculator aren’t nearly as complex as what you can make with even QBasic (and they run about 100x slower) but when I was in middle school I definitely had a lot of fun making little time-waster games like “mad libs” and “blackjack.” The downside to that is that, to the best of my knowledge, there really aren’t any good books on programming TI calculators. The only book I know of is the reference manual that comes with the calculator explaining all the commands, and although it was pretty helpful sometimes, it definitely wasn’t a beginners’ programming tutorial.

This is great information!
Thanks for all the replies, and if anyone else wants to reply, please do.

Another fun way of learning programming is through Lego Mindstorms. They use a simplified version of C called Interactive C, but at the beginning level, it is mostly about learning syntax and stuff like that.

Also, when he gets into middle school, make sure he knows about Botball. It’s a autonomous robotics competition using Lego Mindstorms, and the Handy Board. I help out a mentor a team, and it is definately something I wish I could have done at that age.

There is also the US FIRST competition, but as far as I know, it is high school only.

fetus, that’s freaky. I remember playing around with ZZT and MegaZeux on the ol’ Compy 386. I was amazed at what people could get the MZX engine to do.

Also, MegaZeux is apparently open source now, so there should be a version available to run natively under Windows rather than under Dosbox. I’m tempted to get the Linux sources right now and play some of the CANS games, but it’s getting late.

Ah, it brings back memories … .

I started playing Dungeons & Dragons back in 1976 when I was 12. A few years later I programmed my first videogame on my TRS-80. (It was a tank battle game.)

Now I design videogames for Sony.

He’s definitely taking the right first step.

My son has had hours of fun using this point and click environment Game Maker

Enjoy.,

Another possibility is RPG Maker. You can use it to make RPGs that look about like a SNES-era RPG (think Chrono Trigger or Final Fantasy III/VI.) I’m not sure there’s any real programming in this one, but the question is does he want to program or does he want to create, if that makes any sense. You know, is he seeing programming games like an artform, wanting to create the whole project, or does he want to learn how to program?

I should have made that clearer, asterion. He wants to create the whole thing.