Search Unity

  1. If you have experience with import & exporting custom (.unitypackage) packages, please help complete a survey (open until May 15, 2024).
    Dismiss Notice
  2. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice

Unity has no need to make 'real games' in order to optimize performance.

Discussion in 'General Discussion' started by Frpmta, Jun 27, 2016.

  1. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    I read all the time that 'Unity needs to make a game in order to get the engine to modern performance standards'.

    So I had this idea: you can simulate developing a game like Skyrim with ease by making things like ugly and artistically unpleasant houses with a high amount of polys and high res textures and a high amount of interior assets too, while also ensuring to maintain a certain asset density through all of the varied terrain and all that.
    Throwing a bunch of trees, grass, decals and rocks (different rocks, not instances of the same rocks) in an incoherent way. Then creating a water river around and all that and then seeing the performance. Then an ugly cave that you can walk in with tons of assets inside. You get the drill.

    What I am saying is that you can create heavy scenes that do not have to look good then optimize the scene, solving problems like the stutter and all that and then sharing their solution with the community. 'Knowing the Unity way of things' basically... there is not a single example scene/showcase showing how Unity would make use of streaming in an open world with their own engine.

    Of course, I do know programming art is a thing and that it is obvious that Unity already makes use of it.
    But what I am trying to get at is that they do not have to create an Unity Blacksmith in order to push their engine and stuff like that, that's only for showcase and mostly a waste of money. I'd be more impressed by an ugly scene that performs well! :p

    tl;dr: Basically, copy the current Blacksmith scene 5 times, throw a bunch of stuff around and then proceed to create with it an optimized open world that does not stutter like most Unity games with a high asset count and streaming. Then also make some units/NPCs go around patrolling to test the physics, animation and AI performance footprint and anything else that can be optimized and is expected from a modern open world game. Making everything run simultaneously while still maintaining a decent performance is the challenge after all. Things performing well individually means nothing.

    While it may sound like I am demanding Unity to 'focus in open world games', it is not. Open world technology is the same as any game outside of the streaming tech (and occlusion culling).
    But it is not the only reason. I am saying this in the light of Epic transferring lots of their game development results back into their engine. They developed a set of next-gen nice hair/skin/eye shaders, but all that requires is a few characters not a whole game of characters. Same for their LOD improvements and innovations.

    Most things in the engine we can sort with the asset store, but performance is not one of them.
     
    Last edited: Jun 27, 2016
  2. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    If it would happen, it would take years. Stop begging for the impossible and download CyEngine right now if performance is your main concern.
     
    antislash, Ryiah and ZJP like this.
  3. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    I do know it would take years. But they must start someday.

    We are still right where we were 2 years ago in terms of performance or even worse depending on your usage of Enlighten. Even if IL2CPP proves to be good, it wouldn't change the fact that Unity still hasn't made a public release project or scene showcasing how to make proper usage of the engine advanced features like streaming and the good coding practices to go with it. Even the information on 'having an Update loop for every script is a bad idea' is almost hidden.

    My proposal is just a suggestion: that not being makers of games is not an excuse when you can produce the necessary amount of assets to fill an open world when you take aesthetics out of the way.
     
    Last edited: Jun 27, 2016
  4. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    I agree with @Frpmta here. It's very easy to make an ugly but hipoly object. Then you feed bunch of these to the engine combined with some other ugly but performance heavy effects and then optimize it away at the engine (c++) level. It's very easy to make scene with low performance. All Unity would really need is to make one then find a way so that no matter how complex scene gets, performance would be comparable with competition, using that ugly but heavy scene as a base and testbed for optimizations.
     
    Frpmta likes this.
  5. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,035
    Actually whenever I read "Unity need to start making games" is always about discovering design issues and bugs not performance issues. Things you cannot discover with some automated test. I am sure they do test performance enough already.
     
  6. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I have actually planned to do just that, not for optimizing, but for training myself to make big game troubleshoot early without the burden of quality. So just wait and see lol.
     
  7. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    They do mostly isolated performance tests of the different aspects of the engine.
    http://aras-p.info/blog/2015/04/04/optimizing-unity-renderer-2-cleanups/
    Even if you can get a rendering performance better than CryEngine, when your physics are non-performant, when your engine struggles processing raw poly amounts, when occlusion culling and LoD transitions make the engine slowdown (when they are meant to do the opposite), then none of the benefits will be noticeable.

    If you notice, they have never released a single project/scene with a focus on proper usage of their engine then catch everyone by surprise with blog posts like this: http://blogs.unity3d.com/2015/12/23/1k-update-calls/
    To make things worst, read the comments like 'OnCollision/OnStay' being even worse, which even if you can avoid Update through proper coding practices, those two are not ones that you can really avoid when you need to make use of them, unless you change your design approach of that object to work on raycasts on something, which on top of not being granted to work could end up adding complexity to development and not be as effective.

    Scenes like Blacksmith and ADAM don't really do a lot. Their quality have been attainable since Unity 4 because it is all about the artist mastery of Zbrush and WorldMachine. Performance is another story.

    This is not exactly an automated test. It is actually a demand to create a huge sandbox openworld even if full of artistically low quality assets where they can have an overall look on the way that design and performance converge. Then throwing random animated AI patrols with IK and physics, and physics events like destruction and after optimization, adding more random complexity to the scene until even things like particles or even APEX are performant.

    The biggest Unity games released always get complaints like stutter/microstutter while Unity has yet to release something showing what are the proper batching and pooling practices or at least provide a start point.

    A single project would be enough to show 'the proper way' on how it is done.
     
  8. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I have start looking at scope of game, disregarding specific cells, skyrim is 119*94 terrain cells of size 57,6m² (63yard), a quarter of that is behind boundaries. Xenoblade chronicle X on wii u is 10x time that, but let's use skyrim as the gold standard.

    Trying to find how many unique objects, character, system, etc ...

    If we can continue scoping it then replicate the same load ...
     
  9. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,606
    Nope.

    Making things look good is part of game development process, so if you throw that part away, you will not be simulating game development process, and just waste time instead.

    If you do that, you'll make a cheap "asset flipped game" and will not hit issues that would surface if you tried to develop something like skyrim properly. I think it would be better if unity actually made games instead of wasting their time making something like what you suggested. It is less about performance and more about design decisions.
     
    theANMATOR2b likes this.
  10. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    Also stuff like amount of materials being rendered at a given point of a scene.
    Question 15 of this interview is interesting: http://www.moddb.com/mods/obsidian-edge-2/features/crytek-modding
     
  11. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    Well, the problem with most asset flipped games is bad performance, so it would be a good start :D
    'How to make trash run well'.

    What special design decisions do Skyrim takes that require 'making things look good'?
    When I say 'ugly art', I never said they will just throw in there a 512x512 terrain texture over the whole world. I meant to not focus on it looking artistically pleasant but still throwing a hi-res splat map over the whole world with POM, wetness effects and blending of objects placed on it.

    Additionally, the purpose of this thread is 'a cheap method' to simulate an open world game so saying that it 'would be better if unity actually made games instead of wasting their time making something like what you suggested' comes as if you didn't read when one takes 100x more time to get done than the other.

    Ugly art is an expression. It is about demanding Unity to stop focusing on their scenes at Unite just looking good and performance never being a part of the focus.
    The asset flip is of course an ideal method of prototyping so if they can build assets and build an open world around it it would be fine, or just take the Unity Blacksmith scene and expand on it through copy pasting with different materials for everything.
     
    darkhog likes this.
  12. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493

    Yeah I'm taking that into account, in fact my plan is like that:

    - Primary concern
    1. scope (cram as much stuff as skyrim), which have its own logistic problem, especially for me, that I need to find how to considerate.
    2. flexibility ie ease of editing all those stuff
    3. load, ie how to make all these things fit and work together
    4. speed, not performance, the ability to make stuff quickly

    - secondary concern
    5. quality (design is not boring)
    6. performance (run well on all machine)
    7. beauty (best rendering on all machine, artistic flair)

    This isn't quite the same thing as the OP as I focus more on planning and logistic stuff, but I think it will lead to a good base for that. Because one kind of feed the other.

    BTW I found some new numbers for skyrim

    2099 armors
    380 books
    120 clothings
    77 foods
    95 ingredients
    284 jewelries
    336 keys
    341 items
    22 ores
    285 potions
    52 powers
    75 scrolls
    17 souls gems
    27 spell tomes
    2358 weapons

    18 main quests
    101 guild quests
    12 contracts
    24 dungeon quests
    31 side quests
    15 daedric quests
    24 civil war quests
    88 misc quests
    36 bounty quests

    1089 characters (230 essentials)

    Now a lot of them might share similar material or meshes, but it's fun to consider all uniques

    Data might not be accurate there might be duplicate in categories for quest and character, however item lists is from an excel file I think it's accurate. There is also clear pattern that can be used for generation.
    http://elderscrolls.wikia.com/wiki/Category:Skyrim:_Essential_Characters
     
  13. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    I read threads like this and think:

    "How did Unity Technologies come to have one of the most widely used game engines in the world if they don't listen to business strategy advice from random forum posters"

    The game engine market is still wide open. If you think your strategy will make a better engine, go do it. Nothing is stopping you. If you think Epic's strategy has produced a better engine, go use it. Nothing is stopping you.
     
  14. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I think there is merit in engaging in a conversation too, they have also evolved to their place due to their unique business strategy of listening (at least in part) to their customers.

    Anyway I'm more interested in the challenge than prove unity anything.
     
    darkhog likes this.
  15. Deleted User

    Deleted User

    Guest

    Would it not be simpler for Unity to try and help those making large types of games? Seeing what common problems are, what workarounds they had to do etc?
     
    neginfinity likes this.
  16. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Or alternatively Unity could simply partner with those who are making the big games. Like they do at the moment. Unity reps are very much in contact with their big customers and very much aware of the technical challenges they are trying to overcome.
     
    neginfinity and zombiegorilla like this.
  17. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    Ease of use. I was doing more in an hour of Unity in terms of scripting and understanding what I was actually doing than what I managed to in CryEngine in a few months.
    Doesn't mean Unity was more performant than any of those engines. Just actually usable without years of experience in C++ and knowledge on how to integrate physics engines.
    And this thread is one mainly focused in addressing the current engine issues on two topics: streaming and physics.

    The problem is that they become an specific solution for those games because Unity only searches an answer to their already implemented solution. They aren't going to tell them to retool their engine but rather give recommendations for what they have got there already running even if it isn't the ideal solution.

    And iirc Ori was backed by Microsoft meaning they have an Unity support license and their devs appeared in the forum saying they were going to fix the stutter and then just disappeared. By now It seems no dev is able to fix it. https://steamcommunity.com/app/261570/discussions/0/617330227196019919/
    Streaming issues everywhere is what I read, and when even the experts can't manage it to run properly, there's not a lot left to do for those who are just decent at scripting.

    The solutions like Umbra are proven to work in other engines, but somehow Unity's implementation chugs a lot.
    And then there are comments on how Firewatch shadows look better at low quality than high...

    I remember how Unity 5 pre-release was all about the high performance physics. But if the current ones are good performing, it is only in comparison to Unity 4. They should devout more resources to physics which is one of the main pulls to game engines.

    I just want a project (of ugly assets, asset flippers can die) I can analyze to know the Unity way of doing things :D
     
    Last edited: Jun 28, 2016
  18. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,606
    "Trash runs well on our engine" Is not a good marketing slogan.

    I think the idea is just bad.

    It would make sense if unity either made a game (because when you make a real thing you'll bump into issues you won't ever encounter making a "trash openworld game") OR if they started seriously processing feature requests and feedback from actual developers. (As I mentioned many times I have never had ANYONE respond to any of my bug reports, so I can only conclude that unity doesn't give a damn about them).

    Making a "trash game" for performance purpose is a waste of time. Because in the end you'l get limited optimization data BUT without a useable demo that could attract more people to the engine.

    It is a waste of development resources, with minimal or non-existent gains.
     
    Kiwasi, Gekigengar, zenGarden and 2 others like this.