Preparing the right tools for the job
Part 4 โ From idea to game: A beginner's guide to creating games with Unity
In the previous articles, I have gone over the process of generating ideas for your games, picking the one for you, refining that idea and planning the development process while using my project as an example. Logically, the next step is to set up all the tools we need to get started.
Downloading and installing Unity ๐ฎ
Unity is a powerful development platform that can be used for a wide range of projects, including game development. One of the best things about Unity is that it is free for personal use, making it an accessible option for beginners and indie developers.
To get started with Unity, the first step is to download and install the Unity Hub. The Unity Hub is simply a launcher that allows you to manage different versions of Unity and your projects. Once you have installed the Unity Hub, you can use it to install the version of Unity that you wish to develop in. For this series, I will be using Unity 2022.2.4f1.
Perhaps you already have a platform you want to publish to in mind. You can install the requirements for that when installing a new version. Do not worry though, if you decide to deploy to a different platform later, or multiple, you can always add those modules to your install anyways.
For me, I will make sure to add the module WebGL Build Support, as that allows me to easily share my progress with the world, via something like itch.io. And, as I mentioned I can always add more modules later if I decide to deploy to other platforms too.
When you install Unity using the Unity Hub, it also installs the Unity Editor, which is the main tool that you will use to create and develop your game. The Unity Editor is software with a wide range of features for creating and editing game assets, such as a visual scene editor, a built-in physics engine, and support for scripting in C# and UnityScript. Although, I will only be using c# in this series.
Another great thing about Unity is the community around it, which, I believe, is one of the largest and most active in game development. There are a lot of resources available online for learning Unity, such as tutorials, forums, and documentation. The Unity community also shares a lot of assets, such as 3D models, textures, and scripts that you can use in your games through their Asset Store. Some of them are even free!
Code editor ๐ง
In my experience picking a code editor is a personal decision. There are a lot of them and they all have reasons to pick and not to pick them. It is comparable to picking a car. Are you going for features? Are you making an economic choice? Are you going for looks? Brand? So many questions, but eventually, you will just have to make a test ride and see what works for you.
For me, I will stick to what you can consider the "default": Microsoft Visual Studio. It is an IDE (Integrated Development Environment) developed by Microsoft. The community version is free to use for the use-case I am going to use it for and it is a great software that has everything I need. But other code editors work well with Unity too.
One popular alternative to Microsoft Visual Studio is Visual Studio Code. This is a lightweight code editor with a large ecosystem of plugins and extensions, making it highly customisable. It is also open-source and cross-platform, making it a great choice for developers who work on different operating systems.
Another alternative is MonoDevelop, which is similar to Visual Studio in terms of functionality and is often used by Unity developers on macOS and Linux.
Rider is another alternative developed by JetBrains that is specifically built for Unity developers on Windows, macOS and Linux. It offers many features that make it easier to work with Unity such as Unity-specific code completion and debugging, support for Unity its scripting languages, and more. I use RubyMine (Ruby IDE by Jetbrains) at my job and they make great software, but the price might be steep for beginners.
It is worth mentioning that Unity also has a built-in code editor, which is functional, but less feature-rich than the alternatives. It is a great option for beginners like us, who are just starting and do not have much experience with code editors. However, I would still make the case to start with Microsoft Visual Studio instead. Knowing your way around an IDE instead of a built-in code editor can only help you in the long run right?
Once you have chosen your code editor, you will need to set it up to work with Unity. This typically involves installing Unity-specific plugins or extensions, configuring the editor to use the correct version of the Unity scripting runtime, and setting up any other necessary configurations. I could write an entire article about it, but Unity has already provided a guide in its documentation on how to set up different code editors with Unity. So I will refer to that instead.
In summary, Microsoft Visual Studio is a great option for those who are looking for a feature-rich, integrated development environment, but other options like Visual Studio Code, MonoDevelop and Rider are also popular choices among Unity developers, and the aforementioned built-in editor is a good option for beginners. It is all about personal preferences, so try out different editors and see what works best for you. Do not let an article decide for you ๐.
Version control ๐ป
As you work on your game, it is important to keep track of changes. This is true when collaborating with others, but also when riding solo. Understanding how to use version control tools like Git is a must-have skill for any (aspiring) developer, and it will help you to keep your project safe and organised and allows easier collaboration with others.
I have experience using Git for version control and it is a popular choice among developers. However, Unity projects have certain files that are not compatible with Git. To overcome these limitations, I have found that some people choose to use alternative version control systems, such as Plastic SCM. Plastic SCM is a version control system specifically designed for Unity projects, and it includes features that make it easy to collaborate on Unity projects and keep track of changes.
I have not worked with Plastic SCM before, but I had a look at their product and it seems like the right choice for this project. It is free up to a certain usage, but my guesstimation is that it will be enough for a small project like this. And even if I have to upgrade to a paid plan, it seems affordable.
It is pretty straightforward to set up. You register, download the app and create a repository. I am not sure how it will work when I have to push actual changes to the cloud, but we will figure that out once we create the project.
Available resources ๐
Unity has a large community of developers that share resources, tutorials, and scripts. You can use these resources to learn more about Unity and to help you develop your game.
Additionally, the Unity website has loads of documentation and tutorials, including the Unity Manual and the Unity Scripting Reference, which I know I will probably be using a lot throughout this series. Quick tip, make sure to select the right version in the top left for both of these, to prevent some future headaches ๐.
Furthermore, there are many online forums, such as Unity Answers and the Unity Forum, where you can ask questions and get help from other Unity developers.
Finally, as mentioned in the first section of the article, there is the Unity Asset Store which is an online marketplace where you can buy or download assets. I hope I can use some of the free assets as placeholders to speed up the production and get a demo ready as soon as possible. I believe that gameplay in these beginning stages is more important than visuals, so once the game is fun, you can make it look prettyโจ.
Starting a new project ๐
Congratulations! You have set up everything to get started. Now it is time to create a new project. Open up the Unity Hub, and make sure you are on the projects page. Click "New project", select the settings that apply to you (I am going with 3D), give it a name and a folder, double-check the editor version at the top and click "Create project".
Once the project is created, Unity Editor will boot (It can take a while the first time) and all we have left to do is set up Plastic.
Simply launch Plastic, click "Create new repository", make sure the location matches where you created your project, and click "Create".
Now we are all set up and ready to build cool shit. And that is exactly what we will do in the next article!