With 14 years experience and a large number of game studios using its tools, Perforce has gained huge experience in how successful developers like to work and how Software Configuration Management tools need to support them. Dave Robertson shares seven top features of Perforce which help for game development...
1. Revision Graph
The revision graph tool means you can easily view changes over a period of time, which is useful for fixing bugs. To diff, right click on the file you want to diff and select the ‘revision graph’ function (Ctrl + Shift + R).
2. Thumbnail view
Both P4V (the multi-platform GUI) and P4Web (the browser-based client) can show thumbnails of images stored in the server, and new thumbnails are automatically generated for new assets if required. This functionality can also be easily extended to support any file type you need to visualise in this way. To view the thumbnail, click on the file in the depot and then select the 'preview' tab in the menu on the right.
3. Time-lapse View
Time-lapse View shows an interactive visual representation of a file's history, showing when lines were added, changed, and deleted, who made the changes, and when the changes were made. Right click on the file you want to diff and select the ‘Time-lapse View’ function (Ctrl + Shift + T). The slider at the top allows you to browse rapidly through file revisions with the revison, date, description, user and changelist number displayed at the bottom of the page.
Bad experiences with other tools have, unfortunately, taught many developers to be wary of any sort of branching. We frequently hear of companies who avoid branching altogether because of the pain they had with merging in these other tools. Perforce's branching, however, is easy. You can use branches for milestones and never wonder what went to the publisher again.
A good branching model also removes the need for lost developer time with code freezes. Perforce's inter-file branching and built-in conflict detection lets you easily branch and merge between codelines.
Branching is a simple process: select the folder you wish to branch, then right click select the ‘integrate’ function. In the new window change the target path to where you want the folder to be copied to. You can also name the branch using the branch tab. Then you can either preview the branch first by clicking preview, or branch by selecting integrate.
5. P4 Merge
During game development you may often need to work concurrently on a file. When submitting the file P4V will indicate if there is any conflicts, and if there are you can use the Merge tool to resolve them.
The Perforce Merge Tool, P4Merge, provides graphical three-way merging and side-by-side file comparisons. Perforce client applications can also be configured to work with third-party merge tools. To use the merge tool, select the merge tool option; you will then be shown the original file, the edits you have made and the edits of the other user.
6. Diff tool
Perforce's diff tool makes it easy to compare two versions of a file. This can be particularly helpful when working on multiplatform game development. To diff, right click on the file you want to diff and select Diff Against (Ctrl + Shift + D). You can then either select another revision of the file to compare against or a different file to compare against.
P4V will then launch P4Diff, which visually displays the differences between the two files. Artists can use the Image Diff Tool to compare two graphics, which supports most common image files, including TIFF, JPG and GIF, and can be extended to support other image formats through the Qt API.
7. Link bug reports with changes
In an ideal world there would be no bugs, but this is far from an ideal world. When time is everything in those critical months before a release, comprehensive defect tracking is essential. Producers need to stay up-to-date with instant reports on open/closed bugs by project.
Perforce Jobs provides a customisable, built-in defect tracking system with issue-tracking, filtering/searching, and linking of jobs with changes made by team members. Jobs can also be extended through integrations with third party defect tracking systems for complex workflow requirements.
Above: The Image Diff Tool shows differences between image files
Above: The revision graph shows a file’s change over time
Above: Perforce’s Time-lapse View shows a file’s history