We knew Perforce was scalable enough to meet our fast-growing demands. Adding new people can increase the complexity of managing daily development processes but Perforce provides a framework that makes this manageable, regardless of how fast, or by how much we grow."
Director of Technology, Supermassive Games
Jonathan Amor, Director of Technology and Frank Tindle, IT Manager
Best of both worlds: Supermassive Games leverages agile development while maintaining control
Agile development has become widespread among developers as a means to ensure rapid time-to-market for their products and services. UK-based Supermassive Games has adopted agile at the very core of its company culture, devolving responsibility to individuals and groups, while protecting the development environment by using Perforce SCM for all its version control needs.
Supermassive Games was established in 2008 by seasoned games professionals. The company's aim was to acquire and retain some of the best talent in the games industry by creating an environment where people enjoy their work and feel they contribute to the business. So far, this recipe is a winner for Supermassive Games, which in 2010 launched Tumble and Start the Party, two games for the PlayStation Move controller on the Sony PlayStation 3 platform, plus a number of Level Kits for Little Big Planet.
Director of Technology, Jonathan Amor, who has been with Supermassive Games since its early days, says "Adopting agile development has helped the team feel they have a real say in how things are developed at Supermassive. By encouraging face-to-face communication and working in small interdisciplinary teams for short duration 'sprints', Scrum engenders that feeling that everyone is pulling together and avoids a 'them and us' situation."
"Source control is an important part of our Agile development process as it allows people the freedom to do their work within set parameters and provides important checks and measures. This means we can be confident in having everyone collaborate on the same working mainline, all the time. We have around 20 programmers, 20 artists and 20 designers, all using Perforce to support the creation of the daily builds which we review together as a team.
All code and assets managed by Perforce SCM
Jonathan, and Supermassive Games IT Manager Frank Tindle, both had experience with Perforce from their days at Electronic Arts. Says Jonathan, "We use it for all our code and assets here at Supermassive. We knew Perforce was scalable enough to meet our fast-growing demands. Adding new people can increase the complexity of managing daily development processes but Perforce provides a framework that makes this manageable, regardless of how fast, or by how much we grow. We now have around 70 people working in our UK office in Guildford and with so many other daily tasks to manage, we want source control to be the least of our problems. Perforce never gets in the way and its ability to deal with large volumes of binary data and code without any impact on performance is essential. I've worked with systems in the past that, when large binary files were introduced, the performance dropped dramatically or the system started throwing out error messages. We didn't consider open source alternatives because we didn't want to take the risk: we need the source control tool to work and be reliable." By Spring 2011, Supermassive's repository for code and assets stood at around 1.8 million files, which Jonathan estimates to be between half and one terabyte in size.
Perforce integration delivers continuous builds
Supermassive has also integrated Perforce into its self-developed auto build system. "This integration lets us create continuous builds that are fed with data from Perforce every 15 to 30 minutes. We aim to have a working build all the time, so the auto build system is vital in sending error reports to the team if there is a problem. Perforce is then used to identify the most recent data checked in, so that bugs can be identified and fixed straight away. The same system is then used to create all the builds, from the regular team review builds as part of our Scrum process, right through to the final submission builds." explains Jonathan.
Branching and atomic changelists support online game development
Supermassive Games have also recently ventured into the online game space. Says Jonathan, "Online game development is a very different experience because you are in a continuous development cycle. Since we were adding new features every few weeks, source control became an important support mechanism for the continuous release cycle, enabling us to keep on top of the fast pace of change."
"The branching element within Perforce comes into play here because we can branch from the mainline to create different releases and merge changes back again in a controlled way. The Revision Graph feature in Perforce makes this potentially complex area easier to view and manage."
Another useful feature is the ability to create atomic changelists which help to establish a best working practice. "It was a revelation back when I first started using Perforce: everything you need for a task – for instance, a bug fix – can be organised in one place, making it less error-prone and faster than checking in individual files. Team members are encouraged to set up changelists in advance for each discrete task, rather than randomly checking in individual files." explains Jonathan.
"Using the protections feature, we've also set up defined user groups so we can manage what each group can and can't see. This means that any area that someone isn't working on, or isn't relevant to them, can be hidden. We can simplify a user's view of an otherwise busy and complex workspace by keeping irrelevant content hidden."
So what does the future hold for Supermassive?
Says Jonathan, "We can't say a lot about the projects we are currently working on, but there are a number of new games in the pipeline and we expect to continue to grow, both as a company and in the size of projects we are handling. Having a robust source control system in the form of Perforce means we are confident in being able to scale to meet the challenge and are able to work through any potential growing pains caused by the volume and complexity of data that we handle."
All trademarks or registered trademarks are property of their respective owners.