It says “This game is not supported on Mobile”. Does Play have settings for mobile support (haven’t used it, personally).
Hello Brendan… Very nice of you to chime in
I simply assumed with the WebGPU compiled project being a product for the web that it would fire up on either “Unity Play” as well as through a web page if uploaded onto my personal web server similarly as in the old days with early WebGL… And, therefore, also fire up through a web browser on a mobile device, even from Unity Play… Possibly not a good assumption! BTW, I appreciate your WebGL design efforts and passion… There is no doubt in my mind that the web will become 3d per your efforts!
Thank you so much!!!
It seems to me it’s probably an issue with Play, where Unity pre 6.0 didn’t officially support mobile WebGL so they probably have a check to disable it. I’ll ask about it on Monday.
When opened from Android, if I set the Unity Play page to load as “Desktop site”, the project loads, but I see only white dot at the middle of the screen.
Also, can you please ask the Unity Play devs to add allow=“xr-spatial-tracking” or “xr-spatial-tracking” to the existing allow list of the iframe? To support WebXR.
De-Panther… Mighty awesome that you tried… I’m grateful… Thanks
To bad she gives you a blank project with the white cursor “Sight”… Dam…
Your second paragraph is beyond me except this may help and I pass this over to Brendan, the Top of the Chain Unity Dev…??? (Thanks Brendan!)
- Then, I have continued my dev with a new WebGPU task trying to get Cesium Ion into the WebGPU system… Not much luck as Cesium seems to suggest porting thier world tiles into WebGL has a problem on the Unity side… The project works great in the Unity Editor but will not work in either the compiled local host mode or in an uncompressed compiled WebGPU project, launched from my personal server.
- But, the good news is that in working on that project I tried compiling the WebGPU project and toggled off the compression and loaded to my personal server and with slight issues I managed to launch the project on BOTH the PC web browsers as well as on my S9 mobile device.
-So, although there are issues in recreating my 25 year in the making 360 World Digital Twin Template with Cesium Ion, (fired up blank), it is awesome that WebGPU will work on PC Browsers and Mobile Devices all from one internet link when launched from a single web link…
-Way COOL!
Just need to keep at it, as always
And, I keep my eyes open for cool new news from Unity and other software Devs who make plug-ins and add-ons to incorporate correctly but finding all these components that play nicely together is the trick
I’ll ask about if we can add xr-spatial-tracking.
@TerraSame1 I took a look at your build with the Desktop mode on an Android Tablet and got the black screen with white dot that @De-Panther saw.
I opened the Chrome inspector on it, and it’s erroring because the Android WebGPU has a smaller maximum number of color attachments for a render pass than desktop computers have. This is happening because the default renderer in the URP samples is set to Deferred for some reason, and the multiple render targets for the deferred rendering in that scene is exceeding the Android limit.
Switch the URP renderer to Forward (or Forward+) and you should be good and mobile.
@TerraSame1 For supporting mobile web with Play, here’s the response from the Play team:
Play is blocking mobile web from loading unless the toggle here is turned ON. Users can modify this via the upload/edit game page.
We did this on purpose in order to ensure mobile users are not loading non-mobile compatible games (which are the majority of the games on Unity Play
@De-Panther The play team said they could look into adding iframe permissions as needed. Is it just “xr-spatial-tracking” needed?
Yes. Thank you
@De-Panther The play team has added the xr-spatial-tracking permission and deployed it to production. They’re asking if you could test it out for them.
It works! Thanks
Overall I’m really happy with the web features of Unity, and I appreciate you responding to everyone in this thread, Brendan. Aside from the one time hiccups and file management issues, performance has steadily been getting better and I rarely run into any huge bug. If these stutters were addressed and the ergonomics of managing web builds were improved a bit, this would be in a REALY good place.
There are some pain points in build times and loading hiccups at runtime in the playable.
There’s also lots of headaches in overall scene management. Setting things that affect texture and sound quality, format, etc.
In short, it’s scattered, slow, and prone to user error, and if you’ve working on decent sized projects, it becomes a headache to try to port and optimize for web. Just trying small tweaks and reducing these stutters becomes a pain and I lot of the time I feel as though I’m wandering in the dark.
Seems as though loading hiccups and build times are getting longer, but I don’t know if that’s user error on my end because it just takes so long to set various files and to try new build settings/loading setups.
Is there a recent “best practices” guide available that could alert us of existing performance bottlenecks that are out of our control? I know it’s kind of taboo to just come out and say “Hey this is currently a bit broken and makes our web builds not very attractive”, but tracking down that performance bug that causes lag on touch with custom shaders sucked 2 months out of my production trying to track down why the issue was happening, and I can’t help but wonder how many people are wondering why they’re getting diminished framerates when the screen is touched.
Sometimes I question my sanity, because I’m using Unity, I’m using the Web build, CLEARLY if there were major issues and pitfalls they’d be common knowledge so we don’t overexert ourselves trying to fix user errors on our end… but after years of working in web, I really am not any more confident that I can fix huge performance hiccups than I could years ago. Any time I think about trying to readjust my pooling systems, or hunt down some new setting, or try throwing all my assets in the resources folder, or make everything preloaded I shudder and just feel as though I have no idea what i’m doing.
I recently revamped all my pooling systems hoping this would reduce the seconds long hangs i’ve been getting in recent web builds, but that doesn’t seem to fix the problem, it just made the initial frame take over a minute to finish AND i get the hangs elsewhere. I was hoping if I loaded all my assets, put them in the field of view of the camera in the first frame, then loaded up the game there would be no hangs, but I’m still getting huge hiccups.
This MIGHT be because of music loading in certain areas, but I’m not sure. It’s really hard to tell what the pain points are with performance, because to my knowledge there’s no way of emulating a true web build in the editor so we can work in real-time to solve these issues.
I know this is post is dragging on, so I’ll try to just highlight a bit of the frustration of managing files for sounds and textures.
So for web we get these options for a texture:
With these formats:
And all those options are really confusing. 99% of the time we just want the “Best” one. The one that’s compatible and has the best quality to size ratio.
I’ve found the ASTC non HDR fulfills the needs of my project best, but I’ve found that compressing these with crunch DESTROYS the quality of the textures, while offering little to no file size savings, so this process is prone to user error.
It’s also impossible to set these settings with Normal map textures as well in group selection because of file type mismatches, or any files that happen to have 1 setting off, making getting all your files sorted out a real undertaking.
Too further muddle things, to most users the increasing block numbers are going to sound like they would provide higher quality, when in fact it’s the lower 4x4 block that provides the highest quality, but has the largest file size.
It FEELS as though the compression quality slider should be selecting between the 12x12 block resolution and the 4x4 block resolution with the higher quality one being on the right.
The other file formats have been incompatible or low quality if I remember correctly, I’m not sure if i’ve had the time to experiment with them all, or if a better solution has been added that I was unaware of.
Time and again I feel as though I’m just guessing at these settings and figuring out what works through trial and error. And with so many files and so many settings scattered all over the project, we are bound to set the wrong setting, either on niche files, or globally on large scale. And one little tick box in this area, or that area, can have DIRE repercussions and you will have no idea that that will persist forever.
It then takes upwards of half an hour to migrate our files to a different file type, and even longer to produce a build to test the performance affect of these changes.
This is to say nothing of other important setups that can affect performance like preloaded assets we can set in the player settings (I think that where this is set. I can’t even remember where all this stuff is any more it’s so scattered).
There are settings in the build window that can affect performance, as well as settings in the quality file, and the settings over here and over there, it gets to be really draining and amidst all the long build times and file conversions, it’s hard to have faith that we have the right setups to avoid any of the performance hangs I detailed above.
Really quick I wanted to give a potential solution that would go a long way to lessening the headache of at least managing the files, I could write more about the ergonomics of the web build settings, but I don’t want to be THAT annoying right now, and figured i’d test the waters with this feedback, and sorry for the ultra long post, i’ve kinda been bottling this up for a while.
It feels a little odd posting this as I don’t really see much other discussion in this site, and maybe there’s a better place to post this that I don’t know about… I don’t know. Not many things make any sense any more , so whatever here’s an ultra long, whiney post on web build optimization I guess.
So what if there were just like 3 folders for sounds. One for music, one for gameplay sounds, and another for longer sounds like dialogue that it’s a bit more ok to have some loading on it. And instead of setting the settings per file… we set the settings on the folder.
So the sound files in the music folder we could just click the folder, or some settings fil in the folder, and denote that all files in there will be “steaming” with X compression using X format. And at any time we could just tell the folder “Revert to default settings”, with an option to favor performance, size, or performance with some auto settings per build type. That would be REALLY nice.
Also some sort of tool that did a sanity check for build type would be nice too. Like if it detects a large sound file that’s over 15 seconds not set to streaming it could give you a warning message when run. Just spit-balling ideas here.
And for all I know, there might be a better setting than streaming. I’m just having such a drawn out build cycle that the idea of experimenting with different build settings ends up running up to an hour just to try some new settings, and every time you experiment with this stuff, you run the risk of accidently making some terrible mistake somewhere that ruins your future builds. Some sort of “reset all known properties for web to default” would be nice.
The longer and longer hiccups and load times are stressful because I don’t know if that’s because of how I’ve rearranged my project to avoid said hiccups and load times, or if the web build is improving in the long term, but experiencing growing pains in the short term.
Anyway, massive post I know, hopefully you Unity people see value in the feedback, or better yet are aware of these issues and are working to address them! Best case scenario I’m just doing something horribly wrong in my project and a simple fix on my end at some point solves all this that I just need to uncover. But I figured at the very least the ergonomics of the builds was worth blathering about, even if the performance hangs are on my end.
Quick Edit: Should we be trying not to enable/ disable many gameobjects in a short period of time in regards to the web build? I have a hunch it’s my load system enabling lots of objects all at once causing this stutter. That would explain a lot, and if so, will these stutters be improved in the future?
Feedback is always appreciated, and it’s going to take a while to digest this big meal. I would say this isn’t the best thread to have brought these concerns up, it distracts from the focus of this particular thread about the ongoing work with WebGPU. I appreciate it was done focused toward me, because I do care about not only your successes but also how things can be improved. I know for a fact that I am not alone in that, just about everyone I work with feels the same. Getting on the forums regularly is challenging and not for everyone. You brought up texture compression. That is intrinsically challenging subject. I wish it weren’t even a thing, and textures would be both small in size and high in quality and just work. The problem is that textures are a complex multifaceted subject, and finding something that works in even a majority of cases is very difficult. Bring in the subject of the web being multi platform and it all goes bad. In any case, I’ll study your post, and appreciate the time and energy it took to write it, and the frustrations behind that energy.
Really appreciate the thoughtful response, and sorry for the out of place post, I just didn’t know where else to put it. If anyone feels like moving this for whatever reason that’s perfectly fine.
Yeah it’s a little frustrating, but writing this up at least got me away from those frustrations and it felt good to vent a little bit XD
I know that fixing these things aren’t easy, and I can only imagine the frustrations you guys go through working on this stuff. For me I have to engage with these systems maybe a few hours here and there, much more frustrating i’d imagine to be working on all these problems that become infinitely more complex over several platforms.
Anyway, don’t blame you guys for being hesitant to post or engage with people. It’s a real jungle out here, personally trying to behave myself a bit better at least in professional settings.
Thanks again! And no hurry on digesting that wall of text, I’ve got plenty on my plate in the meantime. If anyone else has insights on improving the sorts of stutters that occur only in web builds, Unity members or just forum goers, any help is appreciated!
EDIT: So while taking a breather today I was doing tiny little adjustments to settings between long build times, and after reverting a few values and creating some new universal render setting objects from scratch and plugging them in, suddenly all my other optimizations seemed to kick in and now the build is running better than ever! What I THINK did the trick was creating a new “universal render pipeline asset” from scratch, there seemed to be some funky scriptable game objects attached to that.
So kind of a false alarm. The feedback regarding how there are many settings and it can be easy to have some weird setting prevent things from working is relevant, but in the end, the web build is now super performant so hats off on that.
Reversing this post from, “ugh, no matter what I try I can’t make this performant” to “Holy crap, my project is FINALLY running smooth on web without hiccups” after a little bit of wrestling with this.