« News

Nov
17

Advancements in Server Architecture

We've been making a lot of changes lately, quietly behind-the-scenes and without shipping any normal "patches".

These changes have been primarily on the server, rather than the game client. As we discussed in the October newsletter, we've made a lot of recent changes to the game client that have really enhanced performance and efficiency, and some of these changes also make sense to apply to the server itself.

You see, the performance of a given sector is a limiting factor on what kind of content can take place there. How many bots can be flying around, or what they can be doing. The number of asteroids and debris floating to and fro, the complexity of station or mission mechanics; all these things are controlled by the Sector Daemon, that process that maintains authority over a particular area of geographical space.

Vendetta Online's server has always been fairly efficient, but in the interest of adding a lot of complex new gameplay, and giving us more opportunities and options to really scale-up some intriguing new scenarios, we wanted to work on enhancing the performance.

Thus far, we've managed to see some big gains. The measured increase in performance depends on what kind of work-load is being run, but so far we've seen improvements between 2x and 10x. This is thanks to a couple of major developments: big efficiency changes in our own code, based on profiling and testing; as well as moving the Sector Daemon's internal Lua programming language from standard "interpreted" Lua 5.1, to LuaJIT, a high-performance just-in-time compiled version.

Although there have been some differences and issues we've had to track down as a result of these changes (which made for some quirky problems last weekend), the final upshot is that we can now handle a LOT more activity within a given sector, on the same amount of Server CPU, while actually using less Server RAM. Similarly, Sector Daemons can now more-efficiently utilize large numbers of CPU cores, if necessary. All of that is a good thing for everyone, and particularly for next-generation gameplay.

Have you ever wondered what it might look like if every Collector Drone in a sector decided to attack you at once? Drop into Latos F-12 and see 300 Artemis Collectors that will all attack you on-sight. This unique, static test-sector exists just to see how things work with larger numbers of enemies, and what problems or ramifications emerge for players. The sector could handle more than 300, but this is a reasonable test-case for now.

This simplistic test-case does NOT mean we're aiming to have huge clouds of Collector Drones roaming around for no reason. But it does mean that we can make more reactive and interesting gameplay under some circumstances, and aim for much larger space battles, complex station-city environments, more complex AI, and the like. Ever seen a movie with thousands of ships in a massive real-time battle, and wonder what it might be like to fly through that? We'd like to see that too.

Vendetta Online has a lot of inherent capability in its custom, tightly-compressed network protocol, which dates from an earlier era when bandwidth was in far shorter supply. As a result, we've had some success with testing of "very large scale" situations, with only relatively modest bandwidth requirements for the players and server. There's still a lot more testing to be done, particularly with players in "the wild", but thus far we're pretty optimistic about our results.

With some luck, we may be able to build something that no one has ever seen in an MMO before..