[WIP] Odin Inspector & Serializer Looking for Feedback

That would indeed work exactly as you describe it. In fact, I just copy pasted your code (with a special flag added) into Odin and took a few screenshots.

( Note that I’m using Odin’s special serialization. This is because Unity logs a lot of errors complaining about invalid enum backing types if you create a field with an “invalid” enum that it thinks you want it to serialize. )

Flags enum screenshots

2 Likes

THANKS! As I understand it, it’s really a mono problem, since a normal C# app has no issue with such things.

So my class needs to inherit from Odin’s “SerializedMonoBehavior” which would still have the normal Awake, Update, etc. as that just extends Unity’s MonoBehavior. Cool.

1 Like

Latest teaser GIF for the Odin Inspector & Serializer is live.

Also, beta testing is getting really close now! :wink:

1 Like

This looks fantastic. Is there any way I could sign up to try the beta? I need a new inspector asset, AdvancedInspector’s started causing problems.

1 Like

We’re starting closed beta testing this week, and already have a solid list of testers (sorry :)). Depending on the number of bugs our testers find we should be able to release within a few weeks.

If you’d like, you can sign up to the newsletter and you’ll be notified when Odin hits the asset store :smile: (The newsletter is only used for product launches, big updates and giveaways).

Alright, sounds good.

The beta testing is going great, but we’re looking for teams of 8+ people to really test the limits of Odin in a few large projects.

If you are part of a larger team (company of 8 or more people), be sure to send an e-mail to sune@devdog.io, and we’d love to have you be part of the beta testing of Odin! :slight_smile:

Hey, I saw beta-test info on twitter, how may I join it? Currently using Adv.Inspector but it cause some problems we want to get rid of.

EDIT: Ouch, 8 people

Hi,

Our studio (Lonestone - Product Studio à Nantes , 6 full time + freelancers) would be happy to give Odin a go. We would be glad to finally have an editor correctly handling polymorphism for custom classes (non scriptable object).

Great :slight_smile: - Could you send an email to joris@devdog.io from your company’s mail account?

This looks like it could save a ton of time.

The big question, though: does your serialization work with AOT platforms? Especially XBoxOne, PS4, WiiU. Those have a tendency to break serialization libraries real hard due to how generics (doesn’t) work on AOT platforms.

EDIT: Also, what’s the price point?

As of the most recent (beta) patch, Odin is supposed to work on all AOT platforms, though we haven’t had access to the hardware necessary to test this thoroughly yet. XBoxOne, PS4 and WiiU are not yet among the tested platforms. So far, in fact, we’ve only had time to test AOT serialization on WebGL, where it worked fine.

During the beta, we will be testing our serialization thoroughly on as many platforms as we can get our grubby hands on, and fixing any possible issues we encounter as they come. Later on, Odin will also be able to pre-emit serialization formatters into an assembly in the editor, which would then be included in AOT builds, boosting performance and completely obviating any need for reflection at runtime, enabling support even for very tricky platforms like Windows Store. Ultimately, we would like to have 100% support for all platforms that Unity targets.

As for the price point, we’re planning an initial launch price of $35. The price will increase in the future as we keep adding more features and improving Odin even more.

2 Likes

I am really interested in Odin Inspector vs Advanced Inspector comparison. What are the main advantages of Odin? Thanks

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 :smile:)

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.

4 Likes

I haven’t used Odin yet but I’m trying to move from AdvancedInspector because it’s caused me a bunch of problems. On complicated gameObjects with a bunch of scripts it would take 2 seconds for a letter to appear after you type it when you change a string, like it’s re-calculating something about every single AI-enabled script on the gameObject every character. It replaced Unity’s camera editor with one that is, as far as I can tell, identical except that it still pops up the little free version warning when you select Deferred and then uses Forward instead. I spent three days trying to figure out why my draw calls were so high before I figured out that the camera set to Deferred wasn’t actually rendering Deferred. Can’t recommend it.

Plus, there’s a good bit of boilerplate. It doesn’t affect your editors unless you #include AdvancedInspector, add [AdvancedInspector] over your class and [Inspect] over anything you want to inspect, which means it’s hard to add to an existing project and hard to strip out of one when it starts causing chaos.

3 Likes

This looks incredible. Are you still accepting beta testers?

My colleague and I both spend ~10 hours a day within Unity on a multitude of different project, and have been looking to upgrade our inspectors. We’d both love the opportunity to test this out!

EDIT : We are both professionals and experienced programmers, who should be able to give it a bit of a kicking :slight_smile:

Thanks :slight_smile: we’re also very excited about Odin.

We’re looking for larger teams (8+ people) to test Odin at the moment, as we’re very curious to see how well Odin holds up, and how well it integrates with user’s existing workflows. Or, as Tor put it:

Do you have a finished or large project that you could use to test Odin?

1 Like

The beta is well on its way, but that isn’t holding us back from adding new awesome features! :wink:
So here’s a quick sneak-peak at the InLine Editor Attribute in Odin:

5 Likes

We have several large projects that we regularly have to go back to and update - we are also normally swimming in about 5/6 different active projects at the same time, all of which have had signifcant development done on them

If you’re looking to see how it could integrate into existing workflows / projects, I think we could have something to offer :).

Side note : We work as part of a larger team across multiple sites - although my colleague, myself and another would primarily be doing the programming, we have other Unity developers who would be able to take advantage of Odin!

2 Likes

It sounds like you’re exactly the type of tester we’re looking for :slight_smile: - Could you send a message to joris@devdog.io from a company email please?

1 Like