Update 0.985 - Big Optimizations and bug fixes

Check here for official announcements about the game.

Update 0.985 - Big Optimizations and bug fixes

Postby MrBenjammin » Mon Dec 14, 2015 5:24 pm

0.985 is now up! For this update I focused on burning through a lot of bug fixes that been sitting in my todo list for a little while. I also gathered some new ones pointed out to me by players over the last few days and tried to burn through as many as I could. A long the way I took the dive deep into the very large server log to work out any issues that have been causing server instability and worked out a few major ones after a lot of investigation and hardwork. One of the very noticeable visual bugs has been the jittering or wiggling of docked ships. Especially big ones, especially at higher latency when moving a ship. This is fixed a long with a whole host of similar issues!

The biggest part of this update however is optimizations, which may not seem very exciting but it's a pretty big improvement. I've spent most of the last few weeks profiling the game server to work out bottlenecks. After seeing a couple of things in a bunch of Capitals that were really slowing the server down, but not wanting to remove or limit them I went to work using Blue Sun's capital as a local benchmark. Which has a bunch of really huge ships, many machines and just hundreds of ships in general it made a great test bed for optimizations and fine tuning.

The very first thing I noticed was the use of Thrusters essentially for free mining, which in reality is an exploit but I have let it slide until now, the main problem with it performance wise it's breaking thousands of blocks and dropping them on the floor which slowly kills the server as thousands upon thousands of collisions are tested against the ground and each other. As opposed to the laser which deposits items in crates. The key change to thrusters in this update is that they will only burn blocks behind them now if the ship is exerting thrust.

The next big issue I found overall has been the performance incurred by very big ships moving. Since they require quite a wide array of collision tests and resolutions in the physics library due to their size and multiple parts, I've worked out a new way of filtering their collisions in such a way that it reduces a lot of unneeded tests. Which on my local test server, which runs at a cap of 100 ticks per second, but would crawl to 10-15 when moving a ship of a 90 block diameter(which is huge! but possible as I found with Aerion's Deathstar). With the new filtering it runs pretty cleanly at 80 ticks. That's not to say that there aren't any situations where something that big or complex won't slow down more, but it's a huge improvement. Generally, through a whole host of physics optimizations both large and small which you can check out in the change log have made the server a whole lot faster overall as every ship runs just a little bit faster.
There's a whole host of stuff you can check out in the change log below, but I wanted to work on stability for this update rather than adding new things, as well as clearing a back log of lower priority bugs. To hopefully make sure the game is relatively stable over the Christmas period both for you guys, so you can enjoy the game over your holiday time off from work and school, as well as myself as I hope to have a short break over Christmas. Which will mean there's a bit of a longer gap than usual to the next update. But I hopefully have some cool stuff planned for it!

How do I update?
The client will automatically update. You can find the new server files on the download page. Make backups of yours server files before you overwrite them as always.

  • Thrusters will no longer burn blocks when the ship is not moving. This is to prevent an exploit that allowed for free mining, but more importantly hurt server performance badly as it was possible for hundreds/thousands of items to drop per tick(as opposed to lasers which automatically store them).
  • Moved a lot of physics related equations to happen only on the physics tick rather than every frame. Huge performance gain on the server.
  • Heavy optimizations to Chunk update ticks.
  • Exposed TileProperty data for all tiles to the Mod API. It can be called from IChunk.GetTileData().
  • Optimized collision filtering for docking between ships to improve performance on very large ships made of many chunks.
  • Pretty big physics optimizations for very large ships overall should help their performance immensely.
  • Improved texture loading speed for custom server textures via caching them.
  • The Steam Auth process window is now hidden to reduce clutter.
  • Fixed ships behaving oddly when clamped to the ground due to not having linear and angular velocity reset.
  • Fixed Deconstructor beam not being removed if the block is destroyed before it’s finished.
  • Fixed cost of SPF being added to ship plans even though they’re unreproducible via constructor.
  • Fixed a server crash caused by multiple Jump Drives being activated at once to jump to the same location on a ship.
  • Fixed a server crash caused by activating a Jump Drive then jumping through a Gate by the Jump Drive has completed.
  • Fixed a server crash caused by Queen Spikes targeting a ship with no loaded physics representation.
  • Fixed a server crash caused by a ship somehow jumping before all it’s docked parts are correctly loaded.
  • Fixed a server crash caused by a timing issue with Jump Drives.
  • Fixed jitter/wiggle on clamped ships when the main ship is moving. Especially prevalent on big ships.
  • Fixed a timing bug on ship loading that would make it possible for clamps to not correctly create a joint between two physics objects of the ships.
  • Fixed crushing deaths sometimes caused by the player moving between clamped ships.
  • Test fix for fullscreen mode being misaligned with the desktop. Possibly caused by task bar size in Windows 10 and changes to Form.DesktopLocation.
  • Fixed a bug where a new custom texture for Servers would be added to the texture atlas for every time it’s referenced rather than combining them all to one.
  • Fixed crafting amount dialog cutting off text with the new font size and reworded it slightly.
Developer of Sky Nations
Site Admin
Posts: 904
Joined: Wed Jun 12, 2013 11:13 pm

Return to Announcements

Who is online

Users browsing this forum: Google [Bot] and 2 guests