Doers of Stuff.org

Indie Game Dev & Simulation Engineer | Unity + C# Wizard | Building Worlds, One Line of Code at a Time

2+2=5

Whenever we talk about systems, or processes, things like DevOps, Agile and such, what we are really trying to do is find a way to improve our output in a way that is more than the sum of the parts. Ultimately, this is the result of leveraging the output of one system such that it inputs directly into the next. That last bit is important because most people get it wrong. They think automation and standards are all about making THIER part go faster and more efficiently. The truth is most internal optimizations are entirely negated by the massive loss in the handoffs or transitions. But by and large, none of us are actually trained to keep an eye on the overall lifecycle. We only focus on our part and let those downstream (and upstream) worry about theirs.

With that in mind, I’m going to make an unorthodox suggestion to brand new game developers. Explore the entire eco-system. For Unity, this includes at least the following:

  • The Unity Editor (of course)
  • Unity Hub
  • Your Unity Account
  • Unity Learn
  • Unity Asset Store
  • Unity Version Control
  • Unity Cloud (DevOps)
  • Unity Play
  • Unity Discussions (Forums)
  • Unity Blog

Before you say it, yes, I know, there are other ways to do these things. But there are some distinct advantages to starting with the officially sanctioned options. In the case of Unity, one of the most powerful reasons is the wealth of documentation. Unlike most Free and Open-Source Software (FOSS) the Unity documentation is vast and deep.

It is also linked directly in the Editor, which brings up the next biggest reason. In general, the vendor supplied solution will have a deeper integration. The Unity offerings are just that. Tutorials, Version Control, Documentation, these are all built into the Unity Hub and Unity Editor.

To clarify, I am not trying to make the case you should go pro using the Unity Eco-system. I’m not saying you shouldn’t either. When you are ready to run an actual business, you have other concerns and some of those concerns will change as your company grows.

What I am saying is, your very first introduction to Unity SHOULD include diving directly into the greater eco-system and it SHOULD start while you are downloading the editor for the very first time.

The Unity Editor is where you do all your work and is what people are usually referring to when they just say “Unity.” Strictly speaking, you can in fact just download any version of the Unity Editor, grab the nearest YouTube tutorial and go to town. However, i am fairly certain starting with the Unity Hub is now pretty much considered standard practice. The reason for this is the Unity Editor is more than just a text editor. It is a complete framework that becomes an integral part of your final product. It is potentially, non-trivial, to separate the version of the Editor from your final product. As such, given enough time, you may well find yourself needing to work with many different versions of the Unity Editor.

The Unity Hub makes managing these different versions a nearly trivial task. You can in fact download and manage Unity Editor versions all the way back to what was branded as “Unity 5.0” which was released in 2015! The Unity Hub also serves as the launch pad for all your projects and shows if they are connected to the greater Unity Eco-System such as Unity Cloud or Unity Version Control. It also serves as a portal to the Unity Community and even Unity Learn. Short story, there is a LOT here that mostly goes unnoticed if you just jump straight to code.

In order to use the Unity eco-system at large you will need to create a Unity Account. I’m actually not sure if an account is strictly required to use just the Editor or not as I just created mine from the get-go. Like many portals these days, you can either create an account exclusive to that portal or use other social media (like Google Accounts) to create your Unity Account. Taking advantage of this makes the process pretty painless. The Account portal itself is fairly spartan at this time, though it deserves at least a look through. For the most part, it is just the key to the rest of the offerings.

If you are brand new to Unity, then Unity Learn is really where you need to start. Ignore the rest of the Internet. It’s a silly place filled with trolls. In fact, if you start with something like the Unity Essentials Learning Path, you don’t even have to download the editor yet because they will walk you through it. All of the content on Unity Learn is free. Many of the courses even allow you to choose the version of the editor you are using.

Many of the tutorials, like Unity Essentials Learning Path will not take long before introducing you to the Unity Asset Store. The Asset Store is loaded with high quality free and paid assets. By assets, we mean art, music, animations, etc. And yes, you can access it through your favorite web browser, or directly within the Unity Editor. Again, when you get the excuse to explore the Asset Store, it is well worth a pause in your tutorial to poke around and try some things out. Some assets are more complicated than others and there is a lot of vocabulary and common practice you will not be familiar with. They key here (as it will be in all the other Unity systems) is to not get frustrated. Either take the time to dig in and learn a little more or defer that particular feature until later. The latter is a perfectly viable choice. Some assets will require knowledge of features you’ve not gotten to yet and that is okay. Just make a note to yourself to come back to that feature later.

Now, the one thing the various tutorials, courses and Learning Paths will not do is push you into immediately using the rest of the eco-system, which I think is a mistake (and the purpose of this article). So, as long as you are not participating in a live cohort (which they do occasionally) I would suggest once you get your project initialized, you take a pause and look up a few other tutorials. As you will notice, each of these tutorials, will have you create a trivial test project as a way to show you how to use the product. Well, there is nothing more trivial than your first project, so this is as good a time to dive in as any. To be honest, trying to put a finished, or near finished project into the Unity Cloud or Version Control after the fact is harder. So, do it now while you have nothing yet invested in it. Don’t be afraid to delete it several times before you feel comfortable with it. You’ve spent no effort on it yet, so now is the time to monkey with it, even if you end up creating a horrible mess of it.

The point is, if you consider Version Control, Build Automation (DevOps), Deployment/Publishing, etc. as first-class components of your education now you will be far better equipped to deal with the real world. It will also be easier (and safer) to explore these things on a small, new project rather than trying to crowbar an existing project you care about into it. Oh, and maybe you won’t be that guy at your first Game Jam who causes your team’s source code repository and build to melt in that final hour before game submission…

In short, while you can ignore and sidestep these things as a new, learning, solo developer, they are critical to proper team collaboration. So, start now while your project and “team” are small!

To that end, as soon as you setup and initialize your very first project, I am going to suggest you pause and look into the Unity Version Control and Unity DevOps. A lot of people will try to steer you towards GitHub, but I am going to suggest you defer that until later. In fact, I’m going to suggest you do all of your Unity Learn tutorials in the Unity Version Control and DevOps. When you either overflow the boundaries of the free tier, or you actually start your very own project, then look into GitHub. The reason I suggest this is by deferring the jump to GitHub, you will be better versed in the concepts of Version Control and DevOps and will be able to focus on how GitHub manages these things rather than having to do that AND wrestle with the very concepts themselves. Let the tight integration, documentation and tutorials provided by Unity walk you through the baby steps phases.

So, once you start your first learning path, download the Unity Hub and Editor, initialize your first project and add your first game object, delve into the following:

Go to the trouble of adding your project to version control and creating your first build on the Unity Cloud. Follow along with the suggested steps and configurations. When you have a choice of simple or “more complete” choose the simpler option for now.

Note: There is one caveat to the this. Right now, the free tier only includes WebGL and Windows builds in their cloud DevOps. The good news is, the WebGL build will be very useful to you early in your learning phase. Also, even though the free tier does not allow for free builds to other platforms, they do allow a pay-as-you go model for them at a nominal cost. That means, while you will want to use the WebGL and Windows builds for the bulk of your testing, you will have the option to create final builds for other platforms at a manageable cost.

Unity Play is another easily ignored feature you should definitely explore. Fortunately, any of the larger Learning Paths, Live courses, etc. will encourage you to publish your work to Unity Play. Do this! Do it and customize what you can. Not only does this become an easy way to share your work with friends, but it also becomes your first portfolio site and you neither have to build it, nor pay for it. Later in your learning path, you will explore many other options to publish and display your work, but Unity Play should be a no-brainer starting point.

In my own learning journey, I have seen and heard many discussions on whether or not this content or that program is “worth it” and which one is “the best.” These discussions are all rubbish because the focus on the wrong thing. The absolute best thing you will ever get out of one learning program or platform over another is the community it comes with. The good thing about Unity Discussions is a good deal of the discussion will be about the same tutorials and tools you are using. Someone has probably already asked your question and gotten a variety of insightful answers. You may be home alone, up late at night, being coder cat (like I am right now) but you’re not actually alone. Become one with that community and it will be worth far more than the mere content of the tutorials.

Unity is currently one of the leading platforms for game development and game tech for industry use. As such it is constantly growing and evolving. Be sure to tune into the Unity official Blog to keep up to date with the latest developments and plans for Unity tools, technologies and services.

Now, depending on your purpose for exploring Unity, there is a rather random collection of “tutorials” that are hard to find but might well be worth watching before you even download Unity Hub. Some of these are ones you may want to go through at a later time. But they are not easily grouped anywhere, so I thought I’d gather them here for you. Some of these are just high-level introductions to what Unity is and how it is used. Others are specific to those who wish to turn this into a career. Some are additional discussions on teamwork and project management. There is even an entire site dedicated to teaching with Unity. None of them take long, so pick and choose based on what is relevant to you.

Finally, after heaping all this praise on the Unity eco-system I do feel compelled to give one warning. Unity, like many companies have suffered some over the past few years, much of it due to being a victim of its own success. Diving into all this will at times feel a bit like finding an old toybox in the attic. There will definitely be some cool stuff in there. But some of it will be old. Some of it will be broken. Some will seem like the box broke and the pieces are scattered all over the bottom of the toybox. You will occasionally come across dead links and references to product names that have changed.

However, don’t lose heart. First of all, as I already mentioned, many of the tutorials allow you to select the version of the editor you are using. I also mentioned how the Unity Hub allows you to download and manage many versions of the Unity Editor. All that content is still valid. Secondly, Unity 6 was just released. Because of that, there is a new push to update the content and the eco-system at large. I promise you it is worth the effort and since it is free, it is way worth the price.

In future posts, I hope to dig a little deeper into all of the above. I’ll let you learn along with me. Until then, I’ll leave you with two quotes attributed to the American Wild West.

It does not matter how slowly you go, as long as you do not stop.

Wild Bill Hickok

Fast is fine, but accuracy is everything … You need to take your time in a hurry.

Wyatt Earp

In the context of this article, these mean you should take the time to learn ALL the skills you will need to deliver your final product. That includes the ones almost every tutorial out there will skip…

Leave a Reply