Inspiration
Mini Golf Maker is an updated version of a project I first started two years ago for the Meta Presence Platform Hackathon. I didn’t win, but I fell in love with MR development and pretty much every new API Meta has released since then. I’ve been working on Mixed Reality and Meta Passthrough Camera Access projects, almost, since the day the tools came out, but this specific game doesn’t use the new Passthrough Camera API for anything yet.
Since the Meta Presence Platform Hackathon I have been adding new features to the game like new objects/tools, a VR mode, a tutorial, and a saving system for VR courses and MR objects, which I call Blueprints. I even added hand tracking into the game at one point, but then after doing a large update it broke, but I’ll be bringing it back!
Last summer I also applied to a tech/makers convention in near San Francisco called Open Sauce and got accepted. It was really cool to be showing off my game at an exhibition and see everyone's reactions to the amazing things we can do with the new Mixed Reality technology.
This is my first VR game and I have been learning a lot along the way. I’ve really been taking my time with it to make sure it has a successful release.
What it does
Mini Golf Maker is and will be published as a free MR and VR sandbox game where players can build the mini golf course of their dreams. I have added so many tools to allow players to create any course they can think of and with the addition of the Custom 3D model tool, the possibilities are actually limitless. Once you make your course you can save the full thing in VR or you can select pieces of your course in MR or VR and save them individually as Blueprints and load them back into MR or VR. Obviously the other part of this game is actually playing mini golf, which is especially fun when played with a group of people by taking turns in a headset while casting the gameplay to a TV, making it great for competitions, parties, or casual social hangouts. Mini Golf Maker is also in a unique position to be a very familiar and comfortable first VR experience for new users, because of how well the Mixed Reality mode and Depth API is integrated with the real world.
New Update
During this competition I added a real spawn hub/area (it used to just be a box), easy to use Custom 3D Model importing, working in app purchases, and a full in-game marketplace powered by Firebase. Players can now earn in-game currency by uploading courses and spend in-game currency to download courses. Which completely transforms the game into a community-driven creative platform. If a user just wanted to play golf without learning how to build a course before this update, they had no options. Now, once the community starts uploading courses, users will be able to download free or paid courses to their hearts content, without ever having to build one themselves.
How I built it
I built the game with Unity using the Meta Spatial SDK, Meta Authentication, Unity's glTFast package, and the Firebase SDK for Unity, which I used as a back-end and database for authentication and data storage . I coded systems in C# and used Node.js for firebase cloud functions. I read a lot of documentation, used AI tools, and relied on support communities to help solve some of my more complex issues.
Challenges I ran into
I am not the best 3D modeler so making the entire new starting hub/area took me a while.
I ran into limitations with the custom shaders that glTFast uses and the Meta Depth API, which is a big part of how my game blends with real environments. I could fix this issue with a paid importing pipeline, but I'm holding off until after launch.
The saving, uploading, and downloading systems were extremely complex. Courses can contain lots of dynamic, user-generated data like custom meshes, splines, animations, parents, transforms, and much more, so making everything secure and efficient through Firebase Storage and Cloud Functions was a big challenge.
Debugging also took a lot of time, since Firebase requires a real device build, meaning I had to rebuild after every change and rely heavily on Android Logcat (which is not always the most helpful).
Accomplishments that I'm proud of
I made everything completely secure using authentication, encryption, and cloud functions.
I got all of these updates done on time for this competition. I had to work really hard and lose a lot of sleep, but the quick progress I made is probably worth it.
These updates were so much fun to complete (besides the debugging part) and the state my game is in is getting me really excited.
What I learned
I learned a little more about Blender.
I learned how to create secure, app-accessible external folders for custom 3D models, and how to import and manipulate glTF/glb files at runtime with glTFast.
I also learned a ton about security: encryption, authentication, and defending against hackers using Firebase Cloud Functions, which is something I never really even thought about before this.
One of the biggest lessons was how to efficiently serialize and deserialize large amounts of complex, user generated data. I originally tried using a paid asset, but eventually had to build a custom binary based system that turned out to be faster and more flexible.
What's next for Mini Golf Maker
I plan to publish Mini Golf Maker this Christmas. I am a freshman college student, which means I now get over a month of Christmas break, so I should have plenty of time to finish the few things I need to complete before launch.
After launch my main goal is to add multiplayer and then I can finally use all the knowledge I have built up over the years to make some of my other game ideas but 5x as fast!


Log in or sign up for Devpost to join the conversation.