Introduction
With all the stay at home orders in place across the country, and world, parents are struggling to keep their children both entertained and educated. One thing I’ve heard over and over from my friends and family is they are searching for ways to encourage their kids to put down the controller (this is difficult with Animal Crossing still being very new). One tip that may be helpful is to use their love of games to help them learn a new skill. If you are in this boat, I’ve gathered together several great resources to use games to teach programming. There are options for kids as young as 5 to learn basic programming concepts without needing to type out long lines of code.
Scratch/Scratch Jr
Scratch was created by MIT as a way to teach children between the ages of 8 to 16. It is free and runs in an internet browser, so is available on any device. There is no typing code. Instead, kids use graphical blocks that represent code functions. This is great for learning the logic principles of programming in a way that is accessible to young kids. It's set up in a way that makes it easy to build simple games or interactive stories. It even allows users to add their own images and sounds, or use the included paint editor to create their own characters. One key aspect of Scratch is all projects published to their website can be opened in the editor. This makes for a great learning opportunity when getting started. They also offer tons of tutorials. You won’t be able to create anything very complex here, but the point is to develop their creativity and reasoning skills.
ScratchJr is an iPad/Android app version with an updated UI to make it easier for children 5-7 to pick up and begin making their own creations.
Code.org
Code.org is a global non-profit organization that works with a large number of schools to bring computer science to grades K-12. They are supported by a large number of tech companies and leaders. There is a decent chance that your school may have a Code.org program. Similar to Scratch, the coding is done with blocks, however, there is also an option to “Show code” that will present you with the JavaScript version of the blocks being used. This is great for those that want to take their coding a bit further. The website has a lot of options, but if you are not working with your kid’s school, look at the “Learn at Home” section, specifically the “Hour of Code” activities. These provide fantastic game-like tutorials that will get kids up and running quickly. They can program adventures based on Minecraft, animate music videos featuring some of today’s top musicians, learn about AI and machine learning, create apps, and much more. I found these to be pretty entertaining. Because of Code.org’s size, they also offer after-school programs and summer camps if you kids want to continue after things open back up.
Tynker
Tynker is similar to Code.org, but goes a bit further. It does cost money, but in return your kids will be able to create apps that use AR, or make custom Minecraft mods and skins that they can use in their own private server. They even have the ability to write custom programs for drones and other connected toys. You can use it on their website, or with one of their mobile apps. They also have an “Hour of Code” section featuring free lessons with brands like Barbie and Hot Wheels, and lessons using Python and JavaScript. They are also offering free resources to schools during the closures, so if your school isn’t already, it might be a good thing to pass on.
GameMaker Studio 2
https://www.yoyogames.com/gamemaker
Now we are getting into the big apps. Gamemaker is a fantastic 2D game engine that is surprisingly easy to use. The scripting is node based, and works very similar to the scripting blocks used in the educational options above. The transition from Code.org or Tynker to Gamemaker should be pretty smooth. It also includes tools for making all your images and animations. Some pretty noteworthy games have been developed in Gamemaker. The base cost is $40, or if you want to be able to sell your creations, there are different licenses depending on platform.
Unity
Unity is a full fledged game engine with a great roster of shipped games. You can create 2D or 3D games, VR projects, and anything else you want. While it's not the easiest to learn straight out of the box, I’m giving it a mention here because of Unity Playground. This is a project that you can download for Unity that simplifies things and gives a good framework for newer users to create a simple 2d game. Year after year, Unity keeps growing in power and popularity. If you have an older kid that is considering game design, Unity should be on their radar.
Unreal
https://www.unrealengine.com/en-US/
It's hard to talk about game development without talking about Unreal Engine. Unreal has been around for a long time and powers some of the biggest games. Games like Fortnite. In fact, if your kids play Fortnite on the PC, Unreal Engine is available in the same Epic Games Launcher. It's free to use, but it is quite complex. Although it is difficult to learn, there are a LOT of tutorials and their documentation is extensive. Unreal has grown beyond just a game engine. It is now used extensively in Architecture, Film, TV, and more.
Conclusion
This is just a few of the many resources out there to get your kids into coding or game design. Even if they don’t want to be full programmers, learning the basics of coding will become more and more important. Building reasoning and logical thinking skills alone make this a worthy avenue to explore. If you have experience with any of these, or any other resources please share your experience in the comments below. There are plenty of people in similar situations that would love to hear more opinions.