Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

[Column] Guild Wars 2: Fixin’ Things

SBFordSBFord Former Associate EditorMember LegendaryPosts: 33,129

In our latest weekly column devoted to Guild Wars 2, we take a look at the way that ArenaNet works to fix the things that are of concern to players and why they make the choices they do. Check out our thoughts before leaving your ideas in the comments.

I’m very happy that ArenaNet has been talking about tackling the issue of culling.  This issue has caused me more than a handful of deaths, both in PvP and PvE. There’s nothing more aggravating than running around behind enemy lines, trying to get the jump on your foe.  Just when you think your sneaking skills have carried over from Skyrim, BAM!  You’re being attacked by several enemies you can’t even see!  This issue is often exploited and there’s not much you can do about it.  Well, if you want I guess you could exploit it yourself. 

Read more of David North's Guild Wars 2: Fixin' Things.

image
I’m just a little weird.


¯\_(ツ)_/¯ 


«1

Comments

  • azurreiazurrei Member UncommonPosts: 332
    I'm definitely looking forward to guild missions, although I'm pretty sure that during a recent interview Colin said missions were something that guilds trigger, but anyone in the zone/vicinity can partake in (the mission.)
  • BattlerockBattlerock Member CommonPosts: 1,393
    Culling is one of those things I had not defined before this article. I saw it happening, I determined that it was part of the game. It was something I did not apreciate and it really turned me off. Perhaps fixing this will get me to play more, but you know what they say, once bitten twice shy.
  • orbitxoorbitxo Member RarePosts: 1,956

    Guild missions opening  new content sounds awsome!

    FoTM lower levels taping with max level players is an awsome idea and welcome it!- not so happy with disabeling 'rez points' while in combat...:-/

    revampin Orr -i welcome it...the zone shouldve of changed once you defeated Z.  imo. making it more event and hub friendly...just felt unfinished. although its an undead zone-once you finished your story-things should of phased changed...

    I like the individual wvwvw things beign done...

    and charr/engineers do need a bit of lovin'

     

    -thanks Anet!

     

     
  • adam_noxadam_nox Member UncommonPosts: 2,148
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.
  • Vion1xVion1x Member Posts: 188
    Originally posted by adam_nox
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.

    Guess they should hire you, to teach them about the game they made :)

  • xArsonistxxArsonistx Member Posts: 31
    I am happy that they are doing something about the culling issue but for most we won't believe till we see it. I quit gw2 because of culling maybe I will come back if its a working fix. They don't have much time to mess around either. By my calcuations they have about until ESO comes out to fix culling, add rewards , progression. pve. If these issues are not fixed eso will crush the very lil population they have left.
     
  • MilitantMilitant Member Posts: 48
    I quit GW2 because of the invisible enemy issue and they only getting around to it now?
  • curtisnealcurtisneal Member Posts: 5
    Now I know what the problem is. I had never heard of it before. I always thought it was because I am a poor player.

    Curtis N Taitel

  • MykellMykell Member UncommonPosts: 780
    Culling was the reason i stopped playing. However since then i havent felt any urge to return so not sure a fix would bring me back.
  • zastrophzastroph Member Posts: 242

    I tried pvp for the first and probably last time yesterday!

    I got to the enemy location, only saw 2 other players, which I killed, then out of nowhere, I was laying on the ground unable to do anything except die, because there were around a dozen other players all hammering me.

    If this is pvp, then thanks but no thanks!

  • AlberelAlberel Member Posts: 1,121
    Class balance and bugged/broken traits are still a higher priority IMO... there's never any mention of them and there are STILL so many of them untouched since beta.
  • VhalnVhaln Member Posts: 3,159
    Originally posted by adam_nox
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.

     

    You can still see spell effects (and be hit by them, etc) and hear character voices.  This suggests to me that it's not a network issue at all.  They just did absolutely nothing to preload quick placeholder graphics, or anything like that.  I think its because they're artistically obsessive about the look and feel of the game, and seem to prefer gameplay suffer, than have any rapid loading graphics that might look kinda lame for a bit, while the real characters and customizations load.

     

    This sort of obsession with graphics over gameplay is yet another thing that's killing the massive, in massively multiplayer.

    When I want a single-player story, I'll play a single-player game. When I play an MMO, I want a massively multiplayer world.

  • KuppaKuppa Member UncommonPosts: 3,292
    @adamnox

    Really? Now you know what the problem is better than them? .... I know you don't like the game, but stop posting nonsense for the sake of posting something negative.

    image


    image

  • MsFitMsFit Member UncommonPosts: 30
    Glad they're fixing stuff, but they're still having to fix stuff, basic stuff, and that isn't good. Thanks to their poor customer service and the way the game is in general, no amount of fixing will bring me back. Sorry Anet.
  • evilastroevilastro Member Posts: 4,270
    Originally posted by Alberel
    Class balance and bugged/broken traits are still a higher priority IMO... there's never any mention of them and there are STILL so many of them untouched since beta.

    They mentioned it in the 'Plans for 2013'' blog / video.

    They said that some classes only have one viable build, whereas others have many, and that they wanted to fix it.

    Try to keep up.

  • QuizzicalQuizzical Member LegendaryPosts: 25,346

    I'm new to GW2, so I haven't seen the culling issue yet.  From what is described (characters being invisible when they shouldn't be), it could be any of several things:

    1)  The client knows where a character is and has everything loaded and ready to draw it, but doesn't think that the character would appear on the screen if it did draw it, so it skips it that frame.  And then does so again the next frame, and the one after, and the one after...

    2)  The client knows where a character is and knows that it needs to draw the character, but it doesn't have everything loaded yet, so it can't draw the character.

    3)  The client doesn't know that there is a character there that it needs to draw, so it doesn't.

    -----

    More generally, there is an enormous amount of fakery involved in 3D graphics.  If you tell the video card to draw everything that is kind of near you, you'll get terrible performance.  It's a bunch of extra work for the processor to get the uniforms ready to draw something, send it to the video card, send the rendering command, have the video card go through several pipeline stages processing data (well, Guild Wars 2 uses the very old DirectX 9.0c, so it necessarily skips several of the early pipeline stages), and then systematically have every single primitive either get destroyed by clipping or have all of its pixels produced by rasterization end up being covered up by something else.

    A huge part of optimizing graphics engines is that, as soon as you can figure out that drawing some object will not affect a frame, you scrap it and move on to the next.  This could be because it's behind the camera, way off to the side of the camera, behind some other wall so that you can't see it, or whatever.

    You can check in a bunch of different places with a bunch of different granularities, too.  You can toss out entire objects CPU side.  You can discard particular primitives in geometry shaders.  The fixed function clipping will usually discard a lot of primitives as being entirely on the wrong side of a clipping plane.  There is a fixed function option for back-face culling to discard some of the triangles.  You can manually discard particular pixels in pixel shaders, such as if you read a texture and get a pixel that should be completely transparent.  And then many pixels will fail a depth buffer test or some other test and get discarded for that.

    The earlier that you can figure out that something can be discarded, the more work you can save.  The problem is that if you think it's safe to discard something and it should have appeared, your game can appear horribly broken in a huge variety of ways.  That can easily end up a lot worse than merely one object not appearing; sometimes other things that should have been safe to discard because they were behind it also don't get drawn.

    It could be a fundamentally bad algorithm that simply wasn't thought through properly.  Or it could be a single typo in the source code somewhere.

    -----

    If the problem is slow loading times, then people with a fast SSD should never see the culling glitch.  Do you know if an SSD makes a difference?

    The problem could still be taking too long to load things off of an SSD if the problem is that the algorithm to load things was botched.  It could be a case where something gets deleted from memory, but doesn't get flagged to check it again and see if it needs to be loaded again, so it doesn't get loaded again when it ought to.

    There could also be issues with the server failing to tell the client that there is a character there.  The server can't tell you where everyone is; it tries to restrict it to only people who are nearby.  But if the algorithm to determine who needs to be told where a character is gets botched, that could cause a culling issue.

    -----

    The real problem is that there are a huge number of places where the problem could be.  That makes tracking down the bug in order to fix it into a major pain.  If you can reliably reproduce the glitch, then it becomes much easier to trace the source and fix it.  But when you've got Internet activity involved, that makes it hard to reliably reproduce a lot of things.  Does anyone understand the culling glitch well enough that they can reproduce it at will?

  • QuizzicalQuizzical Member LegendaryPosts: 25,346
    Originally posted by Torvaldr
    Originally posted by Vhaln
    Originally posted by adam_nox
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.

    You can still see spell effects (and be hit by them, etc) and hear character voices.  This suggests to me that it's not a network issue at all.  They just did absolutely nothing to preload quick placeholder graphics, or anything like that.  I think its because they're artistically obsessive about the look and feel of the game, and seem to prefer gameplay suffer, than have any rapid loading graphics that might look kinda lame for a bit, while the real characters and customizations load.

    This sort of obsession with graphics over gameplay is yet another thing that's killing the massive, in massively multiplayer.

    Preloading place-holders is a second rate fix.  It's not that bad looking in Tera, but absolutely horrid in Rift (green cylinders everywhere?).

    I think it's because the issue is really fricken complicated, multi-faceted and doesn't have easy answers for every part of the problem.

     

    @Quizzical - here are a couple posts explaining the problem and their work on the solutions.

    https://forum-en.guildwars2.com/forum/pvp/wuvwuv/Update-on-Culling/first#post1137307

    This link is in the first post, but if you feel like skipping towards the detailed explanation first, here it is: https://forum-en.guildwars2.com/forum/pvp/wuvwuv/The-real-problem-here-is-invisible-enemies-Give-their-algorithms-time-to-match-servers-properly/page/4#post356817

    Thanks for the links.  That explains a lot.

    It sounds like it's just a bad algorithm and they know it and are trying to figure out what to do about it.  That's unfortunate but manageable if you catch it long before release, but is a nasty problem to discover after a game launches.  Changes that fix the immediate problem could easily break a bunch of things elsewhere in the game.  That's okay if it just means other things to fix in an early build where it doesn't matter so much if it takes a week to notice that it broke something else, but you don't want to risk pushing other game-breaking things live.

    In one of your links, he said that faster client hardware doesn't fix the client loading problem.  That I find rather surprising.  Having to load a bunch of textures for each of a bunch of different players all at once and needing them immediately is a big problem if you're dealing with 5400 RPM laptop hard drives, or even relatively faster 7200 RPM desktop hard drives.  But SSDs should be able to grab the data very, very quickly.  Maybe they have to do some complex processing of textures after they load them or something.

    There could also be problems with constantly having to load one character into video memory and delete another, but a video card with a ton of video memory should make it so that you can just load everything remotely nearby and leave it there so long as it stays remotely nearby.  Incidentally, deleting texture buffers from video memory is essentially instantaneous, but uploading new textures and generating mipmaps for them most certainly is not.

    The usual fix for having to draw too many players is to sort them and draw the nearest ones and simply not draw the more distant ones.  A lot of games have done stuff like that, and not just with players.  You can have a thread that processes characters start by going through the list of characters that the client knows about and check to see which might plausibly appear on the screen (way off to the side or behind the camera definitely won't, so skip it).  If the number of characters to render is over some cap (which you could let the user decide client-side in graphical options), then you sort them and pick the nearest ones to the camera and don't draw the rest that frame.

    A quick off-camera cull, then sort what's left, is very fast.  Even in an extreme case with had 500 players in the area that the client was aware of, the running time is probably going to be far under 1 millisecond, even on slower hardware.  You can do that all over again every single frame.

    I haven't dealt with network code, but I'd assume that servers could do something analogous.  When there's an event that the server needs to tell players about, sort by which players are nearest to the event, and tell the nearest 20 or 50 or some such.  I could easily see that being an Internet bandwidth problem, but I'm skeptical that it would be a CPU speed problem unless they've got a horribly inefficient algorithm.  If you're sorting distances, you're not going to have many ties, so QuickSort is O(n ln(n)) and runs very fast.  The only operations involved are very fast (add, subtract, multiply, array lookups, set something equal to something else), so you don't get anything slow like transcendentals.  (You avoid taking square roots by sorting the squares of the distances.)  Maybe they're trying to get way too fancy and ask the cilent where the camera is looking or something.

  • VhalnVhaln Member Posts: 3,159

     

    Originally posted by Torvaldr

    Originally posted by Vhaln

    You can still see spell effects (and be hit by them, etc) and hear character voices.  This suggests to me that it's not a network issue at all.  They just did absolutely nothing to preload quick placeholder graphics, or anything like that.  I think its because they're artistically obsessive about the look and feel of the game, and seem to prefer gameplay suffer, than have any rapid loading graphics that might look kinda lame for a bit, while the real characters and customizations load.

    This sort of obsession with graphics over gameplay is yet another thing that's killing the massive, in massively multiplayer.

    Preloading place-holders is a second rate fix.  It's not that bad looking in Tera, but absolutely horrid in Rift (green cylinders everywhere?).

    I think it's because the issue is really fricken complicated, multi-faceted and doesn't have easy answers for every part of the problem. 

     

    Yeah, but I don't understand why it has to look that bad.  Why not a generic version of each race/gender, first.  Then load the color scheme, because that can't be more than a few bits of data.  Then fill in all the customization?

     

     

    When I want a single-player story, I'll play a single-player game. When I play an MMO, I want a massively multiplayer world.

  • tom_goretom_gore Member UncommonPosts: 2,001

    I'm looking forward into more Guild stuff. My dream would be guildhalls (or "bases") in the open world. You know, the HUGE open world that is currently mostly devoid of players.

    Oh and I'd like to be able to declare (mutually) a war between guilds and being able to fight it out in the open world. I need to figure out a name for this mechanic. How about "Guild Wars"?! Ohwell, sounds a bit weird, doesn't it?

  • evilastroevilastro Member Posts: 4,270
    Originally posted by Torvaldr
    Originally posted by Vhaln
    Originally posted by adam_nox
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.

    You can still see spell effects (and be hit by them, etc) and hear character voices.  This suggests to me that it's not a network issue at all.  They just did absolutely nothing to preload quick placeholder graphics, or anything like that.  I think its because they're artistically obsessive about the look and feel of the game, and seem to prefer gameplay suffer, than have any rapid loading graphics that might look kinda lame for a bit, while the real characters and customizations load.

    This sort of obsession with graphics over gameplay is yet another thing that's killing the massive, in massively multiplayer.

    Preloading place-holders is a second rate fix.  It's not that bad looking in Tera, but absolutely horrid in Rift (green cylinders everywhere?).

    I think it's because the issue is really fricken complicated, multi-faceted and doesn't have easy answers for every part of the problem.

     

    @Quizzical - here are a couple posts explaining the problem and their work on the solutions.

    https://forum-en.guildwars2.com/forum/pvp/wuvwuv/Update-on-Culling/first#post1137307

    This link is in the first post, but if you feel like skipping towards the detailed explanation first, here it is: https://forum-en.guildwars2.com/forum/pvp/wuvwuv/The-real-problem-here-is-invisible-enemies-Give-their-algorithms-time-to-match-servers-properly/page/4#post356817

    I think the TERA ones look bad. But its better than nothing I guess. EQ2 had pretty decent lower polygon models, although this sometimes looked bad with cloth mechanics not working on the low poly models.

    Will wait and see what GW2 comes up with I guess. But yeah, surprising they didnt have model scaling in already, considering the massive scope they had with WvW and world events.

  • ShakyMoShakyMo Member CommonPosts: 7,207
    Pvp
    there is NO RIVALRY whatsoever. You are just fighting random nameless dudes from that new server you got paired with this week.

    Pve
    To repetitive and gamey, explore the map, fill in all the icons. How about making these events really dynamic, e.g. I'm at a crafting station when an enemy box army invades.
  • SkjoldurSkjoldur Member UncommonPosts: 9
    Originally posted by adam_nox
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.

    I was also thinking that its not really a loading issue.

    During the Lost Shores event I experienced the same behavior and I simply can't believe that my 4GHz machine with its 16GB RAM and an 500MB/s SSD can't load the players fast enough, at least it should do it within a few seconds and not minutes.

  • xArsonistxxArsonistx Member Posts: 31

    IMO its a bad algorithm along with a bandwidth restriction from NCsoft. I bet if they just lifted their bandwidth restrictions they would could fix culling but as of right now they have to put 10 lbs of shit in a 5 lb bag if that makes any sense.

    I feel for the programmers here that have to make magic happen with nothing.

  • QuizzicalQuizzical Member LegendaryPosts: 25,346
    Originally posted by evilastro
    Originally posted by Torvaldr
    Originally posted by Vhaln
    Originally posted by adam_nox
    Culling isn't a graphics loading issue.  No one sees the invisible players, because it's a networking ans sync issue.  The fix talked about in this article makes me think they have no clue what's even going on.

    You can still see spell effects (and be hit by them, etc) and hear character voices.  This suggests to me that it's not a network issue at all.  They just did absolutely nothing to preload quick placeholder graphics, or anything like that.  I think its because they're artistically obsessive about the look and feel of the game, and seem to prefer gameplay suffer, than have any rapid loading graphics that might look kinda lame for a bit, while the real characters and customizations load.

    This sort of obsession with graphics over gameplay is yet another thing that's killing the massive, in massively multiplayer.

    Preloading place-holders is a second rate fix.  It's not that bad looking in Tera, but absolutely horrid in Rift (green cylinders everywhere?).

    I think it's because the issue is really fricken complicated, multi-faceted and doesn't have easy answers for every part of the problem.

     

    @Quizzical - here are a couple posts explaining the problem and their work on the solutions.

    https://forum-en.guildwars2.com/forum/pvp/wuvwuv/Update-on-Culling/first#post1137307

    This link is in the first post, but if you feel like skipping towards the detailed explanation first, here it is: https://forum-en.guildwars2.com/forum/pvp/wuvwuv/The-real-problem-here-is-invisible-enemies-Give-their-algorithms-time-to-match-servers-properly/page/4#post356817

    I think the TERA ones look bad. But its better than nothing I guess. EQ2 had pretty decent lower polygon models, although this sometimes looked bad with cloth mechanics not working on the low poly models.

    Will wait and see what GW2 comes up with I guess. But yeah, surprising they didnt have model scaling in already, considering the massive scope they had with WvW and world events.

    The thing about placeholders is that you have to always keep them loaded because you never know when you'll need them--and don't have time to load something new when you find out that you need them, because the entire point of placeholders is that they're what you use while you're loading something else.  Vertex data doesn't actually take that much space, but textures can take a lot.  You really don't want to burn 100 MB in video memory on placeholders, or even 10 MB.  So it's a question of what you can do that takes very little space.

  • Xstatic912Xstatic912 Member Posts: 365
    Something do critical (to me) is just being address.. Maybe I'll come back and test if the fix worked.. Wow had a similar problem in vanilla days when barrens would get overrun with mass pvp, but it only happen on certain servers.
Sign In or Register to comment.