I can't talk about what platform or SDKs are relevant. But I can talk about my experience as a kid approximately the same age wanting to write my own game. The tech was very different (2D, 8-bit, ZX Basic on a regular TV screen) but I somehow figured out a way to move one slow step at a time, and yet getting super excited every time each of those steps got me a tiny bit closer to the goal.<p>In my case, I wanted to write a Pacman clone. What is Pacman? An object moving around a screen, confined by the walls of a maze. Then there's some stuff about dots and ghosts and power pills, cherrys and levels, but let's take it easy - one step at a time.<p>What was the simplest possible thing I could do before I could make an animated figure move around a maze chasing ghosts? Just make him move around the maze? Too complicated. Just make him move around the screen on command? Possibly. How about if I start with a one line program that simply positions a character on the screen in the position I want. Great. I can look up that command in the API docs (i.e. the printed book that came with the computer) and run that one line program. Now, can I make him move? How do I write a simple loop that listens for keypresses, changes the desired position, then redisplays the character. Great, that works. Except I forgot to erase the old position so he leaves a trail behind. Excellent, my first lesson in debugging. And so on and so on.<p>Obviously depending on the platform the specific 'first things' you can learn/teach him to do, each one getting a tiny bit closer to the game in his head, will be different. But the trick I used to motivate myself back then was - imagine the whole impossible finished game as something that was composed of tiny little steps, each more complex than the last. I didn't know the words 'iteration' or 'user story' then but if I did I could have broken it down into tiny agile chunks. As a player, I want my avatar to appear on the screen at a known position, so I know where I am in the game.<p>As a player, I want my avatar to move in the right direction when I hold down an arrow key, so I can control my movements.
As a player, I want to see the walls of the maze on the screen, so that I can see the challenge.
As a player, I want the walls to stop my character from moving, so that it is more interesting to move around.
As a player I want my character to look like a Pacman instead of the letter C, so that it is cooler to play.
As a player, I want my character to animate while he is moving, so that it looks even cooler than before. etc etc<p>The great thing is, these are not necessarily sequential. If I got stuck on one of them, or bored trying to detect a maze wall and stop moving, I could move on to a little animation challenge, or try to add some music, or figure out what it takes to eat pills and keep score.<p>Of course, I wasn't doing this all on my own. My dad was there too, some of the time, and although he didn't have any programming experience (it was 1982 in the north of England, nobody did) he must have helped me with some of this breaking-it-down-and-figuring-out-the-little-problems part. Most of all it was lots of fun, and we somehow ended up with a decent working version in the end. I think they key takeout is: motivate and encourage him to find tiny challenges he can iterate on, while always retaining their connection to the bigger picture of the thing he wants to achieve. Good luck!