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 on this page.
Looking across the Rezzed zone at EGX, Tea for Two co-founder Garry Williams jokes that 99% of the indie developers exhibiting on the show floor probably use 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: as of September 2019, 52% of the top 1,000 mobile games were powered by Unity, as well as 60% of all AR/VR content, according to the company. Unity game players are located in 195 countries -- which is literally every single country on the planet.
The engine, which supports over 25 platforms from the obvious iOS to PS4, to the less visible Windows Mixed Reality or Android TV, has been installed more than 33 billion times in just the last 12 months. The real-time development platform allows for the creation of 2D, 3D, VR and AR content and has reached 3 billion devices in the last 12 months.
And there's a reason for Unity's popularity, especially for smaller-scale projects: it's free. The engine's Personal license 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 funding derived from the use Unity in the last 12 months.
Meanwhile, pricing for the Business plans changed at the start of 2020. Business licences now start at $40 a month for the Plus version, for which you're eligible if you haven't earned or received more than $200,000 in revenue or funding derived from using Unity in the last 12 months.
Then comes the Pro version, which doesn't have any limit on revenue or funding, but sets developers back $150 per month. It gives access to added support and customer service, as well as options for source code access.
All the plans described above are annual plans and you can learn more about them on Unity's website.
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 immediately mentioned by No More Robots' development lead Dan Foster, who's been overseeing and supporting the development of the publishing label's games for over a year (all made in Unity bar Hypnospace Outlaw, which was built with Construct 2), 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, 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's Williams started using Unity in 2008. A programmer by profession, he worked at Ubisoft and EA before his recent 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."
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.
"Bolt has visual, node-based graphs that both programmers and non-programmers can use to design final logic or to quickly create prototypes," Unity Technologies said in a statement. "Bolt also features an API that programmers can use for more advanced tasks, or to create custom nodes that can be used by other team members."
Unity initially acquired the Bolt plugin from publisher Ludiq in November 2019. It's currently working on the next version of the tool, Bolt 2, which should "bring improvements in capability, scalability, performance, and ease of use," Unity Technologies said. Bolt 2 will also be included for free in all Unity plans once it releases.
You can learn more about Bolt on its Asset Store page.
- 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.
"If you want to learn programming, and just want to get something done, Unity is a good place to start"
Stan Loiseaux, Pajama Llama
"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 25 different platforms, which makes for a very valuable feature.
Gerges emphasises the simplicity of this portability process, with Yooka-Laylee being available on PS4, Xbox One, Switch, PC, macOS and Linux.
"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.
- 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."
Around 1.5 million developers visit the Asset Store each month to browse the 56,000 packages available -- that represents over one million individuals assets available for creators to use.
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 has put a lot of effort into making the engine modular and extendable"
Trevor Blom, Vertigo Games
- 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," he 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."
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 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
"Unity promotes bad code practices, because it was meant for smaller projects"
Garry Williams, Tea for Two
"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."
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."
- Learn how to build your own tools
"Learn how to build your own tools using Unity"
Dan Foster, No More Robots
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, Xbox, PS4. 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
The good news if you're considering Unity as your game engine is that its community is big enough that it's likely most of your issues are only a Google search away from a solution. 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."
Our in-depth guides on all the major game engines can help you find the best technology for your game -- this page will be regularly updated to add new engines to the list. If you're eyeing the most popular game engines, you can jump to our Unreal guide right away, or read more about GameMaker here.