I have a niece who wants to make a video game. I have 0 experience teaching and am very likely to recommend her some crazy complicated shit that will turn her off to the idea. She’s 8. Anyone have experience with this? Her first instinct was to try and make games in the Roblox engine but I know exactly how exploitative that shit is and how nontransferable those skills are
Libre software is a must
This is very well thought out and I appreciate it. In terms of making art and being creative, I 100% want to spare her as long as possible from the urge to monetize it. She’s essentially been gambling since she was a toddler. The combinations of “surprise” toys and collectibles all rolled into toy franchises with cartoons, complete with animated cartoons and entire Youtube channels dedicated to unboxing them and talking about how fun it was to buy them, this shit has gotten really aggressive. But in terms of stuff that she makes on her own, I will discourage her from commodifying that work for as long as possible
For an 8 year old, definitely Scratch.
For slightly older kids or anyone who's taken geometry I'll throw Racket (a Scheme dialect) out there — it's a functional language built specifically for learning, the course How To Design Programs uses it and is pretty accessible and specifically has libraries that are used for drawing, coloring, and animating images in a very beginner friendly, digestible way
Look for Scratch solutions. Once they've got a handle on this there's a number of toys and things that use it. Lego mindstorms, star wars force sensor toys, crap like that.
I don't know how many versions there are, but it's the ev3 that does scratch.
Scratch! Very simple and easy to learn, perfect for teaching kids the basics of programming. Then you can go into the more advanced stuff
I would look at 2d engines 3d makes everything more complicated
2D art has to be nicer for it to overall look nice... i just use basic shapes though so no worries
Godot is the only proper game engine that's libre that I'd recommend but it's probably too much for an 8y/o. I liked plantsrstillcool's suggestion of using something really simple. Another similar thing might be mcreator for minecraft. It's not foss (it is free) but they understand their audience is kids and the devs generally make appropriate in concern for their target audience. It has the advantage of integrating with an already really popular game.
Agreed on Godot, although apparently their visual programming language is pretty good. I’ll check out MCreator
If you got any questions about minecraft stuff specifically if you go that route you can dm me I'm not the best but I've been doing technical mc for a long time.
Occasionally available for dirt cheap via Humble Bundle, for whatever that's worth.
Edit: Unity is also "free," but that has a hell of a learning curve for a kid.
Alice is a game engine provided for free by Carnegie Mellon University & the National Science Foundation. I believe Oracle is also onboard since it's largely java-based. It's designed for middle school students to make games and have transferrable knowledge into Java, a pretty decent starting language. It's largely drag and drop in much the same way as Unreal or Unity can be these days, so that's definitely transferrable as well.
I think Alice is one of the more satisfying game engines for kids to learn in, since it's 3d, has a large library of premade assets, and feels like you're actually doing it instead of just sort of telling it what to do and having it do it for you.
Javascript/canvas? It's easily transferable, libre, and easy to distribute whatever she makes to her friends. Downside is that all the tutorials make it more complicated than...
// Treat this part as a magic incantation for now. document.addEventListener("DOMContentLoaded", () => { let canvas = document.createElement("canvas"); canvas.width = 256; canvas.height = 256; document.body.append(canvas); let ctx = canvas.getContext("2d"); let keys = {}; document.addEventListener("keydown", function(e) { keys[e.key] = true; }); document.addEventListener("keyup", function(e) { keys[e.key] = false; }); // Initialization code here let x = 128; let y = 128; // End initialization setInterval(() => { // Game step code here if (keys.ArrowLeft) { x -= 2; } if (keys.ArrowRight) { x += 2; } if (keys.ArrowUp) { y -= 2; } if (keys.ArrowDown) { y += 2; } ctx.fillStyle = "#000"; ctx.fillRect(0, 0, 256, 256); ctx.fillStyle = "#F00"; ctx.fillRect(x, y, 16, 16); }, 16); });
Just chuck that into an empty HTML page and you should be good to go.
You could try showing her Bitsy!
https://ledoux.itch.io/bitsy
It's a very simple game maker that does the behind the scene stuff for you. You still make little pixel art and dialogue and layout the game. There are a lot of people who do some really creative things with it. I can share a few of my favorites if you're interested
Oh this one looks like it has a great ratio of accessibility to power
Here's a good tutorial on YouTube: https://youtube.com/playlist?list=PLlXuD3kyVEr5sF4iM2CszNt-fSVZDqxUm
aren't roblox games coded in LUA lol?? how is that non-transferable
Honestly that’s just something I’ve from developers who have talked about it. Multiple comments on this post about been about transferability of skills in Roblox when I’d hoped it was obvious the larger concern with Roblox is that they’re exploiting child labor and she is a child
WTF even uses LUA? In terms of game development, some really old games used it for modding support, but that's pretty much it.
Language doesn't matter too much when getting started, at least once a minimum level of competency has been reached. But LUA specifically isn't very transferable compared to other languages.
Here's a browser-based teaching tool for python UI:
https://py2.codeskulptor.org/
If you look through the demos you can probably find something that would interest her and try to reimplement it or modify it.
I remember in school they taught us to "program" a tic-tac-toe game in EXCELL
We learned on HyperCard on the old Macs. Surprisingly, you could slap together a (limited) dungeon crawler RPG in that.
Edit: Also, Gary Kitchen's Game Maker on the C64 was a blast when I was a kid; I learned a lot of the fundamentals of Commodore BASIC thanks to that, and it had music, sprite, and fullscreen graphics editors built in.