Low level improvements to reduce lag

Discussion in 'Feedback' started by AoiBlue, Jun 17, 2020.

  1. AoiBlue

    AoiBlue Avatar

    Likes Received:
    Trophy Points:
    I think moving to Unity 2019 or 2020 and enabling the incremental GC should help with the lag experienced by most players. The render path SHOULD be working with Linux now on these newer versions due to substantial updates in both Unity and Mesa.

    (Reestablishing network sync after a long GC cycle appears to be the cause for me.)

    Additionally, asset loading could be improved by moving to the Vulkan/EGL render path by default on Linux and MoltenVK-Metal Render path on Mac from the current OpenGL/GLX on Linux and OpenGL/LibC on Mac

    This should at least partly mitigate performance issues with texture loading on Linux and Mac. As of Windows, you might want to look into use of Vulkan/EGL there experimentally as well.

    Finally there is one more verbose thing, but more backburner that I wanted to bring up. In KSP development they ran into massive frustrations with the volume of metadata in the part database causing GC bloat issues and even memory leaks, (much like the lot object database in SoTA), the KSP developers finally had it and took a very extreme solution: Offloading minimally interactive data to an SQL database. This is a very extreme solution, and not something that can be implemented quickly. I would like to propose a similar but probably better tailored solution.

    A separately managed helper application may be better suited for SoTA. Considering such an application would require less code change, it might be a better option, even if it is a custom solution which thus comes with added costs. You should be able to resell the solution on the Unity store to help recoup some of the development cost, and help the general indie dev community in the process.

    A third option is to create an interface helper application to feed information through an interface between the SoTA game client, a central cloud server database (allowing splitting the link and thus not overloading the main network link or game servers with handling of lot and inventory databases) and an objectbase to handle assets. By using a local objectbase to handle assets the size of the initial download can be reduced and downloaded as needed from the servers, while additional town and inventory data frequently accessed can be persistently cached. This will also split the inventory and lot network data streams from the main gameplay network data stream, preventing one from lagging the other as easily.
    Feeyo and Chemeck like this.
  2. Duursyrras

    Duursyrras Avatar

    Likes Received:
    Trophy Points:
    anything PLEASE; i'm running the game on Macbook Pro Retina i7 3.1 GHz using an Intel Iris 6100 that i can sucessfully play games like Middle Earth on using a PS4 controller...that said, i'm ignorant of the details of AoiBlue's suggestions.

    the game either runs like a top for stretches of days, or it's all PELICANs, client crashes, or FULL cpu lock-up requiring reboot.

  3. Echondas

    Echondas Bug Hunter Bug Moderator

    Likes Received:
    Trophy Points:
    FYI @AoiBlue @Chris mentioned on a recent livestream, I think last Friday's - that he is hoping to upgrade Unity to 2019 or 2020 this holiday season now that they sorted out the licensing issue they were challenged with.
    Anpu likes this.