Jump to content

How NQ are using C++ Actor Framework for scaling


yamamushi

Recommended Posts

NQ have been fairly quiet about how their scaling works at a deeper level, however based on this interview with Actor Framework from 2014, we can gain a tiny bit of insight into some of the technology they use. We can also get a bit of insight into their early development process, and how they arrived at the choice of technology they went with:

 

http://blog.actor-framework.org/2014-12/spotlight-dual-universe/

 

 

This quote from the article specifically sheds some insight into how NQ are leveraging CAF in DU:

 

Jean-Christophe: As I said, the novelty we try to bring to the market is the idea of a continuous single-shard universe. This means that we must be able to balance the computing load dynamically, whereas current MMO games balance it statically, depending on the player position in the game.

 

CAF allows us to avoid dealing with low-level synchronization issues (data races, deadlocks, costly synchronization primitives) while enabling the logical architecture of our code. Furthermore, we leverage CAF network transparency to let actors communicate directly, whether in the same process or across our datacenter. This is a huge step towards fluid scalability, since it eases considerably the possibility to throw more hardware and increase the processing power linearly.

 

So far, we are satisfied with the performance, and we plan to build large-scale stress tests to put even more pressure to our architecture.

 

 

 

For the non-programmer, this kind of information is going to seem a bit trivial if not completely cryptic. For the programmers amongst us, we can start to get a picture of how they can scale out their infrastructure dynamically to account for the extra processing power necessary for adding more players to the world, especially if you are at all familiar with C++ Actor Framework.

 

I'm interested in learning about their networking middleware. I'd like to see it broken down in a devblog in the future, as explaining how the network side scales dynamically from a technical standpoint may alleviate some of the doubts/fears people have about DU. But I'm presuming that is all being kept very secret at least until the game nears release. 

 

Nothing wrong with that, as I plan on being here for the long haul :)

Link to comment
Share on other sites

Interesting, interesting. Another article to add to my Dual Universe collection.

 

This means that they are engineering based on an already existing framework instead of using their own. How interesting....

 

Of course 80% of everything else is probably created by them but still.

Link to comment
Share on other sites

Interesting, interesting. Another article to add to my Dual Universe collection.

 

This means that they are engineering based on an already existing framework instead of using their own. How interesting....

 

Of course 80% of everything else is probably created by them but still.

 

For something like the Actor-Model framework, it would make the most sense to go with a library that is industry tested instead of rolling their own. Similar to how nobody rolls their own crypto implementation (actually nobody should ever roll their own but I digress) and everyone just uses OpenSSL or some other crypto library. 

 

I would look at CAF like Protobuf, wherein the legwork in creating the structures and messages that need to be passed is on the programmer. So is the legwork of actually determining what to do with a given message, etc. But the internal details of how the schedulers work don't need to be modified because that's just one of the things you expect it to do well without modifications.

 

If I had to guess, a majority of their has gone into creating (or modifying) a voxel engine that integrates with their scaling code as well as building out their networking middleware. I can't imagine it was trivial to get an engine up and running that allows for a spaceship to fly through space while being handed off to different network nodes quickly enough to make the universe feel seamless, but I would give almost anything to get an architecture view of how all of their code works together to make it happen.

 

I wouldn't count libraries as part of their codebase, as we all use them and it's not really feasible to roll your own everything. If you look at it that way, there's still a very good chance 90-100% of their code is original. 

Link to comment
Share on other sites

For something like the Actor-Model framework, it would make the most sense to go with a library that is industry tested instead of rolling their own. Similar to how nobody rolls their own crypto implementation (actually nobody should ever roll their own but I digress) and everyone just uses OpenSSL or some other crypto library. 

 

I would look at CAF like Protobuf, wherein the legwork in creating the structures and messages that need to be passed is on the programmer. So is the legwork of actually determining what to do with a given message, etc. But the internal details of how the schedulers work don't need to be modified because that's just one of the things you expect it to do well without modifications.

 

If I had to guess, a majority of their has gone into creating (or modifying) a voxel engine that integrates with their scaling code as well as building out their networking middleware. I can't imagine it was trivial to get an engine up and running that allows for a spaceship to fly through space while being handed off to different network nodes quickly enough to make the universe feel seamless, but I would give almost anything to get an architecture view of how all of their code works together to make it happen.

 

I wouldn't count libraries as part of their codebase, as we all use them and it's not really feasible to roll your own everything. If you look at it that way, there's still a very good chance 90-100% of their code is original. 

Yes of course. Libraries are something we all use on a day to day basis. It makes sense for an industry tested library but it is interesting considering they specialize in tech and as such, are in position to make some of their own, not to say that they haven't.

 

It does as well give us some insight into what they might be able to do as well, which makes me happy to see a peak of what they are able to do.

 

Nevertheless, I am happy to see them using something industry standard and accessible to other people as well.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...