First time at Zeet?

18 Jan
2022
-
8
min read

How Fairgrounds is Building a Metaverse on Zeet

Johnny Dallas

CEO & Co-Founder, Zeet
Case Study
Content
heading2
heading3
heading4
heading5
heading6
heading7

Share this article

A Metaverse Built on Zeet

When asked what he's working on, longtime infrastructure engineer Neil Dwyer replied, "Fairgrounds is like the Dave & Busters or Chuck E. Cheese of the Metaverse. You play games, you win NFTs."

When Neil started his own company making web3-powered VR experiences, he didn't want to replicate the undifferentiated infrastructure work he had done in his previous roles at Bebo and Uber. So, he turned to Zeet to buy instead of build his infrastructure while retaining the direct control that would let him use his skills if he needed to (spoiler alert: so far he hasn't).

With Zeet, it [live video infrastructure] is as easy as something like Squarespace but ... you don't sacrifice any flexibility or control or best practices.

As a founder rapidly iterating in cutting edge technology, Neil needs both speed and control. This case study examines how, with infrastructure spanning web3, live video, and virtual reality, Fairgrounds' complex architecture combines the best use cases of each technology to create a uniquely engaging user experience.

Two Metaverses

To understand Fairgrounds, start with Neil's vision of a metaverse. As he explains, "There's that one word, Metaverse, that means two different things right now. There's the Facebook definition, which is just people existing in 3D, which we have already seen play out with Roblox and Fortnite. And then there is the web3 version which is more about the wallet, your crypto wallet is your identity and you take it with you. Fairgrounds is at the intersection in that venn diagram."

Fairgrounds is a play-to-earn system; players receive NFTs as prizes for arcade-style games. But their hybrid model lets them focus on the play, optimizing for user experience and fun over economics, just like a brick-and-mortar arcade. No one goes into an arcade or fair looking for a positive expected value game. So rather than explaining Fairgrounds' value proposition as a monetary yield, Neil says, "we want people to come in and have fun in the first ten seconds of being in the app."

Fairgrounds' other offerings, like digital lounges, VR avatars, and social internet browser for shared real-time experiences all fall at various places on the spectrum bridging these two conceptions of a metaverse.

Operating somewhere between the visions of a billion-player Minecraft server and a global decentralized exchange, Fairgrounds selects the best technologies from both approaches for its unique combination. Per Neil, "the trustless part is what everyone cares about, the digital identity, the wallet. If you bring your wallet to our metaverse, we get to decide what you can do." For Fairgrounds, it makes the most sense to rely on web3 for its specialties — ownership and identification — while using off-chain technology for VR graphics and real-time communication.

On-Chain Architecture

To interface with the web3 vision of the metaverse, Fairgrounds users bring their wallets to the arcade. The wallet is their unique digital identity and holds avatars, tickets, prizes, and memorabilia. Rather than relying entirely on original digital assets, Fairgrounds integrates with other crypto projects. For example, they have created a special-access VR lounge where your wallet needs to contain a MoonCat for you to enter, and a similar lounge for holders of a Bored Ape.

Fairgrounds creates digital assets in response to in-game actions using smart contracts, or programs stored and executed on a blockchain. When a player wins tickets in a game, these tickets are fungible tokens, as each ticket is identical. Tickets can then be used to buy prizes, which are unique (non-fungible) items like avatars. Fairgrounds only requires standard smart contracts using the ERC-20 and ERC-721 standards to create fungible and non-fungible tokens, respectively. At the moment, Fairgrounds uses Fantom as its layer one chain for original assets. (A layer one chain is an independent blockchain like Ethereum or Solana.) The chain offers fast, inexpensive transactions with EVM compatibility. Neil noted that the team may transition to a different chain after the MVP stage.

Off-Chain Architecture

As a web3 company, why not have everything on chain? To realize their vision of a metaverse frontend, Neil and company need to rely on a lot of more traditional technologies to run their theme park due to technical constraints with blockchain technology. This split approach lets users retain direct control over their identity and assets while enabling Fairgrounds to use the right tool for each job and deliver an engaging, convenient user experience far beyond what is possible on-chain.

The most obvious issue that on-chain technologies introduce far too much latency to be feasible for real-time VR games. The fastest blockchains can add as little as 200 milliseconds to an operation, which is fine for simpler, asynchronous card and strategy games. However, with immersive VR experiences, developers aim for a motion-to-photon latency of less than 20 milliseconds.

So, Fairgrounds also employs a base architecture familiar to many a SaaS operator. They have a Next.js website that talks to a monolithic Node backend with a PostgreSQL database and Redis caching layer. This backend handles some business logic for the Fairgrounds metaverse, such as making sure players are connecting through a supported version of the client app. However, Fairgrounds also relies on specialized technologies to build real-time multiplayer virtual reality experiences.

Live Video

One of Neil's early innovations when building Fairgrounds was a shared video streaming platform in virtual reality. A group of friends can come together in VR and simultaneously watch YouTube or Netflix, or use the browser as a blank canvas to build community experiences.

Live video infrastructure is a difficult beast to work with. It has a really wide surface area of things that can go wrong. In the network layer, engineers worry about constant bandwidth, avoiding packet loss, and keeping packets in order. Then in audio and video there are hundreds more bugs across audio/video alignment, compression, encoding, and decoding. With such a broad problem set, even minor fixes can be time consuming because when something simple like an SSL certificate breaks, it is easy to think that a problem occurred in the more complex areas of the stack.

If I never have to set up an SSL Certificate again because of Zeet, I will owe you my firstborn.

Fairgrounds significantly simplifies this problem space for themselves in two ways. They use AWS for their infrastructure, instead of a video providing service, as their AWS instances have guaranteed bandwidth. Using AWS also gives them transparency and direct control in case of any networking issues. Additionally, they use a piece of open-source software called LiveKit, which eliminates most of the complexity of working with live video. With Zeet, deploying a pre-configured LiveKit project takes just a few clicks. Despite Neil's specific expertise in live video infrastructure, Fairgrounds spends almost no time building it for themselves, instead focusing on the unique user experience they are building.

Analytics

Fairgrounds uses Posthog for product analytics. Posthog is an open-source product analytics suite that offers cloud and self-hosted options. Rather than pay for the cloud version or invest time in configuring the software themselves, Fairgrounds deployed a Posthog instance directly via Zeet's interface. Similar to their video streaming infrastructure, this click-to-deploy approach to analytics keeps the data and infrastructure under Fairgrounds' direct control without the usual devops burden of self-hosted services.

Unity Development

Fairgrounds develops their virtual reality environment and games in Unity, an industry standard game engine. The deployment process for a Unity project should be familiar to any application developer: package a build and ship it. The end product runs client-side on the player's device.

Fairgrounds is available on Windows and Oculus Quest. For Windows, Fairgrounds ships an installer by uploading the Unity build to S3, which players download from their website. Meanwhile, on Quest, they submit each build to the Meta Quest Store review process. Once approved, the update is hosted and distributed by the store.

To simplify the development process in an era of rapid iteration, Neil and crew support only a single "golden version" at a time, synchronized between Windows and Quest. On Windows, when a player starts the game, it asks Fairgrounds' server if it is running the correct version. If not, an updated build is pulled from S3 and installed before the game loads. The Quest handles this automatically in coordination with its app store.

Scaling People

Fairgrounds' hands-off approach to infrastructure paid additional dividends when hiring a new Unity developer. Said Neil, "even if I am an AWS expert and I don't need Zeet, expecting team members to be at the same level of competence with AWS because it is such a huge beast to learn, that would be super hard. Zeet helps on that side of scaling people too." Zeet has made AWS accessible to a great developer from a totally different background rather than keeping one AWS expert as Fairgrounds' bottleneck.

We put in 10 pounds of force and 9 pounds go into building the product. Before it was 6 pounds, when we had to manage the whole [infrastructure] ourselves.

What is Neil reinvesting that extra three pounds of force in? Solving unique technical challenges while building his vision of a metaverse. During the interview, he demoed a new project: VR avatars that players can win playing games and own in their digital wallet. But, as Neil explains, "Avatars are much more complicated than you might expect in VR. For example you are moving your hands, but you don't have trackers on your elbows so you have to set up the bone structure and the physics to animate the elbows when you move your hand." The elbow grease Neil used to put into his infrastructure can now be applied to actual elbows.

Moving Fast, Keeping Up

Neil is no stranger to rapidly interating on products. Starting his career as a founding engineer at Bebo, he joined the company shortly after the original owners re-purchased it in 2013. Bebo was acquired by AOL in 2008 for 850 million dollars and sold for a fraction of that to a private fund two years later before its founders paid just one million dollars to get it back. With pivoting ownership, a re-imagined Bebo's product development pivoted several times as well: a emoji-based chat app similar to Bitmoji, a social video platform called Blab, and an E-sports streaming service with computer vision to add effects in real time based on in-game actions.

Neil engineered key features and infrastructure for each of these products, often solo, but he knew he needed every accelerant that he could find when diving into the fast-paced world of web3. By deploying with Zeet, Neil has been able to focus on building his team and his product, not replaying levels that he has already won.

With Zeet, I get 10% of my brain back.

Zeet isn't just for expert engineers like Neil. Early in Fairgrounds, Neil tasked his brother and co-founder, Jack, with setting up their website in production for the first time. The issue was, Jack is not technical. But, after only a few minutes in the support chat, their new site was live on AWS — all without transferring DNS to Zeet. Not only does Neil get 10% of his brain back, but his team is equally empowered to create infrastructure.

Subscribe to Changelog newsletter

Jack from the Zeet team shares DevOps & SRE learnings, top articles, and new Zeet features in a twice-a-month newsletter.

Thank you!

Your submission has been processed
Oops! Something went wrong while submitting the form.