I’ve been working on an upgrade that’s been long overdue for Chummy Waters, one of my mixed reality games designed for Meta Quest headsets. This update mainly involved swapping out the old Oculus Integration SDK for the Meta SDK, which is part of a couple grant programs I’m trying to get into.
Preparing for the SDK Upgrade
Honestly, I thought this SDK upgrade was going to be a complete nightmare. I had this whole mental checklist prepared, anticipating broken features, weird bugs, and a week or more of troubleshooting. So, to avoid completely wrecking Chummy Waters right out the gate, I decided to experiment on another smaller game first. To my surprise, the transition to the Meta SDK was smoother than I thought. There weren’t any massive compatibility issues, and things mostly just worked as they should.
But here’s the kicker: I still ended up wasting about a week getting ready for the worst-case scenario that never came. That’s on me, I guess—sometimes overthinking can be just as unproductive as under-planning.
Actual Upgrade Process
Once I finally dived in, the process was far less chaotic than expected. I spent this past weekend upgrading Chummy Waters, and most of the game was back up and running in no time. Surprisingly, some old issues caused by the outdated SDK even started working properly after the upgrade.
One of the coolest improvements I was able to implement post-upgrade was multimodal input. Now, I can use a controller in one hand while interacting with the game world using just my other hand. No extra hardware needed—it’s just seamless now. Pretty stoked about that.
On top of that, I got around to figuring out some shaders to make the water in Chummy Waters actually look like water. It’s not perfect yet, but at least it’s not a complete eyesore anymore. Baby steps.
Bug Fixing and The Room Model Replacement
Of course, it wasn’t all smooth sailing. A few bugs popped up due to the SDK swap—mainly small things like layers and tags not transferring over correctly. But the real headache was the Room Model getting removed in the upgrade. The Room Model handled everything in the real world (walls, floor, ceiling, and objects), and it was super convenient because I could just assign prefabs to each of these objects directly. But it wasn’t exactly perfect.
The new SDK replaced the Room Model with the Mixed Reality Utility Kit (MRUK) and something called Effect Mesh building blocks. This shift broke a few things for me. The Effect Mesh system works differently—it only lets you apply one material to all the objects in its list, which wasn’t great for me since I wanted to customize each object (like walls, floors, and ceilings) separately.
My “Big Brain” Fix
After messing around and trying to find a complex workaround, I had one of those “big brain” moments. Instead of trying to hack together a solution with tags and post-processed meshes, I just duplicated the Effect Mesh system a couple of times. Each copy would handle one specific part of the room, like walls, floors, or ceilings, and I assigned different materials to each.
So now I’ve got an Effect Mesh just for the walls, with the wall material. Same for the floor and ceiling. Simple, effective, and no need to rewrite any code or stress over the limitations of the new system. Crisis averted.
Testing and Build Process Improvements
With everything mostly working again, I decided to test the build process and see if I could push the latest build to the Meta Store. Thankfully, there were no issues there. The new store version is live, running the latest Meta SDK build.
One big improvement from this whole process is that I’ve officially separated Chummy Waters into its own project. Before, it was part of a massive monolithic project that included a bunch of other games, and it was a pain to manage. I’d have to manually change the build info every time I wanted to build Chummy Waters, swapping out things like the package name, version number, and bundle version code.
Now that it’s its own project, I don’t have to manually fiddle with all that every time. So instead of changing the build info for every game (e.g., tech.bork.chummywaters
, tech.bork.mrasteroid
), I can just hit build, and Chummy Waters updates automatically. This little change saves me a lot of time and prevents build versioning errors.
So, that’s the latest on Chummy Waters. Upgraded to the Meta SDK, separated the project, and fixed a bunch of things that were long overdue for attention. Onward!