StarMade 0.092768: More performance, less bugs *ver. num fixed*

    schema

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

    another core update to combat lag and bugs.

    My changelog is pretty cryptic without knowledge of the code, so I'm going to explain the changes here informatively.

    More data of all structures is now requested dynamically

    The requests for segments were on a private channel already for a long time. Now, they get company by the control structure of ships, which take about 99% of the data of an initial ship request (especially with large ships). The control structure basically holds the data of what block is connected to what. While it sounds pretty obvious that this data is only needed for clients that are actually in rage of the ship, synchronizing private channels is actually easier said then done: While with a global synchronization, everyone is ensured to have the same data, with client private channels, this becomes a lot of different states to synchronize.

    I hope this feature doesn't bring bugs with it.

    The main advantage of this feature is that the time for the initial synchronize when connecting to a server should be reduced by a huge amount. Furthermore, a player joining will produce a lot less lag, and also other people traveling ( where constantly stuff is loading in) will be less load for the other players.

    Improved asteroid generation in two places

    my profiling of NASS has shown that asteroid generation was the #1 reason for load. This was mainly because of the higher max speed the server has set. I managed to improve the generation function significantly, and also found a routine that would request at least one segment of every asteroid in range (to check if that asteroid is actually empty): This check could be avoided by just checking the "touched" flag to see if it was edited in any way.

    Lighting updates and dimension synchronization

    Structure dimensions weren't properly synchronized which led to all sorts of bugs, like players not being able to place blocks, bad lighting updates, and the server just crashing. Streamlining the process will hopefully ged rid of those bugs. One significant advantage is also that streamlining reduced the overall memory taken by structures, since the client always had unnecessary segments loaded.

    Based on that I also improved the lighting calculations: Using dummy segments the calculation will now no longer stop for blocks that have a face exactly on the current structure border.



    Physics glitches

    Another synchronization problem led to different inertiae on client and server. This would result in all sort of strange physics glitches especially with higher latency in multiplayer



    This is all for now. I hope, I will be able to do more actual features soon,

    Thanks for playing StarMade,

    - schema