Inspiration

We were inspired by the vast and lively ecosystem that is the ocean and the various sea creatures that inhabit it. In our original game idea, you are a fish, navigating in three dimensions and eating other, smaller fish. Bigger fish can eat you, including players that are bigger than you, comparable to games like agar.io, but in 3d. When we decided to develop for Horizon Worlds, we noticed that this idea does not fit into that framework, where players remain humans and join as themselves. So we went back to the drawing board and reinvented the idea to work with human avatars. We decided to change the game into a somewhat more relaxed game (although still high stakes with sharks chasing you) that enables both cooperation and sabotage between players, fitting the narrative-driven social experience of a horizon world.

Once our game environment started taking shape and we noticed how fun it was just to explore it, we also implemented challenges that give the players more reason to roam the environment and search for secrets.

What it does

Fishin’ Impossible is an underwater exploration and survival game where players take on the role of a diver who collects fish to earn points. As the diver goes deeper, the fish become more valuable, but the dangers increase. Players must avoid threats and return to the home base alive to secure their score, competing for high scores. Achievements can be completed by exploring the world and engaging with the game systems.

How we built it

We were eager to try the new Horizon World Editor out and decided to use it to create our fish game idea. After finishing the basic tutorials to get an idea for the development environment, we jumped directly into creating the shark movement and fish-eating functionality. Managing the score was also a big part of the early stages, as this was a key part of our game loop. Scripting in TypeScript was mostly new to us, but after acclimating to the environment, we managed to implement most of our planned features. We decided to adopt a low-poly look for the entire world, and the designers were working hard on creating many unique sea creature designs while making the world more visually appealing through lighting and minimal animation. Additional 3d models like corals, clams, submarines, and sunken ships were modelled and brought into Horizon Worlds to make the scene come to life. The world was a steadily evolving environment that went through many iterations. Adding the leaderboard and a quest system was also very important for us to increase player retention and close the game loop.

Accomplishments that you are proud of

The scope of the game and the vibrant environment. When starting, it can be hard to envision what the final scene will look like. But as everything started coming together and we added details and polished the visuals, we became very proud of what we managed to achieve. Also, the gameplay loop works, and we are very happy with the way the game turned out, after we had to basically scrap the initial idea at the beginning of the hackathon and rethink it through the lens of what makes a good world for Horizon.

[Player Interaction Updates] Originally, players had to find a golden starfish and bring it back to their base for an achievement. Now it's edible — eating it makes you invincible to sharks for a short time. You can find the starfish on top of the highest mountain. During this effect, you can grab a shark and launch it at others to trap them.

[World Scene Updates] There were a lot of unused places before.Now, we’ve transformed them into new memorable spots — including two Clamp photo booths and scenic areas for players to make their own moments.

[New User Experience – Hidden Route] We also made some other Improvements for user experience. Here’s a pro player running the full new route — showcasing updates to hidden turtle taxis, jellyfish placement, elevated starfish, and shark mechanics for players to discover.

What challenges did you overcome?

Working with the Horizon Worlds Desktop Editor for the first time during a hackathon was the biggest challenge for all of us. We were not used to the workflows and the programming environment, trying out what is and is not possible. Another challenge was designing the game with multiple players in mind and supporting all platforms. Making sure all game actions can be completed on every device and designing all interactions to work in multiplayer took not just work in implementation but also in ideation, as we had to design the systems with this broad scope in mind. A more technical challenge we faced was the vertex count of our project. We hand-made all models in a low-poly style, yet still went above the “recommended amount” of vertices. Some of our models went through several iterations to reduce the vertex count. We wanted to and hopefully succeeded in optimizing the game so it runs on any device.

What was the biggest lesson learned for this project?

The biggest lessons we learned involved the Horizon Worlds Editor. It can be a really powerful tool to create the next generation of games in the metaverse, but it is, in part, still limited by its capabilities and current state. We had to learn how to import and manage assets the way the editor wants it, as well as how to structure our codebase in a way that saves on performance. The editor became laggy when having multiple people working at the same time, especially while one person was playtesting and running scripts. That made us realize the importance of assigning tasks and structuring our development and playtests in a way that does not disrupt our teammates. We learned to love the VR worlds editor and how easy and intuitive it made level design. Placing and moving assets to populate the scene was quick, and being able to point and jump right into playtesting made designing certain parts of the level, like platforming sections, extremely fast.

Beyond the Horizon World aspects, we deepened our understanding of what makes good level and world design.

What would you do differently next time?

We had a reasonable scope from the beginning of the hackathon, so we never felt overwhelmed or stressed about the remaining time. Ideally, we would have learned more about the editor before the project, so we would not have to learn the basics during the hackathon. The horizon editor was really powerful in some areas, while lacking basic functionality in others. We found very little documentation or tutorials that went further than the official documentation.

In future projects, we should settle on an art style and pay attention to the technical limitations right from the start to prevent wasting time on repeatedly redoing and optimizing our assets

Built With

Share this project:

Updates