Our teams are getting bigger and bigger and Perforce has become the central and critical tool to store everybody's work."
Technical Architect, Ubisoft
Ubisoft is a leading producer, publisher, and distributor of interactive entertainment products worldwide. With more than 1,000 titles, its games are distributed in more than 50 countries. The company's 15 in-house production studios are located in 11 countries.
Ubisoft's Montreal studio employs 1,600 staff members and Ubisoft plans to grow that number to more than 3,000 people by 2013. This will make the Montreal studio one of the world's largest creative powerhouses and the driving force behind the conception and development of console and PC video games. Brands include Prince of Persia®, Assassin's CreedTM, Rayman®, Tom Clancy's Splinter Cell®, and Tom Clancy's Rainbow Six®.
From the start, Ubisoft decided to retain all creative and game development in house. Today, 20 years later, the company credits this strategic decision for much of the company's success and the ability to transition easily to next-generation consoles.
At Ubisoft the development of each game is run as a separate company with its own team. Teams range in size from 15 to more than 150 developers, depending on the size of the game and its stage of development. Each team is responsible for its tools and engine and has its own Perforce server.
Ubisoft's aim is to share the tools and game engines so they support a range of game platforms and minimize the platform-specific changes needed in the final versions of production data. As of May 2007, these platforms included Xbox 360; PlayStation 3; Nintendo Wii; portable consoles including PSP, Game Boy Advance, and Nintendo DS; and the PC.
One of the main development challenges facing Ubisoft is to improve the sharing of tools between the development teams and to improve productivity with new tools and processes.
The Solution: Source Control at Ubisoft
Perforce has been the main source control tool at Ubisoft for more than six years, used by both programmers and artists on most game projects. In the Montreal studio, more than 1,200 developers use Perforce to store source code and digital assets, including graphics and animation files, modeling, textures, and sound and video footage.
Artists and modelers use the Perforce Visual Client (P4V) and its associated graphical tools to track even the smallest of changes submitted each day. The Perforce Plug-in for Graphical Tools (P4GT) allows them to interact easily with Perforce from within Photoshop and 3ds Max.
"The easy and flexible APIs in Perl, C#, and C++ have enabled us to integrate source-control functionality in most of our in-house tools, simplifying the workflow of our artists and modelers," said Beaufils.
By using Perforce changelists to group code changes in logical units before they are submitted, programmers can easily select what they want to work on and can switch between separate tasks more readily. "Perforce changelists are very much appreciated, as they enable programmers to organize their work as they see fit.
Also, the Perforce branching mechanism is ideal for sharing the same code across different target game platforms," said Beaufils. Ubisoft is integrating the Perforce Reporting System (P4Report) feature in its production workflow to simplify the creation of reports on digital assets and code using SQL queries. "P4Report has enabled me to connect our production database with Perforce easily to create detailed reports on the work being done," added Beaufils.
To speed up development, Ubisoft teams take advantage of the Perforce Proxy (P4P), which gives developers a cache of files they use most often and enables more users to work against the central Perforce server.
P4P also improves distributed development. Remote studios can easily access the same code and other digital assets held on the various Perforce servers, and each change is visibly implemented across all of Ubisoft's projects.
"Perforce requires less administration than its predecessor, VSS, with only one dedicated administrator for our 1,200 users," Beaufils added. "Perforce is easy to back up and is more stable than VSS. It is also easy to scale compared to other tools."
As Ubisoft grows, more developers will migrate to Perforce. "The speed, reliability, and scalability of Perforce are crucial to Ubisoft, with more than 1,000 users depending on it," said Beaufils. "Our teams are getting bigger and bigger and Perforce has become the central and critical tool to store everybody's work."
With many in-house tools being developed, Ubisoft needed a flexible API to interact with source control. Beaufils summarized, "The tight integration of our tools with Perforce using the Perforce API has led to great improvements in productivity."
All trademarks or registered trademarks are property of their respective owners.