Your son sounds like me from a decade ago, if I'd had realistic ambitions and more talent. In addition to the resources posted so far, allow me to recommend Processing. A few reasons why I'm...
Your son sounds like me from a decade ago, if I'd had realistic ambitions and more talent.
In addition to the resources posted so far, allow me to recommend Processing. A few reasons why I'm suggesting it:
You get results fast. In most languages, it can take a considerable amount of head-banging to get anything to display on your computer screen. In Processing I can do it in one line. The reason why this is so important, especially for beginners, is that it actually feels like you're making progress when you're writing code. It's a lot easier to get frustrated when you've been working for five hours and have nothing to show for it except a lack of error messages.
It's easy to learn. The language was designed to teach people how to code.
It feels 'real'. There's nothing wrong with drag-and-drop programming languages, but that level of abstraction can make a beginner feel like they're just getting the 'kiddie' version of a programming language. That logic seems silly to me now, but twelve year-old me always wanted to be using the big boy programming languages.
It's powerful. Processing (the desktop version) is literally just Java with some extra padding to make graphics easier, and can do all the fancy OOP stuff that Java can do.
Is it good for making games?
Sure! Simple ones, at least. Pygame is good, too. Pygame might be better for your son, I haven't had much experience with it. Buildbox, Scratch, Flowlab, and GameMaker, are also good, to name a few.
The real reason I'm recommending Processing is because it made me love programming. Whenever I learned something new, it would look like something new, and I could show that new thing to my parents and my friends.
If your son ever gets to the point where he wants to make bigger games, look into Unity, Godot, or Unreal. Tell him to learn C++, familiarize himself with Blender, and sign him up for some real CS classes.
There's lots of ways to go about this -- everyone has their own interests and learning styles. Best to just surround him with resources and let him do his thing.
Al Sweigart has multiple free programming books available, several which are specifically intended for kids and based around programming simple games, and they're all quite highly regarded. The...
Al Sweigart has multiple free programming books available, several which are specifically intended for kids and based around programming simple games, and they're all quite highly regarded.
The most relevant ones would be Invent Your Own Computer Games with Python, Scratch Programming Playground, and Making Games with Python & Pygame. They're all available on his site here: https://inventwithpython.com/#invent
If he wants to make games, set him up with Game Maker or Unity or the open-source Godot. The through-line from one of these stock game engines to an actual game is a lot clearer, and while you can...
If he wants to make games, set him up with Game Maker or Unity or the open-source Godot. The through-line from one of these stock game engines to an actual game is a lot clearer, and while you can avoid writing any real code, you can't avoid getting an understanding of how the computer is thinking and the logic you want your game to embody.
You could also see if he wants to get into game modding. A super easy way to "make a game" is to do a total conversion mod of another game. He might learn more useful stuff digging around in the configuration files and item definitions of an existing game, seeing how it's put together and how its designers think, than he would learn writing the best stand-alone game that he could write by himself this month in BASIC.
Are you a programmer by any chance? If that is the case, I don't think you'll encounter many issues. But Godot is also promoted as a friendly tool for total beginners, and I don't think it...
Are you a programmer by any chance? If that is the case, I don't think you'll encounter many issues.
But Godot is also promoted as a friendly tool for total beginners, and I don't think it succeeds at that.
The documentation for the scripting language fails to provide explanations for basic programming concepts, most glaringly object-oriented programming.
There are not many free assets to use, and, because of the fast pace of development, online tutorials become outdated really fast. And there are not many reliable tutorials out there.
It is also quite buggy, crashes a lot. For many things, one must have the ability to "look under the hood" -- which basically means C++.
I just noticed that GamesIndustry.biz published this article yesterday, which seems to have a lot of good info and you and @mrbig might be interested in: What is the best game engine: is Godot...
Anyway, look at this https://imgur.com/a/5g3hP9r (from https://docs.godotengine.org/en/3.2/getting_started/step_by_step/your_first_game.html) and this...
That is okay. If you look above you'll see that I never specified that it was promoted by the developers, I merely pointed out it was promoted -- period. Then I added that there was a lack of...
That is okay. If you look above you'll see that I never specified that it was promoted by the developers, I merely pointed out it was promoted -- period. Then I added that there was a lack of learning materials supporting that conclusion, both in the documentation and elsewhere.
Your counter-argument assumed that I was directing my observation towards the developers as if they had an obligation to fulfill this the demand in the docs, and I tried to address your concerns in lieu of that interpretation. But that was not what I was originally referring to.
Sorry, but I don't have a pressing demand to prove that point. Regardless of the causes, a lack of learning materials for beginners is reason enough for @suspended to consider other alternatives...
Sorry, but I don't have a pressing demand to prove that point.
Regardless of the causes, a lack of learning materials for beginners is reason enough for @suspended to consider other alternatives for his 12-year-old son.
Not confusing, but missing. It takes an actual beginner to notice it. Also notice that I did not refer only to the documentation, but also to a lack in complementary resources.
Not confusing, but missing. It takes an actual beginner to notice it.
Also notice that I did not refer only to the documentation, but also to a lack in complementary resources.
I recently got pointed to this Twitch stream where the guy is building a very basic Asteroids type game from scratch with this block-based programming language. It's pretty interesting. It...
I recently got pointed to this Twitch stream where the guy is building a very basic Asteroids type game from scratch with this block-based programming language. It's pretty interesting. It addresses things in a fairly remedial way, which your son might find boring depending on how advanced he is. Drawing the line from BASIC to this might take a little doing before he finds BASIC relevant, but it's worth a shot!
Racket is a fantastic general purpose programming language (best for someone to learn young, before their mind gets warped by imperative/procedural programming :-). I’ve heard fantastic things...
Racket is a fantastic general purpose programming language (best for someone to learn young, before their mind gets warped by imperative/procedural programming :-). I’ve heard fantastic things about this book, which is basically an introduction to Racket with making simple games: https://www.realmofracket.com/
I’ve also heard very good things about Scratch (Smalltalk, which is a world in itself) which was also made with the goal of introducing kids to computing, and making it very easy to control the behavior of ALL the objects in that system.
Your son sounds like me from a decade ago, if I'd had realistic ambitions and more talent.
In addition to the resources posted so far, allow me to recommend Processing. A few reasons why I'm suggesting it:
Is it good for making games?
Sure! Simple ones, at least. Pygame is good, too. Pygame might be better for your son, I haven't had much experience with it. Buildbox, Scratch, Flowlab, and GameMaker, are also good, to name a few.
The real reason I'm recommending Processing is because it made me love programming. Whenever I learned something new, it would look like something new, and I could show that new thing to my parents and my friends.
If your son ever gets to the point where he wants to make bigger games, look into Unity, Godot, or Unreal. Tell him to learn C++, familiarize himself with Blender, and sign him up for some real CS classes.
There's lots of ways to go about this -- everyone has their own interests and learning styles. Best to just surround him with resources and let him do his thing.
Best of luck to you two! :]
I cut my teeth on Labview, and could never get into other languages because of a lack of visual component, but this might be something to look into.
Yeah, Alum Mentor since 2010.
Al Sweigart has multiple free programming books available, several which are specifically intended for kids and based around programming simple games, and they're all quite highly regarded.
The most relevant ones would be Invent Your Own Computer Games with Python, Scratch Programming Playground, and Making Games with Python & Pygame. They're all available on his site here: https://inventwithpython.com/#invent
If he wants to make games, set him up with Game Maker or Unity or the open-source Godot. The through-line from one of these stock game engines to an actual game is a lot clearer, and while you can avoid writing any real code, you can't avoid getting an understanding of how the computer is thinking and the logic you want your game to embody.
You could also see if he wants to get into game modding. A super easy way to "make a game" is to do a total conversion mod of another game. He might learn more useful stuff digging around in the configuration files and item definitions of an existing game, seeing how it's put together and how its designers think, than he would learn writing the best stand-alone game that he could write by himself this month in BASIC.
I love Godot but right now the documentation and learning resources are insufficient even for many adults.
Are you a programmer by any chance? If that is the case, I don't think you'll encounter many issues.
But Godot is also promoted as a friendly tool for total beginners, and I don't think it succeeds at that.
The documentation for the scripting language fails to provide explanations for basic programming concepts, most glaringly object-oriented programming.
There are not many free assets to use, and, because of the fast pace of development, online tutorials become outdated really fast. And there are not many reliable tutorials out there.
It is also quite buggy, crashes a lot. For many things, one must have the ability to "look under the hood" -- which basically means C++.
I just noticed that GamesIndustry.biz published this article yesterday, which seems to have a lot of good info and you and @mrbig might be interested in: What is the best game engine: is Godot right for you?
It really is promoted as beginner oriented both by developers and the community.
Anyway, look at this https://imgur.com/a/5g3hP9r (from https://docs.godotengine.org/en/3.2/getting_started/step_by_step/your_first_game.html) and this https://old.reddit.com/r/godot/comments/db6fmk/is_godot_engine_good_for_beginner/.
That is okay. If you look above you'll see that I never specified that it was promoted by the developers, I merely pointed out it was promoted -- period. Then I added that there was a lack of learning materials supporting that conclusion, both in the documentation and elsewhere.
Your counter-argument assumed that I was directing my observation towards the developers as if they had an obligation to fulfill this the demand in the docs, and I tried to address your concerns in lieu of that interpretation. But that was not what I was originally referring to.
I made a mistake. Sorry about that.
I cannot expect you to read my mind, and I clearly failed to communicate correctly.
Sorry, but I don't have a pressing demand to prove that point.
Regardless of the causes, a lack of learning materials for beginners is reason enough for @suspended to consider other alternatives for his 12-year-old son.
And I understand documentation is generally not meant for total beginners, but in this particular project it actually tries and should.
Not confusing, but missing. It takes an actual beginner to notice it.
Also notice that I did not refer only to the documentation, but also to a lack in complementary resources.
I recently got pointed to this Twitch stream where the guy is building a very basic Asteroids type game from scratch with this block-based programming language. It's pretty interesting. It addresses things in a fairly remedial way, which your son might find boring depending on how advanced he is. Drawing the line from BASIC to this might take a little doing before he finds BASIC relevant, but it's worth a shot!
LOL yes I did. Edited it back in.
Racket is a fantastic general purpose programming language (best for someone to learn young, before their mind gets warped by imperative/procedural programming :-). I’ve heard fantastic things about this book, which is basically an introduction to Racket with making simple games: https://www.realmofracket.com/
I’ve also heard very good things about Scratch (Smalltalk, which is a world in itself) which was also made with the goal of introducing kids to computing, and making it very easy to control the behavior of ALL the objects in that system.