Search Unity

Quo vadis Unity?!?!

Discussion in 'Scripting' started by TomPo, Jul 21, 2020.

  1. TomPo

    TomPo

    Joined:
    Nov 30, 2013
    Posts:
    86
    Hi
    I'm using Unity (for a hobby) for over 10 years now and this is sad but Unity is going nowhere.
    You are spending 99% of efforts for features being used by 1% of users - this is just a 99% wasted resources.
    You are bringing newer and newer features not fixing or bringing some basics.
    Just some short list of things not being fixed or implemented for years!

    1. Multiplayer - previous version (user as host-based) was an old and bad idea but you didn't bring the new one. No one knows when it will happen. In Unreal it's just about to check one checkbox to make something repeatable. In Godot, it's about to call a remote func. Here - there is nothing for now and you have to reinvent the wheel with sockets, listeners, streaming, byte[] counting etc.

    2. Cloths system can collide only with spheres and capsules and you have to specify them in an array. So cloth can't collide with terrain or world in general.

    3. If you want to have good looking terrain or water - buy an asset while Unreal or Unigine give it to you by default out of the box (for free). This is a problem in general, if you want something to look or work well - you have to buy assets while in other engines (Unreal, Unigine, Godot) you have this by default.

    4. There is no built-in saving system as it should be based on some internal database structure. Saving to register? Really? Again - you have to reinvent the wheel using serializers to save to the file and of course Mono is not Serializable so you may forget about the easy way.

    5. You can't still pass enums via buttons - so the whole idea of enums is useless. It seems to be easy task to implement as enums are int-based so the editor should show us in the menu enums values but behind the scene, int should be passed. But no... for years.

    6. Universal and HighDefinition PipeLines - sorry but making this separate you totally killed your multiplatform approach. It's dead. We should create now two separate projects, one for mobile and one for PC using two different pipelines? This approach is just stupid and killed multi platforming with Unity.

    7. There is no built-in patching / updating system for the finished project. Even in free open source Godot, you have an option to build a patch version with only changes that were made included.

    9. NavmeshAgents are still lost if you have over 100 of them when they standing and doing nothing as they are waiting for a free async resource. You can't even force them as calculatePath is not an async only SetDestination is.

    10. Bringing newer stuff fast not even fixing previously implemented bugs what makes Unity more and more buggy. Not to mention that the newer the solution, the worse the documentation.

    11. Decals being material based is not a great approach. It should be done via layers in my opinion.

    12. NavMesh modifiers still only available on some very old GitHub repository. Really? Like seriously?!

    I can continue with such a list for other dozens of points but I hope you get the point and probably others can add here another hundred points.

    ML Agents? ECS? Jobs? - all great but how many will use these features? 1% ? Not to mention that the ECS and Jobs system makes things even more complicated to work with.

    I just want to say - please start putting 99% of efforts for things being used by 99% of people and before you create some new super-duper advanced stuff please be sure that basics are in place and working well and are properly documented.

    So Quo Vadis Unity?
    Sadly the answer is: for the last couple of years is going nowhere :/
     
  2. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    If the other engines you mention are superior to Unity why don't you just use them instead? If you are dissatisfied with a product don't use it. Simple as that.
     
  3. Brathnann

    Brathnann

    Joined:
    Aug 12, 2014
    Posts:
    7,188
    A few people not using a feature, doesn't mean others don't. And unless there is some really good source, saying only 1% use certain features is just an opinion. Unity isn't perfect by any means, but I can easily pick apart any program and find things wrong with it, especially if I focus on features that I want.

    The great thing is there is choice. Games can be made in whatever program a person wants, with the features and designs that meet the needs of that person. It's rare in the software world that there aren't choices.

    Now, with those things in mind, yes, we should voice features that we want. Constructive criticism is a great thing. Unity in the end has to decide what is priority though, so they may not always get to what we want and we'll have to decide if that is a breaking thing for us.

    I wish you luck in whatever engine you decide to build in.
     
  4. StarManta

    StarManta

    Joined:
    Oct 23, 2006
    Posts:
    8,775
    .....? Do you not know that System.Serializable is a thing?

    I have literally never worked on a project that considered using cloth physics. (This mostly is a demonstration that your perception of what features are being used by "1% of users" is very limited.)

    And to be brutally honest - as a hobbyist, I'm assuming you're using the free version? Most hobbyists do.... and there's a reason your needs aren't prioritized. [If my guess is off and you, specifically, are paying for it, it's still definitely a fact that most people with needs similar to yours are using the free version] Unity gets the vast majority of their income from professional studios, and the very things you say aren't being used by most users are being used by pro studios. ECS/jobs are answering a performance issue that's plagued Unity since its inception, preventing it from even being considered by many studios. The two pipelines, likewise, are allowing studios to prioritize either super-high-fidelity rendering or performance (and by the way, what exactly is stopping you from building games with the universal pipeline and deploying everywhere?).

    Put another way, the super-advanced stuff is being requested - even demanded - by the actual, literal customers of Unity.

    Where does the rest of Unity's income come from? Their percentage of asset store sales - another thing you aren't using. And honestly, even if/when Unity does put all the effort into incorporating features available as app store packages, if Unity's implementation is missing 1% of the features that the app store package has, studios will happily use the app store version anyway. Sort of like Unity's implementation of JSON - there's a JsonUtility builtin to Unity, but because it's not as feature-rich as some packages, almost no pro devs use it, instead installing something like LitJson or Newtonsoft.

    There's no such thing as a free lunch, and there's absolutely no reason to expect Unity to prioritize your needs if you're not part of their paying customer base. The good news is no one is forcing you to use Unity! If another engine caters better to your needs, then use it!
     
  5. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    38,742
    I don't speak Latin but I have made games on everything from hand-assembled 6502 code on a Vic-20 on up to game engines and authoring systems using completely visual programming schemes where all you do is drag and drop.

    For me, Unity still provides an incredible value as a hobbyist, and my employer continues to license Unity because of the high value it provides in large casual mobile application integration.

    Yes, we deal with tons of rough edges all the time, just like 100% of engines out there, including ones I have made myself. If you think another engine is smoother, spend the effort and use it. For me Unity is still hands-down the best.
     
  6. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    The 1% of users who want these features are the users actually paying the bills. Your list of gripes isn't top priority because that same 1% of users who is shelling out large sums of cash must not see them as all that important. Unity gives a lot out for free to the community, but they aren't a charity.

    If Unity doesn't address the priorities of their highest paying customers, then those customers leave, Unity disappears, and the 99% of users you think are somehow more important end up losing out on the engine entirely. So live with the understanding that your concerns are secondary while you enjoy your free lunch, switch to another engine, or become one of Unity's biggest customers so you can help direct Unity's priorities yourself.
     
    Last edited: Jul 21, 2020
  7. csofranz

    csofranz

    Joined:
    Apr 29, 2017
    Posts:
    1,556
    TomPo: Quo Vadis Unity?
    Unity: Pecunia.
     
  8. TomPo

    TomPo

    Joined:
    Nov 30, 2013
    Posts:
    86
    I like to use Unity and I don't want to switch.
    I said all of this because I care. If you don't care then you just leave (as in real life with relationships).

    But I care and I really wish that the Unity team start focusing on things that are so basic that should be addressed and resolved years ago. Meanwhile, they introducing new things (also with bugs) not fixing or creating basic functionalities.
    Problem is that the game engine should be a tool helping devs to create, to earn money so they can pay to Unity company, and not to be an obstacle so you have to find workarounds or write your own solutions.

    BTW - I can't imagine how lack of Multi or broken NavAgents, lack of enums, lack of Dictionaries in the Inspector, two different pipelines and all other mentioned missing stuff can help even the richest devs to make their games using Unity.
     
  9. csofranz

    csofranz

    Joined:
    Apr 29, 2017
    Posts:
    1,556
    Tom, the mere fact that you started this thread shows that you care, no-one doubts that. But you also should accept a simple fact: Unity is a for-profit enterprise; they do listen to their paying customers, and they prioritize accordingly. Your gripes (well, some anyway), although legitimate, do not rank highly enough to make the cut. TBH, my company pays for Unity, and some of our requests have been on the back burner for years - a situation I'm not happy about and one that forces us to use an older LTS version of Unity for some of our products. But then again, using Unity was a business decision on our part, and we will take our business across the street (perhaps to the other "U") the very moment it makes business sense.

    The last part is probably the point you are missing: few professionals are here solely because they like Unity. Most are here because it is a conscious business decision, and they'd leave the second the bottom line dictates it. You, on the other hand do not have (much) financial skin in the game (note that Unity licensing costs a mere drop in the bucket compared to development, art production and infrastructure cost), and that may make it harder to understand or accept some of decisions or direction Unity is going. For example, adding support for some authoring tool chains with AutoDesk can save us hundreds of hours per dev cycle, which translates to thousands of dollars; native support for Dicts in Editor saves us $50, once. Guess what we'd be demanding to be added to Unity first.

    That's probably because you may have too little experience with how studios work. The items you list surely don't help, and you are spot on with that. But that's not the deciding question. The important thing is that they aren't show-stops. Plus, most studios use standardized (perhaps third-party) frameworks/middleware for most of the big-item features (network, multiplayer, IAP, security, serialization, storage, AI) to leverage development cost. Also, none of us work with the standard Editor - when developing a game, you usually first design the data structures, and then the first thing we do is write data structure editors for each object so that the artists can work. Nobody misses not being able to edit dicts in Inspector. But if you really must have serialized dicts access in Inspector and don't want to invest the time to write a plug-in (or get one from GitHub and adapt it to your requirements), I recommend that you get one for less than USD 50 from the AS (that's about the equivalent of one to 1.5 hours of paid work) - a steal from a developer's point. As Heinlein once so aptly put in 'Mistress': TANSTAAFL And that goes both ways: If you implement a must-have feature for Unity, they'll come knocking and try to hash out a price (as recently happened with Bolt, TextMeshPro, ProCORE and other assets). If you really, absolutely need to have a specific feature in Unity, you are free to negotiate with them. If the price is right, they'll add it for you. But playing the game means being prepared to pay the price. Lamenting about the state of affairs without taking over responsibility; demanding a seat at the table but wanting to pass the tab - those are non-startes.
     
  10. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    But all you did (from my perspective) was to complain. I'm no native english speaker. But how are caring and complaining equal? How does complaining help you to care?

    It is ok to express your opinion and to make suggestions. But statements like:
    are just defamatory.

    And regarding your 99 vs 1 % comparison (which sounds like pretty exact statistics):
    I have no use for multiplayer (#1), for cloths (#2), for standard terrain (#3, I need planetary terrain).
    #4 the saving system IS available in ECS which you defy.
    #5 I agree. This would be usefull.
    #6 As far as I understand it you can use Universal for PC too. So there is no need for 2 separate projects. If you target mobile too it's likely your game will not really neeed High Definition pipeline. Am I wrong?
    #7 patching can't be done with external tools? If you have specialized tools for modelling, creating textures, creating sound effects etc. why should this be built in if there are good solutions available?
    #8 is missing.
    #9 I have not used them. I guess they are only usefull for certain kinds of games (fe FPS)? But most games made with Unity are not FPS I guess. So providing good NavmeshAgents would be to "prioritize" a minority of developers which you speak against. I find this a little concerning.
    #10 I think beside 4 line textbook examples no program is really bug free. And it's natural that more complexity/features means more bugs. So you request the amount of bugs stay the same whereas the software gets bigger and bigger? Is this reasonable? Does this work for other software?
    #11 Sounds like a good asset for the store. Do it and look how successful your opinion is.
    #12 ???

    So your opinion is just that. Your opinion. And not universal truth. Other people have other complaints with Unity as with every other software they use. Unity has open sourced many packages. Have you ever provided an improvement for one of them? So you don't really want to help make it better you are just demanding that they provide a better product for YOUR SPECIAL NEEDS FOR FREE (assuming you are not paying for it). This is what I would call "complaing" and "nagging" but NOT constructive critizism. Maybe you should rethink your approach of how you could help make Unity better? I guess this thread is not going to work as intended.
     
  11. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    The blogpost Objectively comparing Unity and Unreal Engine by 5argon gives a pretty exhaustive and objective overview about pros and cons of both engines. Unfortunately it is more than 1.5 years old and thus a bit dated but it's still a good read. This is not to spawn an (offtopic) discussion about it here but for interested users to inform themselfes. And as an example to the OP of how to properly present issues, requests, suggestions and concerns in an objective and non-defamatory manner.