Journey to Move-In Day

FOMO Duck
Highstreet
Published in
6 min readApr 9, 2022

--

TLDR Technical Challenges we overcome during this Home Release

  • Developed a Native VR/Browser Cross-platform architecture
  • Figured out the holes in Unity WebGL and filled missing gaps with our own system
  • Devised a cross-platform wallet authentication system for Oculus Quest
  • Learn to optimize for Web high-quality visuals can load efficiently without GPUs

January

It was January 2nd, the streets were shimmering white, covered in fresh overnight powder, while the air lingered with the smell of last night’s festivities. It did not feel like a workday, but somewhere in an old exposed brick building the Highstreet engineering team had already begun their 3-month marathon towards Move-In Day.

At first, even the thought of having any part of Highstreet World rendered on a browser would be ludicrous, but the growing voice of the web3 community began chipping away at the pride of our seasoned VR development team. Soon what was outright unthinkable transitioned into What-ifs, and what was theoretical became challenges to overcome.

In January we also decided that Highstreet Metaverse would be launched in phases throughout the year, with each phase focusing on a fundamental pillar that defines Highstreet. Phase 1 would be Real Estate so players can move into the virtual world. Phase 2 would be commerce, where players would be provided with meaningful activities that are integrated with brands in the real world. Phase 3 would be Player to Earn, Phase 4 to be MMO, so on and so forth.

Now with a more or less defined scope for phase 1, the team decided to carve out a task force specifically to tackle web challenges. It was determined that as long as supporting the browser doesn’t come at the expense of visual qualities, then we will add support to be cross-platform.

The rest of the month fell towards R&D, while the smart contract team designed token support for the upcoming Binance Initial Home Offering partnership, the Metaverse team divided and conquered with Team1 setting up our Metaverse Game Server, Team2 focused on game mechanics, Team3 on the in-game user interface, Team4 on Asset Creation, and Team5 on Web optimization. Very quickly with rising demand our team size grew to over 60 people.

February

The month of February had historically been a reality check for us. With its lack of days, the second month of the year always feels shorter than expected and thus great for reflecting upon goals set in January. This year was no different, as it was filled with leveling expectations, rude awakenings, and the general lack of breakthroughs.

The first few weeks were quite uneventful, R&D gave way to pseudocode, which then paved the way for real implementation. It didn’t take long for the VR app structure to be set up, and all was well as we waited for the Art team to finish the models so we can integrate them into the whitebox. However, as soon as we started integrating everything with the web near the end of the month, everything started falling apart.

First, the server architecture we had built for our metaverse adopted the Telepathy framework, for those who arn’t familiar with game server architecture, Telepathy uses a simple, messaged-based, TCP networking in C#. There is no magic or redundant code, its perfect for an open world MMORPG like Highstreet World. However as much of a sucker the team is for the KISS principle, the system was completely incompatible with web. So our entire networking had to be re-done from scratch with just over a month left. But no matter, the team quickly swapped to using a Web Socket based design urged on by Unity’s Partnership team whom we’ve been in close contact with since the beginning and who also just released a new product to help host and scale partnered projects. Given the promising prospects of not having to set up our own cloud infrastructure, we thought the time wasted earlier was all but recovered; more on this later.

Second, it turns out the Ecosystem partners we’ve selected and have worked with prior also don’t support webGL. For in-game voice chat, we used Vivox, the gold standard for multiplayer shooter games, but instead we had to learn and integrate Agora, the voice chat used in apps like Clubhouse. For Avatars we used TAFI, although their default avatar system isn’t the prettiest thing we adopted for the technology. Unlike competitors like Ready Player Me which renders every avatar into a single GLB file, TAFI is modular which means for our vision of people being able to frequently change outfits in the game, this was much more efficient. However despite our best efforts to work with the TAFI team, supporting Web just wasn’t going to make it onto the roadmap for end of Q1. So unfortunately while everything works for the VR version we had to devise a bit of a work around for Web. For Move-In day we’ve rendered 4 default avatars to be included with the web build, but will be updating this at a later date to allow web users to also customize their avatars. We understand that this is not ideal, and apologize because this definitely was an oversight on our part.

March

While fumbling through all the architectural changes, the team can essentially be seen to be trying to build a plane while already free-falling in mid-air. The month of March also proved challenging for the art team, as our usual tricks to optimize assets for VR rendering did not work for Browser. Build sizes of 800MB, usually quite reasonable for applications, won’t even load into the browser, and many nights were spent instead tediously optimizing polygons and textures to minimize file size while still retaining the original visual qualities of the assets. Furthermore, dynamic lighting is basically impossible for WebGL, so clever baking methods had to be used. All of these were extremely time-consuming and weighed down heavily on the team. Finally, as builds started coming out QA testing became a new bane to the team’s existence. Modules built from Unity WebGL aren’t exactly something that works out of the box, and debugging post web-integration is an even bigger challenge. Console logs via inspector never seem to show where the issues were at, so very quickly at the month of march became an all-hands-on-deck situation where every team had to drop what they were doing to assist in crossing the finish line.

April

Remember we talked about the black box Unity offered us to help host and deploy our servers? The same one that Apex Legend uses to scale to millions of users. Well literally just three days before launch we found out that their system also wasn’t compatible with webGL. Actually, in theory it does, except because of the way Unity Servers are deployed to the cloud it doesn’t come with an SSL certificate, which means for our HTTPS webapp, our own application would be deemed unsafe traffic and our users will be blocked from accessing it. This was the unfortunate turn of event that caused us to have to launch on Move-In day as a single player experience. Hopefully we can address this in the next couple days and have the server back online.

Conclusion

This build had been quite a gruesome journey for the team, but it was also a tremendous learning opportunity for everyone involved. Tech is always changing and evolving, and platforms have to stay flexible in order to build for the future. Now that the web build is out of the way we’re excited to fix up the remaining bugs and prepare for the launch of our VR version in the next few weeks. We have so much prepared for the Home system, as it slowly connects to the rest of the Metaverse, so hopefully, everyone is happy with the state of our development. Stay tuned for all our future updates.

About Highstreet

Highstreet World is an MMORPG built with brand integration and on-chain features. Throughout 2022 we will be delivering the game to players in 4 phases. As part of the first phase where our focus is Real Estate, we’re allowing players to purchase homes in our core regions of Binance Beach, Avax Alps, Animoca Archipelago, and Highstreet City. Homeowners will be able to enter the metaverse ahead of everyone else during Move-in Day at the end of March.

Website | Medium | Twitter | Telegram | Discord

--

--