Although we at Setapp have been using Unity for developing non-game apps for some time now, there’s still a lot of dispute online (& offline) on whether Unity is a good-fit for non-game development. Some advocate it, while others find using it for non-game development quite bizarre.
Before handing out my verdict on the ‘Unity for non-game paradox’, here’s a short intro to Unity for those who aren’t familiar with the technology.
So What’s Unity then?
In Unity’s own words...
Unity is a platform for creating beautiful and engaging 2D, 3D, VR, and AR games and apps. A powerful graphics engine and full-featured editor enable you to realize your creative vision fast, and deliver your content to virtually any media or device. (source: Unity)
Let me break that down for you...
Unity is a cross-platform (single code-base for multiple platforms) game engine developed by Unity Technologies in 2005. That’s right 13 years on the market. It’s primarily used to create 2D, 3D, VR and AR games, apps and experiences. It’s free to use for beginners, but once you pass a certain threshold (in revenue), you’re not allowed to use the personal plan. The paid plans start at $25/month.
I won’t bore you with more theory. You can read more on Unity’s official website including its various features and uses.
Now let’s get back to the argument: Unity for non-game development.
So after digging into various forums online and asking our 3D developers here at Setapp, I can assure you that Unity is definitely a viable platform for non-game applications. But there’s a catch!
Unity is great if you’re developing a 3D app.
Unity thrives in 3D environments. So, if your app requires 3D physics and calculations like in a simulation for example, then Unity is a good choice. Unity is also great for creating AR and VR apps and experiences!
In fact, Unity is being successfully used a lot recently to build immersive experiences in industries such as education, architecture and industrial training. In a separate blog post, I've shared some worth-mentioning non-game projects developed in Unity. Check them out!
So where is Unity not a good fit?
Now I'm not saying Unity wouldn’t do the job but it’s better to leave Unity aside here.
Unity's UI system is aimed at simpler interfaces found in games and media-centered applications. Some more sophisticated widgets and components that are present in native frameworks may be missing, and you'll need to write your own. For instance, integrating iOS's HealthKit app with Unity can be cumbersome.
Although, some native features are integrated with Unity however it's not always the case.
Apart from that, you shouldn’t use Unity for native 2D apps because of the following reasons:
- The whole engine is built into the application. Meaning, the build size (size of the output application file) is larger compared to the native apps.
- The battery usage is crazy! It’ll drain the battery like a game, even if you make some basic UI components.
- A UI-heavy application would suffer in terms of performance and resources. When you’re going for a UI heavy app, then you should consider going for a native app.
Having said that, Unity is evolving and recent releases have resolved some of the issues associated with non-game development.
If you’d like to have a multimedia-rich, interactive app, then go with Unity or other similar platforms. If you're looking to achieve a more native feel for your app, then go for native oriented platforms.
With demand for VR and AR applications at an all-time high, Unity should be your go-to platform. Whereas, if you’re developing a Native 2D app - stay away from Unity, at least for now.
I hope this article gave you a general idea of the potential of Unity as a non-game development platform. If you'd like to discover some great non-game apps developed in Unity, then check out my blog post: AR, VR and more – 6 Non-game apps developed in Unity.
Let us know in the comments below if you've any questions on Unity or 3D app development. Our experienced 3D app team will be happy to answer them!