When it comes to game engines they are certainly not all created equal. At the same time, I had a lot of difficulty understanding which one I should be using. They’re just so many options available out there.
My favorite option is Unity. Unity is great for beginners but can be used to create something really custom and high-quality as well. The easy entry makes it great for those new to game development, but its high ceiling of what you can do with it makes it a common choice for professionals who have been creating games for years.
One of my biggest obstacles early on was the issue of wanting to learn, but feeling like many of the beginner-friendly game engines was tailored towards low-quality video games. I was not going to be able to produce the type of game I wanted to in many of the engines that were available.
Reasons to Choose Unity
1: Training Resources
Especially early on, training is going to be extremely important. If you are coming into game development with no programming experience or asset creation experience, it’s going to initially feel pretty daunting. As you are probably well aware, there are a lot of pieces to game development.
For that reason alone, you want to find some good training resources. YouTube is an extremely viable option for Unity learning. In fact, I am not embarrassed to say that most of what I know was learned through either YouTube or Unity’s tutorials that they have released.
About a year ago is when I became aware of the “Create With Code” series. It is one of my go-to series for new Unity developers in my program area. I was in a game jam when someone suggested them to me. I went and took a look. I was very pleasantly surprised.
Students with very limited programming knowledge typically come away from the tutorial series with a decent foundation to start on a project. It is fairly lengthy but lets you skip over the asset creation for a period of time and learn just about the development side. This is nice for those that just need to focus on one aspect at a time, which I definitely would recommend.
It is not uncommon for me to come across situations that I have never seen before. In game jams, I am often doing things that I have never tackled before. When this happens, you definitely should know how to use a search engine.
The great news is that Unity has a very large community. It is uncommon to not be able to find someone talking about a solution to your problem. As well, there is almost always a video tutorial available on some of the most common areas.
In addition to finding help when you need it for a problem, the community is great for providing help in terms of assets and resources too. We have used quite a few assets from the Unity asset store, developed by the community. Things like Gaia, which helped us to procedurally generate an outdoor world. Or, the asset PlayMaker, which has now been replaced by Bolt, a visual scripting editor. This made coding the basic functions of a game easier. You would be surprised at what you can find to help speed up your development process.
The truth about game development is there are a lot of pieces of software to be used throughout the process. One thing I liked most is that Unity, being one of the big boys in the industry, is often very compatible with other software used in the industry.
For example, Maya has a plugin that you can use to send models directly to Unity. The communication between Substance Painter and Unity is fairly flawless too. They have a pre-built configuration for exporting your textures, although I would likely make some tweaks on it based on what rendering pipeline you choose. It just seems that I have had very few issues getting any of the software to work well with it.
Even software like Adobe Fuse, which has been around a while, plays pretty nice with Unity. We have been able to export Character Rigs out of Fuse and directly into Maya and apply the animations easily. There are numerous resources on how to do this available on YouTube.
I think when you start getting into some of those less common game engines, you will find that the other software will need to be tweaked to make it work in many cases. Of course, Unreal has many of the same options as they are the two biggest players in the game engine world right now.
4: Race for Superiority
This might be a disadvantage when you look at how many updates Unity pushes out, but in the long run I would much rather have that than no updates at all. Unreal Engine and Unity really are fighting to be the top dog. It makes our lives much better as developers! They are constantly pushing updates that are significant upgrades.
One of the more recent ones was incorporation of Bolt into Unity. One of the reasons you might commonly hear for Unreal being better was because it had Blueprints, a visual scripting editor. I think Unity felt left out, so now Unity has Bolt, their own visual scripting editor.
Why does this matter? The reason it matters is because as developers I want to always have access to the latest technologies to help make my development process easier. I think as we see new advancements, I am confident that if Unity is not the first to incorporate it, they will likely be the second, just behind Unreal.
This battle between the two engines is a good promise that I think we will continue to see significant upgrades that really make a difference. For the longest, when there weren’t very many options to choose from, I don’t think we could say that. There would be long stretches of time before any upgrades were made, they were often tools created by development studios themselves, and the independent game developer likely didn’t have access.
Things have changed. Unlike any other time in the history of game development, the independent game developer is on a more level playing field with the big studios than ever.
Early on Unity was known for its versatility, and it still is. I have students who want to create all sorts of games. Although we are pretty well focused on the 3D pipeline, at times students have created smaller 2D projects.
Unity is capable of releasing your project on almost any platform out there. You want to go to mobile? Great! We are doing that right now in my program. Do you want to go to Xbox or PS4? That’s an option too!
Releasing on multiple platforms seems like a difficult goal initially. There certainly is a need to be able to make that transition easier. There is definitely still some work for being able to create a game on several platforms, but there is no doubt that Unity is a great option for making that process considerably easier.
6: Job Opportunity
I’m not trying to be mean, but outside of Unreal and Unity, I am not aware of any other game engines appealing to other industries. Being a teacher, I am heavily focused on students getting jobs.
I cannot think of a single instance in which I have seen an industry such as automotive, architectural rendering, training, etc. suggest anything outside of Unreal or Unity.
I would think that if you are getting into this type of industry, which can be volatile at times, you should probably spend some time learning software that will open up a lot more opportunities for you. You want to develop a skill set that might land a job in some other sectors than just video games.
What is the biggest disadvantage of using Unity?
I believe the biggest obstacle in our process of developing in Unity is allowing multiple people to work on a single project. This is a frustration for students each year, and probably where I spend a good portion of my time trying to help students.
Students will accidentally overwrite one another’s work. Their code isn’t optimized to work with one another. This is something we train on, but still, the process seems fairly difficult. We have resorted to using other backup options such as Perforce to keep students’ work organized and allow them to send files back and forth a little easier.
The Collaboration system in Unity works okay, but we had some issues with that pretty early on. It is suitable for small projects, but the more people you add the less value it seems to bring. Also, there is a size limit on it. In our case, we seem to have fairly large projects. We hit that limit pretty early on in the school year.
What advantages does Unreal have over Unity?
I wouldn’t be doing this article justice without talking about some of the common arguments for Unreal over Unity. I think the biggest one is that Unreal is graphically better out of the box.
It takes a bit more work for the textures that you create in Substance Painter to be accurate in Unity. You have to toy around with the lighting quite a bit. I think the default settings in Unreal just makes things look slightly better. The default lighting setup in Unreal just seems to be geared towards the high-end quality games.
Unreal also has been doing visual scripting longer. As noted above, Bolt is relatively new. Blueprints has been around a good while for Unreal Engine. I would imagine they have worked out many of the bugs that we might still see in Unity. Bolt is so new, I haven’t even messed with it yet.
What advantages does Godot have over Unity?
Godot has really made a strong push in the indie scene over the last couple of years. I like Godot. I watched a pretty long Twitch stream during Ludum Dare last year where someone was using Godot. I just wanted to see more about the development cycle.
What I saw pretty impressive. The 3D models were working well. The programming seemed relatively straight forward and well documented. I think it would be a pretty good option for a beginner as well.
Two of the most common arguments for Godot: 1: It is open-source. 2: It is free
As for the open-source argument, I think this viable only if you are really doing something unique and different. I cannot think of an instance where I have wanted to create something in Unity and it simply wasn’t able to do so. Perhaps it is my knowledgebase, but I just can’t really see a need for source code access for most projects.
As for the second argument, Godot is free, I believe this is a solid argument. The pricing model for both Unity and Unreal really lends itself to letting small companies be successful, but larger ones paying a significant amount when they become successful. As a small game developer, I don’t have much of an issue with this model. I can see though why larger companies, who might be being a significant percentage on their sales would be a little frustrated with the model. Of course, there are some upfront fees you can pay if you wish to avoid that.
It is obvious to me that the pricing model works great in the short term or for really small studios. Unity and Unreal are probably a little tougher to work with as the sales for your game increase. Godot is supposed to be free, for life, regardless of how much money you make.
Unreal Engine and Godot are great options for a lot of developers out there. If you approached me and said that you were building a game on either of those engines, or even if you wanted to argue with me and say that they were better, I probably wouldn’t argue with you.
That being said, I still feel like Unity is a great resource for game developers. I particularly find it great for those jumping into development for the first time. I believe the learning resources out there, both 3rd party and Unity themselves, are really good. They lay a good foundation to being able to build more advanced projects.
I would encourage you to reach out to me if you are little bit unsure on which direction you want to go. If you have any questions, I would love to speak with you.
Did I miss something? If you a disagree with me, I would love to hear your argument, and I may even change my mind!