For developers just starting in the industry, the task of choosing the best game engine can be daunting. Here, we’ll try to address many of the issues concerning one of the most popular game engines, Unity, so you can see if it’s the right game engine for your project.
You can read our other in-depth guides on all the major game engines from this page.
Anyone who has been to a game expo in the past decade will be able to tell you that a huge percentage of indie developers showing off their projects have been using Unity.
While it’s hard to back up this statement with cold hard facts, it is without a doubt the most common belief when it comes to Unity: the engine is known for being the go-to development environment for indie and mobile games.
Some data does partly support that image: in 2022, 70% of the top 1,000 mobile games were powered by Unity, as well as more than 60% of all AR and VR content, at least according to the company itself.
The engine maker even goes as far as to say that 50% of games across devices use its tech. Unity game players are located in 195 countries – which is literally every single country on the planet.
Unity Editor boasted around 1.3 million monthly active users as of March 2023, the company claims. Unity also says that 3,300 new projects were started on average every single day in 2022.
Apps using the engine, which supports over 17 platforms from the obvious iOS to PS5, to the less visible Microsoft HoloLens or Android TV, were downloaded over four billion times each month during 2022.
Runtime, Unity’s real-time development platform, allows for content creation in 2D and 3D planes, as well as AR and VR content. The company says it is active on over four billion devices as of March 2023.
And there’s a reason for Unity’s popularity, especially for smaller-scale projects: it’s free. The engine’s Personal licence allows individuals to create commercial games free of charge, on the condition that they haven’t earned or received more than $100,000 in revenue or funds raised in the last 12 months – this is set to increase to $200,000 in 2024.
Personal use of the engine was due to change drastically, alongside all Unity’s professional licences, earlier this year. In September, Unity initially announced it’d be charging a fee for each time a game made in Unity is installed. This led to an industry-wide protest, with over 500 developers switching off ads and monetisation, trade bodies getting involved, and more. Unity finally backtracked after ten days, unveiling its new licences, and a tweaked version of the runtime fee policy.
Under the new terms, Unity now offers three options for professionals (you can compare plans on this page), having removed its Business tier.
The Enterprise licence, targeting big companies, is the one that gives access to the most tools, but you’ll need to get in touch with Unity directly to get a quote on pricing. Unity Industry, meanwhile, mostly targets developers outside of the games space, in the automotive sector for instance.
Unity’s Pro version starts at $150/month per seat, and doesn’t have any limit on revenue or funding. It gives access to added support and customer service, as well as options for source code access. That’s on top of the ability to use Unity Cloud.
From Unity’s 2024 versions onwards, Unity Pro and Enterprise users who have games that make more than $1 million in a 12-month trailing period and reached one million downloads will be subject to a fee which will be equal to either 2.5% of their revenue or a “calculated amount based on the number of new people engaging with your game each month,” as per Unity’s open letter following the runtime fee debacle.
This will be based on self-reported numbers, which developers can estimate with Unity’s online calculator.
If you’re still lost after the recent changes, you can also read a summary of Unity’s pricing changes on this page.
Unity also recently announced that it’s reintroducing its previously abandoned numbering system, with Unity 2023 LTS renamed Unity 6 ahead of its launch next year.
Unity 6 will also expand on the engine’s suite of AI tools and services. We spoke to the company’s Marc Whitten last week about how Unity is aiming for “responsibly sourced” AI tools as it moves forward.
What are the advantages of Unity?
Unity has a broad reach that makes recruitment easier
Unity’s reach is one of its main strengths, as mentioned by No More Robots’ development director Dan Foster, who’s been overseeing and supporting the development of the publishing label’s games since 2018 following six years as a programmer at Team17.
“A lot of people already know Unity which is a very convenient thing if you ever get contractors,” he starts explaining. “You don’t want to have to learn a new engine. The same can be said about Unreal but, especially in indie dev, a lot more people tend to use Unity. Because it’s got a big footing in mobile dev, maybe that helped it get its footing into the indie scene.
“Now so many people use it, the bar to employing someone who knows how to use it is so much lower, which is really valuable if you want things done quickly and cheaply.”
Simon Gerges, head of software software director at Playtonic, where both Yooka-Laylee entries were built on Unity, adds that the engine is used at many levels of education, which is also what makes the hiring process very straightforward.
Unity is a good engine for beginners
With Unity being free of charge, it makes for a very valuable tool for students and aspiring developers.
Tea for Two co-founder Garry Williams started using Unity in 2008. A programmer by profession, he worked at Ubisoft and EA before his shift to indie development with ski resort sim Snowtopia. He agrees that Unity is a good engine for beginners, saying it handles all the added complexity of doing something in 3D.
“If you want to start to learn programming, and you just want to get something done, Unity is a good place to start,” he says. “When you need to do heavy level designing it’s good for you, because you have all the tools in there.”
FuturLab’s head of technology Peter Hansen agrees, saying that the fact Unity is written in C# rather than C++ certainly helps make starting with the engine easy.
“I think it’s a very approachable engine in general,” he says. “C# is a more structured language in my personal opinion than C++. It’s more mature. C++ has such huge baggage it has to carry – and that can cause problems.”
Unity’s ease of use for beginners went a step further when the firm announced in July 2020 that visual scripting tool Bolt was now going to be included in all Unity plans going forward, at no additional cost. Bolt allows developers to implement logic in their projects without having to know how to code.
With the release of Unity 2021, Bolt was rebranded to Unity Visual Scripting and is included with the engine as default. You can read more about Unity Visual Scripting here.
Unity is fast and agile
Unity’s ability to get things done very quickly is another valuable strength – it allows for very fast iteration and can be extremely useful when you brainstorm for a new game concept.
Stan Loiseaux, artist and co-founder at Pajama Llama, developer of Flotsam – awarded the Best Unity Game prize at Gamescom 2019 – says that’s the very reason his team picked it.
“We chose Unity because it’s a fast engine that you can make a game in pretty quickly, without even coding or with very simple coding,” he says. “We wanted to prototype a few games first and then started making Flotsam after that.”
Unity makes portability easier
Williams adds that, on top of being fast at development, Unity is also fast at porting, with your game being essentially ready to go on all the different platforms in one click. It’s worth repeating here that Unity is available for over 17 different platforms, which makes for a very valuable feature.
Gerges emphasises the simplicity of this portability process, with Yooka-Laylee launching on PS4, Xbox One, Switch, PC, macOS and Linux back in 2017.
“For a company like us focusing on multiplatform games, the ease at which builds can be deployed and iterated from a lead format makes our lives very much easier,” he says.
FuturLab’s Hansen adds that to get a Unity game running on a new platform usually only takes a few hours or days.
“It’s really good,” he continues. “Not having to go through the hurdles of getting it to run on a new platform is just a fantastic starting point.”
Unity has a large and varied asset store
Playtonic studio director Gavin Price also praises Unity’s “well-stocked Asset Store for further tools, very well documented and supported with a great dev community all helping figure things out.”
The Unity Asset Store boasts over 84,000 packages from more than 14,000 publishers, meaning that developers have a huge variety of tools and items that can be used to help build their games.
However, Loiseaux warns that some assets may become unavailable over time, so you should avoid using too many assets that influence the game in a big way as it can lead to some serious delays in your dev journey.
Unity allows you to build your own tools
Unity’s Asset Store not only makes it easy for developers to buy tools, but the engine also makes it really simple to build tools.
“This is something that is really, really useful in making games, because you want to cut down on how hard it is, all the time to build stuff,” Foster says.
“If you want to make a small game, quickly, Unity is a really good engine for it. It will render stuff in its own way and maybe you’ll use certain plugins, but you won’t go too low level. It provides you with lots of tools but you can’t change the fundamental parts of it. It gives you enough flexibility to do a lot of things but you can’t drill down.”
Unity is good for VR developers
All the qualities highlighted by the interviewees make Unity an ideal engine for virtual reality, points out Trevor Blom, lead tech at Arizona Sunshine developer Vertigo Games. It is worth noting that Unreal is also an engine that’s been praised for its VR abilities.
“The initial reason we chose Unity is that we’ve had a lot of experience with the engine from previous work,” Blom says. “It became obvious quickly that VR is important for Unity as they have been, and still are, on the cutting edge of the technology. New APIs, features and paradigms are implemented fast as they work together with VR powerhouses.
“An added extra is that Unity is very popular for indies and small teams, which is exactly what most VR development teams are. Recently they have put a lot of effort into making the engine modular and extendable, which fits our growing team perfectly.”
When the team at FuturLab first broached the potential for a virtual reality version of PowerWash Simulator, the team at Meta recommended Unity as the best engine for this tech.
“We asked the main folks at Meta how we should approach VR and [whether] we should make it with Unreal or Unity,” Hansen remembers. “They were all like: ‘We really think Unity is best picked for this, given the kind of game you are making and the platforms you are targeting’.”
Unity benefits from a long-running and helpful community
Compared to other popular game engines, there is a wealth of information out there that can help developers with issues they are having with Unity.
“I think the documentation, the discussion, the forums and all these things [surrounding Unity], they tend to be a lot more active probably due to the volume of people using it,” FuturLab’s Hansen explains.
“I’ve spoken to some people who work with Unreal and they say over and over again that if you have a problem with Unreal, and you go to a forum only to find a post from three years ago with one comment and no one from Epic responded. It’s still a problem but no one talks about it. That doesn’t usually happen as frequently with Unity.”
Unity as a company also provides a great deal of resources that can help people looking to learn how to use its engine.
“Unity has lots of really cool and really useful tutorial videos that they’ve made themselves,” Hansen continues. “They’re very well produced.”
For the sake of fairness, it’s worth mentioning that Unreal users have been praising the engine’s official and community-based support as part of our Academy guide, so there are always two sides to one story.
What are the disadvantages of Unity?
Unity is not suitable for big projects
Not being able to drill down too deep is both a strength and a weakness for Unity. On one hand it allows for a quick process, well adapted to beginners, on the other hand that means Unity is probably not what you’re looking for if you’re hoping to make anything very bespoke, or on a large scale.
You might want to reconsider your choice if you’re aiming to do a AAA game, or a large landscape with lots of things on screen at once, or networked games.
“Unity has a lot of AAA facets but I don’t think it’s quite there yet in terms of open-world stuff,” says Foster. “[Unity Technologies is] rebuilding that networking model at the moment so that might not be true in the future, but for now you bump into that wall, you can’t go deep enough to do heavy optimisations or you have to do a lot of fancy tricks as Unity is not giving you enough room to change what you need to. That’s where you hit the inflexibility of Unity.”
Unity promotes bad code practices
For Tea for Two’s Williams, the problem lies in the fact that Unity wasn’t necessarily meant to become a game engine; it was originally meant for web development and JavaScript.
“A few things are not really well adapted to C# and game development,” he says. “I switched from MonoGame to Unity but it wasn’t an easy decision for me because I don’t really like Unity. It promotes bad code practices, because it was meant for smaller projects.
“It was meant to just write a few small behaviours and you added objects and you had something dynamic. But if you just do only that, you miss out on separating data from code, for instance, and everything starts to be intertwined. So not everything is good in the long term. And all that is inherited from the early stage of Unity.”
Interestingly, that’s an issue that British developer Cliff Harris touched upon during a talk at GDC a few years back, entitled “Fuck Unity, and the horse it rode in on.”
Unity is not as artist-friendly as Unreal out of the box
Down in Belgium, where Pajama Llama is based, it’s the coders who chose Unity to build Flotsam. And as an artist, Loiseaux believes Unreal would have been nicer to start with.
“You can do pretty much the same thing in Unity I would say, but out of the box [Unreal] is a lot better,” he says. “Things like lighting and shaders, you have a lot more options. I think it’s a bit more artist-friendly. With Unity you can make the same things but you just have to put in a bit more effort to get to the point where you would be with Unreal.”
Unity’s UI features are lacking
Loiseaux is also in charge of doing all the UI on Flotsam, and recognises this field as an area of improvement for Unity.
“It’s okay, as an artist I can use it, but it’s still lacking a little bit I think,” he says. “Sometimes it’s hard to find specific UI features.”
Unity sometimes releases updates before they are ready
Though the company has broadly addressed this issue, FuturLab’s Hansen says that in recent memory, Unity has released updates to its engine that introduce instability or were not ready for production.
“Probably most, if not all Unity developers, would probably point out some mixed messages,” Hansen says.
“There’s instability we get sometimes. I will say that Unity has become much better at this over the last few years. At one point, Unity was, for example, pushing new features out before they [were] actually ready for production. A recent one we actually dealt with is ‘addressables’, which is a way to pack content and group reference assets in a slightly different, more flexible, way.
“It was a big improvement over the previous system, so [it] was very welcome. However, as soon as you started pushing the boundaries on the volume of assets you were dealing with or the number of platforms you are supporting [or] you started to delve deeper into specific scenarios like this – a project with lots of assets with very specific requirements – then it started to show its limitations.
“It clearly wasn’t tested to that degree before being marked as production ready. It happened a few times in the past. Addressables effectively changed how we address anything in a project but that wasn’t tied to Unity’s own UI, its font solution or the networking solution they use. So you had to kind of retrofit it and make adjustments because like one system has evolved but the others haven’t caught up yet.”
Unity’s popularity might be in decline
Despite being one of the world’s most popular game engines for a long time, FuturLab’s Hansen has noticed that Unity has become slightly less popular in recent years.
From what he has observed, this has been due to a combination of the rise of Unreal as being something developers want to work on long term, as well as some of the decisions made by Unity’s upper management. (It’s worth noting that our interview with Hansen took place before the runtime fee debacle that ultimately led to the resignation of CEO John Riccitiello)
“I think it’s becoming less popular,” Hansen says. “Something we’ve started to notice most recently is, for example, we’ve been growing and hiring a lot of people. We’ve had a few situations where people would drop off or clearly feel less motivated when we mention that we are making games in Unity. We feel like this is definitely affecting recruitment because I think, especially for people who have less experience and are just starting out in the industry, if they look ahead five, ten or 15 years into the future, Unreal seems to be a more solid bet at this moment.”
Hansen is clear that he is still happy with Unity, but this certainly isn’t a universal feeling based on the buzz on social media and within industry circles.
“From my point of view, if you look specifically at the technology and the solutions provided, I really trust Unity for upcoming years,” Hansen says. “There’s so much noise, especially in social media about upper management decisions and what’s going on there, layoffs and whatnot. We don’t yet know how much that really affects the quality and stability of the engine in upcoming years. But it definitely doesn’t paint a good picture of it. It’s a shame. Unity is definitely becoming less popular.”
Advice for new Unity users
Just make something
For aspiring Unity developers, students or beginners, most of the advice we have gathered revolves around one simple recommendation that goes beyond this specific engine: just build something, even if it’s just a very simple game. There’s real value in completing even a small project from start to finish.
“If you’re just beginning game development, you should just do things and make them work, anyway you can,” Williams says. “Then if you do that, later you should expand your horizons and try to learn things outside of game development, to go beyond and see what more you can do than the usual Unity way.”
However, Playtonic’s Price believes you shouldn’t get in there without a structure.
“Set yourself some goals and benchmarking tests and try it,” he advises. “Don’t try to make a decision off thoughts and conjecture alone.”
For FuturLab’s Hansen, it’s about starting small and slowly learning how much fun making games can be.
“Any engine can be a bit daunting at first if you have no experience; just don’t be blocked by that,” he says. “The most interesting bit about using these mature engines – and Unity does a good job of this – is that it’s very rewarding. It might feel daunting; you won’t even know where to click, but you can very easily start doing simple things like moving a block around. Just start small and that will be already rewarding. If you try already to just jump in and try to make a massive multiplayer shooter game, it’s not going to work.
“People will be surprised by how gratifying it is to just make small things like pressing a key and seeing an object moving. You hit another object and maybe a ball rolls over. Maybe if the ball rolls into a goal, you score one point. Doing small things will give you confidence, knowledge and motivation to move on.”
Learn how to build your own tools
Once you have completed a few small projects, you should go beyond the basics and explore other features.
“Learn how to build your own tools using Unity,” Foster says. “It’s all in C#. Learn what your code does when it comes to generating garbage. The garbage collector is a demon which will slow your game down when you go to put things on mobile and onto Switch, [and so on]. And if you write code that doesn’t generate garbage, your code will run fast and you don’t have to worry about it again.”
Reach out to the community
As mentioned by FuturLab’s Hansen, the Unity community is massive. There’s thousands of tutorials out there for any level of development from beginner to heavy optimisation, so you should absolutely rely on that community.
Gerges points out that games are “funny beasts” and that he’s not “worked on one yet that didn’t cause proper head-scratching moments.” And we’re talking about someone who has worked in games for 15 years here. He continues: “We’ve benefitted numerous times from community and support direct from Unity to help overcome hurdles and tricky situations.”
Price concludes by mentioning Unity’s proven track record of fantastic games across many platforms and genres already out there.
“As a developer no matter what engine you use you have to be creative with how you use it to achieve a vision,” he says. “Unity can make any game your imagination wants to create.”