Hey, Server guy again. Today I want to talk to you about how to deal with updates and latency in the massive universe that the Server will need to support.
Latency (aka that mysterious force that disconnects you)
Latency in an MMO or large player base server is actually really hard to deal with. You’ll have people with barely 8ms ping and then you’ll have people with 300ms or more – usually in the same place too.
One way of dealing with this is reducing the required updates per second. Another is to use a history buffer in which you can look up previous states of anything ever – whatever you need you can probably find an earlier instance of it there. The second one requires a lot of tuning to get right and usually you want to stay within the range of 150-250ms to not make it seem unfair to players.
Sirius Online is going to use a history buffer of exactly 200ms – with sub-steps of about 20ms resolution. This allows us to allow players with less high speed internet to hit targets without it feeling abnormal while still feeling real enough to not have it seem detached.
The Tickrate (aka Updates per Second)
Basically Tickrate means how often an Application updates it’s internal state. Most games have this at 60, 30 or 20, but with clever coding you can go much lower reaching 10 or even 5. Sirius Online will be using a Tickrate of 10 for the time being.
“But wait!”, I hear you say. “Won’t that degrade accuracy?” This is a good point, but since we have a history buffer available we can just look back in time to any previous position.
Now that alone does not solve the problem. To solve the problem of accuracy you need to split physics simulation into multiple steps, which unfortunately can’t be done easily. Remember the history buffer? We can use this to increase accuracy in physics.
Physics
Lastly, I want to talk about the physics that will be on the Server. We won’t rely on per-vertex collisions, but will rely on approximate collisions using Boxes and Spheres. This is accurate enough to not be noticeable and works well for our purposes.
For the client, we’ll keep per-vertex collisions where possible. Since it is only a visual effect that is affected, the gameplay should be nearly the same.
Last words
And that was another Dev Blog. I’ll keep you updated if anything exciting happens.
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!
It also Includes your CPU and GPU Brand and a few questions about the recent Update 10040 and a question if you'd support a game Kickstarter to get it off its hooves. Or feet. Or Wings. Whatever makes this game move at all :)
I'd be happy to get a bit of participation and Version 10040D is coming this evening.
Thahnk you, and shoot you in Space,
Dex!
Server Downtime Addressing Lag Issues Today
Hello Players,
after reports of heafty lag spikes we decided to give the server another kernel and binary update to investigate.
I will inform you once it's up again.
Thank you for your Patience,
Dex
Build 10040c: Dynamic Markets, Free Techtree and Customization
Hello Everyone!
Build 10040 just went live on Steam. If you didn't get the update, please restart the Steam Client!
New Stuff
- Added Godrays Setting in Launcher for those who want nice stuff to record.
- Updated Launcher Graphics and Links in it.
- New Ships:
-- Nightingale
-- Aeon*
-- Thrift
-- Gradion
-- Excalibur*
- New Weapons
-- Sniper Gun
-- Very Heavy Blaster
- You can freely choose any whip in the Techtree with F4
- Ecliptic Projector Returns on the G key.
- Markets are now Dynamic. Check the Individual ores per Station. The Market Fluctuates and the value decreases and Increases.
- New Complete Tutorial Guiding you through the early stages.
Changes
- All ships are now Slightly Stronger and hold more power
- AI is less forgiving, and hunts you down from further away
- Doubled Laser Lifetime for more intense fights
Fixes
- Fixed Clipping on a few guns
- Fixed screen whitening when steering upwards.
Update 10040b
- Fixed Performance Issues
- Changed BGM to be more Spacey
- Tutorial should now be Skippable with F10
Update 10040c
- Fixed defective Mining
- Fixed Gun 4 and 5 not damaging players.
Update 10040d
- Fixed further Network Mining Issues
- Stability improvement
- Fixed Stuff not disappearing in Screenshot Mode
*The Capitals have a bugged Camera, you have to scroll out to see them in total.
Deployment of 10040 has begun, Downtime Over
Hello Players!
The Server has been Updated to supprt the new 10040 Market Formats and is running. I've encountered a few last minute bugs and am working on fixing them.
10040 should be with you shortly, expect patchnotes.
Regards,
Dex
Planned Server Downtime for Upgrades [UPDATE]
Hello Players,
[UPDATE]
Downtime has extended by 8 more Hours due to unforeseen circumstances. At least I don't claim to foresee the future.
This means the Update will be available around 10:00 GMT+2
In spirit of the latest Stream The Server went down for Kernel and OS Upgrades earlier today and will get a Server Binary Upgrade later this GMT Night. In addition to mire stability, I will release a pprelimineary version of 10040 with a fully open techtree.
My Intention with this update is to allow you testing athe new Ships and their mechanics along with the new Ship Switching system, as well as stress the New Dynamic Market and test it thoroughly.
The Update will be ready around 02:00 GMT+2 (Germany).
Thank you for your continuing support!
Dex
New Devblog: Technical Progress
Hello Players,
In spirit of a very exhausting Weekend, I have written a new Devblog, showing a few of the upcoming game changes: