Search Unity

No More "Cool" Features Please Until Crippling Stuff Is Addressed

Discussion in 'General Discussion' started by Games-Foundry, Nov 15, 2012.

  1. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,203
    You're missing the fact that you can just use the built-in lightmapping to do that. (Yes, in Free. The lightmapping is missing global illumination without Pro, not shadows.)

    --Eric
     
  2. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,781
    By shadows I mean shadows cast by objects, so if I put a house in the scene it cast a shadow on the ground. I don't need it to be real-time, but I can't get any shadow casting in unity free, I have to make them in my 3d modeling program and bake them there.

    I found the baking light-mapping option in unity, but it's worthless if I can't set up shadow cast effectively. Having an object protruding from the ground and having one side dark but no shadow cast on the ground beside it looks terrible, its not even worth using a program limited to that for my needs, free or not. Even Morrowind had a better shadow system than unity free., unless I'm still missing something.
     
    Last edited: Nov 27, 2012
  3. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    Beast is in Unity free as well. You just don't get global illumination without pro.
     
  4. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,611
    Baked shadows work fine in free. Have you enabled shadows on your directional light sources?
     
  5. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,781
    Yes, if I enable them it just says real-time is only available in pro (don't care about real-time). No shadows are cast for me to bake with.
     
  6. Aras

    Aras

    Unity Technologies

    Joined:
    Nov 7, 2005
    Posts:
    4,540
    Yes, the realtime shadows do not work in Free. Did you try baking them? (Window -> Lightmapping)
     
  7. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,203
    1) Turn on shadows (ignore message about realtime shadows--there's a reason it has that message rather than just not having the option available at all)
    2) Bake

    Just do it. ;) It works fine.

    --Eric
     
  8. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,781
    I did that and... I forgot what happened. I think it crashed, then I forgot it crashed. Just tried it again and it works.

    Okay cool, the reason I was confused is that I always thought of baking shadows as you set up the lights and you see the shadows, then you bake them. With unity free you don't see them until after you bake, that's not a big issue for free that I can't work with. Consider my issue resolved, although unity may want to put a small note next to the shadow setting on the lights when you turn on shadows telling the user to use the light-mapper. But I may be the only idiot who didn't get this after using unity so long.

    Thanks for the help.
     
  9. blurededge

    blurededge

    Joined:
    Mar 14, 2012
    Posts:
    255
    Kudos to everyone from UT who replied to this thread. The willingness to communicate with the user base and address specific, technical concerns directly is refreshing.
     
  10. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,203
    Whenever I use Blender to render shadows there aren't any in real time, so you don't see shadows until the render is done. Therefore that seems normal to me, though obviously seeing a realtime preview would help. But even with Pro the baked shadows don't match exactly what you see in realtime (baked shadows being higher quality).

    --Eric
     
  11. Aurore

    Aurore

    Head of Learn Content Production Unity Technologies

    Joined:
    Aug 1, 2012
    Posts:
    3,104
    There is no need to close this thread, but please stay on topic. If you have questions about lightmapping then please post your own thread, you may post the link to that thread here for convenience of the contributors.
     
  12. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,781
    Yeah sorry about the hijacking, I honestly thought I was posting about an issue that unity needed to focus on before making new things, thus making it more OT. Turns out I was just dumb.
     
  13. Aurore

    Aurore

    Head of Learn Content Production Unity Technologies

    Joined:
    Aug 1, 2012
    Posts:
    3,104
    Don't worry about it, it's all good.
     
  14. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    I've left this topic dormant for a few months to give it time to filter through any review meetings at UT. Any chance of an update please @ljmeijer or @Aurore?

    As requested, I've logged a number of bug reports ( had no response other than the case number email when submitting ) and posted details including the bug report numbers in the Garbage Collection and Allocations thread.
     
    Last edited: Jan 22, 2013
  15. Aurore

    Aurore

    Head of Learn Content Production Unity Technologies

    Joined:
    Aug 1, 2012
    Posts:
    3,104
    Hey, I brought this up with the devs a while back, I'll dig through and see what happened. Please keep in mind though that it may be a case that we can't talk about what we improve/add or not, but I guarantee that we have watched this thread.
     
  16. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    694
    To me the crippling pain point is that Resources.Load is synchronous and causes horrible lag. This is a much worse than GC.

    AssetBundles are extremely painful to use in comparison, and even when I try to load them asynchronously, they seem to cause just as much lag as Resources.Load. Currently I have to face a choice: either load everything in memory (and forget about mobile), or load resources on demand, and suffer embarrassing lag.

    So PLEASE, provide a Resources.LoadAsync, that allows me to load things without lag.
     
  17. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,209
    I've heard that the shellrazer developers and Carmack IOS rage conversion used mmap, memory mapped files on IOS to speed up data loading would this be possible with Unity?
     
  18. SevenBits

    SevenBits

    Joined:
    Dec 26, 2011
    Posts:
    1,953
    Hmm, there's an idea.
     
  19. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Aurora, can you ask if anyone has looked at the GetData() methods on AudioClips? They don't work - constantly reporting an error about streamed resources. Which means, I cannot access audio data from within Unity. Making it hard to make a music game or add visual cues timed to voice overlays.

    Gigi.
     
  20. Noisecrime

    Noisecrime

    Joined:
    Apr 7, 2010
    Posts:
    1,528
    I just had a quick look into this using Unity 3.5.7 (win7) and isn't it the case that this only happens when the audio clip is set to 'Decompress on load'?

    In which case i'm not too surprised, since decompressing the entire audio clip could potentially be a very expensive (time wise) operation. In which case its not so much that getData fails (though it does) its more a case of Unity trying to protect the user from an expensive operation.

    So what is really needed is an additional property to GetData(float[], offset, decompress) to tell Unity to decompress the entire clip first, return the audio data, the delete the decompressed audio from memory. Alternatively is there a means to copy the audio clip into a new 'decompressed' clip, so that it remains decompressed until the user deletes it?
     
  21. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    While this thread is concentrated mostly on garbage collection and suggestions as to how the API can be changed to avoid allocations, we all appreciate that there are other features that may be crippling to your own projects. To help identify those issues, to prevent the thread degenerating into an unfocused mess, and to assist UT by providing bug reports and minimizing noise, please consider the following steps for escalation:

    • Google to check that the issue hasn't been covered or answered elsewhere
    • Post in the Unity Support thread to see if anyone has a solution or validate that it is indeed a crippling issue and needs fixing
    • Prepare a test project that demonstrates the bug, or at least document the steps to reproduce the bug
    • File a bug report
    • Post the bug number here ( that you receive in your email confirmation ) with an overview of the issue

    If anyone has any suggestions to improve these steps, please send me an IM. Example supporting documentation can be found in the Garbage Collection and Allocations thread.

    Many thanks for your support.
     
    Last edited: Jan 24, 2013
  22. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    I thought so, until I tried it on my Mac. I toggled through the audio clip settings and still got nothing. Which was sad, because I was hoping to read the audio during the level design phase - I have an in-game, real-time level editor that saves out to a data-file. No luck ... Anyone else?

    Gigi
     
  23. FatiguedArtist

    FatiguedArtist

    Joined:
    Mar 3, 2010
    Posts:
    38
    Just to mention, supplementary to having a cleaner garbage collector, there are a number of reasons for upgrading the version of Mono present in Unity. Current 'stable' releases of Mono 2.10 support .NET 4.0 features without which we cannot hope to keep up with new versions of closed third party libraries.

    Also, regarding GC, I really want to see the Mono SGen garbage collector in Unity if possible link

    I do however understand that Unity have made considerable modifications to the existing Mono framework, and that moving to a new version requires a large deal of development resources.
     
  24. Noisecrime

    Noisecrime

    Joined:
    Apr 7, 2010
    Posts:
    1,528
    Sorry I meant isn't this the case when audio clip is NOT set to 'Decompress on load'. Just tested on the Mac, using Unity 3.5.7 and getData seems to work fine there too.

    However I don't want to de-rail this thread, so lets take this to PM.
     
  25. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    Hey Aurore, did you find out anything re: API changes and garbage collection? Thanks.
     
  26. Aurore

    Aurore

    Head of Learn Content Production Unity Technologies

    Joined:
    Aug 1, 2012
    Posts:
    3,104
    There was a lot of discussion about it but I can't disclose it on here, sorry.
     
  27. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    Did said discussions produce actionable decisions designed to address the concerns raised in some way, or was a decision made to do nothing? A suitable answer with sufficient transparency can be provided without disclosing any commercially sensitive information.
     
  28. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,177
    About any game or demo I've seen with complex pseudo-naturalist environments is unplayable in a browser.

    As I'm working on a game and don't care about optimizing meshes I'm glad my collegue is obsessive about it. I've discovered Chrome runs our simple game demo about 10 FPS faster than IE10 on Windows 8 Pro x64 but haven't investigated why as that's just demos. We have no intention of publishing to a portal that uses a browser.
     
  29. Aurore

    Aurore

    Head of Learn Content Production Unity Technologies

    Joined:
    Aug 1, 2012
    Posts:
    3,104
    Thanks subscriptions and your none working (sent a bug to web dev) so sorry I didn't answer, yes we are working on something to address these issues.
     
  30. Word

    Word

    Joined:
    Jan 23, 2010
    Posts:
    225
    well, it always seemed to me like Unity's 3d games seem somewhat "heavy", as if you're steering a huge sponge instead of a car or a character- you notice that especially when using the GUI of unity games. It's nothing really negative and my laptop is from 2008, but depending which game I'd produce as a developer I'd rather choose Unreal for a third person game. not sure if that 'feeling' is caused by one of the problems which have been described here, though.
     
  31. QFS

    QFS

    Joined:
    Jan 22, 2009
    Posts:
    301
    The "heavyiness" is mostly in the controls and graphics of the game, when it comes to unity games. I have played quite a few of varying types, and the thing that almost always sticks out as a sore thumb is controls/movement. Its almost as if the controls cant be pinpointed to behave smoothly and with a natural flow. Now I dont know if this is mostly due to the developer or engine itself, but I'd say 95% of the unity games suffer from it.
     
  32. MarigoldFleur

    MarigoldFleur

    Joined:
    May 12, 2012
    Posts:
    1,353
    It's because most of the games using with Unity are likely using the very old and very terrible default controller package. Give the character controller package a shot, slap the FPS prefab in there and you'll see exactly what I mean. It's great for testing purposes, but it's not something you'd ever want to use.

    edit: If you're referring to the Mecanim demos, I believe the motion is a bit sluggish to exaggerate the animation transition effects that Mecanim adds.
     
    Last edited: Feb 13, 2013
  33. Smooth-P

    Smooth-P

    Joined:
    Sep 15, 2012
    Posts:
    214
    Am I understanding this post correctly, that the current Mono version, which has a multi-threaded, multi-generational, low-amount-of-blocking, heap defragmenting GC *isn't much better* than the ancient, single-threaded, non-generational, completely-blocking, leave-the-heap-in-shreds GC we have now?

    What version of Mono is your internal prototype on, because said statement flies in the face of basically everything known about GC theory, real world experience with GC peformance, and empirical data regarding Mono's GC implementations.

    I'm reminded of when Bullet was under investigation but was said to be not much better than Unity's Physx implementation. Sticking with the rot in that situation instead of moving forward has NOT been good for those of us who are doing anything physics intensive (physicsy games are a small market, I know *cough* *birds* *cough*), trying to write decent netcode for real-time multiplayer games (also niche... Call of What?), or even just care about something as simple as decent bounces.
     
    Last edited: Mar 1, 2013
  34. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    While an upgrade is overdue, we waited that long, please don't migrate to 2.8, migrate to 3.0 beta now, and ship that when mono 3 ships live (non beta), no reason to wait 10 more years for C# 5 since it should be soon now!
     
  35. Smooth-P

    Smooth-P

    Joined:
    Sep 15, 2012
    Posts:
    214
    C# 5? I'd be happy with a covariant IEnumerable<T>. :-x

    (Actually I want all the latest FP and generic goodness that MS has come to realize is important and uber-productive)
     
    Last edited: Mar 1, 2013
  36. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,963
    And while you're fixing crippling things, how about occlusion culling and water? Transparent water messes it up! Reflections are not correctly occluded (they pop in and out all the time), and even seems to screw with stuff under the water, even if it is not marked as an occluder.
     
  37. superpig

    superpig

    Quis aedificabit ipsos aedificatores? Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,233
    If the water's not marked as Occluder Static, it shouldn't be affecting occlusion culling at all - water's nothing special, it's just another poly object with a particular shader on. If you're seeing problems with things set up correctly, file a bug, because I've not heard anything like this described before so there's a good chance they don't know about it.
     
  38. recon

    recon

    Joined:
    Nov 28, 2009
    Posts:
    119
    I'm not sure if this has been covered before, but accessing a transform's .parent adds a couple of bytes to the GC.

    Just throwing it out there :p

    (EDIT: oops, wrong thread. Sorry)
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,963
    of course I've checked the occlusion flags, and I agree, it should not affect occlusion at all. But it does. My guess is that a lot of people don't use it, or at least not with outside scenes. It's pretty evident that it's messed up - if you've purchased Michael o's Medieval Environment Pack, load up demo 6 and see it. Others have posted the same problem, and sent bug reports. Suppose it couldn't hurt for me to do also -- though there's not a good history of response.

    edit: I see I'm not explaining myself well. Occlusion culling is incorrect in the reflections and refraction of the water, not during the normal pass.
     
    Last edited: Mar 2, 2013
  40. superpig

    superpig

    Quis aedificabit ipsos aedificatores? Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,233
    Ahhh. OK, that makes more sense :)

    I don't know how the water effect is built off the top of my head... I guess perhaps it does some kind of extra render of the scene using an 'underwater' camera position faked in the vertex shader and so the OC system does culling based on the view camera position rather than the reflected position?

    Sounds like some kind of cullPositionOverride API is needed, if so.

    (And if someone at UT is going to go in and make changes to the OC system, exposing arbitrary point/volume queries would raise the usefulness from "thing I sometimes bake if I remember cos it can't hurt but the culling system I wrote appears generally faster anyway" to "actually worth having...")
     
  41. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    Are you kidding me UT? audio.loop doesn't work when streaming from disc - #FAIL
    Bug 535039 filed.
     
  42. n0mad

    n0mad

    Joined:
    Jan 27, 2009
    Posts:
    3,732
    Last edited: Mar 29, 2013
  43. Alf203

    Alf203

    Joined:
    Dec 7, 2012
    Posts:
    461
  44. Games-Foundry

    Games-Foundry

    Joined:
    May 19, 2011
    Posts:
    632
    The complete and utter lack of transparency or communication is worrisome UT. Folk Tale joined Kerbal Space Program and War For The Overworld in Steam Early Access May 31st and now has tens of thousands of players. I've been working through error logs for high priority support incidents where the game was crashing for some players. In a number of instances I've fixed errors that were due to my code, such as missed Null Reference Pointer exceptions. However, I am now hitting what is clearly a severe, known, and long standing issue in Unity:

    Code (csharp):
    1. DynamicHeapAllocator out of memory - Could not get memory for large allocation
    2. Could not allocate memory: System out of memory!
    3. Trying to allocate: 13684946B with 4 alignment. MemoryLabel: Audio
    I took steps and reduced the memory footprint of the game from 2GB to 1.5GB to ensure there was sufficient headroom for all operations. The crash is happening when we load an assetbundle containing assets for each cut scene, specifically the stereo wav audio file. Unfortunately the crashes are still happening, both on 32-bit and 64-bit systems.

    A google search pops up reports of this spanning back to March 2012:
    https://www.google.co.uk/#newwindow...661,d.d2k&fp=f14785ba4cd6c5d&biw=1920&bih=979

    This problem has not only affected Folk Tale, but Kerbal Space Program, Battlestar Gallactica Online, and War For The Overworld.

    I notice in the blog article for the upcoming 4.2 ( which looks fantastic and many of the features will help us on Folk Tale ) that it says audio now plays nicely with gc. Will this fix this issue? I have an extremely costly workaround which involves licensing Bink video, but I'm hoping not to have to do that.

    Also, you may recall that more than 6 months ago I raised the issue of allocation in the API. You said you were working on something, but couldn't tell us what it was because it was commercially sensitive. This problem has had several implications for us. Firstly, I've had to spend thousands of man hours implementing object pooling systems, and rewriting original code in what should be a managed framework, to eradicate game cycle allocation. I've done all I can in my own code, and third party asset developers have done their bit too. UT however appear to have done nothing. All the work we have done means that the resulting short but noticeable freeze in gameplay has been minimized, but this problem has also affected WFTO if you do enough googling. The second implication is that I cannot use the Unity terrain system, so I've got to rip it out and write my own terrain system. The point is that by not addressing these issues, in some cases you are forcing developers to incur substantial hidden development costs to develop workarounds, and a number of often touted Unity Pro features are useless.

    I mentioned in one post I've made over the last two years that we are a commercial project. While in development, I can understand if you thought yeah they are making a desktop game, chances are nothing will come of it. But now indie games are bursting onto Steam and selling thousands of units, and UT are going to have some whistle-blowers if they don't start being more transparent and actually fixing bugs that were reported over a year ago.

    I'd like to give UT this opportunity to address the issues affecting developers working on high profile games because I believe Unity has the potential to be a very good AA if not AAA desktop engine ( in fact I praise UT in a recent recorded interview going out later this week ). Unfortunately in my opinion you are now hindering the commercial success of developers including ourselves because of the negative feedback coming from players who are experiencing crashes caused by code in the Unity engine, and you simply cannot continue on your current course of non-communication and opaqueness.
     
    Last edited: Jun 10, 2013
  45. Eskema

    Eskema

    Joined:
    Jun 23, 2010
    Posts:
    312
    Well, this is a "normal" behaviour, a company that releases a closed source engine, no interest in fixing bugs that are not affecting the 90% of people, nothing new here.
    Of course it will be nice if they decide to fix their bugs instead or releasing new S*** like mecanim, dx11, etc, etc, but they are only interested in showing how awesome the engine looks to potential new users, and the rest of us..... well, no one cares.
     
    Last edited: Jun 11, 2013
  46. jc_lvngstn

    jc_lvngstn

    Joined:
    Jul 19, 2006
    Posts:
    1,503

    This deserves a response. UT, are you proud of your communication and customer service?
     
  47. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    +1 here, candy features are nice but should never take priority, i think unity needs to do one and only one thing : stop all development, move to 64 bit editor + upgrade to latest mono, and then not resume any new feature / enhancement devs untill every bug is fixed.

    Unity is becoming unusable for me as i'm plagued by editor crashes :( Some bugs i reported at the very start of unity 4 are still there and not treated even though i proposed to give remote access to a machine where you can repro them in 1 minut that has the full VS intalled etc :(
     
  48. squared55

    squared55

    Joined:
    Aug 28, 2012
    Posts:
    1,819
    As much as I like the cool new stuff, it really just feels as if they keep introducing more and more bugs. Animating with mecanim now requires me to run a scene with every controller I have in it before building, which is really annoying when I just want to flip a switch I forgot last time. I'm almost scared to upgrade to the newest version now.
     
  49. eskimojoe

    eskimojoe

    Joined:
    Jun 4, 2012
    Posts:
    1,441
  50. Hikiko66

    Hikiko66

    Joined:
    May 5, 2013
    Posts:
    967
    I have some sympathy for the basic premise of this thread, and I feel unity is good looking and cutting edge enough at this time to turn some more attention on bugs and other things that have been overlooked.

    Just to add something about wind zones (which i have been working with lately) as an example of disparity between reality and the reference manual:

    The manual says of windzones: "To create the effect of an explosion: ... fade the Wind Main and Turbulence quickly to make the effect wear off."
    Except you can't do that outside of the editor, because Windzones are not accessible via code. I looked around and it seems like a long time ago they used to be accessible, and that that accessibility was revoked, seemingly without explanation, possibly by mistake. This has been brought up a number of times since then but there has been no official feedback, fixing of the issue, or correcting of the reference guide to reflect the reduced functionality of only having access to static windzones.
     
    Last edited: Jun 11, 2013
unityunity