Thursday, August 6, 2020

Space Engineers: Server Optimizations

SUMMARY
  • New Server Optimization Features: 
    • Tiered Update System
    • Selective Physics Updates
  • Faster and more responsive DS GUI
  • New localizations


Intro


We are pleased to present you with a very special update that focuses on server performance. 

Multiplayer enthusiasts, and especially Server Host/Administrators, will want to read on in order to learn about the new systems we are implementing. These changes are focused on improving the overall player experience of servers and will have a bigger impact on larger, more populace servers.

What can you expect from this multiplayer update? Better performance translates directly to bigger servers! With these new server-side optimizations, players should now experience less slowdown on larger, more populous, servers. PCU limitations can now be pushed farther as the server can better handle more active grids! 

Along with server performance, we are proud to offer better localization! Expanding the languages you can play Space Engineers in has been a goal for some time and we are excited to finally be able to offer a better experience to players across the globe!


New Features


Tiered Update System


We have added a new grid system, which we call the “Tiered update”. This system has two states:
  • Grid presence
  • Player presence 
Grid presence: This is the grid state when another grid is nearby. 

Player presence: This is the grid state when any player is nearby. 

Tiered Update: This new grid system assigns these states to the grid/blocks and can change behavior based on that information.


Replicated and Not Replicated


We added new Replicated and Not replicated filters to the admin Entity list section to provide information for the server admin. There is also general information about states in the provided tooltip.

Modders can also use this system. We have added new properties and events on IMyCubeGrid and IMyFunctionalBlock interfaces.


Selective Physics Updates


The Selective Physics Updates is a new optional system. This system is only for dedicated servers and can be enabled in the session settings (Enable Selective Physics Updates). 

This system observes all of the existing worlds (Havok physics engine has more than one in SE) and, based on player presence, detects which worlds need to be simulated. 

The net result is that only worlds around the players on the server are simulated (physics). This optimization makes a notable difference, especially for a really big server with a lot of grids.


Blocks


With Tiered Update we added a new update timer to several blocks. This update timer is changed based on player presence and grid presence. This timer determines how often a given block needs to be updated.

There were changes to the following blocks:
  • Reactor
  • Gas Generator
  • Gas Tank
  • Turrets and Barrels
  • Thruster
  • Parachute
  • Ship Controller
  • Connector
  • Battery
  • Landing Gear
  • Drill
  • Production - Refinery and Assembler
  • Sorter
Some of the above blocks will update less often, even for normal states (player presence, grid presence). Changes have a minimal impact on the gameplay.


Changes and fixes

  • We refactored and disabled some features(code), which do not need to be run on the server. Especially for the character, hud, toolbar, parachute and ship controller.
  • Trash cleaner is not only cleaning asteroids (to the point of removing entities from the game) but also stones now. We have added a new option for this.
  • Trash cleaner (identity cleaning) is now more thorough and cleans data which is no longer needed such as reputation, bank account etc..
  • We refactored and cleaned up the process of the player joining the server and, overall, this process is much faster. 
    • The joining process now sends less data.
    • The process is no longer on the main thread (parallel).
    • For big servers, there is no longer a spike on the main thread (for other players).
  • Fixed a “drop container” network issue. Server was sending too much information in some cases.

Other Changes and Features


You can customize the color of any player made GPS.

There is a new Family Sharing option for dedicated servers to allow/disallow family shared accounts on the server.

There is a new PCU Trading option for dedicated servers to allow/disallow pcu trading on the server.

As part of our continued development, we are currently in the process of updating the collision models of every block in-game! We believe these changes will offer a boost to how old creations perform as well as providing a whole new set of creative possibilities!


Performance Comparison - 1.195 vs 1.196

We are very excited to share the results of a number of internal tests we have conducted on some of our own Official Keen Software House servers! Below are a series of performance tests run on both 1.195 and 1.196 worlds. 

As you can see, the main thread shows a significant decrease in load, from around 90% to 60% on UK#5, and an even greater decrease in overall load when Selective Physics Updates is active!

Red: 1.195
Blue: 1.196
Yellow: 1.196 with “Selective Physics Updates”


New localized versions

Space Engineers had three official language localizations up until this moment. It is English, Russian and Chinese - simplified. We are glad that with this release we are bringing the game closer to all our fans who speak Spanish and French.


       
We also updated community translations for German, Italian and Brazilian-Portuguese. Enjoy the game!


FAQ

Q: How is this different from other performance solutions for dedicated servers?
A: There are 3rd party solutions offering performance boosts. Our solution is an additional way to make your server faster, not a replacement. If you are using a 3rd party tool for your dedicated server, you will see better performance overall with Major Update 196.

Q: Are the server optimizations going to positively contribute to the future of Xbox multiplayer?
A: Many of the changes that were made for Space Engineers, on Xbox, became improvements on the PC platform, and vice versa. As we continue development of Space Engineers, on both PC and Xbox, we will see improvements on both platforms. Xbox dedicated servers (once implemented), for instance, will benefit directly from these improvements.

Q: Why now?
A: Multiplayer performance is always a high priority. Optimization is an incremental open-ended process. As we continue development we are always striving to find new ways to improve your Space Engineers experience.

Q: Will these changes affect multiplayer lobbies or single player?
A: No, these changes have been created specifically for dedicated servers. Larger population servers and higher traffic servers will have the most to gain from this.

Q: I don't see my language on the list. Are you still planning to add (more) new languages?
A: We are always considering new localization options and better ways to cater to our community. While your language may not be supported now, as ever, we will continue to deliver new, official, translations. We think everyone should have a chance to be a Space Engineer!

Follow our social media to get the latest news!


What is the community saying?

The new block collisions will allow a whole new level of creativity from the community, an amazing change with unlocking even more potential within SE.
    ~Aaron (Last Stand Gamers)


This is brilliant. Surprisingly the server I use is not incredibly stable and I have to admis this is great news. Well done Keen Software love it.
    ~ Sil_Drasul


This update is just the kind of QoL thing SE needs right now. New features and content are great, but every once in a while you have to improve the core experience. Looking forward to the next one!
    ~ Daniel Lee Howell


Would just like to say well done this update it has made such a huge change that I feel it has just redefined the game. Well done.
    ~11zazzy11


This is literally a game changer.
    ~ Cole Hansen
 

Hiring

If you’re interested in working on awesome games like Space Engineers, we’d love to hear from you!
Check out the open positions at Keen Software House and don’t forget to send us your English CV/resume and cover letter. Remote collaboration is possible!




If you want to let me know your feedback, please get in touch via my personal email address marek.rosa@keenswh.com, or use our Keen Software House support site. I welcome all of the feedback we receive and we will use it to learn and provide better services to our players.



Thank you for reading this blog!

Best,
Marek Rosa
CEO, Creative Director, Founder at Keen Software House
CEO, CTO, Founder at GoodAI

For more news:
Space Engineers: www.SpaceEngineersGame.com 
Keen Software House: www.keenswh.com
Medieval Engineers: www.MedievalEngineers.com 
General AI Challenge: www.General-AI-Challenge.org 


Personal bio:
Marek Rosa is the CEO and CTO of GoodAI, a general artificial intelligence R&D company, and the CEO and founder of Keen Software House, an independent game development studio best known for its best-seller Space Engineers (4 million copies sold). Both companies are based in Prague, Czech Republic.

Marek has been interested in artificial intelligence since childhood. He started his career as a programmer but later transitioned to a leadership role. After the success of the Keen Software House titles, Marek was able to personally fund GoodAI, his new general AI research company building human-level artificial intelligence.

GoodAI started in January 2014 and has over 30 research scientists, engineers, and consultants working across its Research and Applied teams.

At this time, Marek is developing Space Engineers, as well as leading daily research and development on recursive self-improvement based general AI architecture - Badger.






8 comments:

  1. Cool hopefully (fingerscrossed) it wont introduce any new or old bugs? and will make a better playing experience?

    ReplyDelete
  2. After this update I cannot interact with anything, or switch tools, on the MP world my friend is hosting.

    ReplyDelete
    Replies
    1. Please contact us with your bugs, and feedback here: https://support.keenswh.com

      Delete
  3. Please add Turkish as well. It was already included, but not updated for a while. The latest community translation is here and 100% completed: https://steamcommunity.com/sharedfiles/filedetails/?id=2090526912

    ReplyDelete
    Replies
    1. If you would like to contribute your ideas on how you feel we can improve Space Engineers please leave us feedback here:
      https://support.keenswh.com/spaceengineers/general

      Delete
  4. Thank you so much for these optimizations! I play on dedicated server exclusively and have noticed a massive change in the quality of gameplay.

    ReplyDelete
    Replies
    1. We are so happy to hear about this! Happy Engineering!

      Delete
  5. These improvements certainly look very promising! Nice work!

    I do have a question relating connecting and disconnecting. Large dedicated servers are definitely getting more stable with these improvements but the real noticeable lag culprit is probably still the connecting of new players.

    Each time a player connects, the entire server comes to a halt and everyone rubber bands for a second. I understand that the server has to synchronise the new player with the rest but with large servers, 30-40+ clients, the frequency of players joining and leaving is noticeably high, resulting in a lot of rubber banding and stuttering.

    Is there any work being done on perhaps trying to move this synchronisation process over to a second thread? I understand that multi threading is a pain to implement properly but if the connecting/disconnecting is done in parallel, it will definitely improve the fluid gameplay on large servers.

    Keep up the good work!

    Kind regards,

    Jebo

    ReplyDelete