If you’re aspiring to develop AR experiences, ARCore leads with its robust AR capabilities, extensive Android support, and integration with Google Maps. However, if you’re building immersive 2D/3D games across multiple platforms, Unity triumphs with its cross-platform support, integrated asset store, and diverse coding language options.
Key differences between ARCore and Unity
- ARCore excels in providing AR experiences, leveraging APIs for environmental understanding, while Unity specializes in game development.
- ARCore’s coverage extends to a vast array of Android devices and certain iOS ones, whereas Unity offers multi-platform support, including Android and iOS.
- Unity facilitates game design with an integrated asset store and offers various coding languages. ARCore, however, leverages Google’s ecosystem.
- While Unity charges based on game installs, ARCore works independently of additional hardware and user installs.
Comparison | ARCore by Google | Unity |
---|---|---|
Development Aim | AR Experiences | 3D and 2D Games |
Release | 2017 | 2005 |
Cross-platform Compatibility | Android and limited iOS | Android, iOS, and others |
Key Abilities | Motion Tracking, Environmental Understanding, Light Estimation | AR/VR Creation, 3D Simulations |
Advanced Features | Geospatial API, Streetscape Geometry API | Rich Asset Store |
Coding Language | APIs | BOO Script, JavaScript, C# |
Collaboration Efforts | Manufacturers- Samsung, Huawei, LG, ASUS | Active developer community |
Pricing Model | Free with Google Play Services | Paid per game install |
Criticism | Map live view compatibility issues, unauthorized app installs | New pricing model, lack of transparency |
Promises | AR Experience on 1.4 billion devices | Fraud detection practices on game installs |
What Is ARCore and Who’s It For?
ARCore is Google’s advanced technology framework for building augmented reality experiences. Harnessing a series of APIs, ARCore empowers mobile devices to interact with and grasp their surroundings. Primarily designed for developers, ARCore provides powerful tools to create shared AR experiences on Android 7.0 (Nougat) and later or select iOS devices.
This platform, a successor to Google’s Tango project, enhances the real-world understanding of Android devices without the need for additional hardware. It is instrumental in emerging AR ecosystems, unveiling unprecedented features like the Geospatial API with Google Maps, helping to chart a course for immersive AR experiences on 1.4 billion Android devices. Perfect for developers aiming at broad-spectrum deployment.
Pros of ARCore
- Wide compatibility across Android and select iOS devices
- Motion tracking, environmental understanding, and light estimation
- No additional hardware required
- New geospatial AR experiences leveraging Google Maps
Cons of ARCore
- Requires Android 7.0 (Nougat) or later
- Some reported compatibility issues with Google Maps live view
- Unauthorized installs of Google Apps
What Is Unity and Who’s It For?
Since its inception in 2005, Unity has redefined the landscape of game development with its 3D and 2D engine and broad cross-platform compatibility. Unity is the go-to for developers seeking versatile, high-quality game creation tools that operate seamlessly with multiple operating systems, from augmented reality to 3D simulations.
Despite its recent controversial pricing model, Unity serves to stimulate innovation in the gaming space, with a rich asset store and accessible coding languages. Its sprawling developer community further enriches the creation process, collectively striving for system improvements. Unity is especially appealing to developers keen on creating high-quality AR/VR games.
Pros of Unity
- Powerful 3D and 2D engine
- Broad cross-platform compatibility
- Diverse pre-designed textures and features
- Supports multiple coding languages
Cons of Unity
- Controversial per-install fee pricing model
- Diminished trust due to unannounced changes
- Fears of financial sustainability due to sudden pricing shifts
ARCore vs Unity: Pricing
The key distinction is that ARCore offers its AR development features free of charge, while Unity employs a fee-per-install model, causing financial concern among independent and small-scale developers.
ARCore
In terms of pricing, ARCore’s API is available to developers at no extra cost. By leveraging Google Play Services for AR, which is automatically installed and updated on supported devices, AR experiences built using ARCore can be accessed without any added expenditure. This lack of financial barrier encourages developers to experiment, build, and augment their apps with AR capabilities.
Unity
As of January 1, 2024, Unity’s new pricing model imposes a fee per game installation. Consequently, the fees apply for any game created with Unity that surpasses 200,000 installations and earns over $200,000 in revenue. Critically, games in countries recognized as “standard” markets bare higher fees than those in “emerging” markets such as India and China, exacerbating pricing concerns among developers. A previously offered Unity Plus subscription is no longer available, reducing the options for accessing Unity’s development tools.
Code Examples for ARCore & Unity
ARCore
This snippet depicts how to implement the Augmented Faces API in ARCore in order to overlay 3D models over a user’s face. You’ll need to set up ARCore and the Augmented Faces API, which are both provided with the ARCore SDK for Android.
// ARCore Augmented Faces Code Snippet
AugmentedFaceNode myFaceNode;
AugmentedFace augmentedFace;
ModelRenderable modelRenderable;
// Build the ModelRenderable
ModelRenderable.Builder
.build()
.thenAccept(renderable -> modelRenderable = renderable);
// When an AugmentedFace is detected
myFaceNode = new AugmentedFaceNode(augmentedFace);
myFaceNode.setParent(arFragment.getArSceneView().getScene());
myFaceNode.setFaceRegionsRenderable(modelRenderable);
Unity
This Unity snippet demonstrates the process of spawning a predefined GameObject at a random position on the screen. Make sure you have Unity set up and a prefabricated GameObject ready for instantiation.
// Unity Random Spawning Code Snippet
public GameObject prefabObj;
void SpawnRandomObject()
{
// Define the boundaries for the random position
float x = Random.Range(-9f, 9f);
float z = Random.Range(-9f, 9f);
// Create the random position
Vector3 randomPosition = new Vector3(x, 0, z);
// Instantiate the prefab at the random position
Instantiate(prefabObj, randomPosition, Quaternion.identity);
}
Choosing the Right AR Tool: ARCore vs Unity
In the battle of augmented reality, Google’s ARCore and Unity place impressively, each with unique strengths and capabilities. Let’s dissect which technology best suits different audience segments.
Mobile AR Enthusiasts
Those beholden to mobile-based AR development will find ARCore unparalleled. Its APIs, specifically designed for mobile devices, promise robust AR experiences. With support that extends across Android and iOS systems and an impressive target of 100 million devices, ARCore leads the mobile AR race. Top it off with environmental and light estimation and the recipe is perfect for mobile AR creators.
Multi-platform developers
Developers looking for broader applicability should turn to Unity. Not only does Unity support AR, it allows deployment of both 3D and 2D games across diverse platforms. Think Android and iOS, or 3D AR simulations on multiple operating systems. Unity’s cross-platform capability makes it the go-to for multi-platform developers.
Google Ecosystem Advocates
Those already embedded in the Google ecosystem will find value in ARCore. With ever improving APIs, integration with Google Maps, and auto-installation and updates via Google Play Services for AR, ARCore leverages the Google ecosystem like none other. This makes it the preferred choice for Google ecosystem lovers.
Solo and Indie Developers
The recent pricing structure of Unity, expected to place burden on solo and indie developers post 2024 might tip the balance in favor of ARCore for this segment. While Unity does promise fraud detection and a ceiling on fees, ARCore’s lack of additional hardware or installation costs offers a compelling advantage.
Considering the robust mobile-AR capabilities of ARCore and Unity’s wide cross-platform support, the choice largely depends on your specific needs. If you are a mobile AR enthusiast or irrevocably tied to the Google ecosystem, ARCore stands out. However, if you seek a powerful cross-platform game development engine or are an existing Unity user at ease with the new pricing structure, Unity is your best bet.