Ask HN: My son (9yo) wants to learn to develop games

7 points by cx42net ↗ HN
Hi!

My 9 yo son wants to learn to develop games, and, as I developer myself, I'm more than happy to help him on this road.

I could start with the programming basics, the rendering loop and iterate from this, but it is quite complicated and will take quite some time before having some significant results.

Another approach would be to start by having to resolve gaming puzzle that requires development, starting with very easy levels and increasing in complexity. At some point (and if he follows through), he will have enough knowledge to be able to handle the complexity and the underlying of what a games is made of.

Another issue I'm facing is that we are French. It's a requirement for us to use resources in French for now as he improves his English along the way.

Here's what I thought I could do:

1. I thought about doing the learning myself, implement a course he could follow with increasing complexity. But I know myself. I'm not great on sharing knowledge, and I would dive too deep in complexity. Moreover, it would take time before having visual results (which is what he is looking for, of course), and might probably loose interest before having valuable results. 2. I thought about subscribing to online courses (Udemy, Coursera, etc) about game development. Problem is most of the courses are about Unity and C#. We are not there yet. (and not too many in French). 3. My best scenario for now is to create an account at either [CodingGame](https://www.codingame.com/) or [CodeCombat](https://codecombat.com). They apparently have a French version and hopefully the beginning would be not that hard. And since it's coding, I could help him. 4. Turn to HN and ask for better suggestions on how to do this :)

Thank you for your help!

31 comments

[ 3.5 ms ] story [ 75.0 ms ] thread
You could use Scratch https://scratch.mit.edu/

There is a localization in French, with every blocks being translated "If" become "Si", "When" becomes "Quand" and so on.

It provides a playground when you can move a sprite, play some sound, basic animation and management of inputs. It manages the event loop, rendering loop, etc. It is doable to some very basic games with a sprite moving/chasing others.

I think it is at the right level because it is very visual and you get the feedback immediately. This is actually used in some collège course as an introduction to programming.

I second the scratch suggestion. Many Educators in USA use this with good results.
Thank you for suggesting it. I don't know if that's something he's looking into, or if he wants to do more things related to code (I'm currently trying to have a clear understanding of what he's expecting).
He doesn't care about developing games, he just wants to spend more time with you. Developing games is just the angle he found because you are a developer.

Source: I have been in that exact same spot (same nationality, even). We toyed with Scratch and similar apps for a while, but we eventually switched to just doing more things together and less computer stuff.

My fingers were ready to type out the same idea. Now I don't have to. Thanks.
I'm half agreeing with you. Clearly, he wants to spend some time with me, that's for sure, but he's also passionate about video games (who isn't?) and he truly want to learn.

On my end, I see this as a win-win; I get time to spend with my kids, share my passion and allow him to learn things he likes. If it leads to him not wanting to do this, we can find something else to share.

Well, I hope for both of you that you are right and that he _really_ wants to learn, because it will be a drag if he actually doesn't.
I'd highly recommend checking out Elm playgrounds:

In ~70 lines, you have a Mario-like platformer with live code in the browser! https://elm-lang.org/examples/mario

You could use the turtle example as the basis for a racing game: https://elm-lang.org/examples/turtle

And there's even a WebGL implementation for 3D graphics! https://elm-lang.org/examples/first-person

> Another issue I'm facing is that we are French. It's a requirement for us to use resources in French for now as he improves his English along the way.

The Elm Europe community seems to be pretty large. I'd try reaching out to them and see if anybody has French resources.

Nice, thank you for this.

I'm having one issue here is that ELM is not a language I know, so I'll have to learn it along with him in case he get stuck :D

The Elm guide is excellent: https://guide.elm-lang.org

You (or your son) can also email me at hello@taylor.town if you need help getting started :) I'll be happy to answer any questions you have

Thank you for your kind help, I appreciate it!
"I'm not great on sharing knowledge, and I would dive too deep in complexity."

If you learn to explain tech to a child, you should be able to effectively communicate with most stakeholders. It might be an opportunity for you to upskill together.

I agree, but I think it will be difficult to quickly have something that will bring value (and interest) to him if I dive too deep in the technical part too soon.

(But I'd be almost ready to start some kind of course based on his need and improve it for others :p )

Thank you for suggesting it. It seems interesting but it is in English and he won't be able to understand anything unfortunately :/
You seem quite averse to exposing him to English. Why is that? There is a strong argument that learning English will probably stand him in better stead than learning to program games. Also, if he _does_ want to program, English is pretty much essential, so why not just bite the bullet on the English front, and get him learning that too, as part of learning to make games.

2 birds with 1 stone?

Furthermore, if he is interested in the _intent_ of what he's doing (making games), the language (both coding, and spoken) should just come as a beneficial byproduct. So I _really_ think you need to forget about the "It must be in French" requirement.

He'll have to learn terminology anyway (loops, buffers, variables) etc. So, instead of calling your buffer variable `tampon`, call it `buffer`.

Yeah, that makes sense. My first assumption was that there would be explanations along how to integrate the notions, like what is a variable, etc. These are the parts I didn't wanted to have in English.

But I've started to work with him, and we went beyond what the early tutorials were asking to make him learn things while being in a given topic. I provided the requirements and explanation so they were in French.

I don't mind the code being in English though, my focus was on having the explanations in French ;)

Be careful of your own enthusiasm. His interest may wane and you may need to let go. Just keep that in mind before you make too many plans.
That's true. I showed him the Doodle about Jerry Lawson (https://www.google.com/doodles/gerald-jerry-lawsons-82nd-bir...) and he loved it, spent quite some time creating some levels.

At Christmas, he got Mario Maker 2, and he's completely crazy over it.

I think it's something I can help him make progress and take his enthusiasm as a fuel for his knowledge. Maybe he'll stay on and learn a ton, or at least learn the basics, whatever he wants, I'll be fine with it :)

Check out https://microstudio.dev/fr/

>microStudio is a free game engine online.

>Create games, learn programming, play, share, prototype and jam!

That's really interesting! I like this, thanks for sharing the link!
Make cool stuff with ue5 and the blueprint system for the logic.
UE5 would be awesome but it's too complicated for someone that never did any coding at all.

But if all goes well, that might be something we'll learn!

I'd take a different approach. Get him into scripting in Roblox. Both of my kids learned lua mostly on their own just because they wanted to make their own gameplay. Both went on to computer science and are doing 'real' software development now. But they learned programming concepts without going to deep in the weeds of low level stuff. The hard part of game development is making fun gameplay, so rather than focus on rendering, etc., help him make gameplay.
I saw about Roblox, yeah! As a matter of fact the kids already played with it (but as a gamer, not a developer). It might be interesting to dive into this indeed! I'll take a closer look, thanks!