Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Unreal Engine 5 = Game Changer

Discussion in 'General Discussion' started by adamz, May 13, 2020.

Thread Status:
Not open for further replies.
  1. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    Which year do you want to use as a reference point?
    https://docs.microsoft.com/en-us/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=vs-2019
    https://www.freecodecamp.org/news/s...hat-every-developer-should-know-5e3bf6f79a3c/
    http://www.vishalchovatiya.com/21-new-features-of-modern-cpp-to-use-in-your-project/

    C++ has been borrowing high level constructs from other languages. I already mentioned coroutines.

    As of now you have automatic memory management (through RAII), do not need to EVER call new/delete manually (if you're doing that, you're probably doing something wrong), have multithreaded constructs as part of standard library, it now has got auto (equivalent of var), ranged for, better and more powerful lambdas, automatic return types detection and so on.

    In general it becomes less verbose, more elegant, occasionally starts looking like one of the interpreted languages, while at the same still working on the "close to metal" levels.

    C++20 is going to implement modules, instead (or in addition to) the usual C++ headers as well.
     
    SMHall, Rewaken, tatoforever and 6 others like this.
  2. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    5,232
    It's pretty clear the crash occurred because of the "Disalow" typo. So the question is, did you submit a bug-report to fix that typo? ;)
     
  3. Raive

    Raive

    Joined:
    Jan 6, 2013
    Posts:
    15
    LOL no, I found the crash image from unityanswers.com - there are many to chose from
     
  4. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    7,153
    Does anyone know if Unreal also needs a bug report to lift their finger for even the most obvious broken stuff?
     
  5. hard_code

    hard_code

    Joined:
    Aug 29, 2013
    Posts:
    205
    Oh bro let me tell you its so much better over there. The grass is so green. Its epic code with no bugs and no complaints /s

    Just one of hundreds of examples over there that might sound a little familiar to ya.

    https://forums.unrealengine.com/unr...eleting-and-sorting-for-ue-projects-and-vault
     
  6. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    7,153
    Welcome to my ignore list.
     
  7. superjayman

    superjayman

    Joined:
    May 31, 2013
    Posts:
    185
    When Is Unity Going To Clean Their Sh**t up. What direction are they taking?? Why not a single word from Unity!!!! Goes to show how much they care. Lately even the simplest task in Unity is becoming a nightware level waste of time, forever trying to sort out incompatibility across Unity versions.

    In Unreal C++ is made easy to work with, very straight forward and well documented. 99% of what you need is there in terms of BluePrints anyways, and it just works.
     
    Raive likes this.
  8. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    13,144
    Needing a bug report is nothing to do with how obvious the bug is, and everything to do with workflow and communications management. Messing with the workflow probably makes life harder, resulting in less time to deal with the bugs themselves.

    Plus, who cares how "obvious" something is? It's all about how much impact it has.
     
    Lurking-Ninja and Shizola like this.
  9. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    7,153
    Eh, that you've trained a bunch of people to workaround bad parts of your software, until a bunch bother to submit a bug report is a failure multiple levels, IMO.

    What would happen if somehow suddenly everyone stopped submitting bug reports? Would there be no one to ensure a feature was working as designed? (or is there no design at all and it's just, let's throw stuff at the wall and see if anyone complains?).
     
    SalahChafai160 likes this.
  10. hard_code

    hard_code

    Joined:
    Aug 29, 2013
    Posts:
    205
    Ya I like my dev environment to have unreliable intellisense, macros that breaks every code editor feature, a custom code generator that spits out meaningless errors (see macros previously), a live coding feature that only works as long as I add no properties or methods, a hot reloading feature that doesn't work with live coding and turns itself off when it feels like it, and last but not least 30+ second editor restarts.

    Dream. Come. True.
     
    Last edited: May 18, 2020
  11. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,570
    I like how freak out the unity community is and how nonpluss the godot community is.
     
  12. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    7,153
    Actually, Unity's community reminds me of Lightwave's just before it lost what marketshare it had left.
     
    SMHall, Havok_ZA, tyrot and 2 others like this.
  13. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    2,521
    A few days ago I found that I couldn't use properties in a Monobehavior script and have them show up in Unity's editor. Not exactly the same but still annoying.
     
  14. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    16,211
    EternalAmbiguity and hard_code like this.
  15. hard_code

    hard_code

    Joined:
    Aug 29, 2013
    Posts:
    205
    Ya I meant fields...still stuck on thinking in terms of unreal terminology. I did notice unity added generic field serialization so maybe we get properties next :)
     
    EternalAmbiguity likes this.
  16. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    2,841
    Before we try to argue between UE5 and some future version of Unity with all of the DOTS fully implemented, let's talk about real blocking issues that real people face today. For example, let's talk about the 4GB (32bit) file size limit that has interfered with our ability to build large scenes in Unity.

    Here are threads about the 4GB scene resources limit in Unity.
    https://forum.unity.com/threads/bug-4gb-limit-to-textures-in-standalone-build.441116/
    https://forum.unity.com/threads/textures-messed-up-in-windows-build.440675/
    https://forum.unity.com/threads/texture-problem-graphical-corruptions-need-help.395985/

    I originally posted about this bug in November 2016 when I ran into this problem using Unity 5.5. That bug remained in Unity until December 2019 when it was finally fixed in Unity 2020.1.0a19. The fix was never back ported into Unity 5.x, 2017.x, 2018.x, or 2019.x. The only way to get the fix is through the 2020.1 branch, which is still in beta. To this day, none of the production ready versions of Unity include the fix, so none of the production ready versions of Unity support scenes with more than 4GB worth of assets. Let that sink in for a minute.

    In my case, I worked around the problem by splitting my scene into multiple scenes and then using the additive loading option to load all of the assets at runtime. That solution won't work for every project, though. Some people used asset bundles to work around the problem. Either way, the bug causes a lot of game developers to waste days or weeks refactoring their projects late in the development cycle to work around a major blocking issue. This is literally a 32bit file size limit in the builds, including 64bit Windows builds. The limit was not well documented, and it did not show up in the editor. It was simply a left over 32bit limit that developers would run into in builds when they were testing and releasing their games.

    Major blocking issues like this prevent Unity from really going after the 3D photorealistic gaming market. After all, a 4GB limit is pretty tiny when developers are pushing for photorealism. And as I mentioned above, none of the production ready versions of Unity include the fix for this blocking issue. The fix is currently only available through a beta version of Unity 2020.
     
  17. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,517

    wow, that is good to know. Is there like a bulletin board somewhere to get a quick glance at what major show stopping bugs like this are known to exist?
     
    godfreyidk likes this.
  18. Ony

    Ony

    Joined:
    Apr 26, 2009
    Posts:
    1,954
    Lightwave! :) My first actual 3D program, actually, back in the Amiga days. Learning that is what got me my first job in video games.
     
  19. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    I'm working with unreal in C++, and what you're saying is not true at all.

    Intellisense frequently breaks, Visual studio frequently fails recognize unreal specific macros and methods (like Array.Num()) and keeps peppering you with false positives, and documentation is minimal when it comes to C++ API and often absent. Blueprints cannot be used for plugins, last time I checked, and have poor readability compared to code and do not scale. Regarding blueprints just working, there are fun situations like when you create custom blackboard class in C++, have an instance of it as a data asset, and then update C++ code, the instance will fail to load and you'll lose data. Additionally blueprints use binary format and you can't diff them.

    Actually I asked you to find documentation for FSkeletalMeshLODModel few pages ago, along with the example of creating skinned mesh asset through C++ Code. If you thought I forgot about it then I didn't. Still waiting.

    Long story short, hate unity all you want, love unreal all yo uwant, but don't spread misinformation, please. No tool is perfect anyway.
     
  20. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    2,841
    I don't know of any specific list. I just try to make sure I tell others about the issue I ran into, so they can work around it easier. If you find a list, though, post it in this thread.

    Other blockers I have seen:
    DX12 - unstable graphics in every version of Unity I have tested
    Vulkan - completely black screen on Android
    various VR issues (like image effects in single pass vs multi pass modes)
    various stacked camera issues

    I'm sure my list is a tiny subset of the blocking issues that have been find across all projects throughout the community. Most people have simply used DX11 instead of DX12 to work around DX12 problems, but DX12 is required for some of the preview tech. Eventually, Unity needs to get DX12 as reliable as DX11 in both the editor and in builds.
     
    Rewaken and BIGTIMEMASTER like this.
  21. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,517
    maybe that is something that could be useful for community? a stickied thread that moderator has to approve post to, where we can report show stopping bugs and workarounds only. not small things but the kind of thing that would throw a wrench in projects and cost a person days - also bugs that aren't already easily googable I got at least one that I could report
     
  22. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    7,163
    You know, I'm starting to realize that I haven't once seen superjayman post on these forums where he wasn't talking about how great UE4 is and how awful Unity is in comparison. The guy is a walking Engine War Thread.
     
  23. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    Actually it reminds me of the time when I was investigating engine differences on unreal forums. Asked bunch of questions, got a lot of excited and positive responses, like "yeah you totally can do the same thing as mecanim does". None of the responses turned out to be true few months later though.

    This kind of false advertising only creates negative impression of the engine (and its community) in the long term and nothing more.
     
    TeagansDad and SunnySunshine like this.
  24. Tanner555

    Tanner555

    Joined:
    May 2, 2018
    Posts:
    67
    I wouldn't call it false advertising. Unreal Engine 4 was built to make certain kinds of games, and the framework was designed a certain way to maximize that flow. Unreal does have an animation state machine, but you can only use them for humanoid skeletons, and not for general animation state machines.

    You really won't see the true benefits/downsides of using a game engine unless you try using it for a few months.

    That's why I think we shouldn't be debating what game engine we should be using. We should instead look at what one game engine is doing, and use that to show the benefits of bringing similar fixes/changes to another game engine.

    The new revenue policy for UE4/5 is a perfect example. Why are game developers still paying Unity $50 a month for a dark skin, when you get all UE4/5's features and source code out of the box, and you don't pay anything until you make $1 million off game sales? Competition is good for practically all game engines (in most cases).
     
  25. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,570
    Unity can't compete with tencents and fortnite though, not with unity 1.5
     
    Tanner555 likes this.
  26. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    Fantasizing then.

    If I am told that there's a feature, and there's no such feature upon the investigation, what am I supposed to call that?

    Also...
    As far as I'm aware, unreal animation state machine is skeleton-agnostic. For some incomprehensible reason everybody tries to use Unreal skeleton, but you're not required to do that and can create your own. Unlike mecanim, skeleton topology is not hardcoded into the engine.

    However, what I was speaking of is on-the-fly skeletal animation retargeting provided by Mecanim. Unreal does not have such feature. You can convert animation and attempt retargeting (the process is very likely to fail), but you can't create humanoid character with random limb length at runtime and have it animated by a humanoid controller. Which is totally possible with Unity.
     
    Nothke and Tanner555 like this.
  27. Tanner555

    Tanner555

    Joined:
    May 2, 2018
    Posts:
    67
    I had no idea Unity allows you to do this, but not Unreal. I knew of a project called UMA, which took full advantage of creating humanoid characters at runtime, and I don't see any alternative frameworks in Unreal. It's definitely possible to do the same thing in Unreal, but you'll likely have to write some custom engine code to make it work seemlessly.
     
  28. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    This is sorta the point of mecanim. You can use ANY humanoid animation on ANY humanoid. For example, if you have a soldier, you could use his animation on a gorilla, and so on. UMA takes advantage of that, that''s how it handles limb length. You can also use this to quickly setup combatants. For example, I had a script once that would grab ANY humanoid character, then process the model, setup colliders, attach ai sensor, and place a weapon into correct hand.

    In Unreal philosophy is different. Animation is part of the character and not something you can freely swap. Transfer of animation is possible, but retargeting is a process that is done in the editor and not on the fly.

    Of course, there's overhead, and mecanim is slower than "Legacy" animation. This has been brought up by @AcidArrow several pages ago.
     
  29. iSinner

    iSinner

    Joined:
    Dec 5, 2013
    Posts:
    154
    On the "in" parameter on method parameters, you can configure the IDE to give an error instead of a warning if needed, and you can also suppress that per-case basis, which i think is an advantage in this particular case, not otherwise.

    And the reason being that, for example, if you had "bounds2" passed into a method via a parameter with the "in" modifier and used
    bounds.Intersect(bounds2)
    on it, which is a very old unity api, and while it doesn't change anything in the passed in parameter, it would give a warning(error) because the api doesn't have the "in" modifier, so it could be suppressed if needed w/o disturbing the old api.

    The IDE settings can be versioned and enforced across the team on that particular project, tools like resharper, which i personally don't work w/o, aid this even further.

    As a result, you can get the c++ behavior in general, and more when dealing with old apis.
     
  30. iSinner

    iSinner

    Joined:
    Dec 5, 2013
    Posts:
    154
    This sounds very weird considering assets aren't serialized directly into the scene file. How did you manage to get the scene file to 4gb in the first place? (your original explanation doesn't make sense considering how unity serializes scenes)
     
  31. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    No.

    This kind of feature is only useful, when it is not a warning, is not an "optional thing", is not a squiggly you can ignore, is not something you can only enable in IDE if it supports it, but when it is a hard compile error on compiler level you cannot bypass or disable in any way.

    Because in this case you can guarantee your codebase is rock solid. When it is "optional" or "soft", someone who doesn't "get it" will disable it on their files and will screw up entire codebase and render bug prevention feature useless.

    Also, this does not produce equivalent of const methods. Which are far more important than const references.

    Like I said, at the very least, C# is not python. Python doesn't even have access protection on class members.
     
    Ramobo and angrypenguin like this.
  32. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    The original poster linked threads which describe the problem. For example:
    https://forum.unity.com/threads/bug-4gb-limit-to-textures-in-standalone-build.441116/
    -------
     
    iSinner likes this.
  33. iSinner

    iSinner

    Joined:
    Dec 5, 2013
    Posts:
    154
    My point was that practically you can get that behaviour with some added benefits, but you seem to be more interested in an evaluation of the language in a vacuum more than the practicality of things, it reeks of language war. Sorry, i thought i wasn't getting into that considering your previous statements, i guess i was wrong.

    I will no longer respond on this matter. Cheers.
     
  34. iSinner

    iSinner

    Joined:
    Dec 5, 2013
    Posts:
    154
    That makes more sense, thank you.

    One more thing i didn't know about resources, good thing i avoided them for most things. It is also funny(and very useful, so thanks) how the documentation explicitly says to avoid using resources for most things but a few, and i'm glad i abided by that rule hard enough to not get into this issue.
     
  35. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    7,153
    The issue is not really about the resources folder though.
     
  36. iSinner

    iSinner

    Joined:
    Dec 5, 2013
    Posts:
    154
    But it says it is.
     
  37. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    16,211
    iSinner likes this.
  38. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    7,153
    iSinner likes this.
  39. iSinner

    iSinner

    Joined:
    Dec 5, 2013
    Posts:
    154
  40. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,393
    You can't get the same behavior, and you can't get the same benefits.
    Additioanally the interest in the feature is due to practicality of things and not some theoretic bullshit.
    Const correctness gives massive benefits in C++ programming, and does not have an equivalent in C#. The principle is incredibly well tested.
    It is also not a language war thing. I actually wrote a detailed explanation of benefits a page or two ago, maybe read it?

    Also, the attitude, dude.
     
    arkano22 likes this.
  41. xVergilx

    xVergilx

    Joined:
    Dec 22, 2014
    Posts:
    2,355
    Its the scene. Single scene is packed into single file.

    Additive scene loading ofc bypasses that, and yields better loading speed (by loading it async).


    Putting everything in a single scene is probably a bad idea.
     
    iSinner likes this.
  42. nxrighthere

    nxrighthere

    Joined:
    Mar 2, 2014
    Posts:
    568
    The last 3 bug reports (one with a hard crash) I've submitted from 4.24 while working on .NET Core integration were fixed in 4.25. I basically work with the entire C++ framework for the last 5 months in step with the main project.
     
    AcidArrow and Tanner555 like this.
  43. arturmandas

    arturmandas

    Joined:
    Sep 29, 2012
    Posts:
    217
    If there is no alternative to Nanites UE5 showed in about 1 year in Unity, and I will still have to deal with old school baking of almost everything to get GI, NM, LODs, etc., then I will seriously consider changing sides here.
     
  44. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,161
    I have not read the now 20 pages of replies.
    I just wanted to say I don't care what games look like, I care if they're fun. There are plenty of pretty games that are not fun made by any number of AAA or lesser studios that only sell well because of marketing and hype, and then they disappear. The true gems are the games that people play for 5-10+ years, and none of those games get that way because of their rendering and lighting technology.

    Having better graphics is of course fine and well. Letting people import gigabyte sized models because there's no need for LODs anymore... really more of a gimmick if you ask me, but more frame rate is of course always better. I hope it leads to an improved workflow for game development in general, but I'm certainly not interested in switching to Unreal for the looks, especially not at the cost of the Unity community, asset store, C#, and so on. o_O
     
    adventurefan, Kirsche and arkano22 like this.
  45. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,069
    And when I said it would take about the same size as today's games they where laughing at me...

    Graham Wihlidal (Unreal engine rendering dev)
    Can't share technical details at this time, but this tech is meant to ship games not tech demos, so download sizes are also something we care very much about.

    Thanks for sharing
     
    Vagabond_ likes this.
  46. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    744
    Re-reading the thread, I kinda feel nervousness in the air.

    Guys, don't fret, and don't jump to conclusions. We can still make fine games using Unity, and we will even after UE5 is out. GameObjects are still there, the built-in pipeline is still there, C# is still there, and hey, we got more new stuff to choose from. Truth is the environment has gotten more complex and confusing, mistakes have been made (and will be made, it's human nature) but I don't think things have fundamentally changed. If you think about it, there's only positive stuff ahead.

    We still don't know how the Nanite workflow feels. Assuming the wildest ideas about it come true, chances are retopo/baking will still be necessary for some time even after it arrives, specially for less powerful platforms.

    I don't think it is necessary or even healthy for Unity to try and rush an alternative for Nanite. There's a fair share of issues to take care of before even considering that, and a lot of users whose workflow won't significantly change as a result of Nanite-like features being available in Unity. Remember that graphics alone do not make or break a game, development time is not only spent on asset authoring, and games aren't the only thing an engine like Unity can be used for.
     
  47. jcarpay

    jcarpay

    Joined:
    Aug 15, 2008
    Posts:
    535
    Ahh, Lightwave... Amiga, Babylon 5... The good old days...
     
    tyrot, AcidArrow and arkano22 like this.
  48. UnityMaru

    UnityMaru

    Community Engagement Manager Unity Technologies

    Joined:
    Mar 16, 2016
    Posts:
    672
    Well by the looks of the admin panel, you are Ommicron. Nice effort.
     
  49. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    5,232
     
    Ryiah, AcidArrow, Tanner555 and 3 others like this.
  50. superjayman

    superjayman

    Joined:
    May 31, 2013
    Posts:
    185
    Don't forget the Amiga Juggler Demo , Unity Still Can't Do That :)
     
    MaximKom, tyrot and jcarpay like this.
Thread Status:
Not open for further replies.
unityunity