My 10-year-old son has been into making simple games (driving game, rock paper scissors game, etc.) and especially science simulations (schooling fish, seesaw simulator, orbiting simulator, etc.) on Scratch. He loves it, but he's starting to feel limited by the capabilities of Scratch, for example having to repeat himself in programming multiple related sprites instead of programmatically controlling all of them. Relatedly, he's also interested in doing more scripting as opposed to drag-and-drop programming with blocks.

I'm looking for a good platform for him to use. There are so many out there! We tried Roblox before, but even I (a data scientist who programs in python) found the language unnecessary complex and opaque.

Godot seems great because it sounds like the documentation is great, the community is great (he likes the community aspect of Scratch), and there is a good layer of abstraction for things like 3D perspective. Hopefully there is enough flexibility to let him program a variety of creative simulations, games, and animations and get his hands dirty writing code.

What do you all think of Godot for someone like my son as a next step from Scratch?

Would you recommend me checking out any other platforms? Currently my short list is Pico-8, Pyxel, Pygame, Unity, GameMaker, and Codea. It would be great to narrow this list down and/or add any others that might be best.

Thanks for reading my long post!

Yeah, Godot would be a good choice. It's for sure a lot harder than Scratch, but I would say easier than any other option right now. GameMaker is okay, that would be another option you can look into, but I find their interface to be overly confusing. They do have a visual scripting language (Godot does not anymore) and their text-based script is also fairly easy. But you might also find that a little limited compared to Godot, which is a general purpose engine (you can basically do whatever you want). Godot uses GDScript, which is based on Python. You might have your son do some Python tutorials so he understands text programming first, it is basically the same as GDScript in terms of the basics. I would avoid Unity, it's far too advanced for a kid. I'm not familiar with the others. Just to give you a perspective, I'm 41 now, but I started coding at 13 years old using BASIC and C++ and taught myself. It was very confusing back then, cause there weren't many books or really any online tutorials. But I probably could have figured it out at 10 if my family had a computer. This is a good place to get started.

I think Godot is very appropriate for learning. You can suggest that your son familiarize himself with the first lessons. I wonder if it will be difficult for him.

This is also one of the best sites to learn programming, as it is interactive on the website. I will let you know some of it is sort of advanced.

But it might be a good place to start. Only look at the 'Learn the Basics' the rest of it is way too advanced.

https://www.learnpython.org/

    cybereality can second this. Python is the closest to Godot in syntax and reading a book on Python programming helped me understand Godot even better.

    It's definitely a good next step for a child, yes. I'm a little older than 10 and took Javascript in high school (was good at it but never really liked it), and Godot makes me very happy with its simplicity and ease of use. There is no hand-holding in the sense of having a visual/drag-and-drop/etc. to fall back on, but he's not going to be left adrift or drowning like he might be on Unity or Unreal. A few youtube tutorials, a few questions on the forum here, and he'll be crackin' in no time. And don't be afraid to browse through the assets to find plugins to either use in his projects or just generally dissect to see how they work.

    Thanks, everyone, for your replies so far! Very helpful!