The primary game I've created during this study: https://scratch.mit.edu/projects/575241838/fullscreen/ Here you can design a level and let a friend pass it - destroy all the bricks.
In Scrath you hit language limitations all the time. The Scratch designers say it is so to be friendly to beginners, however the need to invent crazy tricks to achieve simple things is not actually friendly.
IMHO, it is better and simpler to teach children using more normal languages, consisting of a small set of well composable elements.
The Snap! is an extended reimplementation of Scratch, but prvides power approximately equal to Scheme: https://snap.berkeley.edu/ However, I haven't used it much since I need development support on tablet, which is not complete in Snap.
I also tried Lego Boost and Lego Technics - the coding experience is basically the same as in Scratch, but for teaching programming Scratch is better I think, because you can create interesting things without the need to connect to devices. And not much you can build from lego motors and sensors.
And the last I explored was the Castle mobile app. A couple of games I created:
https://castle.xyz/d/l-_oFKrf5?cxshid=yjIUmDcFo https://s.castle.xyz/qZbz0u2nK10
The coding experience is worse then Scratch in my opinion (especially on Android were the Castle app has a redraw bug, so that the menus you invoke are not visible until you manually initiate a redraw by switching to Android app list and back to the Castle app). But the advantage is 2d physics support - they wrap the Box2D engine.
Also, I think the Elevator Saga is a good idea for learning. And it's just javascript. https://play.elevatorsaga.com/