Audio system finished, GUI scaling and better resource loader! Universe update dev dump 3 - [11th of October - 29th]

    DukeofRealms

    Count Duku
    Joined
    Sep 4, 2013
    Messages
    1,456
    Reaction score
    1,560
    • Schine
    This is the third universe update dump copied from our official Discord server, in the channel #universe-update-dev-news-dump. To receive universe update news as it happens, join our Discord channel here: Join the StarMade Discord Server!

    Previous Discord dumps:

    TL;DR

    Between the dates of the 21st of October - 29th, the following was done:
    • Audio system finished.
      • Remote audio events now implemented, allowing the server to send an audio event. These events are only sent to players in range of the actual source of the audio (with the option of sending globally). Saving bandwidth and removing a potential area for bugs.
      • Advanced audio events implemented.
      • New audio settings integrated. SFX is split up into sub mixers for GUI and in-game (engines, explosions etc.) allowing more control over audio volumes.
      • The only thing that's left is bugfixing and actually creating a soundtrack and SFX to put into the game and subsequently assigning them to audio events.
    • Settings redesign, cleaner code, slightly faster access to settings and a ton more versatility. Since the system has been changed, settings will reset when this update hits. Old settings.cfg files will not be compatible (server.cfg will be compatible). This is needed to integrate audio settings into the game and also paves the way for GUI scaling.
    • GUI scaling work began, updating the settings system makes it a lot easier to handle. Settings menus now have GUI scaling (see images below).
    • Refactored and modernised the resource loader (for loading audio, images, meshes, textures etc.) Now more modularised and robust.

    What's coming up:
    • Overhaul of the individual block system. Putting all block variants into a better structure (wedges etc.), and an LoD system! LoD (level of detail) system basically decreases the complexity of a 3D object, for StarMade this would simplify a cube mesh to make a low poly representation of chunks. This should drastically increase rendering thoroughput, giving a performance boost and potentially allowing us to scale new planets up a bit.
    • Write/read overhaul, massive performance increases! Moving chunk data to unsafe native memory.
    • New universe creation.

    Looking for screenshots!

    We're looking for StarMade screenshots to use in promotional materials and on the Steam library/store/news. Post your screenshots here: https://starmadedock.net/threads/screenshots-for-official-use.31422/


    --- Below is the more detailed discord posts about development done ---

    October 21st

    The integration of the settings redesign is still in progress. Still gotta adapt a good chunk of settings references. Payoff is a much cleaner code, as well as a slightly faster access to settings, as well as a ton more versatility (settings can be any type now)
    This of course will mean that all settings will reset when the update hits, but they would anyways. old settings.cfg files will not be compatible, server.cfg will be compatible however (even though it now runs on the new system)


    October 22nd

    Not much news. Still adapting the code. SHould be done with that today or tomorrow

    Had to switch to a different IDE, as my current one keeps freezing on a class.

    Once i adapted it, it was all fine again


    October 23rd

    Yeah looks like eclipse does NOT like enums using lambdas in the constructor.
    However. I'm all done with the settings refactor
    spread over 4 commits it was quite sizable
    713 additions and 420 deletions.
    1,233 additions and 657 deletions.
    152 additions and 278 deletions.
    2,590 additions and 3,487 deletions.


    October 24th

    updating the setting system made it a lot easier to handle the GUI scaling. This is the gui scaled for 4k (in 2k resolution, so it looks a bit oversized). There is also a scaling in between.




    October 25th

    Just spent about 3 hours on a bug involving clip areas checking in drop down menus. The problem was that the newly integrated graphics framework GLFW uses mouse Y positions counting from the top of the screen while the old lwjgl counted from the bottom.

    Good results though. Now got nice drop downs and sliders in the options instead of having to click though every single selection.



    (which was basically the requirement for the audio settings, so now i can include the audio mixer into the settings)


    October 26th



    the new audio settings. I split up SFX into sub mixers for GUI and ingame (engines, explosions etc) (to have more control over audio)


    October 27th

    Refactored and modernized the resource loader (for audio, images, meshes, textures, etc). Much more modularized, and robust.
    Implemented the last steps for the audio mixers and successfully assigned the first few sounds and it works as intended ingame.
    Only thing left is to test out the more complex sounds ingame as well as remotely triggered sounds.


    October 28th

    Advanced audio events are now implemented


    October 29th

    Remote audio events are now implemented (Server can send audio events. Those events are only sent to players in range of the actual source of the audio (with the option to send it globally, although it probably isn't needed since global event usually have a trigger on the clients anyways, so it can just fire directly).
    This saves on bandwidth, and removes a possible source of bugs (sounds from distant parts in the universe playing).

    This pretty much concludes the implementation of the sound system (minus possible bugs and actually assigning sounds for all the events. Assigning can be done by anyone (which was the goal here))
     

    TheDerpGamerX

    Lord of Lawnmowers
    Joined
    Sep 18, 2017
    Messages
    179
    Reaction score
    133
    When you say "Overhaul of the individual block system. Putting all block variants into a better structure..." what do you mean? As it currently is now, adding new elements is extremely difficult through code, will these changes be done to simplify the process?
     
    Joined
    Dec 16, 2013
    Messages
    127
    Reaction score
    78
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    Based on the plan given for the universe update, phase 2 started being worked on about a month ago. Which is suppose to be the most work to do correct?

    I'm asking as, it sounds like we're a very long way from getting a universe update, likely not even next year.

    Good to hear progress is being made!
     

    Keptick

    Building masochist
    Joined
    Sep 26, 2013
    Messages
    4,070
    Reaction score
    1,839
    • Councillor 2 Gold
    • Railman Gold
    • Thinking Positive Gold
    Based on the plan given for the universe update, phase 2 started being worked on about a month ago. Which is suppose to be the most work to do correct?

    I'm asking as, it sounds like we're a very long way from getting a universe update, likely not even next year.

    Good to hear progress is being made!
    Pretty sure that the "phase" plan is not being followed. He just started some stuff that would be in phase 3, while having just finished some phase 1 stuff.
     
    • Like
    Reactions: DeepspaceMechanic