Culling Suggestions

Culling Suggestions

in Suggestions

Posted by: Hyde.6189

Hyde.6189

I have noticed Habib Loew’s post describing how ANet intend to remove culling completely, which is an admirable goal and I hope it may be possible, but it is likely that culling in some form may need to be kept to accommodate players on slower connections or computers. I have been thinking about a few improvement that could be made to make any culling that is necessary less intrusive on gameplay and I will detail them in this post and hope ANet might take some of these onboard.

Firstly, the main problem with the current culling is the granularity of the priority given to each player. All that is currently taken into account is the distance between players, which is not sufficient. Splitting the players into separate enemy and friendly pools did not really help since it did nothing to improve the granularity of the priorities; it made it behave a bit differently, and therefore better in some situations and worse in others, but overall not a real improvement.

When the system is deciding which players to cull, a priority should be calculated using a system something like the following:

Firstly, the absolute highest priority should be given to players that have damaged you. These are put into the highest category, but are then also ordered by the time since they last damaged you. As this time increases, the priority will drop slightly lower. This will guarantee that someone who has just this moment hit you, i.e. a thief popping out of stealth to backstab, will be given the absolute highest possible priority and will be drawn immediately.

The next highest priority will be given to people in your party, then people in your guild, and inside this category the priorities will be ordered by distance.

After this, we then have all the enemies that can damage you but havn’t yet, as well as all the friendly players. You would not want a large amount of enemies to make all your allies disappear, so the enemies should not be in a separate category that takes total priority over allies. But, on the other hand, it is more important to see those who can damage you than to see friendly players. As such these should be in the same category, ordered primarily by distance, but also with a slight weighting towards enemy players, so that enemy players at a similar distance are prioritised slightly over friendlies.

Once the priorities have been sorted out in the above manner, the other issue to address is methods to minimise the bandwidth that is necessary, by transmitting less data, which should reduce the amount of culling that would be necessary, and may allow players to be displayed with less delay for players on slower computers. The most obvious way of doing this, suggested by several people on the forum, is to use placeholder models that are permanently resident in memory and will be used for displaying players immediately while the client is still loading the models/textures for their specific body and armour. Players that are very far away could use only the placeholder, without ever transmitting their specific armour/colours until they get closer.

Another way would be to simply send less granular updates for players that are not as important. For example, if a player is more than 2000+ distance units away, i.e. out of the range of any combat abilities, it is probably not necessary to see every single time he moves an inch or uses an ability. It could be possible to only tell the client the players location every 0.x seconds or if he moves more than x units. This may make the movement of far away players seem a bit jerky, but could allow much better display of other players that are actually close enough to affect and be affected by.

If anyone else has any suggestions feel free to posting them in this thread, and I hope ANet might consider implementing some of these as I believe they could greatly improve the gameplay in WvW, and even if they manage eventually to eliminate culling completely these sort of changes could improve things in the meantime until that becomes possible.