An AMA (or rather, AMAA, as in “ask me (almost) any­thing”) just con­cluded today!  This ses­sion is hosted on red­dit, as usual.  Since only pro­gram­mers were here to answer ques­tions, the session’s scope is mainly lim­ited in things that are tech­ni­cal, rather than design and bal­ance deci­sions like “if we can have fea­ture X”.  Nonethe­less, abun­dant infor­ma­tion is given, con­firmed, and reit­er­ated.  Here’s a list of impor­tant answers from the devs con­cern­ing player expe­ri­ence and game mechanics:

  • A team of devel­op­ers is inves­ti­gat­ing the over­whelm­ing FoV com­plaints (cur­rently locked at 65, while most mod­ern PC games default to 90 and let play­ers to cus­tomize this value).  No def­i­nite answer is given, how­ever, as they still don’t rule out that there may be a bug involved.
  • Player culling (“invis­i­ble army”) issue in WvW is trou­bling the devs as much as us play­ers, and they reit­er­ated that the fix is not sim­ple and require much more work before a fix is pos­si­ble.  And of course, no ETA of any sort, but it is work in progress.
  • There is some­thing in devel­op­ment that will “greatly increase” num­ber of con­cur­rent play­ers in WvW. (!!!)
  • Under­stand­ably, ANet is not shar­ing details on the process of detect­ing and remov­ing bots, other than reit­er­at­ing that they are ban­ning bots in waves.  It is also said that play­ers should see a notice­ably decrease of bots in the next few weeks.
  • Bro­ken SP chal­lenges: the devs are focus­ing on address­ing the root cause of the issue, which pre­sum­ably, once fixed, will ben­e­fit old and new con­tent alike.
  • Mul­ti­ple trait set is on the “cool to do” list.
  • There’s no plan to sup­port an offi­cial Linux ver­sion of the game, how­ever the devs has opti­mized its usage with Wine.
  • The game is still largely CPU-bound.  Opti­miza­tions are still being made for a wide range of specs.  Though it seems the pri­or­ity is still to have the game run­ning smooth on lower spec PC.
  • DX11 sup­port is still under review by the devs, and it is unlikely to include DX11-only fea­tures that don’t work on lower spec hard­ware.  Anti-aliasing options are also being explored.
  • The biggest chal­lenge in fix­ing bugs is the bro­ken dynamic events, as they are hard to repro­duce out­side of live envi­ron­ment.  It seems that there are tools that are being devel­oped to tackle this issue.
  • Pre­view equip­ment via trad­ing post is pos­si­ble, although it’s not a pri­or­ity at this time, and has things to do with API sup­port and more pol­ish to the TP system.
  • A more enhanced LFG tool is likely trimmed in order for meet­ing ship­ping dead­line, and is now being looked into.
  • Player char­ac­ter pro­files on the web fea­ture can be real­ized by using APIs, which is under development.

Other replies include the pro­gram­mers answer­ing many inquiries regard­ing Com­puter Science/Engineer stu­dents and pro­gram­mers on tips of get­ting into the indus­try.  That’s out­side of the scope of this post of mine, how­ever, and given the sheer amount of replies in this AMA, it’s likely that I missed a few things.  Hope­fully they aren’t too note­wor­thy :p

Any­way, my appre­ci­a­tions to Are­naNet for this excel­lent com­mu­nity inter­ac­tion.  I really wish more game devel­op­ers do this.

Orig­i­nal post on red­dit (over 2.6k replies atm woohoo!)

Below is a (poorly for­mat­ted) copy&paste of the ver­ba­tim of the related direct quotes from the devs; a per­sonal source record, really.  Wall of text warn­ing.

 

Will you ever imple­ment or even con­sider a FoV slider?

> We’ve heard play­ers loud and clear on this one. But we’re not pre­pared to answer yet because we just con­vened a team to inves­ti­gate, on Mon­day in fact, and we want to give them time to inves­ti­gate. For exam­ple, there may be a bug affect­ing FoV cal­cu­la­tions in widescreen res­o­lu­tions. We want to know what’s a bug and what’s by design before we change the design.

What kind of witch­craft you use that makes both Guild Wars and Guild Wars 2 not need hours and hours of down­time for server main­te­nance and game updates?

>Ok, so this is kinda secret, but I’ll tell you any­way. I can tell you because it’s easy to say and really hard to do.
We have a sys­tem which lets us run the old build and the new build at the same time. So we don’t need to take the old build down when there’s a new one, we just also host the new build.
That’s it, it’s that sim­ple in con­cept. But com­pli­cated to implement.

>It also requires great care because our back-end servers must sup­port the old and new build at the same time. Some­times (not too often) we have to write code that only runs while both builds are live just to keep things com­pat­i­ble; then we remove it. As Cam hinted, it’s some­thing you have to archi­tect in from the very beginning.

Is the culling issue in WvW (mak­ing other play­ers invis­i­ble for sake of server/client issues) going to get bet­ter? Do you like the state that it is cur­rently in?

>  The issues with invis­i­ble play­ers in WvW comes down to a cou­ple of fac­tors. One is to do with when the servers notify any given client about other char­ac­ters in the game (I’ll call this reporting/culling) and the other deals with the time it takes the client to present the char­ac­ter on the screen after it has received that noti­fi­ca­tion (I’ll call this asset load).

The asset load issue is all about how quickly the client can show you some­thing it knows it should show you. We’re look­ing in to ways that we can make that process faster, but it’s always going to take non-zero time. How­ever, that’s not where the bulk of the invis­i­ble play­ers come from. For that we have to look at the reporting/culling side of things.

In the sit­u­a­tion where the local pop­u­la­tion den­sity is rel­a­tively low, when another char­ac­ter comes in report­ing range of your char­ac­ter the server sends a noti­fi­ca­tion to your client with all of the data that it will need to track and ren­der that char­ac­ter. That includes appear­ance data, race, gen­der, pro­fes­sion, weapon sets, etc. etc. It’s an easy model to think about and works well, until the local pop­u­la­tion den­sity goes up. When there are a lot of char­ac­ters in report­ing range we start to get into a sit­u­a­tion where, under the cur­rent sys­tem, there’s an over­whelm­ing amount of data to send to the client (hello n-squared prob­lem!) — after all, resources like client CPU/Memory/etc. and band­width are finite. In order to deal with this sit­u­a­tion we elected to change the cri­te­ria for report­ing char­ac­ters slightly. Rather than just using a fixed range we instead also limit report­ing to the clos­est N char­ac­ters. By doing this we help to ensure that we’re not over­whelm­ing the avail­able band­width and, since clients clearly can’t draw or process char­ac­ters they don’t know about, we get some sav­ings on client per­for­mance “for free”. This works out pretty well in PvE and doesn’t seem, at least as far as I can tell, to have a detri­men­tal impact on gameplay.

Unfor­tu­nately in WvW, where large bat­tles are quite com­mon, we find that play­ers are bump­ing into these lim­its quite often and the effect has a real, and unfor­tu­nate, impact on the game­play expe­ri­ence. Do I like the state that it’s cur­rently in? No, hon­estly I don’t. WvW has been my baby (though not mine alone!) for quite a while now and I really want to see EPIC bat­tles play out in all of their glory. If there was a switch I could flip to just make this work then I would have flipped the hell out of it by now, believe me. How­ever, when you’re deal­ing with resource uti­liza­tion issues like this there are rarely any easy answers. I’m cur­rently, actively look­ing into what exactly our options are in this regard. The fix is likely to be large-ish in scope, with changes on both the client and server, but we have some ideas that look like they may work out. So, will it get bet­ter? I can’t make any promises because we’re still exper­i­ment­ing and build­ing new tech, but as a per­son who works on this every day I cer­tainly believe that it can and will do every­thing in my power to make that happen.

> Qus­tion: “Why not com­pro­mise for the time being (Until a more appro­pri­ate solu­tion can be imple­mented) and show the near­est N/2 allies and the near­est N/2 ene­mies only when the total num­ber of allies + the total num­ber of ene­mies is > N? (N = max num­ber of play­ers to show).”

This is actu­ally some­thing that we’ve tried. The first pass worked exactly as you describe and the very first thing that became clear was that the “only when the total num­ber of allies + ene­mies > N” bit isn’t a good rule in prac­tice. The prob­lem is that you get a bunch of weird edge case behav­ior when e.g. you’re run­ning with N allies and then you stum­ble upon a group of N ene­mies. Sud­denly a bunch of your allies van­ish and a bunch of ene­mies pop in. It’s quite jarring.

Once we pulled out that part and had a dis­tinct limit on allies and ene­mies things felt a bit bet­ter but we ran into some per­for­mance issues. There’s a bunch of spe­cific details about what, but the short ver­sion is that a generic way of deter­mine who is cur­rently your ally (that could be applied to the whole game, not just WvW) is com­pu­ta­tion­ally expen­sive and the per­for­mance hit wasn’t worth it. We could cer­tainly spend time opti­miz­ing that process, but we decided that it would be bet­ter to spend that time pur­su­ing more com­plete solu­tion rather than just mak­ing the cur­rent culling feel a bit bet­ter. If the avenue that we’re cur­rently pur­su­ing pays off then we’ll be able to get an improve­ment that’s a lot bet­ter than the N/2 improve­ment would be.

tl;dr the improve­ment to game­play wasn’t great enough to war­rant the amount of work it would take to make this approach per­for­mant, and we think we have a bet­ter plan in the works currently.

With the ram­pant bot­ting in GW2, what is the cur­rent sta­tus of fight­ing the bot­ters and hack­ers? These same bot­ters are using slots in WvW and is a part of the rea­son there are queues there. I’ll also add the hack­ers that cheat on WvW(fly-hack to orb, speed­hacks). You can read these things in the offi­cial forums and other forums.

> Apolo­gies in advance for only hit­ting one of your ques­tions, but I’m not cer­tain of the answers to the rest of them, so ;-)

As for bots: we’re very reluc­tant in gen­eral to dis­cuss our strat­egy pub­licly because we don’t want to tip our hand; how­ever, I can say that we have a lot of great progress in detec­tion and pre­ven­tion in the pipeline, and we should start see­ing a notice­able decrease in bot­ting over the next few weeks.

A few questions.

  1. Is there a point to report­ing bots any more? Not “hey you aren’t doing any­thing about them,” but more along the lines of the activ­i­ties I rec­og­nize as bot­ting (iden­ti­cal pathing, attack­ing thin air, iden­ti­cal (default) appear­ance, and so forth) seems like it should be able to be rec­og­nized via an auto­mated system.
  2. If I see twelve bots run­ning an iden­ti­cal path killing ALL the things, and only report ten of those (hard to remem­ber if I’ve already reported xzx­c­czccx as well as vbcvvbcxxxvb), do those other two get to keep on going? Or can I report only a hand­ful to have them all looked at?
  3. Is bug report­ing in game more effec­tive than on the forum? Or the reverse? Or are they about the same?
  4. Are there more town clothes on the way? More addi­tions to the gem store?
  5. For issues like the bro­ken skill point in Met­rica Province (with the dead Hylek NPC), is it really much more com­pli­cated than “if dead, res­ur­rect”? Sur­face level it seems so triv­ial to cor­rect, won­der­ing if there’s more to it that play­ers aren’t seeing.
  6. We’ve seen some infor­ma­tion on the break­down of the num­ber of play­ers choos­ing races. Will we be see­ing more of that type of infor­ma­tion? (side ques­tion — clos­ing in on two months after release, did any of the player demo­graph­ics sur­prise the team?)
  7. Look­ing back, if you could change one thing about the game at release, what would you have changed?

>

  1. Yes.
  2. We ban bots in waves. Those two aren’t get­ting a pass.
  3. There are sev­eral advan­tages of using the forums for both devel­op­ers and play­ers — we can ask for addi­tional spe­cific infor­ma­tion, and also we can respond to threads on the forums. Both bug report­ing and the forums are very use­ful for us.
  4. Yes and yes.
  5. We’re focused on address­ing the root causes of these issues, as both exist­ing and future con­tent will ben­e­fit. If we fix the cause, it won’t hap­pen again.
  6. I’d assume so — I think John Smith is always work­ing on find­ing inter­est­ing things to share.
  7. Per­son­ally, I wish we’d been bet­ter pre­pared with the Trad­ing Post, and that we’d been bet­ter pre­pared with con­tent prob­lems with things like events and skill points.

Any plan to imple­ment mul­ti­ple trait set? Because we need to use dif­fer­ent traits for PvE, Dun­geons and WvWvW.

> That would be cool. I’d use that! We have a lot of things on the “cool to do” list though — we’re work­ing through it!

Now that the Mac client is avail­able, any chance of a linux client?

> We have no offi­cial plans to launch a linux client. Hav­ing said that, I per­son­ally use linux a lot (start­ing with Slack­ware on those sweet A/D/etc floppy disks) and would love a native client. It’s also really healthy for your code to sup­port dif­fer­ent plat­forms and compilers.

And as stuzart men­tions, GW2 does actu­ally run pretty well in Wine.

CPU Opti­miza­tion

> We are actively work­ing on client per­for­mance improve­ments across a wide spec­trum of hard­ware con­fig­u­ra­tions. This effort is focused in two key areas: improv­ing multi-core uti­liza­tion and reduc­ing over­all CPU work­load. The client is gen­er­ally CPU bound, so more + faster cores will con­tribute to bet­ter per­for­mance. There are excep­tions (high-end CPU paired with a low-end GPU, scenes with sub-optimal culling results, etc…), and this is some­thing we are also work­ing to address.

> We are always mon­i­tor­ing and improv­ing performance.

> We are CPU bound on sys­tems with mid to high spec GPUs because we have well opti­mized art assets and aggres­sive culling. Our envi­ron­ment art team rocks at mak­ing beau­ti­ful look­ing maps that fit within bud­get. Also the nature of being an MMO lends itself to CPU inten­sive problems–animating many on screen char­ac­ters, load­ing and decod­ing giga­bytes of assets as you move across a map, many unique par­ti­cle effects, etc. etc.

CPU Opti­miza­tion 2

> On dual-core CPU we’re mostly CPU bound. Usu­ally lower spec CPU comes in com­bi­na­tion with lower spec GPU so even if we weren’t CPU bound in that case we would be GPU bound. But we’re actively work­ing on improv­ing game per­for­mance, and we’re using lower spec machines to deter­mine bot­tle­necks and pri­or­i­tize what to tackle next. This is ongo­ing process since release, and with every update there are improve­ments to performance.

 

Are there any plans to improve the per­for­mance on AMD systems?

> No.

Just kid­ding :) Of course we’re always work­ing to improve per­for­mance; it’s basi­cally a never-ending bat­tle. I don’t know of any­thing vendor-specific at the moment, but that doesn’t mean gen­eral improve­ments won’t have a notice­able impact for you.

 WvW queue and num­ber of players

>

Hmmm this is prob­a­bly secret, but we’re all friends here! We have some­thing in devel­op­ment which will greatly increase the num­ber of peo­ple who can play WvW at the same time.

I think that answers most of your questions…

Regard­ing DX11 support

> Ini­tial sup­port for DX11 in GW2 would be have to be lim­ited to fea­tures that don’t require mas­sive art changes and effects that are not affect­ing game play, but going for­ward adop­tion of real DX11 hard­ware, will dic­tate how fast we move into that direction.

> The main prob­lem with sup­port­ing DX11-only fea­tures is that you auto­mat­i­cally exclude a huge por­tion of the player base from ever see­ing them. That’s not to say we don’t want to do them, because as gamers and graph­ics nerds we love mak­ing the best use of our gam­ing rigs. Just for now though, there are much higher pri­or­i­ties for us to get straight­ened out before we can focus on adding candy like this.

As for actu­ally doing it, it would involve adding a DX11 code­path to our engine, which is def­i­nitely non-trivial and essen­tially dou­bles the amount of code that could poten­tially con­tain a bug.

Mostly DX11 is about hav­ing a nicer API that more closely matches the hard­ware, and for that rea­son alone it’s a good thing to use, but as for spe­cific fea­tures there are a few that we’ve talked about, such as the hard­ware tes­sel­la­tion fea­tures for more detailed ter­rain and models.

» We’ve def­i­nitely con­sid­ered other AA solu­tions; in fact, I’ve per­son­ally looked at adding SMAA sup­port. Unfor­tu­nately there are tons of other more impor­tant things to get done first, but I’d like to see this added at some point in the future. I agree that SMAA pro­duces a much nicer effect, espe­cially on some of our chain mail armor in harsh spec­u­lar lighting.

DirectX and OpenGL ques­tions:

1 — Why use DirectX? why not openGL?
2 — Aren’t you using an openGL ren­derer for the mac ver­sion? if yes would that mean a port to linux would be “easy”?
3 — Was there any tech­ni­cal lim­i­ta­tion for using openGL on win­dows?

>

  1. Just tech­ni­cal deci­sion made while back. OpenGL nowa­days is way much more impor­tant than when when GW2 devel­op­ment started.
  2. On Mac we’re using Cider wrap­per from Trans­gam­ing (it’s like Wine on Linux). If do native Mac port, then Linux port would be easy.
  3. It’s just time required to develop for both APIs. Each fea­ture for the game we devel­op­ing has to be sup­ported by both APIs, so it takes time to sup­port both API tar­gets. The biggest time sink when sup­port­ing both APIs are shaders. There are ways to make cross plat­form shaders but none of those are ideal and each has it’s own tradeoffs.

Defect ques­tions

> One of the biggest defects right now is events ran­domly break­ing. This is hap­pen­ing for a vari­ety of rea­sons, includ­ing NPCs fail­ing to path to their des­ti­na­tion, play­ers pulling NPCs out of the event area, and con­tent scripts fail­ing to han­dle edge cases. A big part of the prob­lem is track­ing down what broke min­utes or hours after the bug has occurred. One restrict­ing fac­tor to keep in mind is that we’re deal­ing with a live envi­ron­ment now with sig­nif­i­cantly more code and con­tent being exer­cised than our devel­op­ment envi­ron­ment. Some bugs only repro­duce for us at live scale, which makes it very dif­fi­cult to diag­nose the prob­lem and work with it in a sand­box. This requires improve­ments to the debug­ging tools we’ve taken for granted all along in the dev branch in order to make them work effi­ciently at live scale, which we’re actively work­ing on now.

What are the chances of get­ting a Pre­view option in the Trad­ing Post?

>

There’s no tech­ni­cal rea­son that we can’t do it, the Trad­ing Post is a web­site but it can also ask the game client to do stuff via a defined set of APIs. The prob­lems are twofold:

1) The API to pre­view things is in devel­op­ment but has a few bugs still, and other things have taken priority.

2) The cur­rent TP doesn’t have a good place for actions like this to live. There’s some ground­work there that needs to be done to make it not a ter­ri­ble experience.

For ele­ments like the Black Lion panel we need to try and be sure they meet a min­i­mum level of pol­ish. Pre­view on the TP isn’t there yet.

Char­ac­ter pro­files on the web?

> It’s def­i­nitely some­thing we want to do! We’re still deter­min­ing how exactly we want to go about mak­ing more char­ac­ter info avail­able online. It’s a ques­tion of resources.

I think the most likely thing you’d see first would be APIs to allow fans to get char­ac­ter data & do some­thing use­ful with it. I love that sites like GW2 spidy exist and would really love to pro­vide bet­ter doc­u­mented APIs for peo­ple to do cool things we couldn’t even think of with.

> We have a whole host of social fea­tures on our wish­list that we had to trim in order to ship, but we haven’t for­got­ten about them, and I’m sure we’ll revisit some of them in the future. I per­son­ally would love to take our LFG sys­tem further.

 

Some­thing interesting?