I’ve been using Unity for well over a decade. Throughout that time I’ve seen a slow and painful fragmentation of its ecosystem which has become worse and worse with every update. There have been very few useful features added, and the recent controversy surrounding their attempts at changing their charging model to squeeze more money out of developers was the piss-ladened icing on top of the metaphorical urinal cake that was their antecedent CEO’s reign.
John Riccitiello - the avaricious progenitor of loot boxes - oversaw a prolonged period of wasted development, late deliveries and noticeable decline in quality. I am happy he is gone. But is it too late for the former indie darling of gaming engines to turn things around?
With Unity 6 only a few days away, for the first time in years, I am hopeful that things may finally start moving in the right direction.
The biggest idiots
“There are some developers out there who are the biggest idiots, who think that making a decision to not give a player a chance to monetize is a good idea.” - John Riccitiello, 2022
Before moving to Unity I used to roll my own gaming engines. It took a while to sell me on the benefits of swapping over to a pre-made engine, but the main upside was articulated pretty well in Unity’s tagline at the time, “build once, deploy anywhere”. The idea was that you could write you code in one cohesive platform and then deploy it to a whole host of systems from high-end PCs to handhelds like the Playstation Vita. It’s a USP that’s seemingly been lost over the years.
First came the Unity marketplace. On the face of it, it seems like a great idea: provide a place where Unity developers can create and share tooling for one-another and make some money in the process. In hindsight, it was a pretty ingenious money-grab which has Riccitiello’s fingerprints all over it. Whilst the core Unity codebase still deployed relatively well cross-system, that wasn’t always a guarantee for marketplace offerings; this was where the fragmentation of Unity’s ecosystem first began.
The real divide came in 2017 when the company pushed for annual major releases.
Clearly the money from gaming wasn’t enough for their shareholders, as Unity’s board set their sights on wider industries like manufacturing, film and retail. This dilution of target audience came with a dilution in delivery focus. Features like Timeline and Cinemachine - those tangential to gaming - started to appear as optional extra packages instead of in the core installation.
More fragmentation than my hard drive
Unity 2018 heralded a turning point.
Scriptable render pipelines were a great idea, but what they brought with them would plague Unity for the next six years. On top of the existing built-in render pipeline, there were now to be two new ones: the universal render pipeline and the HD render pipeline. The two would stay in preview (e.g. beta) for nearly two years, but several new features that were released over that time would only work them and not the built-in render pipeline. For anyone seriously thinking about releasing a game this essentially gated off those features from being used - who would want to ship a game using a beta render pipeline? It is only in 2024 with the release of Unity 6 that Unity are finally promising to unify this mess.
On top of the heavily fragmented rendering ecosystem, Unity also introduced their Data-Oriented Technology Stack (DOTS), Entity Component System (ECS) and Burst compiler. These fundamentally changed how code was written within Unity. These systems would stay in preview for a further four years, and it would be a total of more than six years before they would be in any way compatible with the standard Unity component system. All of this time, both were part-supported.
The releases that followed 2018 only added to the problems. We saw four different attempts at networking frameworks (five if you include the botched purchase of Bolt), two different input systems, two different UI systems (three if you count the very old IMGUI system), three asset loading mechanisms, and three particle/VFX frameworks. Supporting this must’ve been an absolute nightmare.
In 2024, Unity is anything but unified.
Shareholder confidence
The controversial runtime fee change1 announcement of September 2023 was just the tipping point in a long line of anti-consumer decisions that were taken to boost share price and revenue for Unity. Despite being pivotal to Unity’s recently attempted reforms, it was far from the only reason. That said, whilst confidence in the engine’s quality had been waning for a while, this was the first time that those in charge had truly lost the trust of their consumers.
Unity began its life with one mission in mind: to make game development for multiple platforms as straight-forward as possible.
Over time those in charge lost sight of that goal.
They tried to earn revenue from developers, but damaged the cross-platform nature of their engine with a poorly curated developer marketplace.
They tried to earn revenue from more than just game development, but damaged their delivery team’s focus by trying to cater for too many target markets.
They tried to compete in the AAA space against Unreal, but damaged the simplicity of their offering by fragmenting multiple core systems into several half-finished versions.
They tried to do all of this and still forced their delivery team to push out releases three times a year.
Instead of strengthening their offering to their core audience and building on it they diluted it. It seems that this was probably done in the name of reaching their eventual IPO in 2020, and following that, the inevitable need to project “future value” in the name of raising the share price.
United once more?
Whilst this journey through Unity’s slow decline has been rather downbeat, I honestly feel pretty positive about its future.
The change in leadership seems to have brought about a reaffirmation of Unity’s original goals. The team have moved towards less frequent release schedules to take pressure of their developers. The most recent roadmap2 session seems to point towards a concerted effort to move back towards single frameworks: a single render pipeline (or atleast ease of switching between two), a single UI system, a single networking system, a single input system, and even interoperability between DOTs and classic unity components.
I’ll certainly be trying out Unity 6 when it drops on the 17th of October with a healthy dose of optimism, but only time will tell whether they’re able to properly right the ship and make Unity unified once more.
-
In case you don’t know what this is, in September 2023 Unity announced that they would be altering the way in which they charge developers for using their engine. Unity had typically used a licensing model that followed a lot of other tech companies, whereby developers were charged based on the number of seats allocated to using the engine. The announcement retroactively changed this charging model to a per game install approach. In other words, everyone who installed a copy of the game caused the developer to be charged. There are number of reasons why this is fairly poor for the developer, but top of the list are that it would mean being charged even for refunded copies, and free to play games which target very large install bases would be disproportionately impacted. ↩︎