My 11 year old kid brother wants to learn to program games. He has never programmed but would like to learn programming. His interest lies with games and game programming and he understands that it can be difficult but he wants to do that. So, obviously, I turned to SO folks to know what you feel on how he should go about it. Remember, please suggest on
- Areas that beginners can choose,
- how to begin in that area,
- what to read in the beginning,
- initial languages in the beginning etc.
Once the beginning part is taken care of, you may also suggest the intermediate and advanced stuff but this question is about very beginning level. If there are areas like Web games Vs. console games Vs generic computer games, then please advice on the areas. As I said he has never programmed, he might want to try all the areas and choose the one he likes the best. I hope this is not too much to ask for someone who is in this field but if this question is huge, please advice on how to break it into multiple questions. ~Thanks.
preguntado el 08 de enero de 11 a las 19:01
I started my programming career writing games when I was 15 and it was a lot of fun (even though I wrestled with C++ for 3 years just because "that's what's used for writing games"). My two cents:
- Comience con un programming language that is easy to use (NO C or C++)
- Get a beginners book for that programming language (not directed at games)
- Find a community for inspiration and help when stuck. I used gamedev.net. Since we're on stackoverflow, gamedev.stackexchange.com should also be a natural choice :)
- Start small. Very small. I mean really tiny. Then take small steps to new challenges. Please don't write an MMORPG.
- The game design and graphics are fun, but focus on the programming (for now at least). When you've written a simple game, learn how to do the same thing better.
- Set a goal. Imagine the game that you'd want to make. Don't try to make that one immediately, but make sure that each new thing you learn or make takes you one step closer. Don't learn what you don't need so to speak (there's simply too much too learn).
I wish you and your brother the best of luck, I never regret going down the path he's about to take!
For a beginning game developing enthousiast I think you can't go wrong with the combination Python + Pygame. Python is a great, elegant (and easy to learn) all-round language and lots of great tutorials are available for Pygame which explain the basics of (mostly) 2D game programming.
There's this post on Gamedev stackexchange where the poster is in literally the same position.
Quoting my answer from there:
I'm also 15, so I guess that could help? :P
I've recently started learning Python (been doing C++ for a year or so), and I'm finding it much easier to learn than C++. There's a lot less pitfalls, and you need little code to get something on the screen - what I find makes you want to continue.
And there's wrappers like Pygame and Pyglet over SDL/OpenGL for the graphics side.
And before he starts making simple games, I would advise learning a language for at least a couple of months. (Of course, text based games like guess the number and hangman are good exercises during this time)
And for what to read; I can advise Invent With Python. It goes from learning the language in a very gamedev way - which is a good step to making sure he stays interested; I doubt many kids his age are going to want to learn all about variables and loops, moreso being able to make a game - all the way to seamlessly introducting PyGame and graphics.
It could take some time until he can program a proper game...
But as I see it, he should start with Java as it is easy to learn and good for basic games.
Starting out he wouldn't be able to do much more than a guessing game, but he shouldn't get frustrated, this will take time.
I think you should buy him a book on java, and start from the basics.
You would get many different answers on this one as it is mostly personal opinion...
Teach him the basics of programming: variables, declarations, properties, methods, arguments, classes, arrays, loops. I suggest C# as a starting language, it seems simpler than C or C++ to start with, in my opinion. Once he understands those concepts it shouldn't be extremely hard for him to jump in and follow some XNA tutorials on a simple game like pong or something.
How about instead of forcing him to learn a language first, get him involved in using a framework where he can readily see results to maintain an interest. Something along the lines of RPGMaker could be sufficient.
My reasoning for this would be that, yes, you want him to learn the basics of making games and introduce programming as well, but you don't want to burn him out on the formalities of a language.
If he is 14, then he is of high school age (assuming US based...), and there is a good chance that there are programming courses available to him there. Let him whet his teeth on those to grind out the difficulties of introducing programming, and then once he is interested in expanding beyond the bounds of the toolset introduce him to the answers posted by the other users.
My two cents...I've seen kids give up on programming before because they jumped right into game making and quickly got frustrated...
In the beginning, make sure you keep it fun. Try mocking old games like 1-stage of contra or air hockey. And use a programming language with easy implementation of timer. Because timers, I think are the easiest way to show some visible effects. I would recommend visual basic or objective-c (I know many people won't agree, BUT it is that damn easy with the power of Xcode). Thumbs up ! Have fun.
I agree with ChristopheD about Python and Pygame. When it comes to languages Python is great for beginners because it is very high level therefore so easier to understand and the syntax is clean and simple. And Pygame is a great library for learning game programming.
Eventually he'll want to move into C++, which as I understand is the go to language for game development. But Python and Pygame would be a better start, especially for an 11 year old.
A good series of easy to read online books are the following three:
http://greenteapress.com/thinkpython/thinkpython.html to learn Python http://inventwithpython.com/ this site has two books, what to make games in plain Python and the other to make games using the Pygame library for Python. Once he gets through these three books he should be able to start making his own games in Python using Pygame and then eventually move on to more serious game development langauges/tools.
Write some simple scenarios for a game such as Wesnoth is maybe a good start.
Learning basis of programming is also important. A langage such as python is probably a good start. The language is clear and easy to learn and teach. And it is very extentable.
It may be useful to start learning game development.
Captura de pantalla
Que se diviertan.
IMHO he should start learning C. then switch to OpenGL later once he has the grip of basic C constructs.