StarMade 0.09276: Startup Synchronization & Missiles

    schema

    Cat God
    Joined
    Feb 17, 2012
    Messages
    1,552
    Reaction score
    2,604
    • Schine
    Hello and welcome to StarMade,

    I made some pretty good progress in optimizing the initial synchronization when joining multi player servers. Also missiles are now way better.

    Network Protocol Optimizations

    The huge waiting for the synchronization has bothered me for a while now. I finally dug into the system and debugged the network protocol to find out what was causing it. The culprit was the initial transfer of of what blocks are connected to what. There was even a bug that caused this sometimes 100k big thing to be transferred doubled. Getting rid of unused data and using a more dynamic data structure cut that in half. Furthermore the system now uses compression and what once was 100k is now ~1k. There is still more room for optimization like dynamically requesting the structure by clients (which is the case with segment requests), so that ship structures that are far away from some players are not loaded as long as that players stay away.

    I also did minor tweaks and bug-fixes to the network protocol which however are hard to explain.



    Missiles

    Missiles now use a completely new data structure. The old system piggybacked a lot of useless data, because missiles and structure entities where not separated. The new system now should be much faster. The network load will also be a lot smaller since now missile updates are only transferred to nearby clients, which will drastically lessen the load and the lag on the server when missiles are active.

    Furthermore I updated the missile system for the borderless sector system: Every part of missiles (locking on and chasing) should now work cross-sector.





    Here is the full changelog:

    - improved performance of network protocol by removing empty buffer updates on initial transform
    - redesigned backend of missiles to improve performance
    - controlStructure of SegmentControllers(Ships, etc) is not transmitted compressed at the one time synchronize
    - missiles now do extra damage (by radius) to shield (experimental)
    - doubled speed of dumb missiles
    - amount of pirate spawn per sector now random
    - missiles can now change sector. They will however still explode if they try to enter an unloaded sector
    - heatseeking missiles now also target ships in other sectors
    - Fire and forget missiles can now lock on target in another sector
    - fixed bug that would not fully remove physics object of missiles
    - fixed missile drawing for missiles of other sectors




    Thanks for playing StarMade,

    - schema