When comparing O3DE (previously Lumberyard) vs Unity 3D, the Slant community recommends Unity 3D for most people. In the question“What are the best 3D game engines?” Unity 3D is ranked 6th while O3DE (previously Lumberyard) is ranked 14th. The most important reason people chose Unity 3D is:
Unity3D provides an exhaustive documentation where everything is given a full description supplied by a number of examples as well as video and text tutorials and live training sessions to understand the ins and outs of the engine. In addition there's an ever-growing community that can offer advice to help resolve any situations that may arise. Along with the official Unity resources, there are [many high quality](http://www.slant.co/topics/346/~beginner-resources-to-learn-unity) (and often free) third party tutorials available.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro No royalty charges and completely free
Pro Amazon has announced 3 in house games using it developed from Amazon Game Studios
As a proof of how much Amazon is committed to the project.
Pro Advanced VR support and VR Samples to bootstrap your project
Advenced stereoscopic reprojection to save rendering time.
Pro Landscape editor
Sculpting and painting tools for terrain and instanced details.
Procedural generation of terrain.
Pro Roads and Rivers tool
Built-in support for roads and rivers to ease the design of rich game environments.
Pro Free development license, including source code
Full source code for Engine Editor and every tool.
Pro Easy to create full realistic natural environments
Thanks to built-in terrain, time of day, ocean and volumetric fog systems. There is also a gfx pack with various environmental meshes, cloud, particles, materials and skyboxes.
Pro Very lightweight and scalable entity component system
Multiple entity contexts, reflection, serialization, replication, script binding, event bus (EBus) messaging, fully cascading prefabs (slices).
Every reflected property can be fully exposed in the editor with a customizable gui control and can be animated in the built in animation tools.
Pro Cloud gems
Online oriented plugins composed by both client, server and administration components to easily add various online capabilities without further work (es leaderboards, login, message of the day, downloadable contents).
Since version 1.7 they has been released at a steady rate.
Pro In-editor 3D modeling tool for fast level prototyping
Very advanced 3D prototyping tool with many modeling features and UV mapping support available. If you want you can build any kind of fully textured static mesh without relying on external tools.
Pro Total Illumination v2 Realtime GIobal Illumination
Realistic looking lighting bounces.
It doesn't require long offline precomputation times like other static and dynamic GI solutions based on lightmaps or other similar techniques.
Pro Uses AWS cloud
Other than common aws functionality it supports game specific Game Lift for autoscaling game servers.
Pro Slices a very powerful nested prefab system with hierarchical property inheritance
Modular workflow and flexible cascaded propagation of changes.
Pro Modular system
To easy add and remove modular functionalities to a project and easy share them.
Modules are called Gems and can contain code and/or assets.
Pro Very Flexible Base Shader with many built in techniques
Tessellation and Displacement.
Various Parallax Mapping techniques(POM siluette).
Translucency and Sub surface scattering.
Detail Mapping.
Material Blending.
Emission.
Advanced uv transformation and animation.
Pro Rendering of volumetric fx with full light and shadows support
Global environmental volumetric fog and/or hand placed custom shaped volumes with featuring full lighting and shadows.
Pro High quality free assets packs
Amazon made available a selection of triple A quality scenes filled with high quality assets.
Pro Specular reflection antialiasing
Implements the most recent technique available (published in 2017) from Anton Kaplanyan.
Pro Flexible uber shaders with cache and hot reloading
You can modify shaders while testing the game.
Shader files are modular and annotated to setup the material editing gui and filter out mutually exclusive options. All shader permutation are compiled almost instantly from the asset processor and cached for later use.
Pro Built-in Twitch support even by visual scripting
You can create games that react to keywords entered in a designated Twitch channel and let streamers to invite targeted viewers into their game sessions on demand with ease.
Pro WWise LTX Audio
It is still possible to use the non LTX version with few changes.
Pro Lua scripting with the built-in IDE
Built-in Lua editor with remote debugger to debug Lua scripts running in any device.
Pro Virtual file system with live reload on any device
Optimized versions of assets can be streamed live to any device connected over the network.
This makes possible to implement asset types that hot reloads reducing drastically the time to test new content and little changes on device.
Pro Every aspect of the engine is made with scalability in mind
Multiple grain of control over any kind of engine setting and various kind of Lod systems. Settings can be grouped and applied in batch.
Pro Is the first engine to feature SpeedTree 8
Pro Perforce versioning system pre-integrated with the tools
Perforce also comes with a free version for a limited number of team members.
Pro Cutting edge character shaders
Has skin shaders with subsurface scattering and weighted wrinkle maps, eye shaders with refraction parallax, hair with anysotropic specular reflections, etc.
Pro Order independent transparencies
A must for problematic things like hair , vegetation and scenes with complex solid transparent objects(es glass of water with ice cubes).
Pro Implements the state of the art for Temporal Antialiasing from NVIDIA Research
Special iteration of Temporal AA to battle the ghosting issue omnipresent in engines using other Temporal AA techniques.
Pro New Fbx Importer adds support for every software exporting in fbx
It now works for both static models and animations and support advanced setups(es lods and physics).
Pro Full HDR renderer path with output support for HDR tv standards
Updated renderer pipeline to leverage the full spectrum of precision, luminosity and image processing features of the latest HDR tv.
Pro Cinematic multitrack tool with full featured animation editing
Animation Spline editor supporting huge range of keyframing and tangent editing tools.
Pro Advanced in-game UI with 2D and 3D placing
The UI uses the entity component system so it's fully modular and easily expandable. The UI is easily skinnable and supports border scaling images (scale 9). Powerful layouting system supporting multiple screen resolutions. Being based on the entity system every property can be fully animated.
It is elegantly managed in a separate entity context so it doesn't get messed up with other kind of entities and their components like in other engines, but it's fully decoupled communicating with entities in other context on specific event buses.
Pro Full source code repository with updated development branch now on GitHub
See here.
Pro Lots of resources to learn from
Unity3D provides an exhaustive documentation where everything is given a full description supplied by a number of examples as well as video and text tutorials and live training sessions to understand the ins and outs of the engine. In addition there's an ever-growing community that can offer advice to help resolve any situations that may arise.
Along with the official Unity resources, there are many high quality (and often free) third party tutorials available.
Pro Easy learning curve
The way the editor is structured, by setting scripts on objects, and the use of a high-level language, C#, makes it easy to learn.
Pro Lots of assets can be found in the Asset Store
For those developers who can't afford an artist, or aren't skilled enough to create their own art, Unity features an Asset Store full of a wide variety of free and paid assets that can be easily added to a game. The Asset Store has more than just music and art. It also has code and modules that can be added to games including unique lighting or GUI systems. It also has powerful asset management and attribute inspection.
Pro Very popular
Unity is a proven game engine. It is used by a wide range of developers - from small indies to triple-A companies such as Microsoft, Paradox, Square Enix and Sega.
Pro Allows for rapid prototyping
Unity's modular system and usability allows for quickly developing a prototype of an idea. It has features like drag & drop editing, shaders, animation and other systems already in place to allow diving right into developing a game.
Pro Great community
Great Community support through the Forums and Unity Answers.
Pro Great editor
The editor GUI is very powerful and intuitive. It allows pausing gameplay and manipulating the scene at any time as well as progress gameplay frame by frame. It also has powerful asset management and attribute inspection.
Pro Can be used for free
As long as the development company makes $100k or less, it can use the free version of Unity to release games.
Pro Works with 3rd party IDEs
You can use any C# IDE for it, but the ones tested which have Unity integration are:
- Microsoft Visual Studio
- MonoDevelop
- Visual Studio Code (much faster than VS, but a bit harder to set up for Unity development)
- JetBrains Rider (very fast, has lots of functionality and best Unity integration, but it is not free)
Pro Has a great animation system
Unity provides a great state machine animation system called Mechanim allowing to separate animation from the model and assign the same animoations to different models.
Pro Over 20 platforms
Unity offers over 20 platforms for publishing including mobile, console, web, VR, and more.
Pro Versatile
Not tailored for specific types of games (like Unreal...), so it won't get in your way if you want to make something unique.
Pro Powerful standard shaders
The built in standard shader in Unity 5 is incredibly optimized and supports PBS/PBR.
Pro Very optimized
Unity runs very smoothly even on systems that are considered "weak" by today's standards.
Pro Well structured
Overall, a coherent engine with a rational approach. People who complain a lot about being forced to hack around it usually do not read the docs, like the one that describe orders of execution, or specific functions hooks and such. Some like to say it lacks raw power where people who are used to standard optimizations have no problem. For example It is not uncommon to encounter users who complain about low FPS but forgot to activate occlusion, flag static elements, activate animations culling, and so on. As for complaints about C#, people who are transitioning from C++ were already bad at C++ before being bad at C#. They often come from the PC world where the sheer power of today's machines is very forgiving compared to the platforms we had to develop for in the 80s~90s. One of their errors is for example to never read this doc.
Pro Can create custom forms and tools
Pro OUYA support
Pro Flexibility is provided by a strong component programming model
Pro .NET functions can be used
ReactiveX,async/await, etc. .NET functions can be used in Unity.
Pro Great extensions are updated daily on GitHub
GitHub has a lot of extensions.
Pro Has awesome plugins
Pro Free for mobile development
Unity allows free mobile development. There are some limitations.
Cons
Con Some Legacy systems are still incompatible or not fit well with the new entity component system
At first it is common to try a feature and then understand that it is meant to work with the legacy system and not with the newest one.
Legacy systems get replaced or updated to work well with the new entity component system in every new version, but there is still some work to do.
One example for all Flow Graph visual scripting is meant for the legacy entity and Script Canvas is the visual scripting conterpart for the new entity system, but it is still not available at the moment.
Con No source code repository with updated development branch (requests for Github support currently pending)
You need to wait up to 30 or 60 days for fixes as they are shipped with the next official release.
There is no comfortable way to submit fixes and changes to the engine as the forum is the only tool for sharing code.
Con CryEngine with AWS plugins
Con Very bad terrain
Native terrain creates a lot of draw calls which is bad for performance.
Con Adds too many features without fixing earlier issues, rapidly increasing number of bugs that will never get fixed
Unity continues to add many new features without fixing earlier issues. Unity is either understaffed, overambitious, or both, resulting in a continual increase of problems and degraded experience across a number of platforms. Many bugs are reported daily and never get addressed, and there are many bugs from previous versions that are never looked at or fixed.
Con Bad UI tools
Way of creating UI is uncomfortable and inconvenient.
Con Hard to maintain projects due to vendor lock
Unity3D is proprietary, closed source game engine. Unity asks money for features like basic version control support, etc. It is impossible to migrate a game from Unity3D in case performance does not satisfy growing requirements of a project.
Con Asset store is required to replace engine functionality
You will need to, for example, buy an input manager asset off their asset store in order to replace their own terrible inaccessible input manager.
Con Moderators on forums are sometimes arrogant
Con Weak memory management
.Net libraries are slowing it down, memory safety is compromised, classes have to be implemented to manage objects in memory, like object pooling.
Con Garbage collection can't be turned off
Given the use of C#, the memory control is out of the developers control, this can be good, but not controlling memory means that the garbage collector can trigger at any time and ruin performance.
Con Bad batching support
Draw Call Batching is done automatically and does not include Skinned Renderers (eg. characters). Also for dynamic batching, meshes need to have less than 900 vertices.
Con Very self-centered engine
Unity3D uses very unique approach for doing things. Most of the knowledge acquired while using it, would be completely non transferable to other engines. Advanced Unity3D programming is really dealing with Unity3D bugs, and finding loopholes around engine issues - nothing to do with graphics, etc. Skills which would be valuable with other engines.
Con Dark UI theme not available in the free version
Dark theme, which is a must for prolonged work without eye strain, is only available with one of the paid monthly plans.
Con Encourages bad coding practices
A lot of Unity code feels like a hacked blur of arguable coding practices. C# and .Net usage in Unity is questionable. A lot of the API is done in "C Style" (public static methods, available at all times), encouraging the use of public fields for everything, a lot of questionable implicit casting. The list goes on.
Con Increasing number of bugs
With each new version things may stop working ,for example with Android, some bugs are never getting fixed, like the freeze bug with adb.
Con Mobile builds (Android, iOS) take about 18MB at least
Even a Blank Project, Needs 18MB for the APK file (on Android).
Con Asset bundles can be cumbersome
Asset bundles are a way to load external resources that are not packed with the game or application and offered as a separate, optional package. However, they may not be compatible between versions or even platforms (you have to create them separately).
Asset bundles need to be loaded and unloaded, avoid concurrent loads from web or cache or a naming collision can happen. You can find workarounds with static objects (load obj
files and textures by code), but for animated game objects you are pretty much stuck with this.
Con Price is very high
Cost is based on Revenue:
less than $100K = Free
between $100K and 200K = $35 a month per seat
greater thank 200K = $125 a month per seat
Con New il2cpp script backend is show stopper to some iOS projects
Il2cpp script backend is required to build arm64 app, but it's still very buggy and not production ready.
Con Waisted resources
Slow, buggy, expensive and 1000 other problems.
Con Comparatively high learning curve is putting it nicely. Expect to spend days upon days researching basic functionality.
Although C#, JS, and Boo have documentation available online, it can still be difficult to understand the library and Unity's component based system.
Con Bad model importing
Con Bad input
Their input manager cannot be accessed via code. If you want to update controls at runtime (which any PC game should be able to do), you'll have to roll your own. Except joysticks are also not available via code.