Latest News
spacer View All spacer
 
November 22, 2009
 
Video Game Watchdog National Institute On Media And The Family Shutting Down [11]
 
Modern Warfare 2 Infinity Ward's 'Most Successful PC Version' Yet [12]
 
New Tech, Design Details Of Project Natal To Emerge At Gamefest In February
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 22, 2009
 
Sucker Punch Productions
Texture Artist
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Character Artist
 
Sony Online Entertainment
Brand Manager
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
 
Crystal Dynamics
Sr. Level Designer
 
Gargantuan Studios
Technical Art Director
spacer
Latest Features
spacer View All spacer
 
November 22, 2009
 
arrow Upping The Craft: Susan O'Connor On Games Writing [6]
 
arrow Small Developers: Minimizing Risks in Large Productions - Part II [6]
 
arrow iPhone Piracy: The Inside Story [48]
 
arrow And Yet It Grows: Analyzing the Size and Growth of the European Game Market [5]
 
arrow NPD: Behind the Numbers, October 2009 [13]
 
arrow Reflecting On Uncharted 2: How They Did It [5]
 
arrow Sponsored Feature: Rasterization on Larrabee -- Adaptive Rasterization Helps Boost Efficiency
 
arrow Postmortem: Wadjet Eye's The Blackwell Convergence [2]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
November 22, 2009
 
Time Fcuk
 
Accepting the Inherent Value of Games
 
Planckogenesis, Part II: Song Structure & Gravy Train [1]
spacer
About
spacer News Director:
Leigh Alexander
Features Director:
Christian Nutt
Editor At Large:
Chris Remo
Advertising:
John 'Malik' Watson
Recruitment/Education:
Gina Gross
 
Features
  Manager In A Strange Land: Dependencies, Part Two
by Jamie Fristrom
0 comments
Share RSS
 
 
November 29, 2004
 

In my last article, I discussed the evils of dependencies, and how you can get around some of them. But I wasn't finished. There are more kinds, and here they are.

Overbooked Resources

Advertisement

Fred can't work on task B because he's working on task A. Usually you just live with this, unless task B is on the critical path, in which case Fred task switches and you live with the fact that now task A is coming in late. If both task A and task B are on the critical path, you can bring in another employee to replace Fred on task B. What if Fred's the only one that can do task A and task B? Then you have a bottleneck. It's time to train another employee to do Fred's job. Even if it takes this new employee many times longer to accomplish the same thing that Fred could do, it's worth it, because it will bring your project in sooner.

This is another place where multi-class employees (http://www.gamasutra.com/features/20040130/fristrom_01.shtml) shine. A multi-classer who isn't on the critical path can switch to doing this critical path task.

Supposing George is idle, because task C is dependent on task B, but neither task C nor task B are on the critical path? I'll get to that in a bit.

Licensors and Legal

Worse than the internal sign-off approvals that come with a heavier process are external approvals. External approvals slow down a project like nobody's business. We've been having work done on our condo: all the walkways need to be replaced due to dry rot. This problem has been nagging us for two years now; they just broke ground two weeks ago. What was taking so long? The contractors needed to get approval, from us, from architects, from the city, from the fire department. Likewise, when working with a licensor, everything you do needs to go through them. There's a couple things you can do to expedite this process.

First, check your contract. The licensor should have a window of time during which they're allowed to approve; after that window, the asset is "deemed approved." This will at least cap the process.

A second thing is - do the work anyway, whether they've approved it yet or not. This is a calculated risk which you probably shouldn't take until you have an idea how friendly your licensor is. If they approve 90% of your concept art, then it may be worth going straight to modeling after the concept is sent in, because the cost of reworking that 10% they're going to deny may be less than the cost of having to wait a month for the approval.

Code and Tools

This is a big one. Some big code feature will be coming down the pipe that will let the content team actually make their content. If you've decided to create a game engine from scratch, you're waiting for that game engine to be finished and tools to be built. Or maybe you've decided to create a new visual tool that will let the game designers create gameplay without so much damn scripting. Or this boss needs to have its AI written, or a special effect requires a certain kind of renderer.

First off, don't build a game engine from scratch. If you've been reading all my articles you know you shouldn't do that anyhow.

Secondly, improving tools is a great investment. But that investment is probably not worth the cost of preventing people from working now. What you need to do is make sure your tools are backward compatible: if you're making a visual tool that lets people get away from scripting, don't take their scripting language away from them until it's finished. In fact, maybe the visual tool is just a tool that generates scripts.

If your special effect needs a special kind of renderer, maybe you should try a different special effect. For Spider-Man, we originally wanted Shocker to do a cool screen-distortion rendering effect when he blasted, but the tech wasn't ready and wouldn't be ready for the foreseeable future. We didn't just sit on our hands; we used old school particle effects instead. We intended to replace them with distortion effects eventually, but that tech never came on line. Good thing we didn't wait for it.


Shocker from Treyarch's Spider-Man

For AI programming I have no easy answers. We like to flip this around so that the AI is actually the last thing that goes in - the game designer places the badguys in the level and then hands it off to the AI programmer. It still can't go to playtest until the AI programmer has something. A game design that avoids a lot of unique bosses can help; face the same boss more than once, have different bosses actually use the same AI (think Galleon and how all the large bosses actually required pretty much the same gameplay to defeat them)... or have no bosses at all. Are there bosses in Splinter Cell?

When You Can't Eliminate Them

Despite all of these tricks, dependencies are going to be a fact of game developer life.

Modeling your development in Project might help you predict ahead of time where these roadblocks are going to occur. And although it's better to know about them ahead of time than to be blindsided by them - at least you'll be more honest about when you can finish your milestones - it doesn't actually help you to get past them. But it does help identify your critical path -- that chain of dependencies that stretches from the beginning of your project to the end, and determines how long your project is going to take no matter how many people you throw at it -- so you can then make those tasks your highest priority.

You don't have to use Project to do game development. I've shipped all my games so far without it. Like I said, those dependencies are still there whether you know about them ahead of time or not. On my projects, we'd be constantly blindsided with, "I'm ready to work on this now but the assets I need aren't there!" And we'd fix those roadblocks on the fly: we keep a handful of associate producers running around solving these kinds of issues, telling person A they better make task B a high priority because person C can't work without it. It's stressful but it works, more or less.

The Starfighter team at LucasArts used what they call a "blocked board" - a giant dry erase board, centrally located, listing everybody on the team, with a marker for whether they were blocked or not. Green = working; Yellow = about to be blocked; Red = blocked. If everyone on the team is conscientious about keeping the blocked board up-to-date, it's a Good Thing.

One final comment: an idle employee is often considered one of the biggest sins in game development. It is not. It is wasteful, but we do all kinds of wasteful things in game development: we crunch, we employ massive teams that require huge amounts of management overhead, we work on levels until they're half done and then cut them. We adopt these wasteful policies because it's usually more important to ship on time than to get the project done efficiently: you'd lose more money shipping late than you'd lose from all that waste. It reminds me of McDonald's - a company founded on the idea of making hamburgers ahead of time and then throwing them out if nobody wants them. Wasteful? Sure. But it makes money.

Likewise, if you're stressing about the aforementioned George, who's dependent on Joe's task B, which Joe can't get to because he's working on task A: it's okay to just live with it. You could be spending that energy making sure the critical path is running smoothly. George will get to work eventually. In the meantime, have George play-test, and go on and solve your more important problems.

______________________________________________________

 
Article Start Page of
 
Comments

none
 
Comment:
 


Submit Comment