Back to search

Dear Producers, We have seen the process of fixing bugs on bug smashers. "Awesome programer sits down, thinks, and magic code fixes fly out of his fingers" Is the process of implementing a new feature similar? A lot of people seem to think so. Could you walk us through beginning to end, the process of taking a feature, from an idea out of Chris Roberts' head (or someone elses) all the way to being played on our computers, including some obstacles you run into and how you over come them? Of particular instance to me are localized ship physics-instances, GOST, or grabby hands!asked by Wyound "six" of Imperium

TL;DRImplementing a feature is not like fixing a bug: it moves from identified needs through design documents, engineering review and a strike team to building, with bug fixing and QA time built in at the end.

So lets take uh, of this, I think the best would be... GOST. GOST is a really good example and we're going through it right now. So to step through that process, is the process similar to implementing a feature as fixing a bug. No, fixing a bug is part of implementing a feature. There's a whole stage for that at the end. The reality is every feature is a package of bugs that you haven't created yet. So with every feature you have to build in a bunch of QA and bug fixing time at the end, because it will happen. Even the best engineers on the planet, it's not even that they're making mistakes, it's just things evolve over time or this thing over here impacted them in a way that wasn't forseeable.So with the example of GOST though for example, we have a need in the game or a need gets identified. And that's really when you're talking about a new feature it's either a need or a new idea. In the example of GOST it was a need. We have the need to be able to understand where the player is versus where the ship is and what their respective states are so that we can have them interact in appropriate ways. Like not being able to get into a turret when somebody else is already in that turret or being aware that the ladder is down thusly you should climb the ladder rather than playing the deploy ladder animation. Or detecting the player to turn on lights.Anyways, tons of examples I could give you. But these were a list of needs, that were identified by Chris, by the designers. And so what basically happens is they go in, they write up a list of, "Hey here are all the needs, here are the problems that we have that we need to solve in order to accomplish these things." And now generally this would be described as your GDD, your game design document, or your level design document or in this case a feature design document. These are the thing that we have that are a list of problems and then you take those and you hand those over to the engineering team. And they'll tell you, "Okay, we think the best way to fix this would be..." And then they document their technical design document. And they all peer review it and then they sit back down with the designers. They hold the two together and they kinda say, "Okay is this really, is this the best solution for solving all of these problems in one holistic way." Then it comes to the, "Okay! Greenlit, everybody is happy. This is exactly what we want to do, this is how we want to do it, everybody is onboard." We have the strike team formed. Then we literally sit down and break it down from beginning to end, and some of these things take 6 months, even longer. Then you say, "Okay well here's where we're going to start. Here's the easiest, simplest, and then build, build, build. And you usually start with the framework, the foundation, and then build and add features on top of that. And then at the end or, throughout the process, but then at the end you'll have a long kind of buffer time, for QA, testing, bug fixing, integration into whatever the relevant stream that you're supposed to be in. So for example this feature might be built on that double pyramid down in Game Dev -> Arena Commander -> subset feature branch of GOST. And then it's getting constant integrations with Arena Commander and then eventually it needs to get integrated into that, integrated into main. So you have to put in maybe a weeks time, to solve any issues.So that's really the, the super basic and I could talk about it forever but I've probably gone too long already. The super basic process of taking a feature from an idea, to getting it all the way down into the game.

Yeah, great question. Cool.

10 for the Producers›Episode 08 (2015.06.22)·
Published on this date.22 Jun 2015