Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    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
  3. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

Feedback New build profiles is an embarrassment

Discussion in 'Unity 6 Beta' started by Hertzole, Jan 5, 2024.

  1. Hertzole

    Hertzole

    Joined:
    Jul 27, 2013
    Posts:
    422
    Sorry for the harsh title but it's true. For something very promising in theory and even got a whole section at Unite, it's barely an improvement over the old build settings.

    I know that we're still in beta and I really hope this isn't the final form. If it is, it's back to making custom build scripts again or getting an asset that has been available for several years that has already solved this.

    In the current state, you can create build profiles that do... what exactly? Change scenes and toggle development mode. That's it?

    For this to even be close to what's already available on the market (or even something that you can throw together yourself in a weekend), I'd say it needs more features like...

    Build profile scripting define symbols. How was this not obvious? If I want to make a build for site A and site B, there's no way of using build profiles because both sites may use different API calls and have different features.

    Build several builds at once. I know you're trying to sell Unity devops, but for some, it's not feasible to buy it just for something that should be built-in. (I'm not talking about building in parallel, that's a pipe dream, but queuing up multiple profiles and building them without us having to do anything else)

    Pre/Post-processing scripts. We already have IPre/PostProcessBuildWithReport but they can be finicky at best when dealing with script defines. They may not run unless you do some very specific steps when building multiple versions at once from code. So having scripts that we can assign in the editor would be great.

    Separate player settings. If I have, let's say, a debug build profile and a release build profile, I might want to have the debug build as a mono build with no stripping and the release build with IL2CPP and high stripping. This is currently not possible.

    Can't use the global scene list in profiles. So just because I make a build profile I can no longer use the scene list? Why??? Why not have a toggle between the global list and using a custom one?

    And in other UX design issues...

    Scene List does not look interactable. There's no indication that you can select the scene list item as there's no hover highlight or cursor change. The same applies to the actual scene list.

    No obvious way of renaming build profiles. The only way to rename is to right-click - rename. You can't even set a name when creating a new build profile! It may just be me, but I feel like there should be some way to rename it in the actual settings panel.

    It pains me to write this because I had high hopes for the build profiles window! I'm so tired of making build scripts for every project just to do something trivial as changing script defines between platforms.
     
  2. Enzi

    Enzi

    Joined:
    Jan 28, 2013
    Posts:
    982
    The title of the thread peaked my interest. Due to working with entities I didn't follow Unity 2023 but as soon as I read about Build Profiles I was thrown back to Build Configuration. (Was it called that way?)
    Build Configuration was awesome but then it got deprecated and everyone was confused. Now I assumed Build Profiles was the successor but I sadly have to agree with all your points. What actually is this and what's the point? Better UX? Yeah, looks nicer. Better functionality? Where?

    Back then I used these features from Build Configuration:
    - set different scripting defines (server/client)
    - productName/companyName/output.exe
    - build all builds (server/client) at once.

    This new Build Profile feature seems to be missing all of that? Am I missing something?
     
    Last edited: Jan 6, 2024
    Ryiah and goncalo-vasconcelos like this.
  3. thomh_unity

    thomh_unity

    Unity Technologies

    Joined:
    Feb 19, 2019
    Posts:
    26
    Hi Hertzole, Enzi, thanks for taking a look at the new build profiles feature in this beta and for providing your feedback. Hearing feedback like this is so important when developing a new feature and so I’m really pleased to hear your thoughts even/especially when they’re critical.

    You’re essentially correct that the first version of build profiles allows for custom scene lists and custom build settings. While this isn’t world changing in itself, it is the first step along the road to more customization per profile, and what we felt we could get ready in time for this beta.

    Several of the features you’ve mentioned here are on our roadmap, as we’ve already identified them as important for existing use cases. These include things like scripting defines, separate player settings, pre and post build steps, and better per-profile configuration out of the box when adding new profiles. I'd like to see all these get added to the feature too.

    Regarding the UX issues you’ve mentioned, I will be sure to take these to our design team and see if this is something we can improve.

    We're committed to improving build profiles and expect it to become the default workflow for configuring builds in the future. For now if these build profiles don’t provide any benefit for your workflows and I expect that to be the case for some users, then please remember that the ‘platforms’ build workflow from previous versions is still present and can be used as is until build profiles are solving a problem for you.

    Fixes and improvements are planned for this feature going forward, so please keep the feedback coming.
     
  4. Hertzole

    Hertzole

    Joined:
    Jul 27, 2013
    Posts:
    422
    I'm very glad to hear that my points are on the roadmap! I understand that we're still in the beta phase and this was more of a call to bring attention to the missing features and the hopes that they are planned.
    I'll gladly keep testing the build profiles as we move forward as it's an area that has personally been a pain point for way too long. :)
     
    LooperVFX and thomh_unity like this.
  5. SevenPointRed

    SevenPointRed

    Joined:
    Feb 3, 2016
    Posts:
    220
    I really want to find my email to unity from 9 years ago suggesting this feature ( inc player settings ) :D
     
  6. nehvaleem

    nehvaleem

    Joined:
    Dec 13, 2012
    Posts:
    440
    I don't want to nag too much and I appreciate new features coming along, but I must say that it baffles me a lot that Unity allocates resources to developing such improvements when there are plenty of more urgent matters regarding rendering, performance, compatibility, etc (basically everything related to the runtime).
     
  7. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,775
    Usually completely unrelated teams and developers.
     
    LooperVFX likes this.
  8. nehvaleem

    nehvaleem

    Joined:
    Dec 13, 2012
    Posts:
    440
    Yeah, I know, but that doesn't change what I said. Devs are also resources. I am trying to say that the focus isn't where it should be in my opinion.
     
  9. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,130
    Hi. I would like official to keep improving it until getting similar or even better than Entities Platforms package that deprecated at ECS 1.0 release. Another critical missing feature up until now I would like official to implement is override asmdef setting feature that the UI looks something like Light explorer that u can override asmdef setting at build profile. The main reason for this feature is to strip out redundant asmdef from player runtime build for client and server that they only need specific asmdef instead of all the asmdef. Currently I believe there's no way to override asmdef to build specific player runtime.

    upload_2024-1-26_14-33-59.png .
     
  10. mahdi_jeddi

    mahdi_jeddi

    Joined:
    Jul 18, 2016
    Posts:
    247
    Custom script defines are crucial; without them there is no point in having the profiles at all. All the other are way less important in comparison.
     
  11. soleron

    soleron

    Joined:
    Apr 21, 2013
    Posts:
    626
    Absolutely. No worries. In 4-5 years from now ,and provided that there are no changes in the roadmap you might get something similar to what you expected.
     
    boyaregames and Ryiah like this.
  12. thomh_unity

    thomh_unity

    Unity Technologies

    Joined:
    Feb 19, 2019
    Posts:
    26
    Hello again folks, thanks again for all your feedback, I'm pleased to report that we've folded some of these asks into the next beta versions of the U6, please keep an eye out for that and keep the feedback coming.
     
    LaneFox likes this.
  13. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,130
    I would like to add one more most important feedback. Build profile should make it ships as full complete C# source code package that decouple from editor just like how deprecated dots platform does. The reason for this is to speedup shipping new feature and bug fix much more faster without required to wait for next new editor release. And also unity users can fix the bug themselves while waiting for official fix
     
    XiangAloha likes this.
  14. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,706
    I don't think we can make that happen. DOTS build configurations failed mostly because it was a package: turns out shipping UI at a different cadence to the actual engine functionality makes it really hard to not let it get out of sync. Furthermore, build profiles integrate much deeper with existing systems in a way that they couldn't if they were a package.
     
  15. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,626
    When moved into a package, these APIs would need to be made accessible to C# / third parties as well, which I believe is a real advantage. It opens up the opportunity for third parties to create useful tools that may currently only be possible with access to Unity's source code.
     
  16. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,706
    Yes, that'd involve rewriting a lot of Unity internals.
     
  17. Enzi

    Enzi

    Joined:
    Jan 28, 2013
    Posts:
    982
    Great to hear! Which version is it? b16?
     
  18. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,706
    Spread between b15 and b16. Scripting defines are going to be in b15.
     
  19. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,775
    Oh yeah, I noticed the scripting define options this morning which is great, can finally properly configure some debug stuff.
     
    Last edited: Apr 12, 2024
  20. Jonathan-Westfall-8Bits

    Jonathan-Westfall-8Bits

    Joined:
    Sep 17, 2013
    Posts:
    289
    Just saw some of the changes coming in Unity Beta 16 for the update to the Build Profiles.....just want to say thank you so much for expanding on the Player Options for Build Profiles.

    Thank you for the massive amount of updates to the system. First glance looks like a lot of nice stuff coming.
     
    thomh_unity likes this.
  21. alexc-unity

    alexc-unity

    Unity Technologies

    Joined:
    Nov 19, 2021
    Posts:
    1
    Hi Hertzole, SevenPointRed, I'm pleased to share that as of b16, we now have separate player settings per build profile
     
    Hertzole, BlackSpider and saskenergy like this.
  22. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,775
    b16 is out btw unityhub://6000.0.0b16/1ddb887463a9
     
    Last edited: Apr 20, 2024
  23. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 5, 2024
    Posts:
    533
  24. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,775
  25. BlackSpider

    BlackSpider

    Joined:
    Oct 8, 2011
    Posts:
    52
    The build profiles are really cool.

    Will the player settings per profile be updated that you can override specific settings only and the rest it takes from the default player settings? Like Prefab overrides.

    For example only change the Application Package ID for android.

    I think now this is already possible but I first need to reset the complete player settings in the profile settings and then override again with the specific settings
     
  26. dKleinTriCAT

    dKleinTriCAT

    Joined:
    Jul 2, 2019
    Posts:
    21
    Something that causes us to currently run our own build system is that we need support for build steps that cause imports and even domain reloads (meaning we need to cleanly wait until those are done and not loose any of our build state ( or state from specific build steps) during that process). Is support for something like this planned?
     
  27. thomh_unity

    thomh_unity

    Unity Technologies

    Joined:
    Feb 19, 2019
    Posts:
    26
    I'm glad you like the new options. Thanks again to everyone who provided feedback. Please keep it coming!

    Overriding a specific subset of the settings is something we want to do, but it is a much bigger workflow change, and so something we couldn't get finished in time for this release. We decided it was better to have this override workflow for all settings than no customization at all, and since it was such a frequently requested feature.

    Having a workflow like prefab overrides is very desirable and we are looking into that, however I'm not sure it will be a feature we will see in the near future. We will continue to look at how we can improve the build profile workflow so please keep the feedback coming.
     
    BlackSpider likes this.
  28. Francoimora

    Francoimora

    Joined:
    Aug 1, 2013
    Posts:
    69
    Tested the player settings overrides on b16 and... it's bad. As BlackSpider said, it's useless until it's something like prefab overrides. We can't rely on people to be sure that nothing changed in player settings since build profiles were made. To be sure that everything will be fine, next time you build you will have to remember why and what you wanted to override, trash everything and start over. You never know if your profile is still in sync with player settings. That kills the entire idea of build profiles. So no, it's not better than nothing, it IS nothing.

    This thread shows a good picture of how Unity always has good ideas to solve real problems but still comes with a bad solution that forces us to ignore it and do our own systems from scratch. And because you are saying it won't change in a near future, I'm now sure that we won't use build profiles for our next project.
     
    KrabbyQ, soleron, XiangAloha and 5 others like this.
  29. Thygrrr

    Thygrrr

    Joined:
    Sep 23, 2013
    Posts:
    705
    Profiles need different variants (from different source files, but with same ID) of assets / directories to include based on chosen profile.
    THAT would make them extremely powerful.
     
    thomh_unity and soleron like this.