A post-apocalyptic role-playing adventure through Australia, we've been co-developing Broken Roads with the folks at Drop Bear bytes for the last year! Follow a long, complex narrative where your choices matter and your morality affects your gameplay!
Wednesday, April 10, 2024
Broken Roads
Wednesday, January 10, 2024
Unity Addressables Content Catalog Refresh
We're using Unity's Addressables to implement DLC for a multi-platform game, and on certain platforms, we don't actually know the path to the DLC until after it's loaded, which could be some time after the game has started. One method is to use a multiple catalog system, like this one developed by LuGus-Jan and pdinklag. In our case, though, we wanted to stick to a single catalog system if at all possible, and we were able to come up with a way to refresh the Addressables content catalog at runtime, though normally Unity does it once when the game starts up. The code is written against Unity Addressables 1.19.19.
Refresh Addressables Content Catalog
The Addressables system allows you to specify code to dynamically construct load paths at runtime, but those paths are resolved to strings during the initial content catalog load, and take whatever value the code returns at that point. Using this refresh operation, we can update the return value for the DLC path later while the game is running, and then force the Addressables system to re-resolve the paths to their correct values. Addressables can then be accessed from the DLC as expected.
The public method for loading an Addressables content catalog is made assuming that data is being downloaded from the internet, and so includes an automatic caching feature to avoid redundant downloads. However, the feature involves writing to Application.persistentDataPath, which is not allowed on some platforms. For those cases, there is an alternate version that uses .NET reflection to access the internal methods and duplicate the same process, but avoid the step of reading and writing to the cache. This may need to be revised with future versions of the Unity Addressables package.
Unity Addressables Per-Platform Group Settings
- Create a new PlatformBuildScriptPackedMode Addressable Data Builder and (ideally) place it in Assets/AddressableAssetsData/DataBuilders.
Friday, December 8, 2023
Unity TextMesh Pro Font Disappearing at High Resolution
We encountered a problem recently where our TextMesh Pro text was failing to render when our Unity game ran at 4k resolution. We spent a long time trying to track down the issue. Eventually, we noticed we could reproduce it in the editor just by zooming in close enough to the text.
We did eventually find a Unity forum post that discusses this issue, but it took a while to track down, so we wanted to bring it up here in case anyone else is affected.
While this issue is indeed fixed in more recent versions of TextMesh Pro, it is worth noting that if you upgrade your TextMesh Pro package, it will not automatically update your TextMesh Pro Essential Resources, which is where the bug is present.
Wednesday, October 25, 2023
Stray Souls!
Just in time for Halloween, Stray Souls is available now, on Steam, Xbox, and PlayStation!
Stray Souls is an Unreal 5 based horror game inspired by titles like Silent Hill, and is an atmospheric experience that any fan of the genre should check out. We helped with optimization, menu and UI, and handled all the platform work!
Sunday, October 1, 2023
Trepang2!
It's been a while since our last post, but we've kept busy! Trepang2 is an awesome, F.E.A.R. inspired action-shooter that's available now on Xbox and Playstation!
A mysterious super-soldier with no memory of his past braves both technological and supernatural enemies as he searches for the truth. Slow down time and shoot your way through battles with a million particle effects flying all over the place! We helped with optimization and handled the console versions of this excellent fast-action title.