The Unity Learning Curve

Earlier this month I taught my first Unity 3D Gaming course to a fantastic group of younger kids. The class was a complete success and the games that were produced blew my mind. However, the path to getting there wasn’t so easy and may have aged a little in the process.

Rewind two months prior to the start of the class when I started learning Unity on a deep level. My first impression of Unity was a bit overwhelming. All these new words like RigidBody, BoxCollider, and the list goes on. I felt like someone just threw me into the deep end of a pool with a brick tied to my leg, as I was obviously out of my normal comfort zone of building web applications. On a positive note, I did however like that I could code games in both Javascript which is my main language and C#. I chose C# to learn a new language and am kinda a fan now. Ok back to drowning, the learning curve with Unity far exceeded my initial thought process. There was just SOO much to learn from new verbiage , C#, built in methods, crossplatform builds and more. Out of all of these obstacles, I found understanding Unity errors the hardest. I would change one with and sometimes even nothing and I would get a new error Ive never seen before. Luckily, the Unity docs were written for a normal human to read and were very helpful. Once I started seeing the pattern in the errors and fixing a million of them, I am no longer stuck when I see errors or at least have a plan of attack to solve them.

During the instruction of my class, I started to find weird bugs with the latest version of Unity 5.6 which caused a huge headache for the students and also myself. Students would randomly get compile errors, I would check their code and game to match mine and still no dice. After seeing there is nothing wrong with their game, I saved it and re-opened the game and poof no error. WTF!!! I do think that Unity has a great error handling system but maybe its too good and causing more harm than good. That is just one example of a bug and have many more for another day.

Anyway my class ran without my brain exploding and my students created some of the coolest games Ive ever seen and all while learning how to code. Best of both worlds in my opinion. On a closing note, If you are thinking of learning Unity give yourself more time than you think. Use the docs, online community boards and just try not the smash your computer. I recommend buying a stress ball or punching bag :).