Unity 3D Development Log: 1. Intro

This blog is about my personal journey learning the game development platform Unity 3D. It’s essentially going to be a diary of challenges, solutions and creations I’ve made along the way. I’m writing it partly as a record for myself to look back on. I frequently find that with technical projects I hit a problem that I know I’ve solved some months earlier, but don’t recall where the relevant example would be. Hopefully this will help me keep track of important coding and creative milestones so that they don’t have to be repeated. And I’m writing it in public forum to share my mistakes, ideas and resources with others learning this technology.

If you’ve read this far you probably know what Unity 3D is, but if not you can find out here: https://unity3d.com/

Why Am I Learning Unity 3D?

Being a game development platform, the obvious answer would be “to make games”, right? Well not in my case. I may make a game at some point if I get a great idea that is simple enough to be completed by a single developer / designer. But I'm more interested in creating interactive projects that *aren't* games. For example VJing (projected visuals at clubs / gigs etc - audio reactive stuff is a big part of this), installations which interact with people and the environment using input from devices such as Kinect, and fancy animated & navigable data presentations. The visual 3D environment and many of the tools in Unity mean that it is well suited to these goals. It merges 2 of my broad areas of interest - tinkering with cool visual and audio stuff, and more geeky things like coding.

I won't go into detail why I've chosen Unity 3D over other game development platforms. Briefly, some of the benefits for me are 1) the free version has very full feature set, 2) the workflow feels familiar and it's relatively easy to get started with, 3) it supports output to a wide variety of platforms, 4) I wanted to learn C# anyway (most of my code examples will be in C#), 5) there is a good support network and knowledge base and 6) it just seems that most of what I want to do in this area can be done in Unity.

My background

My coding background is mainly based in web development. I've been doing this for 15 years so have worked with a lot of different technologies - recently it's been a lot of Java, JSP & in depth JavaScript. I've had an ongoing interest motion graphics and frequently dabble in video editing and 3D modelling / animation software. I have played with [Processing](http://processing.org) from time to time and plan to build on concepts from Processing sketches in my Unity work. I'm also a musician, and while I often like to take this side of my creative energy away from the computer (like playing guitars at ridiculous volume) I also enjoy exploring the interaction between code, sound and visuals.