Ask HN: My 12 year old nephew wants to make a game, how do I help him?
My 12 year old nephew has shown real interest in learning how to create computer games.
How do I help him the best, is there any drag and drop free tools or games about building games?
I am a web programme and is willing to help him, but we do not live nearby so I have to be able to help him mostly by email/skype.
Any ideas and pointers will be appriciated!
PS. English is a second language to both of us, he is ok at understanding but not too complex.
65 comments
[ 3.6 ms ] story [ 66.4 ms ] threadCreate stories, games, and animations Share with others around the world
https://scratch.mit.edu/
Will take a look when I have access to a winbox.
If he doesn't mind using a Windows machine for development (the actual outputs are cross-platform), I think it's a great place to start before moving on to programming languages.
[1] http://www.clickteam.com/
There are also languages like Scratch and various "no programming required" game development environments like Construct2. They might be good places to start, but they can also be crutches that prevent progress into more powerful tools.
edit: Is there some sort of downvote brigading going on here? I see a ton of helpful posts in gray.
http://thedailywtf.com/articles/Could-You-Explain-Programmin...
https://coronalabs.com
http://anwell.me/articles/unity3d-flappy-bird/
Once the passion is developed, someone will have a lot of room to grow.
https://news.ycombinator.com/item?id=9545019
I tried out one of the examples to make a Flappy Bird clone in 5 minutes - pretty neat.
It's maintained by an indie game studio called Two Lives Left (http://twolivesleft.com), which produced the excellent Cargo-Bot game -- and for that matter, let him get a feel of programming with the latter.
It's a drag-and-drop, graphical programming environment designed specifically for kids of that age group. It teaches them about conditionals, iteration, a bit of object-orientation, and makes it very easy to build relatively sophisticated games/animations within a pretty short amount of time.
I've had good experiences with it with kids of that age group, many really enjoy it.
Side though: scratch style programming inside minecraft has the potential to be awesome educationally. Somebody steal this idea (unless it already exists).
My kids and I have tried it and we like it a lot. Lots of tutorials and ideas. Easily worth more than $30/year.
I had never heard of Phaser until seven days ago. Since then, I have created a full "short-game" (avg. game time is 1-3 minutes) with all of the basic elements: a loader, start menu, object collisions and overlaps, animations, sounds, timers, scoring, etc. Nothing to sneeze at, and Phaser made it super simple.
To go along with Phaser there is the MightyEditor - http://mightyfingers.com/ - which is a web based open source HTML5 game editor, based on Phaser.io game engine. Essentially, it's a WYSIWYG drag-n-drop editor that generates the Phaser code in the background. I haven't used MightyEditor as I'm more of a coder, but it exists for you try.
Now, you can certainly produce more powerful games with other approaches/languages, but I doubt any will let you start developing a game right out of the box. Likely, you'll spend all of your time trying to learn the language ... that you never get around to actually making a game. With Phaser, you just start making your game.
To see it in action: https://www.youtube.com/watch?v=wrUHUhfCY5A&list=PLah_Dh8PIq... (the video's author, Direwolf20, had a good MOD pack including ComputerCraft).
Of course it's not directly creating a game, but perhaps a fun way to get introduced to programming.
http://gamesalad.com
Might want to start with a general intro to computer programming though like Scratch, which has been mentioned here.
If he plays Minecraft, he should definitely study Redstone (http://www.minecraft101.net/redstone/redstone-basics.html). You can make whole computers with it (https://www.youtube.com/watch?v=aQqWorbrAaY). It's what I recommend to my friends who are looking to get their children into programming or making games. Don't underestimate how much more compelling Minecraft is than literally everything else out there.
Starcraft II is free, and its map editor is excellent for nearly every kind of top-down game. It's a very drag-and-drop sort of interface that doesn't require any programming. You can probably build the widest variety of games with it.
Team Fortress 2, which is also free, comes with the Hammer Editor. It's a little more idiosyncratic than Starcraft II's map editor, but also a great way to just drop things in and play. It's ideal for first person shooters.
A bunch of games have really fascinating programming-like experiences. DOTA 2 (free) has its Workshop Tools; Cities: Skylines (paid) has an Asset Builder and programmed mods. A lot of these games are a bit above 12 years old though, so it might be a little intimidating.
I think for most kids, they're more interested in Garry's Mod (http://www.garrysmod.com) and Little Big Planet—sandbox environments. You just do stuff and things happen, and it's all very pseudo-physical.
I've seen some other recommendations on here. Generally most kids aren't equipped with the amount of patience these actual programming environments require. If you insist on programming, then Scratch is the best of the options. Check out the first assignment in Harvard's CS50 class here (http://cdn.cs50.net/2015/spring/psets/0/pset0/pset0.html#itc...). To put in perspective, this is regarded as one of the easiest to learn and most polished programming environments, and students at University level (almost twice your son's age!) are given 2 weeks to make something. So as an introduction, this is still extremely hard.
Conversely, things like Unity3D are going to be super crazy complicated, to be completely honest. It's disheartening to read any documentation. Just orbiting the camera in the viewport is a skill. Plus, lots of kids like to build multiplayer experiences, which are all possible with the map-making and modding tools above, but not possible with any of the actual coding frameworks written below.
Get him some books on html5 and javascript, or good web-based resources.
Make a simple game with him, like minesweeper or Tetris.
Also, if you make an HTML5/Javascript game, you can use something like PhoneGap/Cordova to compile it to a mobile app.
You make your games using a drag-and-drop level editor (2d only) and then double tap an item to add a script to it. You can also share your levels and download levels made by other users.
Plus, it compiles natively to many platforms: iOS (iPhone/iPad), Android, Flash, Windows, Mac, Linux
> "just do" things
e.g. `String in = new BufferedReader(new InputStreamReader(System.in)))` in Java vs `in = input()` in Python.
I think it's important for beginners to understand why they're writing the code they are, and how the different parts of their code fit together. In Java your "main" function is part of a class; I have no idea how to explain that to a younger student.
I am really interested in teaching programming, so I'd like to hear your thoughts.
Obviously I see the benefit of simplifying things like we see in Python, Ruby, etc.
A lot of people don't like Java because of how strictly OO it is.
https://blockly-games.appspot.com/