One thing I have trouble with in Unity is the sheer size of the thing. Every time I open it up to do something that I think should be fairly simple, I end up having to go hunt through documentation, google for other people’s struggles with the same thing, and eventually find out the very specific way in which something has to be done. Surely it shouldn’t be this difficult to do simple things. Unity likes to tout that they “take the pain out” and “solve hard problems”. How about making the things that should be easy, actually easy?
I find Unity intimidating in its sheer size, flexibility and freedoms. I think because Unity has done a great job of opening it up for creative expression, it doesn’t have many limits and is like a vast ocean-like canvas waiting for you to express yourself onto. But then you feel lost in a great expanse of possibilities and it’s a real struggle to set limits and reign the system in to focus on a certain outcome. When you have in mind “I want to do this” you now have to wrestle with trying to screen out all the other stuff that isn’t relevant, narrowing down to find an extremely specific required solution, like finding a needle in a haystack.
I do understand that in order to provide all the high-level stuff and sheer scope of functionality, Unity has to be extremely organized and structured and needs all this framework to locate things in specific places. But now when you want to just do something simple, it becomes much harder than it should be. You have to find the exactly right extremely picky little flag in some obscure documentation page otherwise you have no chance of making something happen.
For example I just made a little animation clip and I just wanted to play the thing on an object when a certain event happens. How hard could that be? Well jeez, several documentation pages and unity answers and forum posts later and I finally get this co-routine state-machine thingy working to launch the animation and wait for it and do something afterwards. Waaay more picky and complex than it seems it should’ve been. Just one of many examples.
It seems like each time I want to achieve something I first have to even “locate” where the information is about how to do that, then figure out the extremely specific way that Unity expects you to do that thing, and then write the very technically cranky code that makes it happen. I think if you are a professional programmer who loves all this pain, then you maybe don’t have as much of an issue with it. But in becoming so broad and so general-purpose and so huge, Unity has in a way made the simpler things much scarier and more difficult.
Like for example, why can’t I just click on an object in the scene and get some kind of menu that implements a basic behavior or control system or basic animation in a matter of seconds? Why do I now have to resort to all kinds of typing and clicking just to get simple stuff to happen? When you look at what is involved in making even the most basic thing happen, it’s a bit ridiculous the hoops you have to go through.
I do think Unity has done a much better job now with 2D in particular in providing tools that overcome a lot of the issues but maybe what it still boils down to, the real pain-point that isn’t properly addressed, is in the area of “how do I make something happen?” Unity has tacked on impressive Timeline editing and the superbly over-complex Animator and all this other sophisticated stuff, and keeps missing the boat on the simple things. Like implementing basic AI, the most basic simple animation, basic control systems, basic interaction. It’s so long winded.
I had spent some time away from Unity doing web design stuff and because it’s a focused limited kind of system, you basically get to know simply html and css and a bit of scripting and you’re done. You can layout the page quickly and add elements and configure things pretty quickly. I was doing that all day then came into Unity and all I needed to do was add a couple of icons on my game screen and … OMG. Right off the bat, even without doing anything at all, there was just this impression of being lost, being overwhelmed. It seemed strangely daunting and off-putting. This simple little thing should’ve been a quick 1-minute addition, and when I got to doing it it turned into like 20-30 minutes at least, to do it “the unity way”. Faffing around with texture settings and UI widgets and scripting events and all this crap.
Now, I have considered maybe that I don’t know the tool well enough. Yet I’ve been playing with it for years now. In some ways Unity has made things easier on the high-level editing front, adding more tools, but on the level of creating behavior and action and interaction, it’s still a matter of a) go do some complicated very specific programming after wading through documentation, b) use some limited and longwinded “its not programming” visual tool which is even slower than programming for producing basic results, c) hunt around for 3rd party apps that have all kinds of strange quirks and limits requiring you to have to learn an entirely new system every time.
I thought to myself, maybe it’s just me, maybe I need to learn Unity more, maybe I just am not familiar enough with it. But I’m not sure that’s it. There’s SO MUCH to become familiar with. The learning curve is very high. And I see Unity now focusing on futuristic “automatic AI” machine learning toys that’s supposedly going to save us all from having to create behavior by hand. It seems like a gimmicky overshoot and is ignorant of the very basic needs of users to do simple little things in an easy and efficient way.
Unity seems to have become this sort of high-level tool for advanced developers, and whenever they want to appeal to the indie or less advanced developer they throw some new tools at it to “keep their distance” rather than getting into the very intimate personal space of how someone completes the most basic of tasks prevalent in most games. Just to get a simple 2d sprite animating - ridiculously complicated. Just to get an object to move back and forth, jeez, either some weird animation timeline or scripting needed. Just to make an object clickable and so something when you click it, now you’re doing fricking physics raycasts and writing up state machines in code just to try to make it do something. It’s pretty ridiculous how far removed Unity is from “simple and easy”.
Anyway, enough for now. Anyone else feel this way?