+1 Bonus to Performance – Thursday, October 12th, 2023
We’re back again as Autumn is in full swing with a number of long-awaited performance improvements! AMD users rejoice, as we’ve implemented a major improvement to certain systems that allows AMD cards to handle graphically intense areas more elegantly. We’ve also continued our work on the CU UI Phoenix, incorporated a number of AI improvements, and added some quality-of-life features for Progression. Check out the list below for more details!
Top Tenish for September/October 2023
- WIP – Engineering – AMD Graphics Performance Updates – As you know, we’ve been working on improving performance in CU for graphics cards, particularly for AMD graphics processors. Recently, we adjusted how we identify our model vertex buffers to DirectX. This results in a massive improvement to performance for certain AMD graphics cards. To see the difference, we suggest that you go to Verdant Forest and Coastal Lowlands in CU. In these dense, rich environments that really put your graphics processor through its paces, you should see a marked improvement for most AMD graphics. We will continue to look for further improvements for CU performance, but we wanted to get this in your hands now, since it is such a dramatic increase in frame rate.
- WIP – UI – UI Phoenix – The UI Phoenix, a revamp of the CU UI systems, is headed toward release. This includes backend overhauls to the Chat, Equipment, and Warband UIs. See the CU Newsletter for more details on these changes, and plans for future UI updates!
- Done – Engineering – Progression Updates – As part of our ongoing development of the Progression feature, we’ve added a page in the Progression DevUI which lists all purchased progression nodes. This should help players assess the modifiers they’re receiving from their purchases, such as how much faster their crafting speed for a particular item is. In addition, we’ve added server and UI support for ability component unlocks for better consistency.
- Done – Engineering – Crafting Updates
- The value in the amount field for an ingredient is retained when other ingredients are added.
- We’ve added a recipe search field.
- Fixed an issue with crafting times showing up as 0 seconds long.
- The Crafting DevUI will now list the crafting modifications from Progression Features and Vox Modules that apply to the current job.
- Vox Modules and Progression Features now all use the intended LAE layers. Progression Features are applied on a lower level than Vox mods.
- Modified upgrades which decreased vox durability costs so they can’t drop the cost to 0.
- Bows and other handheld items will now correctly be associated with the one vs two handed crafting upgrades.
- Done – Engineering – Resource Persistence Fix – Health, Blood, and Stamina will now be persisted when relogging in, changing zones, or running /stuck. This feature used to work as intended, but at some point stopped working properly.
- Done – Engineering – New Overmind Actions – We’ve implemented several new Overmind commands for Design to use in various events, including controls for changing the current style pack in a zone.
- WIP – Engineering – AoE Attack Performance – We’re working on a number of fixes to how area-of-effect attacks work to improve performance and make them less resource-intensive. This work is still ongoing, but we’ve already made several improvements.
- Done – Engineering – Patch Client Improvements – We’ve wrapped up work on the patch client improvements that we’ve been working on for a couple of months. This is an overhaul of how we store our data on your hard drive (as well as our server’s hard drives). The old data format was fairly susceptible to fragmentation, which means that over time the data could become disorganized in a way that made it take up slightly more space than it originally should have. Over larger periods of time this caused noticeable growth in disk consumption. In addition to data storage format changes we’ve added and improved on resumability, causing significantly less data loss when interrupting downloads and migrating data. The patch client is currently being tested by CSE Employees and IT backers who have opted into our “Experimental” patch client. We expect to have it out to everyone else in a couple weeks.
- Done – Engineering – Missing navmesh geometry – Mike D. and Derek completed an investigation into why certain geometry in the world was not allowing navmesh to be generated as expected. This ultimately turned out to be a data issue in which the geometry in question was being treated as both blocking and impassible, when instead it should only be blocking. With the fix, the navmesh now both correctly treats the geometry as solid obstruction that must be circumnavigated as well as a walkable surface that can be traversed upon.
- Done – Engineering – Navmesh dynamic obstacle fix – Mike D. and Sean also completed a different investigation – into why certain dynamically placed objects were not being correctly regarded as obstacles on the navmesh. What they observed was that the objects were being treated as “pass-through” geometry, which flattened all the vertices down to the terrain, allowing paths to be computed through them. Sean implemented a fix that has such objects being marked correctly as fully 3D blocking objects, which in turn allows the navmesh to build correctly around them.
- Done – Engineering – Navmesh Debugger Fix – Sean fixed an issue with our internal development GUI for debugging navmeshes in which the navmesh tiles would not be rendered if they were too close to the edge of the world or otherwise adjacent to missing neighbor tiles. With this fix, all navmesh geometry now renders correctly.
- WIP – Engineering – NPC Improvements – MikeD continues development of some NPC improvements featuring a new alert level mechanic, more sophisticated use of line-of-sight based detection of enemies, and new behaviors that employ each so as to allow more realistic aggro and target selection, for which line-of-sight was recently established but then temporarily lost. Full details of these additions and the gameplay opportunities they unlock will appear in an upcoming newsletter.
- WIP – Engineering – Physics and Rendering Debugging GUIs – James is busy adding significantly to our debugging capabilities with the development of internal physics and rendering debugging GUIs. These serve to consolidate years of internal console commands scattered throughout the dark corner of the code into user-friendly interfaces. Once completed, the entire team will be able to much more easily examine collision and movement issues in the physics debugger, and lighting and graphics issues in the rendering debugger.
- WIP – Engineering – Line of Sight Fix – Brady is working on tracking down specific situations in which our NPC line of sight is incorrectly reporting false negatives, resulting in NPCs believing they have a clear line of sight, or line of fire, when they actually don’t. With this issue having been present for a long time, this will fix numerous previously observed situations in which NPCs will try to shoot arrows through walls or move through obstacles believing they have a clear path to the target.
- Done – Engineering – Pausing NPC Movement – Brady added a new debugging capability allowing all NPC movement to be paused and unpaused at the push of a button, while still preserving all other NPC processing including behaviors and abilities. This will allow inspection of NPC states to be much easier during debugging sessions, that otherwise are invalidated if the NPCs move away from the problematic locations requiring analysis.
- WIP – Engineering – Server Performance Improvements – Rob is taking one for the team, by diving headfirst into investigating ways to improve performance on the server side of our architecture. He has already identified some potential hot spots that, when optimized, will allow us to provide our players a more fluid experience during moments of high server load.
- Done – Engineering – Player Collision Fix – Colin whipped up a fix for an odd collision issue, in which dynamically spawned geometry would cause players walking on the surface of said geometry to be driven down into and below the surface of movement. This long-standing issue has been the occasional source of some really strange and difficult to reproduce movement bugs, which we are glad to finally see put to rest.
- Done – Engineering – Data-Driven Light Attenuation – Wylie completed an effort to give artists control over the various settings related to lighting attenuation in CU. Attenuation had previously been hard-coded, but with this change art can add local light sources for which things like brightness, color, and fallout can be controlled on a per-light basis.
- Done – Engineering – Dynamic Style Packs – Wylie also added a feature that allows gameplay events to modify the visual tone of the scene. By changing the current style pack through scripted or other runtime events, we can control the mood and ambience of the world to harmonize with the aesthetics of specific locations and times-of-day in the world.
- Done – Engineering – Multiple Interaction Points – Rob added support for entities in the world to have multiple interaction points. Each such point can have a distinct purpose, typically related to triggering context-specific gameplay events based on the role of the entity in the world. Combined with previous work allowing for data-driven interactions, this effort significantly increases the amount of interesting objects Design can place in the world for player enjoyment.
- Done – Engineering – Upgrade All the Things – Major upgrades to our build pipeline and developer IDE can be very disruptive to the team. Because of this, we sometimes tend to let them pile up and knock out several major upgrades together, to reduce overall downtime for the team. We’ve recently finished a large upgrade of our tools, including Visual Studio, dotnet, gcc, our CI/CD suite, and some of our databases. This will empower the team to more quickly and effectively implement new features and fix bugs.
Let’s take a look at some of these upgrades in action!
Some of the areas where you’re likely to see big improvements are in dense zones (such as Verdant Forest or Coastal Lowlands) and with VFX-heavy AoE abilities. These should be much more performant, and we’ll continue to increase performance across the board in the future.
You’ll notice that we’ve added some new information displays for Progression – in particular, we’ve got a detailed layout of what each item you’ve purchased gives you, allowing you to more easily see the benefits you’re receiving.
That’s a view into our updates for this version! There’s more performance improvements to come, but this is a major boost that we wanted to share with you as soon as possible! Keep an eye out for higher frame rates in the future!
Once again, we appreciate and thank you for your continued support of CU and CSE!
Enjoy the new boosts to performance!