VAST Bug: tvOS: Level Loading Unity Memory Issue
Bug Name: Titanium Moth
We are currently addressing a major critical bug with VAST (which we’ve codenamed Titanium Moth) that was apparently introduced with the tvOS 12.0 update and affects the Unity game engine itself, which VAST uses. Other developers have reported at Unity’s forums that since iOS and tvOS updated to 12.0, Unity’s memory usage has doubled or in some cases quadrupled on corresponding hardware and consequentially results in their games / levels abruptly crashing.
For VAST, the front-end UI menus will load just fine. However, when trying to load Episode 1, the loading wheel progress bar will appear but then the app abruptly crashes, even on the top-of-the-line Apple TV 4K (latest model). We’ve been able to test loading our Sandbox development levels and they do load fine, but they are much smaller in size. We are having this issue only with our main levels, such as the originally shipped Episode 1, as well as the full Episode 1 art rebuild we’re also working on now.
In Xcode, the Apple development environment we use to get our Unity game onto tvOS devices, it reports the following error when trying to run new builds of the app and attempting to load either the original or new versions of Episode 1:
UnityGfxDeviceWorker (33): EXC_RESOURCE RESOURCE_TYPE_MEMORY (limit=2048 MB, unused=0x0)
This is while displaying there is about half a gigabyte of memory to spare:
This is especially puzzling since we originally designed and shipped the soft-launch of VAST to work on both Apple TV 4 and Apple TV 4K. So the original Episode 1, which could and did run on inferior hardware compared to the Apple TV 4K, now doesn’t run on either.
We have posted in the Unity thread concerning this bug, have filed an official bug report with Unity (Case 1104251), and are hoping to receive engine support soon:
Per Unity’s statements in this thread, Unity is working directly with Apple to resolve this issue. Both Unity and Apple engineers are reviewing Unity projects directly.
In the meantime, we are concentrating all efforts for now on resolving this issue as immediately soon as possible so that our tvOS customers can resume enjoying VAST and new customers aren’t hit with this issue straight away. This likely means the art rebuild of Episode 1 will not be Update 2 and instead Update 2 will be a fix for this issue, to be deployed worldwide as soon as we find a solution. The shape of the new Episode 1 may be directly impacted by whatever becomes the resolution to this bug and consequently whatever becomes the new official memory budget going forward on tvOS.
Unity believes they have resolved this bug, but clearly not all the way or not fully for tvOS. Our post in the Unity thread about the bug seems to be the first regarding tvOS specifically. Below is the original iOS-focused Unity bug tracker page:
Within 30 days of purchase, per Apple’s store policy, you can ask them to receive a refund for VAST from the tvOS App Store. However, we are working hard on fixing this issue. All updates, including new levels and polished content, will be free to all existing customers indefinitely. So please hang in there with us. Eventually this will be sorted, and you can look forward to a long future of great VAST content and fun gameplay.
UPDATE Dec 14 2018: We finally received a reply to our bug filing from Unity: “We are currently collaborating with Apple on this issue. The issue tracker/forum thread will be updated with any info as we unpack it.”