I'm helping a 10-year-old learn to program simple games in Scratch. He's expressed interest in making a simple 3D game. Is there any Scratch-like environment or programming language for creating simple 3D games?
I want to avoid typing code.
I'm helping a 10-year-old learn to program simple games in Scratch. He's expressed interest in making a simple 3D game. Is there any Scratch-like environment or programming language for creating simple 3D games?
I want to avoid typing code.
I'm not sure it's at the right level for a 10-year-old, as it's aimed for professional developers, but you can write game logic in Unreal Engine without any code, using its Blueprints visual scripting tool. Here's the official quick start guide - https://docs.unrealengine.com/5.0/en-US/quick-start-guide-for-blueprints-visual-scripting-in-unreal-engine/
I want to avoid typing code.
Unfortunately don't have an exact solution for what you're looking for as this does involve typing code, but I thought perhaps you could find this answer insightful and at least a more approachable solution than some others.
I took a single game development class in school and we used processingJS(now p5js) as a low-level engine for drawing content in a browser to build simple web-based games including some in 3D. At the time, Khan Academy had some great interactive courses that used processingJS from drawing shapes, to making those shapes move, to building rudimentary games and all of the setup was done for you inside of KA. Looking now I can find this which is different than what I used in the past as times have changed and I think this uses HTML5 canvas in place of processing, but it still seems like a pretty good intro into game development.
p5js in particular was originally developed "for creative coding, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else" (link) so it could be a good place to start dipping into programming for non-programmers. It's also web-based so setup/installation isn't too terrible since you're building for any browser and it means any games you make can easily publish to the web and be playable from anywhere. There are also a ton of resources online - here are some examples to give you a feel:
Going this route also has the added benefit of extending deeper with more full-featured game engines like Phaser which is also in JavaScript.
Have they done 2D games yet? If so then a next step may be parallax scroll, or other pseudo 3D effects. I imagine that the math of full 3D will be very hard (Vectors, trigonometry, …).
This isn't 3d, but a good next step for visual programming after scratch is Snap!. This is a more complex spin-off of Scratch, which adds more programming concepts to the same familiar style of visual language (such as local variables, functions, arguments, and return values)
An alternative to this is to teach a text-based programming language with a simple 2d game canvas, such as Python and PyGame. This is another way to introduce more programming concepts, and this is more like the programming most programmers do.
For 3d visual programming, there is Unreal Engine blueprints. Everything about 3d is more complex, and the unreal-engine visual scripting is going to have many many concepts foreign to a scratch programmer, but if the student is resourceful they can learn quite a bit from youtube tutorials.