Teaching Unity 3D in Middle School – Pros and Cons

Update: new posts about Unity Curriculum for middle school is here. 2014 camp is here

The pinnacle of the “Two Year Plan” for the students in the lab is to scan their bodies,  animate them in Mecanin, and have them be the hero of their own game they create in Unity 3D. It’s some big talk, and quickly becoming part of a “Three year plan”, but I still think it’s possible. This post is a little freeform, but here are some of the thoughts banging around my head on the topic.

Teaching Unity 3D to adults is doable, and a great way to learn code. But teaching it to middle schoolers brings with it a host of obstacles. Not obstacles we can’t overcome, but several worrisome factors.

Cons

1. It is a huge huge leap between Scratch and Unity. I looked at Alice 2.0 is a middle ground solution, but that software is a beast in itself and the community, once so promising, feels a little quiet. Right now, the plan is just to “leapfrog” into Unity for a small number of students, test out the curriculum.

2. In Unity, it’s pretty easy to get catastrophic errors that are very hard to resolve without being fairly knowledgeable in Javascript/Unitscript and Unity. For example,  it’s very easy to suddenly lose sight of the landscape you’ve built. You hit one button and your world seems to disappear. You learn to click on your object in the hierarchy, but I can envision that causing panic in the lab.

3. Unity’s UI changes all the time – there is always a new version and it tends to look different. When the software changes significantly enough, we have to either use an old version, or I need to make new tutorials.

4. I don’t know if our workstations can handle the software.

 

So those are the main concerns, and here are some thoughts.

1. Unity is worth it. When the instructions are well done, within an hour, a student can “paint” a landscape with mountains and grass, plop in a camera a zoom around the world they’ve made in 1st person. It’s an amazing experience.

2. It’s the best way to learn Javascript I’ve ever seen. The UI can do a lot towards creating a beautiful environment, but then it really motivates you to code to build in interactions. Having learned via Lynda myself in the mega 11-hour tutorial series, I don’t see the harm in newcomers cutting and pasting some code, or typing in code they don’t fully understand.

3. The free version has all the functionality we’d need for years to come.

4. It’s wildly popular and there are tons of resources, and growing. Let me go on a brief tangent.  There are two guys on YouTube, called http://www.youtube.com/user/PushyPixels  who have some great introductions to Unity.  Particularly a “Three Minute Game” 

As a brief tangent….

 

… in the comments of the 3-minute game someone posted:

There is probably a good Unity-focused book starting with OOP basics out there. I would recommend reading such a book, it makes learning how to program the right way much easier :-)

And the instructor replies:
I actually would not. Now, don’t get me wrong, programming books are GREAT, everyone should have a few in reach of their computer at any time. The thing is, I’ve found that the best way to learn is to find a persons INTEREST, or REASON for learning. If their reason is to “make games” I don’t see any reason not to jump right in, considering most game development these days is done on engines designed for the purpose, with their own APIs and syntax on top of the language they use.
I’ll get into this more in the “theory posts”, but I think it’s impossible to teach these kids to code if they’re not excited about the final project.
5. I’ll also add that Unity, being the end game (pun intended), is why we’re going to slug out Sketchup.  we’re just going to find free assets to import. I’ve found the free educational version of Maya, which is extremely exciting and better than Sketchup, but – again- the learning curve.