Sunday, May 12, 2019

Teach Kids to Code with Code Battles

Credit: Lucélia Ribeiro Flikr 

Background

As a tech nerd, finding good cell phone games can be challenging. But every once in awhile I find some real gems. One of my favorites is called lightbot. It uses a fun game to teach the general concepts of programming or coding. In general I'm a huge fan of video games. Some gaming behavior can actually "rot" your brain while other behavior has benefits. (I was going to post articles and references, but there's a ton of stuff out there. Do your own research).

I try to find games for myself and my children that provide both entertainment and growth. I think lightbot fits that goal. On another day I was hunting for "building" games where you build some type of machine and then use it to compete against other players. There are several good ones out there, and we play more than one. One we play intermittently is called RoboCraft. During my search I found a programming game (maybe it was Robocode?) where you build the behavior of a robot using code and compete against other players to see whose code is best.

I instantly thought this would be a great game style to teach kids how to program. But the code was too advanced for children. When I see a good product that needs to be adapted to another audience is almost always when I have my ideas.

The Idea

Create a competitive game that teaches the basic programming to children by using modular, graphical code blocks. My basic vision is two robots that compete using behavior that is programmed by the kids. The code blocks each contain specific behaviors like movement, sensing and actions. Some of the blocks would be routines or loops.

For the case of robots, you could have the robots perform some type of task, like moving a ball into a designated goal. The first robot to complete the task wins. So your movement actions could consist of turning and moving forwards. The sensing actions could be detecting a ball in an adjacent square, detecting if the robot is holding the ball, and detecting when the robot is in the goal. Actions would consist of picking up and dropping the ball. One example of a routine would say, "Am I holding a ball? If yes then find the goal, if no then find the ball. Then you would build routines for finding the ball and finding the goal. The person who builds the best routines would accomplish the goal the quickest.

Instead of robots you could have a tank battle. The movements, sensing and actions could be modified for that scenario.

The difficulty could also be modified for different age groups. For younger audiences the code blocks could be high-level and entered sequentially, exactly like lightbot. For intermediate audiences you could make the code interface more like Scratch where the blocks are more granular, and kids have to pick specific settings. And in the most advance version you can expose the actual code like JavaScript. Another way to add complexity is to add additional moving, sensing and action options. Movement could be up down left right and player movements are restricted to a grid. In an advanced model you can include rotate right, rotate left, move sideways and remove the grid for continuous movement. For simple tanks you could control movement and direction of the turret separately from movement and direction of the tracks. The scenarios and variety are limited by creativity and resources.

Progress

2019-05-12

Has it Been Done Before?

I originally had this idea years ago. I did not see anything back then. But there is tons of cool stuff happening rapidly in this space. I haven't found anything that is exactly like lightbot and suitable for entry level audiences or young children. There are some great options now for older children that are comfortable using Scratch.

Tynker has some great options on their "Hour of Code" page. I played some of the games, and they are great for computer-savvy young children up through old children. It uses a Scratch interface and is a perfect example of different action blocks. However, I didn't see any competitive games, and the price is a bit much. If they continue expanding their offerings I could potentially buy into their program. If you are a technical parent, then you can just go to Scratch since I think Tynker is based on Scratch.

Side Note / Pro Tip: Once you find something you like, you can Google for similar things. The two key phrases I use to accomplish this are, "alternative" and, "similar to". As an example, when I googled, "Tynker alternatives" I found "Grasshopper" which looks good for older kids, "Coding Planets" that looks similar to lightbot, "robo garden" which is free but kludgy, and finally "ScratchJr" which is a new-to-me app from the Scratch team. I like the code blocks in ScratchJr, but the objectives are not intuitive and will require guidance from a parent to get them going.

Another item I found by Class 42 is Robot Rattle. There is some voice instruction which I think is helpful for kids or when things are not intuitive. But good game design doesn't require it. Just look at Super Mario Bros Game Design for a perfect example of good design.

There is a super-cool RPG game done by "CodeCombat." It is marketed towards deucators, so I'm not sure on pricing. The demo I tried dumps you straight into Python or Javascript without much instruction. I'm guessing the educators package provides the necessary instruction, but the game could have easily been designed to include the instruction. While it's a fun option, it's not exactly what I was envisioning. I still suggest it for older kids or educators.

So I haven't found anything that fits my specs yet. There are several other potentially good options out there, but most of the ones I found are hidden behind registration walls. My purpose here is not to review everything out there, just to share what I think is needed and see if anything already exists. So far the answer is NO. Close, but not quite.

No comments:

Post a Comment