Great recap of what we've been up to over the past few years - taking the best of
@UnrealEngine
and extending it into the mass density backbone of
@MSquared_io
, capable of 20k+ unique players in one spot.
UE5 dev platform early access coming later this year!
I'm currently working on the Open Object Standards described for
@OthersideMeta
and M2. Here's some context on the different areas covered in the litepaper
@CloakdDev
@HermanNarula
@MSquared_io
For rendering, we've written a custom skeletal mesh rendering engine that can handle every character having totally distinct animation states and be represented by thousands of different modular pieces - below is a demo using some example assets!
Operations per second is a critical metric to compare virtual worlds - you'll hear
@HermanNarula
,
@MSquared_io
and myself use it often. You can think of it like the "horsepower" of a virtual world - the raw connective capability it has.
Messing around with MML objects that can mutate their own code using GPT-4. Because MML extends HTML & JavaScript, it already has a great intuition of what to do!
Stress testing the
@MSquared_io
emote system with close to 20,000 synthetic test players.
We have automated systems to do this daily - testing well beyond expected live load is key to making robust virtual worlds.
As a bonus, they look awesome!
In a high density metaverse environment, when you double the number of players, you quadruple the amount of data you need to send. This means going from 100 to 20,000 players isn't 200x more work, it's 40,000x more work!
Leak time: So there have been some major upgrades to the backend of our
@MSquared_io
technology. This is little candid clip of more than 20,000 CCU in a dense location. Many caveats and details in thread:
@RJFWhite
MML Interoperability thread (
@HermanNarula
@BoredElonMusk
@philiprosedale
) - NFTs are solution to the problem of interoperable ownership, but they remain usually just JPEGs. How do we create truly interoperable metaverse objects, including behaviour and visualization?
Had a blast at the impromptu
@MSquared_io
tech test. Apologies to those who fell off the map... the rubber duck did it... I'm not joking.
Definitely found it much more communal a vibe than twitter spaces, we'll definitely do this more going fwds!
Want to start building cross-metaverse characters, items, and objects? We're getting to the point we need your help to continue MML development - sign up to the beta here!
Where HTML describes buttons, labels, text boxes, MML describes 3D models, images, audio, and interactions. We're already written MML renderers for THREE.js, Unreal 4 & 5, and Unity. You can design something once, use it anywhere, and edit in real time.
MML objects don't have to be static - they can run in the cloud, executing JavaScript, and can simultaneously react to users across multiple metaverses, and even talk to external services. This is my favourite demo of that:
#metaverse
interoperability means different things to different people. I've found it useful to break it down into interoperability of people, places, and things
Experimenting with taking
@LumaLabsAI
text-to-3d characters through into fully in-game interoperable
@MSquared_io
avatars.. every month this stuff is getting better!
Just integrated
@OpenAI
GPT4-Vision into MML to enable interoperable metaverse agents with sight.
Of course the first thing to make was ROASTMASTER 9000 that seriously judges you for your metaverse outfit choices...
@HermanNarula
you may want to close your ears
We're still investigating exactly what is the best environment for this system - unsurprisingly JavaScript is a big contender. However the earliest forms of adding custom behaviour will be "If this then that" style rules rather than full-blown coding.
For Morpheus 2.0, which now powers
@Msquared
and
@OthersideMeta
, the demo
@HermanNarula
leaked (whoops) shows 20,000 players with full density of interaction.
This is almost 1 billion ops / sec
What is a "Metadata Ontology" and why do we need one? When you load 3D models, or 2D images into a virtual world, the world knows how to render them, but doesn't know what they are. It has no idea the 3D model you made of a sword is actually something you can hold in your hand.
What if we embraced the most successful interoperability standards in the world - HTML and JavaScript, and extended them for use in metaverse environments? We're been exploring just that- a new open standard called MML - Metaverse Markup Language.
We'll be nerding out much more on MML on Sunday - less insanity dance party, more slideshows. Expect deeper technical discussion, code snippets, architecture, etc!
You know the time. You know the place. You know the madness to expect
@RJFWhite
this time will be more educational especially for builders and content creators.
If this is the HTML of the Metaverse, what is the JavaScript of the Metaverse? This is where the "Universal Scripting System" comes in, where you can add your own rules and behaviours to things in an interoperable way
Unbounded player density means players are now able to gather all in one spot, to participate in massive battles, concerts, festivals. Some of the most amazing human experiences are when people come together en masse - we can now do that virtually
That was a ride! To sum up:
* ops per second = "virtual world horsepower"
* When you next see a virtual world tech demo, try and think about the scale, density, and fidelity together
* final note - don't trust tech demos (even ours!). Trust shipped experiences you can validate
Imagine defining a metaverse equivalent of HTML - elements in HTML aren't just about what things look like, they define what they are and how they should behave - a <button> should be pressed, a <video> can be played and stopped
Pushing density is a hard, full-stack problem. It's been an blast working on it with the team:
- Every player can see every other player
- 250 million entity updates per second
- 350 kilobits per second per player bandwidth
- We've hit over 10k in tests, but the memes are great
@aaronmcdnz
@metabloxx
@OthersideMeta
Couldn't agree more - any protocol / spec for metaversal objects needs to be defined in a way it can be implemented in multiple places rather than just in a specific network. less like apps, more like websites
The future isn't a singularly owned
#metaverse
but an "Internet of Metaverses" - an evolution of the public internet where interconnected but independent worlds exist much like sites on the web do today.
MSquared is developing the standards and technologies to get us there.
But we'll also need elements to define in an interoperable way new things like equippable items (tools, weapons, accessories), clothing, characters, placeable objects, consumable items, etc
Awesome twitter-space-turned-demo by
@HermanNarula
and
@RJFWhite
- really cool to have more people see and experience MML in action!
This moment at the end is gonna give me nightmares though 😰
Sharing some thoughts on the gameplay and technical exploration we've been doing within our large scale event sandbox, ScavLab. It's been an amazing journey and looking forward to see where we go next!
So what sort of elements would you see in a "Metaversal HTML"? There will probably be equivalent elements for a 3D environment - a <button> could be something physically in space, and a <video> could be on a jumbo screen
- our next web3 event in collab with the
@forgottenrunes
team, all our invited. Got some new tech features we're super excited to show off, and the event is looking awesome!
Unbounded player update rates means being able to support the above high scale and density without compromising on fidelity. This can make these experiences suitable for high precision ranged and melee combat, VR or XR experiences
As you scale up virtual worlds in scale, density, and fidelity, the amount of ops per second - computational horsepower you need absolutely explodes.
It's useful to plot this on a graph to really take it in..
thoughts for
@MSquared_io
- the beating heart of successful metaverse network starts with a creator community. Rather than siloing people into isolated development tools, we should have a way to bring everybody together and jam. A great inspiration here is Second Life Sandboxes
"Interoperability of things" is the really interesting one. It's also the foundation of true cross-metaversal economies. Objects you can take from experience to experience that don't just look the same (we have open 3d model formats), but have consistent meaning and behaviour
What were these limitations all about? The most critical limit is the server's ability to figure out what every player needs to see in the world, and send player updates fast enough.
As you scale up to more players, density, and fidelity, this explodes in complexity.
For a Universal Scripting System within
@MSquared_io
and
@OthersideMeta
, what language / environment would you most like to see? Interested to hear thoughts!
Playing around with distributed physics simulations in
@MSquared_io
morpheus tech - end-to-end latency is now comparable with high fidelity action games, which enables different physics simulations to stably interact with one another!
Taking the initial Morpheus 1.0 tech in 2021 - it updates every player around you twice per second, and for the closest 500 players 10 times per second.
For a 10,000 player, fully dense experience, this works out at 250 million ops / sec
... these numbers are growing fast!
Growing up within Second Life, it wasn’t possible for more than 50 people to gather in the same place before the server refused entry for that area. When really exciting things happened, like a live concert, having ~50 people show up added a ceiling in terms of experience.
When spending my summer holidays in Eve Online, while it supported multi-thousand player massive battles that made news headlines, in practice these experiences were slowed down by up to 10x to allow the servers to keep up.
Great to see everybody on the metaversal dancefloor and recapping on our progress and future for
@MSquared_io
tech
- tens of thousands of players in one spot ✅
- interoperability and composable across any metaverse and world, XR, Unreal, web 👈 up next
- putting more of the
We're looking for a logo for MML ahead of it open sourcing later this month. Could definitely do with some ideas - this is what we're rolling with if not!
@HermanNarula
For a large Eve Online battle, let’s say 8,000 players:
8,000 Players * 8,000 Density * 0.1 Tickrate = 6.4 million ops / sec
Eve's typical tickrate is 1 hz, but slows down by 10x to 0.1 hz during big battles.
There was a glimpse of "interoperability of things" in Second Life - objects authored by totally different creators able to co-exist in the same experience and interact with one another. Making this work in a more general context is going to be an interesting challenge!
“ops per second” is a measure of this complexity - how many of these updates are being sent between the participants in a virtual space. More interactions = more ops. The rough formula is:
# of players in a space * player density * update rate = ops per second
USD is great, but I believe HTML is the HTML of the Metaverse...
USD is a great for connecting authoring tools but has a way to go until it's viable as a cross-platform runtime scene representation for virtual worlds.
An arena shooter like CS:GO has 10 participants playing - they can all see each other, and the server sends player updates 64 times per second. Plugging this in to our formula
10 Players * 10 Density * 64 Tickrate = 6,400 ops per second
So with uncapped operations per second, what sorts of possibilities open up? One way of thinking about this is to look back to the equation of operations per second - it relates to total number of players, player density, and player update rate.
Hugely proud of the team for this! Full source available for a
#unity3d
, essentially 200 player battle-royale-in-a-box running on SpatialOS. This was made possible by leveraging more networking and compute than a single dedicated server can handle
We are delighted to announce the launch of our
#SpatialOS
Games Development Kit for
#Unity
- a platform to build, host and manage a Unity online multiplayer game quickly. Get started now for free:
#gamedev
#indiedev
#multiplayer
Incredibly excited we can finally announce our partnership with the team at Midwinter, leveraging
#SpatialOS
and many instances of
#UE4
stitched together to create Scavengers, an incredibly rich world combining complex AI with fast-paced PvP
For a 100-player, 60 tickrate battle royale game like PUBG, things scale up more - you're looking at approx 70,000 ops per second.
Not this isn't 100 * 100 * 60, as you don't get high fidelity updates for every player, just those near you.
Spending my morning having an argument with a sassy sentient light switch that really doesn't want to help. Metaverse is going to be a weird place post
#ChatGPT
We've got one ingredient of the puzzle - MML, which allows for cross-metaverse objects to be edited and interacted with in real time. Finding a way to let MML devs bump into each other's work and collaborate in a builder space would be amazing.
@0xRyanDG
@NBATopShotEast
@OthersideMeta
Yeah the Decentraland creation tools are definitely a good reference point - I've yet to see a standard that really is really set up to work across metaverses, it's a pretty tough challenge!
It was great to see so many people at the
#MML
Event yesterday with
@HermanNarula
and
@RJFWhite
. To all attendees, I hope you had a fun and insightful experience. For those who missed it, I hope the slides can give you an idea of what you can do with MML!
@HermanNarula
@NeoTokoh
Yup UE5 is already working in test builds - it has some cool features compared to UE4 but generally is fully backwards compatible so has been easy enough to port over!
@riv8if
@CloakdDev
@HermanNarula
@MSquared_io
15,000 - this clip is from last year though, we can do higher numbers these days! Rendering doesn't scale as nasty as networking does so it's not currently our bottleneck
@TheSmarmyBum
@HermanNarula
@MSquared_io
Yup we've done weapons! In ScavLab (an earlier event in 2021) we had 5,000 players face off against 10,000+ complex AI with full melee battles (it's on youtube!).