How much does a new Unity dev need to know?

Hi there, I’m working for a small game development company who primarily use the Unity engine. I’m not directly involved with the game development itself (web master), but I would one day, perhaps many years in the future like to venture into that territory. I have two years of experience in Java programming, and I’ve spent a semester in school working with C#. I’ve dabbled in Java game development in the past but this was primarily simple 2D plat-formers and such so I didn’t really get to work with any of the low-level concepts. I checked out the Unity IDE and I didn’t actually see any code - it looked like it’s based around drag and drop assets that can be configured through a GUI (please correct me if I’m completely oblivious in this regard). As an aspiring game programmer I had just had a couple of questions to start with:

  1. How much coding is involved when programming in Unity/when does the coding come into place? Can one code their own custom assets?
  2. Given my background, is jumping straight into Unity before learning the fundamental concepts of game programming through Java a bad move? Should I continue to dabble in Unity to pick up these concepts or take a step back and experiment some more with Java?

Also, I’m really digging this stackoverflow-esque help section. :slight_smile:

The coding is mainly done in UnityScript (which is sometimes erroneously referred to as and has little relation to Javascript) or C# (use C#).

Basically it’s very, very object-oriented by design. You write a class that extends the basic Unity object, and then you have easy access to necessary functions like position and rotation and lots of helper functions to do all the Hard Math. You can then drag that class onto however many GameObjects you need.

You can still write just normal, standalone classes for like utility functions and whatnot.

It’s possible to make an entertaining little time-waster with a minimum amount of coding, but you have nearly full control over just about anything - you can even extend or override the Unity editor itself!

I’d recommend using one of the official Unity tutorials (I’m partial to Lerpz myself for range of lessons). Scan through it and see if you can understand what the game-related words mean and you can hopefully get a good idea of whether or no you want more school-learnin’.

  1. You can code your own custom assets. It takes more code than somebody outside of software programming would be used to (I come from a web background and I’m betting you’re not a very heavy JS user). Unless you use a framework for your site development.
  2. I didn’t bother learning any concepts of game programming before I jumped in. It’s just like any other language you learn: you just throw effort into it. Having a clear purpose for what you want to get done will really help though. I was honestly COMPLETELY lost when I started using Unity because I didn’t know how it would compile, but after working past the first milestone (AKA the “it somehow worked” milestone), it just clicked.

A little note that Unity is NOT as powerful as you would imagine because of the Unity Free VS Unity Pro gap. That gap really annoys me…

Unity is actually quite heavily code-oriented. You write code when you want to make anything happen. The editor is for laying out levels, hooking up assets to scripts, and so on. It would be helpful if you were reasonably familiar with programming before using Unity.

  1. Yes you code your own assets all the time in a way. The basic “class” of each asset is created and referred to as a game object. After that you further define each object by attaching other “sub classes” referred to as components. The coding comes into play when it comes to how each of those things behaves at run time. This is where you create a script using either C# or Javascript. The above poster said it wasn’t really JS but it actually is, just using different libraries.

  2. You can do whatever you want, as long as you have a drive and will to do something you can achieve. The only limit is how much work you want to put into it. The unity engine is great because it handles a lot of the stuff you typically don’t want to deal with when starting a new project. It’s like drawing a picture, you can either code your own drawing program or just get Photoshop. The fundamental concepts of game design are the same just like drawing, the only difference is how you arrive at the final product.