So, one sleepless night while lying in bed, I came up with an idea for a chill, mixed reality game. The concept was simple: you’re underwater, surrounded by fish, and you get to drive one around to eat other fish. It sounded like a fun, laid-back experience, especially if I could lay in bed and play it. Naturally, I couldn’t sleep, so I got my ass out of bed and started throwing the basic idea together.
From Flat Fish Tanks to 3D Cube Fish
Before Chummy Waters, I had started a simple flat fish tank game as part of my Squeeze It Out Project—a collection of toilet-themed minigames. The fish tank was basic, with flat fish swimming around in a flat tank. That project was meant to be quick and fun, but nothing too deep.
When I got the idea to turn this into a mixed reality game, I wanted to try something different. Since I’m not great at modeling, I decided to go with simple 3D shapes for the MR version. That’s when the fish became cubes. Everything was made out of cubes—fish, decorations, you name it. I added some ASCII-inspired features like a K for the tail, V for the fins, and 0 for the eyes to give the cube fish a bit of personality.
This transition to 3D cubes really kicked off the next phase of Chummy Waters as I started building it with the Oculus Integration Kit to take advantage of passthrough and room-scale features.
Making the Player Fish
Once the headset was ready, I got to work on the player-controlled fish. I thought it’d be cool to test the new concurrent hand-and-controller feature, so I decided to use one controller and hand tracking for the other hand. It worked out pretty well.
- Player control: The fish follows a piece of bait attached to the controller, kind of like a laser pointer.
- Extend/retract the bait: Using the joystick, you can move the bait dot forward and back, leading your fish around.
- Chomp mechanic: I added a trigger so you can chomp other fish when you get close.
- Turn off the bait: You can also turn off the bait to let your fish swim around on its own.
I threw together some NPC fish that would swim around randomly, then wrote a script so my player fish could eat them. I even figured out some basic particle effects so that when a fish gets eaten, it leaves behind a cloud of blood, just for fun.
At this point, I had a basic proof of concept: I could swim around the room, eat other fish, or just sit back and watch them swim around. It was pretty chill. I pushed the build to my headset, and it was actually… pretty passable. With some polish, it could turn into a decent game.
Submitting to the Meta Store
Feeling pretty good about the prototype, I decided to push it to the Meta Store for approval. I came up with a name—Chummy Waters—and created some concept art, a logo, and a basic Game Design Document (GDD) to flesh out the idea. Then I hit submit.
Unfortunately, the build got rejected—there were some issues I needed to fix. But instead of shelving the project, I decided to expand on the idea and make it better.
Expanding the Game: Chill, Cozy Vibes
Around this time, I was watching Piratesoftware on Twitch, and Thor’s mantra of “just build it” got me fired up. I used an example GDD from their site, develop.games, and started thinking bigger for Chummy Waters.
I wanted it to be a chill game, inspired by things like Tamagotchis (I had a bunch of those as a kid) and cozy games like Animal Crossing, where you can just vibe and decorate your environment. Here’s the general direction I started going in:
- You have a “Chum”: Your fish, aka your Chum, lives in a basic fish tank.
- Earn points: You eat other fish to gain points.
- Decorate your tank: Use the points to buy items to decorate the tank and make it your own.
- Story?: I haven’t built this out yet, but I’m thinking about adding a story where you move to a new tank and have to pay off debts to the “head” fish or something similar to Animal Crossing’s Tom Nook.
What I Added
- Improved NPC fish: Now you can grab the NPC fish with your hand in MR, adding a more interactive element.
- Grid system: I added a grid to the tank floor to snap objects in place for easier decorating.
- Basic decorations: I threw together some logs, rocks, and plants that you can use to decorate the tank.
- Score fish: I added a fish that swims around the tank displaying the score. You can grab it and place it wherever you want, and it will always face the player, which is a fun little detail.
- Particles and textures: I added bubble particles to make the underwater environment feel more real, and I applied some wavy water textures to the tank walls. The textures aren’t great yet, but they’re getting there.
I also thought it would be funny to make the game menus swim around like fish. So, for example, if you want to quit the game, you’d have to chase down the “quit” fish with your hands. It’s a little silly, but it fits the vibe.
Customizing Your Chum
I added a customization feature for your fish, Chum. Now, when you grab your Chum, a customization menu pops up, and you can swap out the eyes, mouth, and colors. Once you’re happy with the look, you grab Chum again to set the changes.
Development Hiccups and the Meta SDK
Around this time, the Oculus Integration Toolkit got deprecated, which caused a bunch of things in the game to stop working. For example, I couldn’t use the controller in one hand and hand-tracking for grabbing objects in the other anymore. That’s when I realized I had to switch over to the new Meta SDK.
I tried a bunch of ways to migrate the project, but everything kept breaking. After several failed attempts, I decided to start a small test project to learn the differences between the old and new SDKs. I made a simple MR Asteroid game as a test case, and after some trial and error, I finally figured out what I was doing wrong. I had been missing some crucial SDK packages because the docs weren’t super clear at the time. Once I switched to the all-in-one SDK, things started clicking into place.
What’s Next
I’m gearing up to make a fifth attempt to migrate Chummy Waters over to the new SDK. I’ve also submitted this project to the Oculus Ignition Program in the hopes of securing some grant money to keep it going. I think Chummy Waters has potential—it’s fun to play when you want a break from shooters and rhythm games. There’s still a lot of work to do, but it’s getting there, and it’s definitely been a fun project to build.
It’s been quite the journey figuring out the Meta SDK and turning a late-night idea into a real game, but that’s half the fun, right?
Try it out
https://www.meta.com/s/53yO6aoP9