I've always thought that number-guessing games were a first choice for introductory coding primarily because they're well suited to the standard library of most programming languages. Once you have standard I/O, you can write a number-guessing game.
Scratch has different constraints than most languages, but I don't view that as a bad thing. Scratch takes what is normally a huge undertaking--sprites--and makes them as much a first-class primitive as stdin/stdout are in most languages. Yeah, this makes the number-guessing and text-adventure games we usually use as teaching projects harder, but it makes it a lot quicker to build visual games. I don't think Scratch needs to change, I think we need to recognize that kids in this generation won't be building the same starter projects that we did growing up.
Back on my good ol C64 Basic I started with art. With the poke function you could put characters on the screen, change colors, etc. Put that in a goto loop and you've got a cool modern art machine.
The sound generator was quite rad too. 3-voice chords. Sines, triangle, etc waveforms.
Scratch has different constraints than most languages, but I don't view that as a bad thing. Scratch takes what is normally a huge undertaking--sprites--and makes them as much a first-class primitive as stdin/stdout are in most languages. Yeah, this makes the number-guessing and text-adventure games we usually use as teaching projects harder, but it makes it a lot quicker to build visual games. I don't think Scratch needs to change, I think we need to recognize that kids in this generation won't be building the same starter projects that we did growing up.