Inspiration

As a XR developer and long term XR enthusiast, I knew it was only a matter of time before I started really diving into Horizon Worlds. Competitions like these are always a fun challenge for me, and I took it as a perfect invitation. I played a bunch of worlds first to get a good grasp of what is possible, then took that info and dove right in.

I wanted to make something simple and easily engaging, and I settled on the idea of a chase game. To make a game of cat and mouse, I took some inspiration from modern titles like Resident Evil, but I'd say my biggest inspiration was Pacman! The gameplay of "flee and chase" was perfect for the short game loop and has always been a favorite of mine. And to add splash of extra charm, I decided my pursuer would be a duck.

What it does

In BubberDucky's Lab, you are stuck in a maze with a very silly and frantic duck. The goal of the game is to stop the duck from running around by popping them with a pin that will appear after a short amount of time. However, that is easier said than done, as the duck is often a very wild and elusive target to catch. By utilizing the "Jam Containers" you can leave a tasty trap for the duck. Although, if he has eaten too much, he may consider it a blockade instead! Use this to your advantage to block off the duck's escape! The game is won by "popping" the duck with the pin

How we built it

To create my pursuer, I knew I would utilize the NavAgent system. I wanted to make sure the pursuer could be somewhat intelligent, so I utilized a bit of Raycasting to help the duck have a better understand of the environment and react accordingly. I also used a lot of random timers for the various pickups and items throughout the level. I used Blender to create simple models and textures, and used Audacity for the sound effects.

Challenges we ran into

At first, I tried using the built-in VR editor to build my world. But as the game evolved, I realized I wanted some more functionality that could only be done in TypeScript. I did not have a lot of experience with TypeScript or the Horizon API, so it was definitely my greatest challenge. I referenced the Creator's Discord often and consulted the built-in Meta AI to help me learn fast. Since I have a strong background in programming, I was able to pick it up rather quickly, but it was still a challenge to learn all the differences in syntax and design patterns.

Accomplishments that we're proud of

I am extremely pleased with how the duck pursuer turned out! His behavior is so erratic and wild that it delivers exactly the kind of experience I wanted! I can never be too sure what it might do next when I look at the face, and its really fun! I am also rather proud of being able to reuse a lot of my code for many of my objects in the world.

What we learned

As a first time user of the Horizon Worlds editor, I learned a lot on how to build these worlds and what tools are at my disposal! I learned all about the NavMesh, Collisions, Interactions, Raycasts and so many of the little gizmos! I got to really dive into the features of the editor and learn its quirks so I could make something quick and engaging with minimal developer headache. I also used this opportunity to learn TypeScript, a super valuable skill. This entire project taught me a lot of interesting techniques and has opened my mind to editor designs and functionality.

What's next for BubberDucky's Maze

First step is to add finalized textures! The ones currently in place are temporary. I also want to add some different modifiers for the duck and continue to refine the environment layout! Having a simple to navigate environment is important for this game, but it would be nice to add some more ways for you to engage with the environment with things like traps that you could use to foil the duck! I think there is also a great opportunity to add player progression in the form of challenge modifiers and cosmetics. Also, I would love to add some more particles and sounds throughout the various interactions.

Built With

Share this project:

Updates