New build profiles is an embarrassment

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.

15 Likes

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?

3 Likes

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.

9 Likes

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. :slight_smile:

2 Likes

I really want to find my email to unity from 9 years ago suggesting this feature ( inc player settings ) :smile:

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).

Usually completely unrelated teams and developers.

2 Likes

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.

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.

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.

3 Likes

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.

2 Likes

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.

1 Like

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

1 Like

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.

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.

Yes, that’d involve rewriting a lot of Unity internals.

Great to hear! Which version is it? b16?

Spread between b15 and b16. Scripting defines are going to be in b15.

4 Likes

Oh yeah, I noticed the scripting define options this morning which is great, can finally properly configure some debug stuff.

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.

1 Like