Ethereal Engine Release 1.0.0 RC: Introducing the Metaverse Control Plane
Kyle Baran, Josh Field, Gheric Speiginer
August 27, 2023
The vision to scale the Social Spatial Web
How exactly does one build an open web metaverse? When we started Ethereal Engine, we aspired to build social spatial websites that immersed visitors in magical experiences. We dreamed of inviting millions of people a day to our home pages turned home worlds. With over two years of work, Ethereal Engine powers spatial web sites that scale effortlessly, using state of the art architecture modeled on the best practices from decades of massively multiplayer online game development.
We call this spatial server platform the Metaverse Control Plane:
When your brand goes viral and you see an unexpected 1000x bump in traffic, you don’t want your metaverse to go down. You want to capture every opportunity to delight your guests, and you need your infrastructure to scale automatically and effortlessly. This is not something that a traditional web hosting infrastructure can provide; massive multiplayer online games, however, have long developed appropriate infrastructure for spinning up world instances as needed, and directing incoming traffic to those live world instances. Ethereal Engine’s Metaverse Control Plane makes it easy to manage all of this, allowing you to easily host and automatically scale your social spatial experiences on the web.
The control plane powers all sides of the Ethereal Engine platform: the 3D simulated world locations for guests, the web world creation studio, and admin control center. Learn more about Ethereal Engine Features.
Kubernetes has led to a revolution in how developers can tackle scale and complexity. Ethereal Engine uses Kubernetes to scale shared simulations, and depends on built-in features of its existing architecture.
Service discovery and load balancing
If traffic to an instance is high, Ethereal Engine matchmaking dedicated game server tooling on Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable.
Automated rollouts and rollbacks
Ethereal Engine can easily be migrated gracefully, while keeping multiple XR projects running.
Automatic Resource Management
Ethereal Engine leverages Kubernetes to run tasks and tell it how much CPU and memory (RAM) each task needs. Kubernetes can fit these containerized tasks onto nodes to make the best use of available resources.
The management system restarts instances that fail, replaces server instance containers, and kills containers that don't respond to a health check and are likely crashed. Users gracefully reconnect to other instances of both world servers and media servers if an instance is to go down.
Secret and configuration management
API secrets, client and server configuration can be updated in real time without rebuilding container images, and without exposing secrets in stack configurations
Control Plane Example
Below is an example deployment of the Ethereal Engine Control Plane on AWS. It's setup to store files on IPFS and S3 forwarding to the AWS CloudFront CDN for large and fast files. It's using AWS Aurora with Ethereal Engine using our flexible SQL Database connector. There are also a few extended integrations for login and notifications sing AWS Email and SMS services. This is our most popular configuration and the EtherealEngine.com/explore page (xrti.me) with our examples are hosted on AWS with this control plane configuration. Check out the diagram below.
(Very high level diagram of a Kubernetes Cluster outlining how K8 systems divide resources into units of compute using nodes and pods.)
Want to build the spatial web on your website? Looking for a place to start? Run a web metaverse cluster yourself on your own computer.
The Ethereal Engine Control Center is a self-contained Metaverse world in a box. Take what you need or launch the full stack. Ethereal Engine Control Center is a desktop app to manage a metaverse cluster.
We know it's been complicated to build with Ethereal Engine and we've made this tool to give the community easy access to the engine for development and creation. The full Kubernetes cluster can run on mac and any Debian Linux distro with at least 16 GB of ram.