I’ve been using Unity full time for about 7 years now to create and RELEASE games and interactive projects including art installations and feature films.
You can find some of that on my itch.io page, on Steam, or check out our new animated feature film made in Unity.
I’m writing this as a warning to new users. Don’t get caught in the traps Unity offers with their shiny unfinished broken toys IF you wish to actually SHIP projects. Use the older reliable stuff AND high rated asset store tools.
I used to LOVE Unity, and I still do (I stay with the old stuff) it feels like an extension of my creativity when it works, it stays out of my way and let’s me do pretty much anything I can imagine.
The new Unity stuff feels like an overbearing producer trying to convince me to use all these dumb new broken toys that slow my work down, waste my time and give me headaches. The producer has never used them himself on anything but demo’s but he just heard they were the “next big thing” at some trade-show or conference. Thats what it feels like.
I’m not just some old hater. I’ve tried to work with the new toys and even offer my solutions on the Unity forums. When new tools come out for any tech I’m using I’m always the first to try them out.
Unity, the engine itself, its documentation and modules used to be solid. I feel like it started to go downhill fast after 2017.4. I stayed with 2017.4 LTS up until this past year when I moved some projects over to 2019.4 LTS.
I prefer 2019.4 LTS with the Standard Renderer and monobehaviors + a ton of third party assets.
For whatever reason recently most everything Unity touches turns into an unprofessional, unfinished, unwieldy mess where even to do basic things you need to search Unity answers, forums and stack overflow to do BASIC things. These answers used to be in the Unity docs.
Most of the good new modules Unity has added(Probuilder, Bolt, Cinemachine etc) were created by third parties that Unity acquired. The in house stuff that Unity develops these days is mostly garbage and/or unfinished with spotty support.
If things like this continue for Unity I imagine in a few years most game dev’s that code in C# will move over to Godot.
I imagine Godot will do to Unity what Blender has done to the 3d modeling/animation/rendering space and that is catch the bloated lazy “professional” programs with their pants down and proceed to BEAT DAT ASS.
Now I come from the place as a professional who wants to GET THINGS DONE in a reasonable amount of time. If you are just playing with Unity making demo’s and the like you probably won’t be bothered by these things.
A brief list of things that have turned into trash in Unity. If you’re curious search the Unity forums for these things and find all the issues people are having.
All the new “Render Pipelines”. HDRP, URP which were called something else when they came out by the way to further confuse you. Broken, buggy, confusing, unwieldy. MY TIP: Stick with the old Built-in render pipeline
* Side note- I’m also a filmmaker so you’d think I would want HDRP’s increased visual quality right? After testing it out I decided it is NOT WORTH THE TROUBLE. I’m on a fast new PC with a 3090 btw and I found it too slow, buggy, complex.
The “new” input system. Let’s ship the “release” version of this confusing system with demo’s that don’t work in builds and have been broken for over a year! MY TIP: If you are only going to use one input device use the “old” system, if you need more advanced support use the asset Rewired.
The “new Asset store. I’m so SLOW, BROKEN with a dumb UI that wastes space and I can’t even manage to do a basic working oauth function because you have to login every time you turn on your PC and visit me! I love the asset store and have spent thousands on it. Why turn it into crap?! MY TIP: At least the assets are still good.
The Unity “dashboard”. Wait, what the hell is this?! I just want to pay for my collaborate storage but I’m going to spend 10 minutes looking for how to do that because most of the links go nowhere and just reload the page 0_0 MY TIP: Don’t use any Unity services.
Collaborate. Run, run away fast! Oh wait, now its Plastic SCM? and will move over to that so…ummm… yeh RUN AWAY! My tip: RUN AWAY!
DOTS, ECS. So yeah, there was that demo scene with the flying cars then I looked at the code. So yeah, I’m trying to write simpler, smaller pieces of code that are easy to understand. I know, I know- this non-intuitive architecture that takes all this extra work will let me have a million objects on screen BUT the number of objects on screen is not the hardest part of the equation as a game dev to solve. The hardest part is making a good/fun game that works, that is the hardest part and solving that relies on the ability to iterate quickly and this overly complex system stifles that. MY TIP: Stick with old reliable, easy to code monobehaviors
Unity Learn. Again, slow(I’m on 1000/1000 fiber btw), overly complex. So the old tutorial section was simple and straight to the point. It had categories you could click through and within 1-2 clicks you got the information you wanted. Now with this slow, bloated, “gamified” thing… tiny bits of information are hidden behind multiple clicks of slow loading pages with all the this unnecessary fluff. There is so much FLUFF and so little actual information. It’s like what was supposed to be one bowl of soup, they poured in 4 cups of extra water + confetti. So you are just trying to eat the good stuff in this watered down soup while choking on and spitting out confetti. MY TIP: Watch Youtube channels like Brackeys or Jason Weiman. Search Unity answers/forums + stack overflow + Ray Wenderlich unity tutorials.
Timeline. Oh cool I’m a filmmaker so I should love Timeline. Let me use it in this scene. That’s weird, Timeline moves my actor back to world 0,0,0 and the forums say to first put the actor in a null, ok that’s really dumb. Oh they added their signals to call methods on other scripts/fire events. It should be simple/fast to make those right? 0_0 See ya Timeline. MY TIP: Use the asset SLATE instead
Unity Multiplayer. JUST RUN! START RUNNING NOW! MY TIP: Use one of Photon’s solutions
To balance things out I’m going to list the BEST parts of Unity as well.
Unity’s flexibility when it comes to C#. You can control pretty much any part of Unity with code and that is awesome. You can make your own tools with it as well, its great.
Unity allows you to make new interactive experiences and tools that haven’t been thought of yet. We used it to create a “game” that makes animations that didn’t exist yet. Unity really is a multimedia engine.
The asset store. There’s some amazing dev’s who made asset store tools like Puppetmaster, Playmaker, Odin and many more. Here’s a list of the assets we use to make films in Unity.
The new Prefab system is nice and works really well in most use cases.
The community. There’s so many cool people in the Unity community offering free teaching materials and free tools (search Github for “Unity x tool”) that you don’t really need any of the new Unity junk at all.
Build support. Unity allows you to build a game for almost any “game” platform.
Just the sheer amount of tools for Unity to pretty much do anything you can imagine. If there is an interface/device/Api that can talk to Unity someone already released it. It’s really cool.
If you use all the new shiny “features”…..
What it becomes is a toy, a shiny toy to attract new users and probably “wow” shareholders. BUT when you try to actually use these new toy pieces to actually create AND ship a project in a reasonable amount of it the toy breaks.
I could list several examples of “what the fuck are they doing?!” at Unity. Here’s one that recently affected me. In an update Unity removed the display resolution dialog which allowed a user/player to choose the resolution/quality of the executable before running it. It was ESSENTIAL to fast iteration as you could easily test different resolutions.
Here’s a thread about it. So they remove this module and offer NO REPLACEMENT. So now I and every other dev who just wants to iterate quickly has to now code their own solution on every project just to do quick tests. I was using it in our game that makes animations on Steam.
* Side note about that. In one of the updates from 2017.4 - 2019.4 Unity changed the way built games were named. I couldn’t find it anywhere in the doc’s but I noticed it when I built the game with the new version then uploaded it to Steam and the application failed to run. Unity changed the way the applications are named and the way their data folders were named. So I had to either change the Steam application name and depot settings or manually rename the files after every build. Its’s like bruh, what are you all doing over there?! 0_0
Here’s another I ran into while trying to use the “new input system” on an interactive project. In order to have your game that has menu’s/ui on consoles and/or Steam TV it needs gamepad cursor control.
The RELEASE version of the new Unity input system includes a “gamepad cursor” example. Perfect! That’s exactly what I need so I add it. It works great….in the editor. I make a build to test it and the cursor’s Y position is INVERTED in builds.
So while it appears the cursor is at the top of the screen it’s really invisibly floating at the top and vice versa making it unusable.
I search the forums and find 4 threads on this bug which was first reported in January 2020, over a year and half ago and is still not fixed as of today for the LTS version of Unity I’m using (2019.4)
I try a solution a USER supplied solution from the thread, the Unity employees (a 6 person team) offered ZERO solutions. The solution fixes the inverted cursor but makes cursor selection buggy.
I own the asset Rewired so I install it to see if the ONE MAN behind Rewired has a solution for this. Rewired includes a gamepad cursor example. I test it, it works perfectly in the editor and in builds. I remove the new Unity input system and move forward with Rewired.
TLDR: if you want solid tools for Unity ALWAYS look at the highest rated asset store solutions for the tool FIRST. Odd’s are the Unity solution is a broken toy.
* Side note- we just created the first animated feature film made/rendered in Unity AND are now creating a “game” made in Unity to release the film inside as an interactive experience and have several Unity projects lined up so we will be using it as long as we can.
I was wondering why I didn't get the pop-up anymore for resolution and graphics. It was nice for the pop-up cuz it's an in ur face. What do you want to do? In the test version with the graphics and resolution being in the language I totally don't even notice it. But good thing I don't need to really change any selection really...