Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

What is the state of Unity as an engine? What are the controversial features/additions?

Discussion in 'General Discussion' started by thehappypeanut, Jul 6, 2020.

  1. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    I have spent the last couple of weeks getting my feet wet with the Unity and Unreal engines. As someone who is relatively new to programming and completely unfamiliar with game development, I wanted to make sure I made the right decision in choosing an engine/language combination. Based on discussions I have read about Unity, there appear to be a lot of things in the pipeline - some that people love and some that are more controversial. Since I am new and very ignorant, these discussions have muddied the water for me. I was hoping that someone might be able to shed some light on the big changes or additions that are coming to Unity and why they are so controversial.

    Thank you!
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,189
    For anyone wanting to become a professional the "right decision" is to be flexible and not be tied down to any one engine or language. If you're just getting started it's not that important which engine or language you choose. My first language was dead when I started learning it, and my first engine was discontinued within a year or two after I began picking it up.

    Once you've learned your first engine and language learning additional ones will become easier. My first programming language took months to become familiar with it but my second language was only a single month and my third was a week. Languages and engines share common concepts. A loop in QuickBASIC is almost identical to a loop in C++.
     
    Last edited: Jul 6, 2020
  3. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    I appreciate your response! I'm not sure that I'll have the desire to become a professional game developer...at least not in the sense of "I want to get hired at a game studio", but I would definitely like to be able to build passion projects.
     
  4. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,550
    This is just my opinion based on a decade working with unity for game development and I'll just cover just a few points

    Pro: Unity has a really easy to pick up and flexible workflow that allows even newbies to make games.
    Unity asset store has shrunk a bit but it is still a really solid collection of very useful assets
    It has strong multi platform support and if you set everything up its sometimes as simple as pressing convert, waiting (a few hours) and fixing up some platform differences.

    For me the big con is that unity is adding new and evolving old features at breakneck pace but it has caused a lot of fragmentation between versions. If you have an older project it can be challenging upgrading your project due to incompatibilities. The other source of fragmentation is we have 3 render pipelines - the standard one works with almost everything and is feature rich but it's being abandoned. And the replacement render pipelines don't have feature parity and they also have versioning which means that assets and tools can break even between different versions of the same render pipeline. I'd actually say the most difficult part of game design for me has been dealing with difficult upgrades. There are lots of new features "in progress" so it can be confusing figuring out what works with what.

    I'd recommend unity still but I'd recommend you start with the Universal render pipeline URP so that you don't risk working with a soon obselete RP. If you're starting a new project you probably won't notice any of these issues because aside from the upgrade challenges (which is something to consider) I find the rest of the development experience in unity to be great. Just make sure you test update regularly so that you don't end up having to suddenly try and upgrade across a few point releases later and potentially encounter project breaking changes.
     
  5. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    This is one of the concerns I initially had with Unity. It sounds like the Unity team is hard at work when it comes to building new features, but they perhaps aren't doing quite as good of a job when it comes to making sure those new features don't break workflows?

    I noticed the other day that Unity seemed to update pretty regularly...should I pick the latest LTS and stick to that for the foreseeable future? I am a little confused as to when I should commit to updating as it sounds like doing so could lead to a lot of work on my end to make sure my game still runs correctly (if I upgrade the game's Unity version).
     
  6. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,550
    When I started my newest game I decided, because of the upgrade issues, that I would start with the absolute latest version of unity, which was 2019.2 . This way I could get access to the newest features and also update the project each point release to minimize the upgrade challenges.

    I had a problem though because unity removed the legacy UI in unity 2019.3. I wish they hadn't done this in a point release, but anyways my project upgraded perfectly. Except my joysticks uses the legacy ui. So to upgrade I would have to rewrite my joysticks using the newer unity canvas system (which I love btw but opinions vary). In the end I am still using 2019.2 with the plan to rewrite the joysticks when it becomes more essential. But already it broke my plan to upgrade regularly. (I think unity is at 2020.2 so I'm about 3 point releases behind)

    All this to get to if I recommend using the latest LTS. Yes I would suggest using Lts instead of unity 2020 unless you want to use some features which are in 2020 only. This is because I thought that point versions like 2019.1 and 2019.2 would be updated with backported fixes as problems arise. What i recently learned, and i did not know, is that fixes will be ported to Lts versions only - so 2018 Lts and 2019 Lts get back ported fixes but 2019.2 does not. Which means that I will have to upgrade to 2019 Lts if I find I need certain fixes. Even 2018 Lts users get fixes I will not. It's an example of how you can be positioned into a weird upgrade cycle where you can't or don't have time to upgrade but need to because fixes arise.

    If you use unity 2020.1 or .2 you have to make sure you can upgrade the project to 2020 Lts when it's released. In my case the upgrade was perfect except for the big joystick issue so you could find the uograde painless. I'm just mentioning it because it's something to keep in mind when you decide to either use the Lts version or the newest 2020 which is not Lts .
     
    Deleted User and Ryiah like this.
  7. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Unity is always adding some new feature and making major changes to old ones. With any major changes there are always growing pains.

    Unity has an interesting way of rolling out new features, where they typically roll them out initially marked as either experimental or preview. Several Unity versions later they may get changed to fully supported in a tech release, but the kinks are likely to not be fully worked out until some later LTS release. The bigger and more complex the feature, the longer this may take.

    As a current example, the most controversial new feature is probably SRP (Scriptible Rendering Pipeline). This includes URP and HDRP. The major complaints seem to be lack of full feature parity with the legacy built in renderer (Unity says they are working on it), and making it more difficult than it should be to upgrade rendering pipeline packages just between minor versions of the same pipeline (requiring previous work to have to be redone). I'm sure both these issues will be resolved as the new system matures.

    The good thing about Unity as a company is when possible they leave in legacy deprecated systems, sometimes for many years. Typically they will make an announcement when a major deprecated system will finally be removed. In the case of SRP, the legacy built in renderer still works just fine. So you can be like me and just keep watching the show in the Graphics forum here with your box of popcorn, and wait until it all settles down before moving off the legacy renderer. No big deal as far as anything I'm working on.
     
  8. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    For a pleasant introduction to Unity, yes do this. The LTS should 'just work' and you can start prototyping a game with tutorials and relative ease. I would suggest using the standard, default render pipeline, since URP does not support what you might find as recommendations in tutorials.

    Try to avoid the temptation to adapt the latest and greatest new features that you see promoted. The breaking nature of those features leads to frustration to veteran Unity developers, and total confusion to folks new to Unity. Hopefully, once your game is up and running (maybe 6 months to a year) you will be familiar with the Unity workflow AND the newer versions of URP and Unity will have matured enough to consider upgrading your game. As I said, try to avoid doing that until very late in your game development.

    The reason is, I think a game needs a ton of user testing, level design, mechanics, etc. to really build out a good game. All of that will be easier if you ignore the 2 newer render pipelines and stick with LTS. If you are making a FPS and not trying out new ideas, I might argue UE is a better choice. Unity excels in prototyping and trying out new ideas quickly, especially if you use the built-in pipeline.

    Once the game design is solid, then maybe there are some tweaks to the visual style that might justify using URP and the VFX graph or making your own shaders using Shadergraph. Neither of those are requirements for a good game design though, so best to put that off as late as possible.
     
    Last edited: Jul 7, 2020
  9. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    You can't really go wrong with just going with the latest LTS release. Generally you should take care when upgrading Unity versions. Only do so when the upgrade addresses some problem or adds some needed to feature, and always back up your project before doing so (you should anyways regardless, or use version control).
     
  10. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    My goal is to create an open world RPG...more similar to something like My Time at Portia than a shooter. Thanks for your insight!
     
  11. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    You can always start with gamemaker.

    Also I'm not sure why you'd want to know what controversial features are. The usual idea is to find ones that are useful.

    2d or 3d?
    OpenWorld rpg is a lot of work either way.
     
  12. Glader

    Glader

    Joined:
    Aug 19, 2013
    Posts:
    449
    Controversial features IMO are user-facing DOTS, ECS and the SRP with URP/HDRP. We shall see in their end-state if it was a good direction.
     
    Joe-Censored likes this.
  13. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    5,984
    Unless you're an artist who needs the best graphics and rendering immediately, my advice for a beginner is to download Unity 2018 and pretend that the package manager doesn't exist. The base engine provides more than enough capability to get through most game projects.

    To be perfectly honest, that's almost what I'm doing and I've been using Unity for years.
     
    OCASM and pcg like this.
  14. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    It would be a 3d game. While it is certainly a lot of work, I think it would be a nice passion project to spend the next couple of years on.
     
  15. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    With URP/HDRP, is there a timeline in which one could expect that to become the norm/standard?
     
  16. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,189
    For the vast majority of developers (anyone that isn't targeting very outdated hardware or doesn't have a legacy game to support) they're already the standard. URP became production ready with 2019.1 and HDRP with 2019.3. Meanwhile the original render pipeline that came with Unity has not received any feature updates that I am aware of in months.
     
  17. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    613
    Do the vast majority of developers really use it? Maybe it's true but I'd have to see some numbers before I believed that. The vast majority of Asset Store assets are still made for Built-In. And there's still a ton of issues with SRP, as detailed by Jason Booth. Unity also recently said the following about the current state of HDRP in this thread here so although the blog might say that HDRP is production ready, by Unity's own admission it isn't there yet...

    That's not even mentioning that by their own admission again, they lack feature parity with built-in. Shuriken doesn't work on HDRP for example, and terrain is limited. URP doesn't currently have SSAO, doesn't support light cookies yet, although those are planned for the next few releases. What about Projectors and Light Proxy Volumes?
    Personally I'm probably not going to switch to SRP for my next game, at least not based on its present state.
     
  18. pcg

    pcg

    Joined:
    Nov 7, 2010
    Posts:
    292
    As most people have mentioned I'd go with an LTS version and stay with it. TECH versions are great if you want to try out new features but if you just want to spend a few hours a day working on a passion project then you don't need the headaches and probably don't have the time to deal with the issues that often come with new features.

    Unless I was making a mobile game I'd also stay with the built-in renderer for now. As people above have mentioned URP currently lacks functionality that built-in provides. From a recent update by unity devs it sounds like URP feature parity with built-in will be a lot closer by the end of 2020 cycle but some SRP related issues may not be solved until the end of 2021.
    Also if you want to use assets from the store note that a lot of the assets are not URP / HDRP compatible.

    There are upgrade helper options so you can move from built-in to one of the SRP's (URP/HDRP) but there are no helpers to move from SRP to built-in so if you go down the URP route and find its missing some functionality you need then you have to manually convert your materials etc.

    One thing you will miss by not using URP is Shader Graph. The best alternative is Amplify Shader Editor on the asset store. It has the advantage over Shader Graph in that you can create shaders for built-in, URP & HDRP - its not free but worth its weight in gold if you need custom shaders for anything.

    The roadmap for Unity in 2020 was pretty quiet as far as new features are concerned which means a focus on completing what they have started and stability which can only be a good thing.
     
    Ryiah, aer0ace and Deleted User like this.
  19. jbnlwilliams1

    jbnlwilliams1

    Joined:
    May 21, 2019
    Posts:
    267
    Ok, so being new to game dev, what is the difference between, RP, URP and HDRP. How are things handled differently with each and how do you actually choose which one you are using? What processes are different?

    I am not looking for a 250 page document on their usage, just a brief description as to their differences and how they effect the developer.

    jw
     
  20. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    The built in renderer, or legacy renderer, is the one Unity has always had. I haven't checked in the latest releases, but I've always seen it as the one used by default, having to choose HDRP or URP specifically if you want to use either.

    As far as someone who isn't diving all that deep into the renderer, and just wants something that works, the big difference is shaders are not compatible between any of them. There is a converter to move some shaders from built in to the new ones, but not the other way around (and I don't believe between URP and HDRP either, but I could be wrong). Unity created a GUI tool called Shader Graph to help you create shaders without knowing shader programming, which is not compatible with the built in renderer (though there are functionally similar 3rd party tools for years which do this for the built in renderer).

    The URP is intended as a general purpose and fast system, while the HDRP has higher hardware requirements and is intended for higher end devices. When googling for information on the URP, note that it was previously called the LWRP, so you might see it discussed as such - they refer to the same pipeline. They don't support all the same features, so if you need something specific you'll want to get familiar with exactly what does what.

    Personally for my desktop PC projects I'm sticking with the built in renderer in deferred rendering mode until this all settles down, which I would expect to be in the next 18 months or so the way things seem to be going. Works just fine. I'd expect a good amount of notice for when the built in renderer is eventually removed, which will probably happen after Unity's analytics show the vast majority of projects are no longer using the built in renderer, which shouldn't be any time soon.
     
    SunnySunshine and OCASM like this.
  21. OCASM

    OCASM

    Joined:
    Jan 12, 2011
    Posts:
    326
    Yeah, URP still has a long way to go before it reaches parity with built-in. Unless you really want the newest shiny stuff like Shader Graph just stick to built-in.
     
    Joe-Censored likes this.
  22. thehappypeanut

    thehappypeanut

    Joined:
    Jun 20, 2020
    Posts:
    10
    What necessary features would I miss out on if I used the URP? Would it be very bad for me to use it?
     
  23. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,519
    On that note, Amplify Shader Editor is compatible with all 3 so could be worth checking out.

    I don't know how simple it is to convert a shader between pipelines as I've never done it, and it sounds like at least some nodes might be pipeline-specific. Their documentation is all online to find that out if it matters, though.
     
    SunnySunshine and Joe-Censored like this.
  24. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,519
    "Necessary features"? Probably none. People are already doing great work with all of the above. It's an issue of strengths and weaknesses for specific projects moreso than presence or lack of necessities.

    That said... from what I can tell:

    1. If you're new to game dev, the functional difference won't mean you "miss out" on anything. Each popeline has its strengths and weaknesses, and you don't have anything already established on the old ones, so nothing to lose there.

    2. However, documentation and resources for the new stuff seem to be lacklustre. I hear that the documentation is lacking, which could definitely be an issue. Also, expect less support from Asset Store vendors if you use their stuff because the situation is just... super hard for them right now.

    3. I hear that the new RPs are still undergoing breaking changes, which may increase your maintenance work should you ever have to update Unity. Closely related, because they're "bleeding edge" tech, you're more likely to need to update.
     
    Deleted User and Ryiah like this.
  25. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    How crazy would it be to just ignore it all and stay on the latest Unity 5.6 version for the next couple of years? Assuming one doesn't target any other plattform than Windows PC, that would require newer Unity versions to keep up with OS changes etc..

    I haven't touched Unity in a long long time, but glancing at it from afar I'm not sure all the hassle with the new versions is worth it yet?
     
  26. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    I wouldn't do that. A sane option seems to be to ignore it all and stay on the latest version that supports built-in renderer. Which is not necessarily 5.6.

    Unless you already have a massive unity 5.6 codebase and have no need to upgrade.

    Wasn't there a talk some time ago that URP does not support point light shadows? That would be a big deal, normally.
     
    MadeFromPolygons, OCASM and Martin_H like this.
  27. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    Not sure it counts as "massive", but I do still have a 5.6 codebase, and picking that project back up is a possible option. I have an itch to do some coding again, and I'm undecided between continuing this, a new 2D project in Godot, and experimenting with machine learning.
     
  28. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    613
    Correct. Point light shadows will not be available until at least Unity 2021.1
    Here's a list of some of the URP features that are in development, meaning they're not currently available...

    So as long as you don't need SSAO, deferred rendering, light cookies, point light shadows, distance shadow masks, projectors, or light proxy volumes...Universal Render Pipeline is:
    "Production Ready"
     
  29. bluescrn

    bluescrn

    Joined:
    Feb 25, 2013
    Posts:
    629
    And if you're developing for mobile (or Switch, or maybe even PC VR), that's probably just fine, as most of those features will be too costly.

    URP seems to have met the majority of goals it had as LWRP, it's just the change to 'Universal' that's caused problems. And the lack of knowledge/documentation/answers out there, compared to the classic pipelines.

    And many mobile developers have their own solutions for making the most of the classic pipeline (completely custom shaders and lighting solutions), so have few reasons to move to a new pipeline at this point.
     
  30. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    613
    Light cookies and projectors are vital features, especially for mobile. They have been used in games since the N64 days and are crucial for getting good graphics on low end hardware. You need projectors for proper blob shadows for example, and cookies let you fake realistic shadows without the performance hit.
     
    OCASM and Deleted User like this.
  31. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    LOL! In the project I was talking about I use SSAO, deferred rendering and light cookies, plus a ton of custom shaders. Point light shadows I'd use if performance wasn't so bad, so maybe I'd put it in as a feature for "hardware from the future". Guess I won't be touching URP in a long time, if ever.
     
  32. bluescrn

    bluescrn

    Joined:
    Feb 25, 2013
    Posts:
    629
    Those 'projector blob shadows' aren't cheap. With the classic pipeline, they'd be applied by re-rendering all meshes that overlap the projection volume. In well-built (low-draw-call) scenes, that can mean redrawing large environment meshes, with an alpha-blended shader (bad on mobile historically. Not so much on modern hardware, but mid-range Android devices can still be very weak while having high screen resolutions)

    If you've got a few of these blob shadows, 'proper shadows' from a directional light may well be faster, especially if you limit the shadow-casting and recieving surfaces carefully.
     
    koirat, angrypenguin and Martin_H like this.
  33. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,519
    ...?

    I just checked, yep, they're still "In Research". I know that not all games need it, and I understand even why Unity might want to encourage people to avoid them, but still... it's a common enough requirement that I wouldn't consider a "universal" renderer to be "production ready" without it.

    To be honest, the bit that confuses me is that the rename from "Lightweight" to "Universal". In a "Lightweight" render pipeline a lot of the "missing" stuff makes sense. By deliberately avoiding them the overall system can in fact be far more lightweight, and if that's what you need then committing to it and designing with those limitations in mind makes a lot of sense.
     
    IgnisIncendio and Martin_H like this.
  34. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,189
    I checked with Unity 2019.4 and point light shadows are only supported if they're baked.
     
    angrypenguin likes this.
  35. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,519
    I was thinking of real-time shadows. Didn't check baked. I should have specified.
     
  36. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    613
    So? That's the developers decision, its their job to know what's right for the project. Some games just need a fake shadow under the player and nothing else. Other games are made up of smaller modular assets, especially procedurally generated games or games with map designer features. Shadowgun 1 used blob shadows on iOS back in 2011 just fine.

    Also, projectors aren't just about performance. In stylized games you might want a blob shadow despite any performance hit so that the shadow is always the same shape/position. In 3d platformers like Yooka-Laylee, blob shadows or something equivalent are crucial for gameplay reasons since they show they player where they're going to land.
     
    Ryiah likes this.
  37. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    Meaning there's not much point in using it.
     
    Jingle-Fett likes this.
  38. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,189
    I knew what you were referring to. I was just confirming your statement.
     
    angrypenguin likes this.