One Year Of Unity3D - A Post Mortem

  • Posted on: 5 January 2015
  • By: DestLocke

Like most developers my age (pushing the big 4-0), I've evolved along with computers for my whole life, forced to learn a new language, ide or platform about as often as I've upgraded my PC - if not more! It all started with the wonderful language of BASIC. Not only was it basic, but it was called that too. Nevertheless, that flashing prompt was full of possibilities.

My father then plopped a book on the desk next to the computer, and that was it. My brother and I transcribed the seemingly endless Walking Man code listing from the book Computer Animation Primer most of that day...

And when we finally finished, I typed RUN proudly...

About a day and half later, after becoming intimately familiar with the words debug and syntax error, and after typing RUN a few hundred times, finally it ran, and the Walking Man walked. I knew at that moment it was something special.

My how the times have changed.

When I first fired up Unity, it looked more like a modeling tool than any development environment I've ever seen. This was a little scary, because I knew it was going to take A LOT of learning to make the jump; and it was not without risk - I was already making fully functioning games for iOS with Xcode/ObjC and one might question why I would even pick that time to take the plunge. Well, Unity had just released their official 2D Tools, and I figured it was finally time to listen to all the noise and see what Unity was about.

The first couple of weeks I spent a lot of time on YouTube. YouTube is a great way to learn visually, and since Unity's nature is visual - it was a perfect fit to learn basic operations, user interface among other things. I'd never used C# either, and although I was familiar with Javascript, I always hated it's untyped, sloppy nature. The next month or two was spent rewiring knowledge to get up to speed with Unity. By this I mean, for instance, I would take something I could do very easy in XCode/ObjC, and then seek out how to do it with Unity. With the ultimate goal being completely "rewiring" my knowledge to Unity.

Around the two month mark of using Unity, I started to see the light at the end of the tunnel. Not only was I rewiring everything, but I was starting to wire things I'd never wired with any platform in the past. This was truly a revelation, and I knew at that moment it was something special - the same thought I had when I first laid eyes on BASIC.

We made our first concerted effort with Unity in a couple of weeks time in February - it was written horribly; I was still grasping some of the more underlying concepts of Unity and object referencing - but it worked, and we released it on iOS and Android, and the web. Cross platform for the win! The game was nothing fancy, but even still, for me, the whole process just felt much more manageable than any other game development cycle ever had. That could possibly be the greatest thing about Unity - just by design, once you fully understand it, projects naturally become more manageable.

So now it's been a year, and I feel more at home with Unity than I've ever felt with any development environment in my whole life. All roads have led to here, and for the most part, using Unity is a joy next to all other options. I think Gary said it best at the end of his interview with Unity concerning porting Rust to Unity 5 - "Just thanks for making Unity, it’s just made our jobs easier and more fun compared to the old days." After looking at the code above, I couldn't agree more.