It's been a bit since the last report, so here is an update for you to read. This is going to be a shorter one.
Adlai130s and Royal have been making some awesome soundtracks for the game. Give it a listen!
btelnyy has been working on updating the settings menu.
gruchacz has been working hard to update all the viewmodel animations.
After months of debugging, I have finally found one of the main performance issues: Physics props.
But don't worry, we're not removing them. We've developed a system to spawn and destroy props based off the positions of players. While there are still some issues with this new system, mainly with props on top of other props, it functions really well, although we don't know how well it will scale. We will have to see in the next playtest.
I've also extended this to work somewhat with items too.
Some community members noticed the dedicated server tool takes up a lot of CPU time, which is not a good thing. For server applications, some servers are only given a portion of what is sometimes a 10 year old server CPU. Although server CPUs have more cores, they are typically lower speeds per core, and most game servers (like SCP: Echoes) typically use only one core at a given time.
Since some servers are slow, we needed to optimize the game to run on pretty low-end hardware. So after some profiling, I found out there was some leftover physics settings I can tune to increase performance. I also discovered one major problem: Doors and buttons.
Previously, each door button would read the linked door's current state. This worked fine for smaller scenes, but now the game has quite a few more buttons. While this does not sound like a huge issue, it becomes one due to technical limitations with the game engine. While the problem is fixable, I've opted to use a different approach to solving the original problem. Instead of polling the Door for it's state, why not have the door send the state to the Door Buttons? So I implemented just that, and it worked pretty well, decreasing the CPU time along the way.
Now the game server uses about 50% of a single core (which is still not great). This is a nice improvement from 100% of a single core.
The team and I will sometimes post screenshots and updates in our Discord, so feel free to join if you want to see some additional content!