I had been using Unity 3D for many years. My own 3d software and apps were developed in Unity 3D. I had a substantial code-base of Unity 3D c# code built up.
But I threw it all away. UNREAL!
Or, rather, I moved to the Unreal Engine.
I made the decision to dump Unity about a year ago. And I’ve quietly been boning up on Unreal since.
It’s not as if I had 0 experience with Unreal. I’ve used it multiple times in the past on various jobs for clients.
But this really is the first time I have gone head-long into Unreal Engine 4.x with the intention of standardizing myself on it.
I don’t want to dwell too much on Unity Technologies. I’ll simply put it this way: I engaged with the company and developers directly (intensely and in person) in a few different ways over a period of 3-5 months. Some of which is actually publicly visible, and other ways that are private. When it was done, Unity (the organization) had insulted and devalued me directly in a way that was infuriating.
So I decided not to invest my time in them and their platform going forward. Nuff said.
The (technical) direction
One of the more interesting things that has happened at Epic Games is the hiring of Kim Libreri as their CTO. Kim is a Visual Effects guy of note. Anyone who had visibility into Digital Domain around the time just before Tron Legacy, knows who he is.
Anyhow, I don’t want to say I have ultimate faith in one guy. I don’t. But Kim’s entrance and the direction of technical developments dovetail into one another in a way that summarizes my interest in the platform’s direction.
You can see it when you look at the way realtime filmmaking is being integrated into the engine. The integration of black magic design video input and processing is one example. Or, the heavy emphasis on non linear timelines and animation systems. Or the integration of realtime rigging systems. Or the oncoming integration of realtime ray tracing tech. Now is a really good time to have someone like Kim, not as some kind of consultant to be pondered; but as the person in charge.
Blueprints: An actual language
Another really important distinction, is that their visual coding language, BluePrints, are an actual computer language in the engine itself. Rather than a weird 3rd party afterthought. BluePrints are semi-compiled by default, and in many cases, can be directly compiled into c++, and subsequently, platform (machine) code. That’s a big deal.
That is not to say I’m afraid of coding C++. But rather, I very much value the visual coding environment for what it allows me to bundle up and present to less technical users. It forces one to think about making complex things simpler to use in production.
I can code C++ if I want/need to. But I very much prefer to use as little is necessary and wrap it up into little bite-sized components to be consumed by something higher level. And BluePrints provide me the space to do that.
Further, the more recent integration of Python as an editor scripting language, that consumes the same C++ code as BluePrints do, is a boon to production as well.
Actual Source Code
Unity has more recently opened up some access to their source code. But this is after a lot of fighting.
Unreal, on the other had, has had full source code access for a decade or so. Now that their licensing model has become more open (more on that later) said source code is still available.
Simply put: If the engine can’t do it, I can code it myself and even submit it for merging into the mainline code-base, if I so choose.
If the documentation isn’t sufficient, I can find the code that does the thing, and read it to understand what the heck is going on.
If there’s a bug, I can fix it, and compile my own engine and editor if need be. I don’t have to wait for Epic if I don’t want to.
Reasonable licensing terms
In the past, the biggest problem with Unreal was their licensing terms. They just were not interested in tiny little companies. And there’s no doubt, this is the opportunity that Unity Technologies exploited for years, to build a developer base.
But Epic has changed their licensing terms so that small companies can get into the ecosystem, essentially for free. And when their revenue turns up, they can simply pay a percentage of that revenue. Which is completely reasonable when you consider the alternative, of financing the building and maintenance of your own technology stack instead.
Why not Open Source?
Generally, any time you consider jumping form one proprietary or closed system, to another, one should ask themselves if there is an Open Source solution that might be worth considering.
The obvious choice would be Blender, which has a realtime engine, on and off again. But honestly, I don’t see any Open Source projects in this space that are tightly integrated with consumer VR systems, or the latest hardware accelerated technology packages.
I just wanted to put a marker down. I made the decision a year ago. And it’s been really tough at times.
Any time you toss away a platform in which you’ve been heavily invested, and step into a new one, you feel like an idiot for a while. Like you can’t make anything work. Like you lost your ability to produce anything of worth.
This is inevitable. Platforms die. If you are good enough to be in the business long enough, it’ll happen to you. Maybe even, many times. Without sounding like a geezer, I’ll just point out: I remember a time before Maya 1.0.
But about a year after this very disruptive change I pushed upon myself, I feel like I’ve got my footing back and am ready to go innovate again. And that’s what I’m going to do. I’m excited.
The art project
For now, I’m working on what I term a “VR art project.” Really, I’m using a small personal project as a vehicle for developing my pipeline, technology and methodology. Or so the theory goes. The art project may end up sucking. But hopefully the pipeline and tools will not. Such that my second project, has a better chance of not sucking.
Should everyone switch from Unity?
I don’t do much consulting anymore. But were any of my past clients or a new one, to ask about realtime interactive tech platforms, I don’t necessarily believe Unity is wrong for everyone. Much as in investing, your current position is an important consideration. Generic advice without the context of the current position, isn’t good advice.
That being said, I am concerned about Unity the company, more than Unity the platform. Unfortunately, one can’t actually consume Unity the platform without being at the mercy of Unity the company.
My top level advice is to be careful about over-committing to any platform. Always be prepared to change. Such advice is easy to dispense and hard to live by. It could be easily assailed as too idealistic to be practical.
But not every technical decision is binary.