Welcome back to a new development blog!
This week i got a lot of feedback after testing No Heroes with a few more people.
For starters, i was able to remove any signs of mouse smoothing that there was in the player input. This was caused by how the system was setup with the networking middleware i’m using.
Now, the player input is very responsive and much better to control.
In addition, i also improved aiming down sights speed and movement consistency.
I also added two options for mouse sensitivity and aiming sensitivity. These options are now in the same menu as the video options, but will later be put into another menu.
I also made a second pass at the graphics options and post processing settings, and updated what each option affects and how the option affects it. The game is now more consistent and performs better with lower graphic settings than before.
Sound and Visual Effects
Improved the footstep system by being able to play more sounds per surface. Every surface also received completely new sounds, about 5 new sounds per surface.
I also improved all firing effects, hitmarks effects and sounds of weapons, which can be seen in the video in the next section.
Improved Body Awareness
To add more realism, the character no longer rotates under their feet. Instead, the feet stay in the same position until the player rotates enough, that an animation is triggered and moves the feet to their original place.
This makes the full body awareness feel more immersive:
To better improve the visuals, i spent some time tweaking the lighting and tonemapping by better using HDR. Now the colors and light feel much more consistent, and the transition between light and shadow look much better.
Terrain and Foliage Improvements
I also tried some new techniques to better improve the overall terrain on slopes and some parts of the map that looked ugly.
More types of grass, new rocks and new plants were added to the map.
I also made a timelapse gif of the day/night cycle, which can be seen in this tweet:
Made a new pass on assets and map performance by reducing some textures resolution where the change has insignificant visual results, but saves on VRAM usage. Plus, i reduced many spec/metallic texture resolution, since these are really not noticeable. With this, i saved around 50-100 MB of VRAM and saved some milliseconds.
Improved SpeedTree performance by unchecking some costly properties and improving their LODs distances.
Some player algorithms were also improved, along with more intelligent remote networking updates and client-side prediction corrections.
Noticed around 20FPS improvement on my machine with these changes. There are still a lot of places to improve performance that will be worked on next.
The remote player was also improved, with smoother movement, more consistent events (vaulting, climbing) and the same lower body mechanism described earlier.
Now, when a player kills another one, their weapon also drops to the floor and can be picked up by other players.
As miscellaneous updates, i spent some time re-organizing the project folder with a more practical hierarchy, and also removed many unused assets to decrease project size.
Since i have have the server play in a window, i had to set it up in a way that it doesn’t consume many resources, so i improved the server performance a lot by reducing plenty of unneeded computations, graphics, frame-rate, and more. It’s now very light in comparison to what it was before.
And, as always, many bugs were fixed, but probably many are still hidden in between the cracks of the code.
Plans for Future Updates
To end this development blog, here’s what i will be working on for the next development blogs before the Development Update #46:
- Fix persistent client-side prediction inconsistency
- Improve general gun feel and control
- Improve map and art assets performance
- Improve costly algorithms performance
- More consistent visual looks
Well, this was a big development blog 🙂
Thanks for reading and for the amazing support!