So, I've got about as far as I possibly can on my own trying to fix this issue, so I really need some help. I ask that we try and have a discussion about possible causes for these errors rather than filing a bug report, I've wasted days trying to fix this and if I hear the phrase 'file a bug report' I'll probably have a mental breakdown...anyway...
My game (https://itunes.apple.com/gb/app/the-sla ... 1056603685) is unplayable using WKWebView. Before iOS10 was released, I got around this by compromising and using UIWebView. With iOS10 this is no longer an option as my game simply wont run. I'll talk you through what happens when I try to run with WKWebView:
â€¢ The game's start menu loads normally.
â€¢ I choose the new game option.
â€¢ The game successfully goes to my loading layout which I use to show the words 'one second...' before moving to the next layout.
â€¢ The next layout loads but the game only shows the black loading layout with the words 'one second..' frozen on the screen. I can tell the next layout is working fine because all the sound and music is working, and it even accepts touch so the game can be played but the visuals are frozen.
â€¢ Simple non cpu/gpu intensive layouts like my world map load normally.
â€¢ Using the first layout for testing, I've tried disabling all events and the visual still freezes simply trying to load the images in the layout.
â€¢ The layout only works when I delete all but about 5 objects.
â€¢ I've tried creating the images needed for the next layout every few milliseconds in the loading layout before moving to the next layout but this still freezes once the layout changes.
â€¢Out of simple curiosity I've tried exporting with webGL off, this causes each layout to show the complete sprite sheets for every object in the layout, peculiar!
Not being very technical, my guess would be that something WKWebView does causes a huge spike in cpu or gpu (I know Ashley has previously said there is no gpu difference between UI and WK but are you 100% sure?) and this causes the visuals to freeze.
Is there not a more efficient way to load each layout in c2? Most games have a loading screen between each scene, whereas c2 seems to just create everything at the same time regardless of whether this makes the game hang, I'm sure we've all seen crazy cpu jumps for a second at the start of each layout, surely this isn't a healthy way of working?
In regards to your post —, I've found that when I add a new build on TestFlight and try to play it, the loading bar usually hangs half way and I have to close and restart it before it works. This obviously isn't great as if the same problem occurs for users they might just conclude that the game doesn't work and get a refund.
I can't stress how important I think it is for the c2 team to talk to developers more, especially going forward with construct 3. The test games Scirra uses for benchmarks like Space Blaster are far too simple, you guys need to work with devs to test their actual games, or at least use examples that use large images, sound, and actual layout transitions rather that just one, then we might have known about things like the object limitations of Mac and Linux when using nw.js beforehand. It's all well and good making a great piece of game dev software, which c2 most definitely is, but once it gets to the exporting stage it becomes an absolute nightmare. I can't even count the days I've wasted, hoops I've had to jump through, insane things I've had to figure on my own, and technical posts I've had to decipher in the depths of obscure html5 forums over the last 3 years. These aren't things you should have to do when you've chosen to use a piece of software specifically because you can't code, like I have. Take this small example; every time I export a project for cordova, I have to edit the config and add this below the icon lines or I'll run into an error when uploading with XCode Application Loader for iOS games:
<icon src="icon-120.png" gap:platform="ios" width="120" height="120" />
<icon src="icon-152.png" gap:platform="ios" width="152" height="152" />
<icon src="icon-76.png" gap:platform="ios" width="76" height="76" />
<icon src="icon.png" gap:platform="ios" width="57" height="57" />
I literally have done this so much it's second nature, it's ridiculous, why isn't this just a part of the generated config file already? Something like this could permanently stop a user less technically competent than myself, and I'm no coder.
That really is a tiny example, it's a shame as the people who are really using the software to its fullest potential are the ones getting burned the worst, from Aurel having to discontinue Linux support for The Next Penelope to — having their games break with every iOS update! Sorry to rant, I do respect the work Scirra does enormously but I'm just fed up of always looking for answers and seeing every thread end with either; file a bug report, or the dismissive line; we've tested it on this tiny one layout test game and it works fine therefore it should work fine for your game. Users being able to export to the most popular platforms with ease should be a top priority for Scirra, up to this point in time, devs have had to take it upon themselves to create or find plugins and workarounds to do the most simplest of tasks; releasing their game.
Anyway, if anyone has any ideas please do let me know.