Apologies in advance for only hitting one of your questions, but I’m not certain of the answers to the rest of them, so
As for bots: we’re very reluctant in general to discuss our strategy publicly because we don’t want to tip our hand; however, I can say that we have a lot of great progress in detection and prevention in the pipeline, and we should start seeing a noticeable decrease in botting over the next few weeks.
Multiple Trait Sets?
[–]chutch1122 162 points 1 hour ago*
Any plan to implement multiple trait set? Because we need to use different traits for PvE, Dungeons and WvWvW.
Also, what is the airspeed velocity of an unladen swallow?
cameronjdunn ArenaNet Programmer 7 points 12 minutes ago Any plan to implement multiple trait set? That would be cool. I’d use that! We have a lot of things on the “cool to do” list though – we’re working through it!
Also, what is the airspeed velocity of an unladen swallow? Branded or unbranded?
Witchcraft & Server Downtime
[–]Kanaxai 43 points 1 hour ago
What kind of witchcraft you use that makes both Guild Wars and Guild Wars 2 not need hours and hours of downtime for server maintenance and game updates?
cameronjdunn ArenaNet Programmer 3 points 4 minutes ago
Ok, so this is kinda secret, but I’ll tell you anyway. I can tell you because it’s easy to say and really hard to do.
We have a system 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 simple in concept. But complicated to implement
[–]trakata 6 points 41 minutes ago
Do people on the “old build” still interact with people on the “new build” ? or are they segregated until they get on the same build?
StephenClarkeWillson ArenaNet Programmer 9 points 25 minutes ago
They are segregated, except for some things like party and guild chat.
Programming Roles In PreProduction
–]mousseng 11 points 1 hour ago*
Hey guys, huge thanks for this. I’m actually doing a report on programming right now, so this is really well-timed. I’ve got some questions that deal more with the broad aspects of being a game programmer than actual programming: • What particular role do programmers play in the pre-production or design phase of game development, if any?
• How is the coding workload typically divided up among a team of programmers, if at all, at Anet?
• About how much time, on average, would you estimate one spends on code per day during the production phase?
• What duties do game programmers have beyond simply writing game code?
Edit: I realize these questions are pretty vague, but that’s because I’ve got very little understanding of how the whole development process works. All the questions are important to me, but the second question is of the greatest interest to me.
ArenaNetHabib ArenaNet Programmer 5 points 14 minutes ago
While programmers are minimally involved in early pre-production (except to chat with the designs involved, which the whole company does) we work very, very iteratively so we get brought in fairly early to help with prototyping efforts, etc. and then ramp up from there over the course of the project. Gw2 is HUGE so a lot of the game gets designed (and/or refined) as we go and everybody working on a feature gets a lot of input into the design.
We generally work on cross-disciple feature teams and so will work on whatever code is needed to support the feature in question. That said, we also have a strong sense of code ownership (e.g. I own the conversation system, among others) so we’ll usually spend time consulting with folks who are making changes to systems we own. If you’re asking about how we decide who gets to do what stuff: generally the leads ask what you’re interested in and try to pair you with those tasks. Passionate, invested programmers are happy programmers!
During production I probably spent 80%-90% of most days working on code. Of course there were some days that had more meetings, but in generally ANet does a great job of just letting coders code.
<Boromir Voice>One does not simply write game code. </Boromir Voice) Ok, sorry, had to be done. We are involved in, and often own, technical design of systems, we collaborate with designers during the design phases to arrive at (we hope) the best possible and most feasible designs, now that we’ve shipped we sometimes post on our forums, we play the heck out of the game regularly (and have for years), and every once in a while we do an AMA on Reddit
meranator ArenaNet Programmer 3 points 23 minutes ago
•During pre-production programmers may be working on general engine-level features or supporting prototyping efforts of design ideas.
•Workload is usually divided up per-feature. For example, I’m mainly responsible for animation-related code in the game client. However, while we do emphasize code-ownership, we also value flexibility and shared knowledge of the code base, which allows us to shift the focus of programmers as different problems arise.
•This is a tricky question, as it really depends on whats being worked on. If you’ve got a large feature or problem already worked out in your head or on paper, you may spend the majority of the day writing the code. However you may instead be working on a tricky bug, which means you’ll be spending a good amount of time reproducing the problem, reading debug info, hypothesizing, testing fixes etc. So… anywhere from 0-8 hours, assuming you’re not working overtime.
•Fixing bugs and coordinating with designers, artists, and/or QA teams.
ApochPiQ ArenaNet Programmer 4 points 38 minutes ago
What particular role do programmers play in the pre-production or design phase of game development, if any? This varies a lot by studio. In some places, preprod and design are almost entirely separate from implementation. Those are the less fortunate shops, IMHO. In more pleasant studios like ArenaNet, we do what we can to involve all disciplines in the entire production process. This means that programmers typically have input into what is technically feasible and interesting from day one of design and preproduction.
How is the coding workload typically divided up among a team of programmers, if at all, at Anet? At the moment, we’re organized by major groups of features. For instance, my team is focused on security in the game; anything pertaining to that generally lands on our plate. Different individuals always have their own strengths and specialties as well, so they tend to get assigned things that (A) they will enjoy working on and (B) they’ll do a great job with.
About how much time, on average, would you estimate one spends on code per day during the production phase? This is really tough. How do you define time spent on code? Does that include reading code to find a bug? Does that include time spent talking about code with other developers? Does that include planning meetings that ultimately result in creating code?
What duties do game programmers have beyond simply writing game code? Troubleshooting problems is probably the second biggest thing we do, especially post-ship. We also spend a lot of time assisting in the design of new features, as I outlined earlier, to help ensure that everything we tackle is technically solid.
cameronjdunn ArenaNet Programmer 3 points 36 minutes ago
•Programmers are super important during the design phase – it’s really easy for designers to come up with cool ideas which could never be implemented. And (surprisingly commonly) designers sometimes self-limit their ideas because they think they’d be too hard to do – when actually there’s an easy way of doing them. It’s a collaboration.
•We have lots of programmers and lots of work to do – we use a task tracking system to keep track of it all. In general our feature teams break down their high level goals into tasks and it’ll be picked up by one of the programmers on that feature team.
•During production, I’d say that a normal programmer would spend about 6 hours a day writing code.
•Programmers tend to do activities related to writing code – brainstorming design ideas with other programmers, writing up technical proposals, buddy checking other programmer’s commits, and so on.
Performance on AMDs
[–]kurzo 8 points 1 hour ago
Are there any plans to improve the performance on AMD systems?
ArenaNetMike ArenaNet Programmer 6 points 28 minutes ago
Of course we’re always working to improve performance; it’s basically a never-ending battle. I don’t know of anything vendor-specific at the moment, but that doesn’t mean general improvements won’t have a noticeable impact for you.
Most Interesting Technical Issue
[–]thristhart 5 points 1 hour ago
What technical issue was the most interesting for you to solve with Guild Wars 2? Making an MMO of this scale couldn’t have been easy!
ArenaNetHabib ArenaNet Programmer 3 points 35 minutes ago
For me the most interesting set of issues (there’s always more than one) have been associated with WvW. It’s a very different game type from our PvE game in many ways and required us to build systems to support a new kind of server-to-server communication (which is how we get 4 maps that behave a bit like 1 map in terms of markers, etc.), game state serialization, world interconnection (so the different worlds can fight), etc.
[–]ramblingnonsense 9 points 1 hour ago
It was announced that the company would be reevaluating DX11 support after release. What would be involved in supporting new DX11 features? What would new tricks would you like to add to the engine that only DX11 can support?
bkaradzic ArenaNet Programmer 3 points 20 minutes ago
Initial support for DX11 in GW2 would be have to be limited to features that don’t require massive art changes and effects that are not affecting game play, but going forward adoption of real DX11 hardware, will dictate how fast we move into that direction.
Most Difficult Feature To Implement/ Most Fun Feature
–]RisKQuay 4 points 1 hour ago
Why are you guys doing an AMA when you should be bug fixing?
I jest, I jest. I don’t really have an actual question, I just wanted to say ‘kudos’ and well-done for a great game. :]
EDIT: • What, in your opinion, has been the most difficult feature/element of the game to program in?
• Which feature/element’s coding are you most proud/pleased with?
ArenaNetHabib ArenaNet Programmer 6 points 35 minutes ago
Well, I’m actually off today as I prepare to have surgery later this afternoon, so I wouldn’t be fixing bugs right now anyway
I think one of the most difficult things about working on a game like Gw2 is just the sheer scale of the thing. It is a massive undertaking, and the more code that has already been written and the more systems that have already been designed, the harder it becomes to take things in a completely new direction. But, of course, new directions are generally where all the new cool stuff happens, so we end up doing that a lot and it’s quite a challenge at times. Which is probably why I love it so much
I’m proud of a lot of my work on Gw2, but I’ll pick two relatively specific things:
1) Trebuchets! This wasn’t a huge amount of code or anything. We already had projectiles, etc., but making the change that let them have such a super long range was really, really satisfying. My screensaver at work is actually a bunch of screenshots that I took in a row of one of our first trebuchet tests. It’s like a flip-book of awesome!
2) I’m pretty damn proud of the conversation system. It’s flexible, stable, clean, and relatively easy for designers to use. It’s also a fairly complete state-machine based scripting language which puts a lot of power into the hands of designers who then make amazing things with it. So that’s pretty cool
ArenaNetBraeden ArenaNet Programmer 3 points 36 minutes ago
For me it was the character animation system for both questions. We took a great leap forward from our previous tech in order to introduce transitions, upper body animation, IK, looping skills, etc. It was a total rewrite of the runtime animation systems and related tool chain and art pipeline on the part of the engine, gameplay, and tech art teams. Lots. Of. Work. But a high payoff. =)
[–]Kraxxis 2 points 1 hour ago
What is the most useful information someone can place in a bug report?
What was/has been your most challenging feature to implement as far as skills, character, or events go?
What feature (that you can talk about, obviously) on the horizon are you most looking forward to implementing?
ArenaNetCaleb ArenaNet Programmer 3 points 36 minutes ago
•Always hiring EXCELLENT programmers.
•Thorough repro steps and specificity on what the symptoms of the problem are. Theories about what went wrong don’t really help us fix the issue.
•Underwater pathing… So many interesting edge cases.
•Asura paratroopers! (Sorry, just kidding… Unfortunately.)
Bugs, Bugs, Bugs
[–]EgoGoner 7 points 1 hour ago
1.What are the hardest bugs to fix? 2.When it comes to the priority of fixing bugs, do you fix the easiest ones, the most important ones (even if they are hard) or both? 3.How many people do you have working on fixing bugs? 4.When will my ranger’s opening strike function properly? =P
ArenaNetHabib ArenaNet Programmer 3 points 28 minutes ago
1.The ones that we can’t reproduce in house, or that happen only very, very rarely, and don’t result in an actual crash. From a player perspective crashes suck but they’re great when you’re trying to fix a bug because it’s often pretty clear what’s going on (and we get all kinds of good data from crash reports). If there’s a nasty, infrequent bug that doesn’t result in a crash it’s like hunting a ghost spy while wearing a blindfold.
2.We always try to focus on the most important bugs (which are also generally some of the hardest) but it can be nice to take a break from a giant bug and spend an hour fixing something that’s relatively easy. It’s good for the game and programmer morale.
3.All of them. Seriously, everybody is always responsible for fixing bugs in their code (or their content if they are designers). Of course we also have people working on new features, but since making a new feature generally includes making some new bugs they’re also fixing bugs as they go (ideally, and usually, well before those bugs go live). That’s just how programming works. Actually, that’s just how game development works. I’m pretty sure even the writers fix bugs.
I’m skipping #4 (sorry) because I don’t know anything about it.
ArenaNetMike ArenaNet Programmer 4 points 32 minutes ago
1. The hardest bugs to fix, by far, are the ones we can’t reproduce in house. If a crash only affects 0.01% of players, that means we might never see it ourselves, but could still end up seeing thousands of players with the issue.
2. Certainly the most visible and game-breaking bugs are worked on first, but we also look for low-hanging fruit that can improve the game for players without a lot of effort on our part.
3. There’s no fixed number who only work on bugs. We work on fixing things, making new features, or improving other parts of the game.
[–]Sam_Kablam 3 points 1 hour ago
As QA person myself, I have to ask, how you guys coordinate with your QA team? Not just for bugs, but for usability feedback as well. Do you have your own small groups of dev members, or do you work as one big team?
fcrick ArenaNet Programmer 5 points 1 hour ago
Right now we use FogBugz to track bugs internally. The development team is divided into Gameplay, Server, Engine, and Web – I’m on Gameplay, and I work on internal tools for designers, and other tools that are part of the build process that handle data. I feel like we’re one big team – most programmers actually sit among developers from many disciplines, working together to finish something specific.
For example, my team, which is focused on improving designer efficiency as we work on multiple subsequent releases of content simultaneously, has two programmers, a test engineer, and a designer. I write code, but also coordinate with our internal customers.
Craziest Content Pipeline Request
[–]KTR_Ravious 3 points 1 hour ago
To the content pipeline programmers, what is the craziest request you had where the only proper response was “just no”? What was your favorite thing to program?
fcrick ArenaNet Programmer 5 points 46 minutes ago
Often designers want us to validate content data in such a way that would require us to solve the halting problem. As you can imagine, our game content is incredibly complicated, and there are a lot of things that are computationally expensive to verify, especially every time you want to make a change.
I built a lot of the tools we used to do very large scale load testing in preparation for launch, which used Amazon EC2 instances to log nearly a hundred thousand game clients into the game in just a few minutes. It actually literally used hardware spun up all around the world, on three different continents. Pushing the button to start those tests was always pretty awesome.
Programming Languages That GW2 Is Written In
[–]SamuelMasua 9 points 1 hour ago
Can you list all the programming languages used to develop the GW2 client? Is it 100% C++ or do you also incorporate scripting languages like Python or Ruby?
jpetrie ArenaNet Programmer 5 points 26 minutes ago
The game is written in C++. We do use other languages for other aspects of development (our tools framework is in C# and is uses Python for scripting). Many of us engineers will also write scripts for our own personal use, to automate some daily tasks we may do frequently (I use a lot of Powershell and Ruby).
[–]WillSmithian 7 points 1 hour ago
I’m loving the game and I’m happily playing it as a ranger but I have a few questions. 1. There’s quite a few spelling mistakes and abilities that are described to do one thing but does some other thing. Is there anything technical that are preventing this from being fixed or can we see a fix asap since it doesn’t seem to be that huge? The moas chilling screech, I think it’s called, is one of them.
ArenaNetMike ArenaNet Programmer 4 points 49 minutes ago
Most of these are content / design issues, which are solved by completely different sets of people. One thing I would like to comment on though is #1: things that seems really stupid and trivial are often times way more complex behind the scenes. Even for something simple like a spelling mistake, not only does it have to be identified from within the huge volume of reported issues, but then it has to be verified, assigned a priority, and given to someone who may have many more important things to work on.
Even then, even a small change has a (maybe small) risk of breaking things, so someone has to verify the fix and make sure it doesn’t break something else entirely. It’s a complex process for a very big and complex game, and we have to be very careful to avoid breaking something important and getting egg on our faces
How Many Lines of Code In GW2?
[–]nekrosstratia 4 points 31 minutes ago
How many lines of code in GW2 in total (client or server or even web)
How many commits per build on average?
But most importantly! Could one of you just take 1-2 of your favorite commit messages written by someone else on your team. I know personally I’ll write things like “Fixed Bug with Stupid Ass System That Fred Designed” / “I’m not sure what I did, but it was productive”
ArenaNetBraeden ArenaNet Programmer 4 points 13 minutes ago
I’ll answer your most important question, because I actually have that data right now. Jim Scott working on fog, right around the time the double rainbow video was going viral:
“Whoa, that’s a full fog all the way. Double fog, oh my god. It’s a double fog, all the way. Whoa that’s so intense. Whoa man! Wow! Whoa! Whoa! Whoa ho ho oh my god! Oh my god! Oh my god! Woo! Oh wow! Woo! Yeah! Oh ho ho! Oh my god! Oh my god look at that! It’s starting even to look like a triple fog! Oh my god it’s full on! Double fog all the way across the sky! Oh my god. Oh my god. Oh god. What does this mean? Oh. Oh my god. Oh. Oh. God. It’s so bright, oh my god it’s so bright and vivid! Oh. Ah! Ah! It’s so beautiful! Oh my god. Oh my god. Oh my god! Oh my god, it’s a double complete fog! Oh right in my map. Oh my god. Oh my god, what does it mean? Tell me. Too much. I don’t know what it means. Oh my god it’s so intense. Oh. Oh. Oh my god.” – Change 533404 by jim on 2010/07/19 18:07:00
Things Anet Looks For In Programmers
–]Klong15 3 points 2 hours ago
Hello! I’m trying to be a part of the Programming Internship with ArenaNet. Are there any areas in particular that I should focus on? I assume I should know about data structures (as with any other internship I’ve interviewed for). I’m currently taking an Open GL class because I think I’d be interested in that aspect.
What are some other things I could study up on or you are looking for to increase my chances of working with an amazing team?
ArenaNetRyanD ArenaNet Programmer 4 points 1 hour ago
We have a variety of types of programmers (engine, gameplay, server, web, etc) so focusing on one of these aspects can help make you stand out. If you enjoy OpenGL, that is on the engine side of things, so you can try to focus on that. I started as an intern and proved that I had a knack for game mechanics as well, so I now work closely with the designers as a gameplay programmer.
The best experience I had in college was actually making a game with a team of several programmers and artists. Attempting to replicate what you would actually be doing at a job gives a great leg up and makes it much easier to adjust once you start. I made tools and did a lot of the gameplay programming for my senior project. When I started working here I was working on tools, and transitioned to gameplay programming.
What Anet Offices Are Like
[–] onlyamonth 0 points1 point2 points 39 minutes ago
What’s the ArenaNet base like to work in, do you get cool facilities and swanky break out areas and sofas and statues and stuff?