Developer postOriginal post (opens in a new tab)

Dev Blog: The new Server for Sirius Online

Hey, it’s the Server guy here with a Dev Blog for Sirius Online. Today I’m going into detail on what I’ve been working on the past months.

Steam

With our move to the Steam platform, a whole new API was available for us to use: the Steam API. Achievements, Inventory, Server lists, Statistics, Networking, Crash dumps, etc. – all that is available to us now without having to write a single line of additional code. Unfortunately that also means we will be a Steam exclusive until we decide to implement an additional way to identify yourself to the Server and still have all those features.

A few of those features are available right now in the Client and many more will come in the future.

A new Server Binary

Not going to hide the truth here, our current Server is built using an outdated language that doesn’t support threading or 64-bit. With the continued move towards 64-bit only systems, it’s time for a new Server – and what a Server it’s going to be!

I’ve been spending all my free time dedicated to building the new Server Binary and it is finally showing signs of progress. The new Server should be much more lenient with low bandwidth connections, higher pings, temporary network outages, firewalls and all that ‘futuristic’ networking stuff that you usually never have to deal with (looks at Unity, CryEngine & Unreal Engine).

Threaded vs. Sequential

I believe this is the most important change: a threaded application model. With this we can now handle a much larger player base and open up the way for server-controlled AI, a dynamic world, procedural generation, etc. You name it, it’s probably possible now – if it wasn’t already possible before.

If you don’t understand the above, imagine the Server being a Store. Each Client is a customer with varying amounts of orders which take varying amounts of time. With a sequential model, we only have one store clerk to handle the entire queue – which you can imagine can get quite difficult with larger queues.

Now take the threaded approach: it’s still a single queue but there’s multiple store clerks now – each one able to handle a customer each but still using the same queue as before. This is what threading allows us to do and it probably allows us to do much more – if we don’t end up doing a lot of bad (Race Condition, Deadlock, etc.). But trust me here, I know what I’m doing! (-cue end of the world-)

Why have there been no major patches?

Since building the new Server is currently priority, Client development is only done at small steps to ensure that our work to be done stays low. So, no major patches until the new Server is done.

Final words

There are some other things still being discussed that I can’t talk about yet, so stay tuned for the next one!

Read on Digital Dawn Studios