If you landed on this page, you’ve probably garnered an interest in game development, and have been looking for a beginner friendly, no-nonsense introduction into it. This post will be one of three posts, where I explore the absolute basics of Unity game development. There will be no focus on building anything concrete yet, instead we will be diving into the environment, the concepts and some coding basics. let’s start.
Getting Unity, and opening the editor
If you have already installed the Unity editor, you can skip this step and have a look at the tools it has to offer. Otherwise, I would advise you to start by installing the Unity Hub.
Unity Hub is a great tool for organizing your projects and Unity installations. Out of the box, it allows you to create or open projects in specific Unity versions, install different versions, or even explore some tutorial projects and tools.
Unity Hub allows you to have multiple installations side by side, and open your projects with the version of your choice at the click of a button. It also features learning resources, as well as community resources in case you want to explore the possibilities.
When installing a Unity version of your choice (I would recommend the latest stable version), don’t worry about the features too much just yet. You might be inclined to install the tools you need for a mobile game, or cross platform, or add language packs, but you don’t need to do that just yet. It’s possible to go back later and add those features if you like, but for now, let’s just focus on exploring the editor itself.
After the installation is complete, go ahead and create a project. In the Unity Hub, go to the “Projects” tab, and click “New Project” on the top right. Here, you have a whole bunch of options to choose from. Personally, I’m a fan of making 3D games, so I’ll pick 3D core, or 3D HDRP if I want fancy visuals out the box, but this can also be added later on.
If you want, there’s some cool starter templates you can download as well, such as the third person and first person templates, or even a racing game. These can be opened and played out the box so you can immediately get some hands on experience.
When you open the editor, you’ll be greeted with some panels with the most used tools. The most noticable ones here, are the Game and Scene views.
The Game view is a view that you’ll be using if you want to test out your game. You can’t use it to edit anything on the screen, but once you hit the play button, it will act like you are in the game already. This way, you don’t need to export the game and launch it separately each time you want to test your changes. This view will show you what your game world looks like from the perspective of the active game camera, a.k.a. the player.
The Scene view on the other hand, is the view where you will edit your game. Here you can move, rotate or scale stuff, add or delete things, or even manipulate objects while the game is running.
If you want to look around, you can right click and move the mouse. This will rotate the camera. If you want to zoom in and out, use the scroll wheel and if you want to move the camera itself, hold down the scroll wheel while moving the mouse around.
In Unity, every object in the game is part of what’s called a “Scene”. You can think of a scene as the world that you’re working in. Every object is a “child” of that world, and objects can be children of other objects, much like the folder structure of your computer. This is where the hierarchy comes in, it allows you to organize all the objects in your scene. This way, it’s easy to find something in the scene. You can collapse and expand objects in the hierarchy for easy and clear access.
Each object in the game is made up of smaller components, which we will discuss in a future post [link]. These components are not objects in the scene view, or in the hierarchy, but instead are outlined in the inspector. This is where you will spend a lot of time when making a game.
Click any object in the hierarchy, or in the scene view, and you will see all of its components in the inspector. You can add and remove components here easily, manipulate their values, and reorder them. The inspector also allows you to collapse and expand the components, like the hierarchy does, so it’s easy to find something.
The project browser
When working on your project, you’ll quickly realize there are a lot of files involved. These are 3D objects, animations, audio clips, scripts, textures, etc… you name it. Now it wouldn’t be very efficient to have all these files scattered on the disk somewhere, or keep them all in a single folder, so Unity provides a project browser. Here you can look through your files, move them around, and if you click them, you’ll see their properties in the inspector. This also allows you to change some things around before even adding them to your game.
Often when you’re working on a game, it can be difficult to see the nuances of what your code is doing in the game view. It can be buggy, have limited impact, or even not work at all. Sometimes you want feedback of what it’s doing without seeing it in the game view. All those options are covered in the console, where you can immediately see when an error pops up, and where it comes from. You can double click the error and it will take you straight to the code. Or you can have your code write certain outputs to this window, so you can keep track of how certain components are behaving when the game is running.
The animator and audio mixer
These last 2 are a bit more advanced, and you’ll definitely learn to work with them at some point. But it’s worth it to give at least a bit of information about them.
The animator is not only it’s own tool, it’s linked to a component you can add to an object like the ones in the inspector that I described earlier. This tool is really powerful, because it allows you to finetune animation properties, transitions and blend states, as well as integrate scripts for each of the animation states. This is already more advanced, but I plan on making a detailed post about the animator as a whole.
The audio mixer is similar. It allows you to take all the audio in your game, and send it to different buses, so that you can control it’s volume with a single slider. These buses can also be controlled from code, so you can have a neat little settings page where you can change the audio sliders for things like UI, world, effects, etc…
I hope this was informative, and if you would like to learn more about any of the tools, feel free to leave a comment. There are plenty more tools that I didn’t go over in this posts, that might be worth looking into, but for now, these are the most common ones.
In my next post, I will be looking into the most common components of a game object, remember the inspector?