What is an interactive application? It is a type of a usual web or mobile app with interactive features that allows users to interact with content via gamification, VR/AR, and visualization.
In general, if some company provides an interactive mobile or web application to its customers, it is a great way to increase its market accessibility. Though it forms a question of what technology stack is behind this solution.
Most interactive apps require some 3D or 2D graphics, animation, effects, or other interactivity. All this makes Unity the best fit.
Of course, Unity has competitors. We’re often asked, “Why Unity and not Unreal?”. Recently another question became popular: “Have you tried Godot?”.
The answer is yes, we at Visartech are aware of the other engines: Unreal, Godot, CryEngine, Amazon Lumberyard. We’re keeping an eye on them as each of them is progressing. However, they all have drawbacks that are crucial for our business.
Unity is taking the lead in the niche. Although let’s check what others have to offer.
The biggest benefit of Unreal is its graphics. The target for this engine is AAA games. So it’s ready for AAA graphics out of the box. Also, it has built-in tools for multiplayer which is convenient for making such games as Fortnite (that has been developed with Unreal Engine).
However, “the best for AAA games” doesn’t mean the best for interactive apps or games in general.
Here’s the list of Unreal limitations:
Godot is a free and open-source 3D/2D game engine that evolves really quickly. It already supports 2D and 3D, has a convenient editor that can compete with the Unity editor, supports the physically-based rendering, etc.
Godot is literally breathing down the Unity’s neck.
However, Godot still has flaws as it is:
CryEngine is a popular AAA game engine used for games like Crysis, FarCry, etc. Amazon Lumberyard is an Amazon’s AAA engine based on CryEngine. Both are pretty solid for AAA game development, same as Unreal Engine.
However, the same as Unreal Engine, they support fewer platforms and tools, have poor support for AR, and are more complex for development.
Unity is the 3D engine that we currently use for interactive apps, game development, VR, and AR apps in 90% of cases.
Why Unity? Why don’t we just make a native iOS, Android, or Windows app, etc.? Here’s the answer:
We can create an app once and publish it for any of the platforms we need. With a “native” approach we would have to code separately for each platform thus increasing the cost and timeline drastically.
Unity has the most advanced and convenient tools on the market for both 3D and 2D graphics, animation, effects, etc. Also, it has a high-quality rendering. It lets us concentrate on designing and developing the best possible user experience instead of building low-level tools for graphics and animation. Which results in cost and time reduction.
There are other benefits, as Unity is:
Overall, Unity is the best choice for an interactive app, game, and VR/AR development, as:
We are sure that with Unity we can complete any feature requests, even during development.
Unity supports the biggest amount of platforms, comparing to other game engines. However, there’s one platform where it is not that great – the web. The Unity WebGL builds are way too large, so the web page loading time may take about 30 seconds or even more.
Additionally, interactive web experiences created with this engine don’t work in mobile browsers. It makes it impossible to develop games for messengers in Unity at the moment. (There’s a “Project Tiny” package from Unity that should enable this, but it’s in the preview stage yet and not mature enough. No support for C# language, only 2D is supported, etc.)
Visartech is not solely a “Unity developers company”. To achieve the best possible user experience we select the right tools. Waiting for 30 seconds while staring at a progress bar is not the best possible experience. The same is the inability to utilize an interactive experience in a mobile browser.
That’s why we use the other engines for web interactive experiences or games, WebVR, WebAR, and Instant Games (games in messengers). Those are PlayCanvas, Babylon.js, and three.js.
Of all the three web 3D engines listed above PlayCanvas is the most advanced and convenient. It supports physically based, hardware-accelerated 3D graphics, same as Unity. It has built-in physics and tools for animation, GFX, etc. Its editor is almost as good as Unity’s one. At the same time, it has a tiny memory footprint of only 170 kb, which means that interactive web experiences developed in PlayCanvas are loaded within a couple of seconds.
PlayCanvas is our preferred engine at Visartech when it comes to interactive experiences or games for web pages or messengers.
Babylon.js is a very close competitor of PlayCanvas, with almost the same features. It’s also more popular since it’s free and PlayCanvas charges $50/month/seat subscription fee. The only thing where Babylon.js is worse than PlayCanvas is its editor. It’s less advanced. Although while preferring PlayCanvas due to its convenience of use, we also have experience with Babylon.js on some projects.
We use three.js as a part of our Web Applications when we need to implement complex animations or interactive behavior related to 3D.
To conclude, we leverage:
PlayCanvas for games or advanced interactive experiences on the web or in messengers, WebVR, and WebAR.three.js for simple 3D visualizations with less interactivity.Babylon.js in case if the client has an existing Babylon.js project.
Selecting the right technology stack is a real challenge. It should be closely aligned with each project’s requirements. The wrong choice may result in cost and time losses. So leave it to professionals. A reliable technical partner will apply the ownership mindset and deliver flawless products with the most innovative technologies.