Ask HN: Platform for 11 year old to create video games?

268 points by IgorPartola ↗ HN
My 11 year old has a lot of interest in creating games. They are a very creative kid currently experimenting with using Power Point/Google Presentations to create a crafting and turn based combat style game but is running into the obvious limitations of this setup. They have some very rudimentary understanding of coding (together we recently created a command line version of Rock Paper Scissors Lizard Spock from scratch in Python and they were able to follow along the whole way), but I don’t think their best bet is to start with a code first platform just yet. Maybe something with scripting capabilities when they need them but mostly with the ability to create a point and click interface with something specific happening on each click.

Does anyone know what’s out there that would work for them in this case? FWIW I don’t know Lua but anything with JavaScript or Python built in would make it easy for me to help them. Thanks in advance!

263 comments

[ 2.9 ms ] story [ 295 ms ] thread
You could look at Adventure Game Studio: https://www.adventuregamestudio.co.uk/. It does require some scripting, but you can get away with very basic stuff. Here's an overview of the scripting language: https://www.adventuregamestudio.co.uk/site/ags/tutorial/scri....

Another option I have not tried myself is GDevelop: https://gdevelop.io/. It looks like you can get pretty far without any code at all, although you do that with an "events" editor that is basically a simple visual scripting language.

Roblox Studio is a very powerful system, my 8 year old has played around with it to make simple maps and obbys. People have coded Call of Duty style games on Roblox (such as Frontlines) so it's pretty surprising how far you can stretch the engine.
I remember a few post of games made by children in Scratch https://scratch.mit.edu/

For example:

* https://news.ycombinator.com/item?id=23892698

* https://news.ycombinator.com/item?id=26050913

(My daughter tried to use Scratch, but it's too difficult to cut&paste and move blocks of code, she preferred a text based programming language, so YMMV.)

My 11-year-old still enjoys scratch -- he watches YouTubers like Grifpatch to learn higher level concepts.

There's also PenguinMod which feels like Scratch with more assets.

I'm not a huge fan of scratch (for obvious reasons I'm not the target audience!), but my 10 year old can't get enough of it.

Recently we started digging into some of the more "advanced" concepts (basically arrays and functions) and I was surprised how far you could actually get with the system.

I'm trying to move him off scratch on to something text based, but imo for a kid it's hard to go wrong starting with Scratch.

The social angle of sharing ones games with friends and getting likes etc. and the ability to quickly play it off a link are huge factors that keep motivation high for kids.

This is underappreciated. I've been teaching my son JS but his main gripe is that he doesn't have an easy way to share his stuff in a quickly playable format.

Time to teach him nextjs and get him deploying to vercel!! (Or at least set up a template for him!)

Also, out of curiosity, have you been teaching him JS or TS? I feel like it is a sin to not use TS these days, but not sure if it makes it easier or harder for a new young programmer to learn.

val.town or something similar may be an option?
I'll check that out. I'm not really sure about a narrow js framework. They're so abstracted away from most of the skills that are transferable between languages and technologies that i don't think they're useful as teaching tools.
you can use my aesthetic.computer vscode extension for quick publishing of interactive pieces that work on phones and laptops just the same
I upgraded my son from Scratch to Snap! (https://snap.berkeley.edu/). Snap has a much higher ceiling, including collections, first-class code pieces, higher-order functions etc. It pretty openly describes itself as a "Scheme disguised as Scratch" :-)

A pragmatic pedagogical thing I love with Snap! is the ease of creating custom blocks, including macros / custom "C-shaped" control structures. If you have some time, this allows you to "scaffold" helpers that will allow him to create interesting stuff while focusing on things you want him to learn and hiding issues you don't.

* Example: I wanted to teach rendering a custom costume with e.g. health bar or text label. My son is already familiar with Snap!'s turtle-drawing primitives that can render lines & text but there was an impedance mismatch — you draw on the screen, and it does support snapshotting all current drawings to create a costume, but using that involves some careful save-and-restore of much global state (e.g. pen color). I built him a "draw costume" block that takes a body of turtle-drawing commands and affects only current character's costume. If you ask me, Snap! should have had similar API built-in; but what's more important it was easy for me to add one that looks and feels as-if it was builtin. This way I can decide what I want to teach ("you can compute how you appear") and what is incidental complexity.

you can also use microsoft's https://www.microsoft.com/en-us/makecode

it's slightly more user friendly imho, and you could do some more advanced stuff than scratch (i mean advanced as in using text, rather than blocks).

I also like that you can get a pybadge or similar device and run your creations on it.
Microsoft MakeCode Arcade is terrific. It has both a block interface and real Typescript under the hood, and you can switch back and forth anytime.
MakeCode Arcade also has the ability to put your games on physical hardware, which can be a game changer for engagement. A simple game on a 128x256 grid can feel a bit “rubbish” on a laptop screen, but put it on something with a Gameboy form factor and it comes into its own.

Arcade also has amazing editors for sound, sprites, etc.

Here’s Flappy Bird https://arcade.makecode.com/88444-57913-28610-31751 (Not made by me!)

[random parental advice from the internet]

Pick an adult solution and sit with them to provide adult guidance. You are at the stage where your relationship with your child becomes peer to peer.

If game programming stays their jam, you will be learning game programming from them in the blink of an eye. It's joyous and wonderful and only gets better.

Sure you will miss them being a small child, but you will know an amazing adult. (and they will always be a small child sometimes just as we all are).

The platform doesn't matter. Your relationship does. Good luck.

I’d argue against this. If the tool is too difficult, kids often lose interest. So it can have an adverse effect.

As much as I’d want to teach my 11 year old kid Unreal Engine, it’s not realistic. Pun not intended.

I think it depends on the child and parent.

My approach with my kids has always been "don't dumb it down". They may not be into programming, but at least they'll be exposed to it.

By giving them the 'easy' version, you are putting up barriers that don't need to be there. Kids are smarter than many adults give them credit for, but again, it depends on the kid.

You would be teaching a soon-to-be-adult about the adult world. The game engine is entirely incidental to developing a peer to peer relationship.

Their interest in spending time with you will diminish. That reality is the one to optimize for. Recreational interests come and go and come back sometimes. But most don’t stick.

Learning Unreal Engine with your 11 year old is possible, but not for more than year.

I have done this, it can work with some kids, still, its too much work.

At this age, I think it is more important to keep them motivated and find ways to use their creativity than to get them through the pains of debugging and learning too many technical concepts, even simple details like learning about image formats, how to reference them, case-sensitiveness are just obstacles against meeting their goals.

I feel like we don't give kids enough credit. Game devs who started in the 70s and 80s learned BASIC and all the technicalities of their platforms back then, some eventually moving to Pascal, C, or Assembly. The platforms had fewer variables back then (code running in real mode, your machine was identical to others of the same platform), but kids were still able to learn the minutiae of the Apple II or Commodore 64.
pico-8
+1 to this, my son really enjoys programming for pico-8
Yes, it's very accessible. My son wrote a game on it (with a lot of help from me, but he got it).
+1 on this. Even as an adult I found other game authoring systems too complex to jump into and feel comfortable with (as a hobbyist). Pico-8 was the fastest, easiest "I'm thinking of something" to "I'm seeing something happen on screen" iterative development cycle and a joy to use. Plus, a great community of people willing to help on lexaloffle.com and especially Discord. Some great YouTube tutorials out there as well.
I learned to code games in QuickBASIC, and pico 8 to me is the closest experience I ever had to that. The tools for putting something on the screen are immediately available with no infrastructure work required. You don't need to create a window, load files, choose a screen mode or anything. You just draw a sprite in the sprite editor and call `spr`
Game maker studio might fit the bill: https://gamemaker.io/en
+1 for GameMaker, though I used it about 20 years ago as a kid. I don't know how well its developed since then.
Like other commenters I used Game Maker 20 or so years ago and not only made games but also programmed little utilities to solve problems at my Dad’s work. It was a phenomenal blank canvas for creating games and programs and learning to program (because there’s both Scratch-style drag and drop programming, and a programming language).
This is what I used when I was 11. Been 15 years since I last used it, so no idea how much it's changed. The thing that was nice about Game Maker for young me, was that it had a drag and drop and programming language interface and you could switch between the two pretty seamlessly. This really helped me learn how to code early on.
+1 here. I've been facilitating a video game maker club for kids aged 11-15. I have ~7 kids who come. Most kids are 11-13 but 2 are 15.

Since they're all new to programming in general the club has mostly been me teaching them. The kids are having a ton of fun. It's slow moving. But they love it.

They also have the GUI scripting instead of the javascript. I haven't actually tried it.

If you don't mind doing choose your own adventure style stories, I'd recommend Twine. It's a low-to-no code way to write branching stories, and you can add variables and conditional branching if you want to add a little bit of code. It creates a playable website of your story when it compiles.

I do a lot of heavy coding but I still play around with Twine sometimes because it's fun. I also sometimes prototype the branching dialogue and/or story in my games using that as a tool as well, because I don't have to code anything.

https://twinery.org/

There's also a subreddit for discussing twine games: https://www.reddit.com/r/twinegames/

A couple examples of how far you can take the engine: https://pseudavid.itch.io/the-master-of-the-land

And this one is super addicting. I played it 12 times in a row after trying it: https://johnayliff.itch.io/seedship

Seconding this! Twine is the ideal next step for the hypertext-style games OP describes their child having made - it's designed around that exact paradigm of game design, just with more powerful tools.
And if they use Twine (or other) to create text adventure stories, then they should also look at the annual IFComp (The Interactive Fiction Competition) https://ifcomp.org/

Several winning entries have been written by children or teenagers, with some help from parents.

When I was that age I made a bouncing ball in Flash (ActionScript, similar to JS).[0]

This is still my "hello world" when trying out a new game dev environment because it covers:

- drawing

- movement

- input

- acceleration

- gravity

- friction

- collision

And all of these in essentially the simplest possible way.

Most of all, it's a lot of fun to have a bouncing ball, and even more fun if you can use the keyboard or mouse to play with it!

For a more structured approach, I'd say draw a circle (or square), then add movement, then make it fall down, then a floor to catch it, then bounce it, etc...

[0] It's not too hard to do in pure JS / Canvas (I am very fond of tiny builds with no dependencies), tho the canvas API is surprisingly unpleasant, so I'd recommend something like Pixi or Phaser.

I still lament the loss of Flash. It’s ability to get in there and as a single user do everything from design to animation to code front end and back end was enormously flexible and easy for creatively engaging and creating. It fit the “bicycle of the mind” concept.

As far as I know, no single tool has replicated that kind of freedom. For rapid prototypes that one could actually iteratively build on top of top make a full application it was amazing.

I know about the issues and why it isn’t secure etc etc, but in terms of you could interact with it to create we are still at a loss.

I've dreamed of cloning Flash for a long time. Aiming for full compatibility is infeasible (unless you can convince the Ruffle folks to give it a go once they're done with Ruffle!), but aiming to capture the spirit of Flash (e.g. build Flash like authoring tools on top of TS/WebGL) is certainly doable.

The Wick editor was one such attempt, though it didn't gain traction and was abandoned.

Also there seem to be quite a lot of us who feel this way -- a dozen or more every time Flash is mentioned on HN -- maybe it's time we got organized? "Everybody talks about the weather but nobody ever does anything about it!"

I feel you.

I have looked at the Wick Editors source code and managed a sucessful build with some minor changes and felt picking it up is doable, but not easy. But a satisfying way to develope for me, would require a rewrite of many parts. Or most parts, except the UI ..

Pixi as the graphical base would be the way, I think.

But I could not do it as a side project as of now, maybe one bright other day.

When HTML5 was supposed to replace Flash, I just thought I didn't know enough about HTML5. Turns out that it was never an adequate replacement and it was just more Web 2.0 sterility.
I mean, I miss silly flash games and 0 other applications of flash. I can see why people miss it from a creator point of view, but it was extremely annoying in general.
It was great for animation with interactions. Also, flash files could easily be saved and shared offline.
It was a double edged sword. If you were not good at making something it would show, but if you wet good and wanted to do something out of the box it was incredible flexible.

From the stand point of freedom for the individual to create in their own way digitally it is unmatched. People can learn UI and UX but it’s really hard, nearly impossible to create a vast ecosystem and the the community that flash once was.

For anyone wanting to do this in JS, check out Dan Shiffman’s Nature of Code https://natureofcode.com/

Uses p5js, so nicer than pure canvas.

Note there’s a big leap from making a simple physics toy to making a game.

I actually turned my "ball that can accelerate with keyboard input" into a physics puzzle platformer with minimal additional code (platform collision).

I rebranded the ball to a box and made it so it plays a rocket animation in each (opposite) direction when you press the arrow keys. (In Flash, this was trivial!)

Made it so you had a certain amount of fuel and had to land to refuel.

I remember all of this taking a day or so, but I might be misremembering.

I had it mostly working but then I changed something, broke it, and didn't know how to fix it. (Box kept sinking through the floor)

These days I'd probably just use Box2D hahah

Many bouncing balls are also doable without knowing any actual physics. Balls overlap? Push them away from each other such that the next frame they'd no longer overlap. The result looks surprisingly acceptable.

And if you add some blur (I think in Flash this was just a property you can set) based on how fast the ball is moving, it somehow looks more satisfying still.

One of my favorite projects was a bouncing ball sim synced over the network. So you could mess with the balls in one window and it would update in the other too. I never added ball-on-ball action though...
Not specifically game related, but adjacent. Sonic Pi (https://sonic-pi.net/) is designed for making music specifically with kids in mind, and they might accidentally learn a whole bunch of programming concepts as a side-effect.
We make Construct 3: https://editor.construct.net

You can start with a visual block-based system and move on to JavaScript/TypeScript. We have a lot of schools using it to help teach programming concepts in a fun way. Happy to answer any questions!

I had a blast with Klik'n'Play as a kid. The modern version is called Clickteam Fusion. Revisited it a while ago with my nephew, it has a pretty good tutorial.

https://en.wikipedia.org/wiki/Clickteam

When i was young i started with Power Point too, then i started using "The Games Factory" from Clickteam. I think thats what started my programming path.
My 11 year old cousin loves Scratch. He's made several games and "movies" using it.

Another more powerful alternative is Stencyl: https://stencyl.com/

Have you tried RPG Maker? It’s really fun. I remember using it as a kid. It’s focused on turn based combat.
Ive heard good things about gamemaker, as well as RPGmaker. there was one I used to mess around with as a kid I think it was one of those two but cant quite recall. pretty sure it was something maker though. The important thing is to think about the process of making the game. getting the concept together, making a story..
The SVG format is easy to learn and you can write your graphics manually inside HTML. I've been using it to make 2D objects in JavaScript that can be positioned, rotated and scaled using the transform style property. You can also animate them with CSS. It's a shame there isn't a similar scriptable format for audio, something like MIDI. Otherwise you can use a canvas, or even a 3D canvas for WebGL.
https://gamemaker.io

You will not find better...

and with the ability to create a point and click interface with something specific happening on each click

Also, as you need: GameMaker Language (GML) is GameMaker's scripting language. It is an imperative, dynamically typed language commonly likened to JavaScript and C-like languages

It's not a drag and drop environment, but it is JavaScript: https://p5js.org/

Basic 60 frames a second canvas and the rest is JavaScript.

Pair that with the excellent Coding Train series https://youtube.com/@thecodingtrain

To get around the "serve a webpage locally" problem, you could either have Python or Node serve a webpage, or I once rigged up a samba share and a small web server on a home server and turned a kid loose on it ... It didn't take, I should have spent more time helping them daily on it.

But that's an idea.

I’ll second p5.js and the coding train video series. They are quite good, fun and more advanced than than the videos make them out to be.

P5 also has an online dev environment which is good enough. If you create an account you can save stuff online (make sure to backup, another good lesson).

https://editor.p5js.org/

New ones are infrequent but there is a fairly complete set on the web.

Ive also started playing with https://phaser.io/. It’s more of a game framework in JavaScript with built in libraries for collision. The getting started tutorial is decent/short and gives a good idea of what is going on.

P5 is definitely what I'd recommend to a lot of people for actually starting to learn to code although I think in coding a game it might fall down the second you want to do collisions as you're going to have to roll all that yourself from scratch.

In 2024 I'd be tempted to say if you want to make games it might even be better to just get started with Unity, Unreal or Godot and YouTube tutorials + AI help might be enough to smooth it out enough.

The absolute basic stuff might be trickier than a system where it's quite easy to draw on a screen in a few lines but the stuff of collisions and beyond are way easier.

For collisions I can say p5.play has been an excellent plugin for p5 to handle inertial physics and collisions.

I would suggest that the novice game developer might enjoy rolling their own basic collision detection ( object overlay, mouse-over, inertia-ignoring collision resolution, etc), but obviously that is not fun or convenient for everyone.

https://p5play.org/learn/ (AGPL licensed with commercial exceptions available these days, it seems)

Phaser with Claude / LLM to help?
Roblox studio. My son is a sound designer for some of the top games there. He's also learning programming in Lua for Roblox platform.

It is a small community of mostly kids aged 15-25 as far as I can tell. It doesn't seem like any professional adult game developers are part of the community (I got an inside view when I took my son to RDC this year).

The top game developers are making millions of dollars per year (they're paid in Robux and converted to USD).

In short, thriving ecosystem with lots of kids having fun doing creative work including creating games, writing code, designing graphics, designing sound effects.

Required reading before throwing your child into the machine that is Roblox: https://www.theguardian.com/games/2022/jan/09/the-trouble-wi...
tldr; teenagers on the internet. Nothing here described at Roblox doesn't happen to teenagers on the internet as a whole; Discord, IM. At least the people learned a valuable skill in Roblox.
When I was on AIM, I was never pressured into joining an asset sweatshop by older kids online. Stay far away from Roblox.
Concur with other comments here when I say: do not throw your child into this incredibly exploitative community
I’ve read about these concerns but my kid is 11 and on there all the time, often with me over her shoulder, and I’ve never seen any sign of it.

It’s a huge platform for kids so I’m sure there are some creeps but there are plenty of controls in place to deal with that and even so, again, I’ve never seen it.

I have similar experience to yours. I would prefer them not to be on it but it has network effect, as their friends are all on it too.
The creeps are only part of the problem. The platform itself is deeply exploitative and harmful. It's full of "you can make games and get rich" messaging that's just a lie. To say nothing of even if you are successful, they will take a staggering cut, and may not pay at all.

Keep your kids as far from Roblox as you can.

Don't underestimate kids... just give them proper tools, and they will surprise you.

JavaScript is a very forgiving language to learn:

https://playground.babylonjs.com/

Game level designers are also a fun high-abstraction, and won't overwhelm the impatient.

https://levelsharesquare.com/games/supermarioconstruct

Have fun =3

JavaScript has me scratching my head when I can't see why something won't work and I don't get errors in the console.
JavaScript debuggers usually support breakpoints with the "debugger;" Keyword.

You are not confined to "console.log()" methods...

Also, setting regression tests with explicit object type checking on well structured source trees will help narrow the search for design flaws (i.e. minify single file includes should be at the final packing and CDN file hash signature stage.)

Best of luck =3

I have good memories of using Alice3D [1] the 3D part is appealing.

11 is young but I don't know how difficult could be to use Unity with some help, I know people without any development background who created games there in their spare time.

[1] https://www.alice.org/