Guild Wars 2 Hub

Your Source for Original GW2 Guides and Features

Guild Wars 2 January Update: WvW Culling & Loading Changes

January 24, 2013 - 8:07pm -- Xerin
Guild Wars 2

Habib Leow, the Gameplay Programmer for Guild Wars 2, took to the official forums yesterday to discuss the first changes to WvW. It should be stated that these are the first of several intended improvements and have no doubt involved a great deal of work by the programmers residing in ArenaNet’s offices. Rather than me attempt to detail what these changes are, I’ve posted below Habibs forum post, as well as the follow up response he made. I can't wait to see the changes in action!

In the January update we’ll be making a couple of preliminary changes to WvW.

The first of our engine changes will be coming on line to help improve character load times by using fallback models.

We’ll also be switching over to the culling methodology that we trialed in December.

The engine change we’re making uses fallback models to represent characters until their detailed models are fully loaded. The fallback models are cached so that they can display without any asset load delay and there is a distinct fallback model for each race/gender/armor-class combination. As a result of this change players will be able to see characters represented as fallback models as soon as those characters are reported to the client. Once the specific, detailed model for a given character is completely loaded from disk the fallback model will be replaced with the detailed model. This visual compromise will help to ensure that players see other characters as quickly as possible in WvW. Please note that this change does not eliminate delays due to culling, it only addresses delays due to asset load times. Players on higher spec machines would therefore expect to see fallback models less often than players on lower spec machines. This change also lays the groundwork for more extensive uses of fallback models in future updates.

In December we ran a one matchup trial of an updated culling system. Based on all the feedback we received, both during and after the trial, we will be transitioning to the updated culling system that we used in the trial. This update allows the culling system to handle allies and enemies separately so that being surrounded by a group of allies will not impact the culling of enemies (and vice-versa). The general consensus after the trial is that this system lead to a better player experience in WvW. We further saw that some of the issues people had with the new system were related to asset load times rather than culling issues so making this change in combination with our character loading improvements should lead to an improved overall experience. It is important to note, however, that while we believe this change is an improvement to the WvW experience it does not fully address the issues with culling and we are still working towards our goal of removing culling from WvW completely. This change is intended to give players an improved WvW experience while we continue work on our more comprehensive solution.

While this update only contains a couple of visible changes to WvW it lays a lot of important groundwork for future updates. We have some exciting changes coming and this update is just the beginning!

Second Response

Hi all, I think a little more explanation is in order.

First, let’s call the culling system that we’re switching to “affinity culling” just to make it easier to talk about. Under affinity culling the system handles enemies and allies independently. This means that the maximum number of allies that you can see under affinity culling is 1/2 the maximum number of characters (combined enemy & ally) that you could see under the original culling. Ditto for enemies. In exchange for that cost he benefit that we get is that running with (or through, or past) a large group of allies (e.g. a guild) won’t prevent you from seeing the enemies who are closest to you.

During the initial trial of affinity culling we found that a number of players reported asset loading issues that were highlighted by culling. Any time that your client is aware of another character at all (dot on the map, targetable in world, nameplate is visible, etc.) then culling is no longer a factor because that character has already been reported to your client. In that case if you can’t see the character the issue is one of asset load time. The fallback model feature which is shipping this month directly addresses those issues by providing a cached model to show immediately when the character is reported to the client.

The order of operations looks like this:
1) Character X enters player’s visibility
2) <delay due to the mechanics of culling>
3) Server reports character X to client
4) <delay due to asset load time>
5) Character X full model is visible on-screen to the player

Using fallback models we end up with this instead
1) Character X enters player’s visibility
2) <delay due to the mechanics of culling>
3) Server reports character X to client
4a) Character X fallback model is visible on-screen to the player
4b) <delay due to asset load time>
5) Character X full model is visible on-screen to the player

As you can see we’ve made the asset load delay unimportant (or at least less important) and allowed the player to be aware of character X sooner (in some cases quite a bit sooner).

The combination of affinity culling and fallback models provides a better experience than affinity culling alone. Even so, the affinity culling is not intended to be our last change to the system, but rather to hold players over until we can make more extensive updates to the system (which take time to implement and test). In future updates we’ll be making changes in an effort to eliminate the delay due to culling (step 2 above) and to tell each client about character X as soon as the server decides they have become visible again. We hope to do this by removing culling completely and preserving client performance though a mix of network and engine optimizations, the more extensive use of fallback models, and sundry wizardry.

As I’ve said in the past our ultimate goal is to remove culling and we’re pushing hard to make that happen. This update represents the first steps in that direction and much of what it accomplishes is to lay the groundwork for our upcoming updates. The next few months are an exciting time for us on the WvW team and we’re very excited about the changes are coming.

Original Source 1

Original Source 2

Wedge7
Wedge7's picture
Offline
Last seen: 3 months 4 days ago
Joined: May 1 2012 - 6:06pm
XP: 1250
Culling

Last night was the 1st time I properly experienced this culling issue. Whilst taking a supply camp on my thief in the EB, a HUGE zerg of players seemed to pop out of nowhere. I managed to stealth and retreat, but it was annoying that I couldn't see them coming at all. This was a coordinated group of foes too, over 30 of them at least, all travelling in one tight ball of players, to take full advantage of the culling issue. 

So yeah, I'm looking forward to this improvement! 

Yski
Yski's picture
Offline
Last seen: 1 month 3 weeks ago
Joined: Mar 23 2012 - 8:52am
XP: 1775
How have you managed to avoid

How have you managed to avoid that before?

Out of the last 10 or so deaths I've had in WvW, about 6 were caused by "Ghost armies" killing me before even appearing on my screen, 3 by me failing a 3v1 and 1 by me accidentally jumping to my death while having a 5v1 in a jumping puzzle.

I had been fearing people into the water for about 1 hour or so and killing every guardian foolish enough to wander into the jumping puzzle when they finally decided to get rid of me. I managed to push two of them down before I had to flee, but instead of hitting the water I fell into the rocks blush

Every single forum I've used to spread anti guardian propaganda has subsequently died out on me. Coincidence? I think not!

Wedge7
Wedge7's picture
Offline
Last seen: 3 months 4 days ago
Joined: May 1 2012 - 6:06pm
XP: 1250
I don't play much WvW  And

I don't play much WvW cheeky And when I do, I usually avoid the big zergs, so haven't encountered this problem before.