With Odin still being in beta, with more features still to come and a lot of testing still to be done, this is a tricky one to answer, but I’ll do my best.
I could try to do a feature-by-feature comparison to Advanced Inspector and Full Inspector, and say things like “Odin offers more powerful editor customization with its attributes”, “We have much stronger features for input and scene validation, cutting down on entire classes of bugs”, “Our serialization is a lot faster and allocates close to zero garbage at runtime”, and so on. While those points are true, I’m not going to do that. (Except to the extent I just did )
The fact is that while Odin does have many features that Advanced Inspector and Full Inspector don’t, we also currently miss many that they have in aggregate. Of course, we’re adding more every day, and will eventually more than match them both put together if you put them on a point-by-point comparison list. However, we feel the core difference lies on another level, a qualitative as opposed to quantitative one, that touches every part of the product, and is not as simply put as just listing raw features side by side.
Imagine you’re a large game studio, with dozens of people working on a game in Unity. You’re all losing a lot of time to constantly writing custom property drawers to make your editors look nice, having to deal with the vanilla Unity editor’s many idiosyncracies and lack of powerful workflow features, and having to finagle your way around Unity’s limited and rigid serialization. You absolutely need an inspector upgrade, and so you look at what’s available. This is a huge decision to make.
Whatever you pick, this will affect every person on the team that ever touches Unity; whatever enhancements or limitations it offers, these will apply globally across your team. Since you’ve already spent significant time modifying your editor, it may also require a lot of integration work and rewriting of editor code before you’re back to the point you were before. If you plan on using the serialization, it can’t affect your game’s performance, which is already stretched tight with all kinds of neat features. And of course, being a large team with a huge project, containing hundreds of thousands of lines of code and thousands of assets, it is absolutely critical that the inspector upgrade be utterly reliable in a massive enterprise environment.
These are the kinds of extreme conditions under which Odin is intended to excel: being dropped into a major project, full of pre-existing editor customizations, with major demands on performance and stability, and still performing without a single hiccup.
In the given example, the team could simply drop Odin into their project, and immediately their inspectors have been upgraded across the board without them lifting another finger, touching the configuration, or changing a single line of code. Furthermore, all of their old custom property drawers and attributes, all of their old customizations, are still there, integrated into Odin.
They try the custom serialization: null values, polymorphism, cyclic references - all of it is handled and shown intuitively in the inspector. Their old custom property drawers are also being drawn for this new, non-Unity-backed data. Prefabs using the custom serialization work just the same as before - there is no perceivable difference.
Immediately, they can get to work again. There’s no onboarding, no radical new workflow or paradigm to learn. At their leisure, they can peruse Odin’s demos and documentation to get an overview of the dozens of new attributes they now have available to augment their editors. And then, finally, when their demands increase and change, Odin is highly customizable, with a modular and extendable design that can be adjusted to fit their particular needs. To help with this, every single public and protected member in Odin’s source code will be documented.
All of the above also illustrates an important point: Odin doesn’t change the way Unity works or enforce any new pattern on you. There is no integration boilerplate required. Where possible, it always integrates what is already there. If Unity adds a new data type, and a new property drawer for that type, or if they add a new property attribute that is drawn in a special way, that will be found and used by Odin. We don’t try to supplant or replace Unity - it’s solely an additive upgrade, not a lateral or subtractive one.
So that’s Odin’s ideal, so to speak: rock-solid reliability, extreme ease of integration, and making it trivial to design very powerful custom editors using only attribute annotations. It’s the rigorous standard Odin has to uphold before we’re satisfied with it. We want to deliver a dependable product of the highest quality, with a smooth and polished user experience, and we don’t want to compromise on that.
The current beta testing will bear out how close we are to having achieved this goal. We’re asking our testers to throw everything and the kitchen sink at Odin, to tie chains around its ankles and dunk it in the deep end of the pool without mercy, and see whether it sinks or swims. And once it swims, well, that’s when we’ll finally feel comfortable releasing it into the wild.