August 2nd 2019 by SDGNelson
Is patching a devlog allowed?
Aside from fixing the reported bugs and tidying a few features up this past week my primary focus has been improving performance on the Firing Range map.
The biggest offenders were the animated target and track mounts. They are designed modularly so that they can be re-used by map creators, which had the side effect of increasing CPU time spent on animations.
My main approach to dealing with this has been integrating the Unreal “significance manager” which in this case I’ve set up to score the targets based on how much you’re aiming at them and their distance, and then reducing the animation update rate for insignificant targets.
Another use of the significance manager will be for footstep audio and effects. In 4 I’ve implemented a “character footstep component” which can be used by players, zombies, etc, and then a certain number of nearby components can be prioritized. I suspect this will be helpful in horde mode when dozens of zombies are stampeding toward you.
Back to the targets: the second biggest concern was blueprint processing time (because Firing Range is setup as a blueprint mod), but it was fairly straightforward bringing that to a reasonably low amount. Beyond that I adjusted most of the constructor defaults e.g. pose tick mode to performance-friendly choices and other smaller wins. Now at max graphics the map is at ~110 FPS in the editor and ~190 FPS in the client! (Other maps should see improved performance as well.)
- Added placeholder item respawn timers for storage containers.
- Snow is now visible on the CQC building to clear up confusion over the footstep audio. Future buildings will have tessellation for roof geometry so it will not be flat.
- Dragging an item over an invalid destination explains the error now.
- Steam announcements are now cached in-case the request fails.
Note: I’m aware of a few more gun-related bugs in multiplayer, but unfortunately ran out of time to fix them this week. On the to-do for August!
- Hosting listen server should no longer clamp frame rate.
- Corrected gunshot attenuation distances back up to several hundred meters. They had somehow been set to a measly ~20m.
- Reduced stretching on bullet hole decals.
- Capsule floor result is now used as a fallback for footstep noises when the animated foot is not planted. This prevents silent footsteps while walking near an edge.
- Fixed character idle pose when using a two-handed weapon in the left-hand slot.
- Fixed some item drag-drop highlight bugs.
- Fixed interactor radial menu staying open.
- Fixed not ending item drag in a few cases.
- Fixed several snow and foliage displacement bugs in particular related to the first few seconds after loading into the map.
- Fixed pressing the respawn key while alive.
- Fixed interacting with corpse totem in multiplayer when ragdoll is far away.
Last week was a 3.x update, and there’s another smaller one this week, but I’m expecting to dedicate a fair bit of time to 4 in August making headway toward Devlog #025. It’s looking to be mostly cleanup and polish on the existing features, as well as some key features like the server browser. Depending how that goes I might start reducing the access requirement hours (added an invitation item to 3), but no promises yet.