Sponsored By

Feature: Black Rock's Adams Explains Code Branching Best Practices

Pure and Split/Second developer Black Rock's Julian Adams talks code branches in development in a new Gamasutra feature, going in depth on the ins

July 20, 2010

2 Min Read
Game Developer logo in a gray background | Game Developer

Author: by Staff

Julian Adams, core technology group member of Split/Second and Pure developer Black Rock, has played a key role in implementing code branches in development, and now in a new Gamasutra feature, Adams goes in depth on the ins and outs, including productivity gains -- and compromises inherent in the approach. "With a large code base the chance that you'll know how to fix a build breakage, or even who to ask, decreases. Branching addresses these issues," Adams explains of the studio's motivation to implement branches -- and, of course, game development projects are getting larger and larger. There were 40 programmers on Split/Second at peak, and Pure had 25, with another 15 developing core tech. In both cases, all of them were working on the same code base, to say nothing of the asset teams. "Branches let you go back to developing in smaller teams," Adams explains -- you end up working directly with five to 10 people, and it allows programmers only to see changes, breakages and team progress relevant to their own line of work. It can create "staging ground to develop that cool new feature," he says. "When it's stable you merge against the mainline, and push your work to the rest of the team." Adams goes in-depth on the strategy needed to use code branching effectively, with examples from his team's own experiences. But there are numerous areas to which programmers need to be attentive: "Within a single game there's often strong technical and project management organization which ensures that information flows to where it needs to go.," he says. "However, across multiple games and the technology group, there may not be the organizational and social infrastructure to make code sharing work across branches." "Games are independent entities and generally, rightly, managed as such. If several games are using a given library there may be a diverging vision for that library between the teams," he continues. "We handle this by making sure there is regular face to face communication between peers at all levels in the studio. For example, all the tools guys meet up once a week to catch up on current work and future plans. This way we get a small team feel for each discipline across the studio and we also minimize conflicts during merges." For the full story on the ins, outs and best practices of code branching at Black Rock, check out today's Gamasutra feature.

Read more about:

2010
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like