With Ember Sword’s first group dungeon The Ultra Deep now laid bare for the public to scrutinize, Bright Star Studio’s has stood firm that they are willing to show a little vulnerability in favor of making progress. During my time at Bright Star Studios (BSS), I had the chance to speak with several of the developers, and while I still have more information on the way, today’s article will focus on one of the most enlightening conversations I had.
Joris Huijbregts, the Chief Development Officer and one of the Founders of the studio sat down with me so I could understand the team’s “groundbreaking” engine. In our conversation we touched on the innovation of their custom game engine, the power of asynchronous streaming, and building an engine that might one day revolutionize MMORPGs as we know them.
When I stepped into the room with Joris, what once looked to be an old recording studio, now retrofitted to be a dimly lit, cozy conference room, I felt more like I was walking into the lion’s den. After all, my previous tests with Ember Sword revealed a lack of performance with engine, resulting in some strange hiccups. However, Joris, having built the engine, knew many secrets that Ember Sword’s infrastructure held that would eventually shift my perspective, and he didn’t seem too worried when my first question alluded to the unimpressed assumption that the original vision was to essentially stream the game to players from a cloud server.
Game Streaming in a Different Way
“The entire engine is built around asynchronous streaming,” Joris began. “Which basically means that, as you play the game, it kind of trickles in and loads things as you go. So, the way it works in Ember Sword is that, if you start walking in a certain direction, the game basically predicts where you're going. It streams that in, making sure it's ready and then by the time you get to that area, it's already loaded.”
Immediately my mind thought back to the days of Vanguard: Saga of Heroes and the horrid days of “chunking” pieces of the world, waiting for them to load before I could move forward. However, that isn’t what Ember Sword is doing. There are major differences here.
- First, you’re not housing huge assets to load in a client anywhere. Data can be cached in the browser.
- Second, the engine is predicting and streaming the world, and assets through your browser before you get to where you’re going.
- Finally, the way the assets are compressed, the size of what’s being streamed are so low, that you can do it even on low end mobile connections.
“Traditionally, game devs don't really care about making the game smaller, because you just dump it on Steam or Unreal, or whatever, and they distribute it. So, it's not really your problem, right. But you can, in fact, compress things quite aggressively. If you know exactly what data you're gonna have, and obviously, if you build an engine from the ground up, you know exactly what data you're gonna have. So, 3d meshes, for example, traditionally aren't compressed at all. But through data, quantization, and point cloud compression, you can actually compress them down to like 10 to one, or 15 to one in some cases.” Joris explained.
That means that many assets could stream in at less than 1MB, which is paltry to transfer in a moment’s notice. But Ember Sword doesn’t just stream data in. It’s not like a streaming service like GeForce Now. The game itself is actually running in the browser, downloading and caching as it goes. In this way, you’re reducing latency, and removing video compression problems like you would have had you streamed the game from a service like Xbox Cloud.
“Essentially, what it does is, you just dump the data into your cache. But then as you progress through the game, or you're spending time in certain area, a lot of the things that you've downloaded a week ago are just not relevant anymore, right? So we can evict that data from the cache. It's called a rolling cache.” Joris told me.
But because of this system, Ember Sword can also determine when changes are made on the fly. “After you've played, for example, the Ultra Deep dungeon, everything's cached on your device. So you can just like go for another session. You don't have to download it again. Which obviously, is nice if you have like bandwidth limitations or anything like that. If we update the game, changing animations a change in texture, or any change, the client basically is notified and it just tells you it just needs to download the new animation, new texture, new audio file. That's it, right. So, we can also incrementally patch itself.”
Changing the Game in an Instant
Suddenly, this premise hit me, because I remembered that I had experienced this before during the last test. During the last public alpha test, I was playing around with the Staff, and noticed it was missing a skill slot, where all the other weapons I had tried had one. Without having to restart the game or change anything, the new skill was patched in, and suddenly it was working. I remember thinking at the time that this was a bug, but after speaking with Joris, I realized that this is one of the intended powers behind Ember Sword’s custom engine.
When you look at Ember Sword, and the stylized low-poly design, and then you hear Joris talk about the ability of streaming this content with their custom engine, it almost makes sense to equate one with the other. Obviously, to me, the low poly design choice was made so that it was easier to stream content in. However, Joris told me that wasn’t the case.
The compression and asynchronous streaming of the engine was capable of realistic graphics, but the team opted for something more stylized simply because stylistic design lasts longer and tends to survive the test of time. That doesn’t mean that Ember Sword won’t see graphical enhancements, it just means that we won’t see hyper realism as a focal point of their visuals.
Of course, Ember Sword’s engine isn’t all roses. There are some drawbacks to utilizing the browser-streaming client. “The only limitation or like, drawback we have running in the browser is that it's a little bit slower than a native desktop application.” Joris said.
But despite some of those limitations, BSS was still able to easily place 200 players on screen utilizing WebGL. Joris said that over the next 6 months with the stable release of WebGPU, they expect way more visual fidelity and a substantial increase of the number of players that can be on the screen at one time, and it will also help bridge the gap between the browser and a client.
A New Engine Era On the Horizon?
BSS is so confident that their engine will revolutionize the way players are playing MMOs that they’re already eyeing the future of the engine beyond Ember Sword.
“We kind of realized that, maybe it's a pretty cool tool that other people could use, right. With such a small game, you can target other regions like the Middle East, for example, or Southeast Asia or South America, where people have very limited bandwidth, very limited disk space, things like that.” Joris said.
BSS prides themselves on ensuring that the game is accessible enough to run on just about anything that has a game browser, which includes almost any modern mobile device. But it’s also important to note that Ember Sword doesn’t have to only rely on a browser. There might be a time in the future where we see a launcher, a console port, or perhaps a mobile app. Despite being browser focused right now, BSS isn’t locked into any single platform or delivery method.
While it’s still too early to tell what impact Ember Sword and their innovative engine will have on the future of MMORPGs, it’s clear that the team is doubling down on their approach to development. There are some very clear goals the team has for their game and their engine, but we can’t put the cart before the horse here. After seeing the engine work first hand, and having it explained to me in greater detail, I can certainly see the merits of what BSS is doing. But of course, the best way to showcase their hard work, is to follow through with a fun and exciting game, and we still have some time to wait before we see Ember Sword fulfill that role.