Please consider supporting us by disabling your ad blocker.
Please consider supporting us by enabling cookies.
Audio system finished, GUI scaling and better resource loader! [11 OCT - 29]
Posted on November 23rd, 2019 08:05 AM EST
Background image taken by 12yanogden.
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:
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.
- 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.
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 ---
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)
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
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.
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.
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)
the new audio settings. I split up SFX into sub mixers for GUI and ingame (engines, explosions etc) (to have more control over audio)
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.
Advanced audio events are now implemented
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)) [/url]