Dave Robertson, director of European Operations at Perforce Software postulates that pipeline control in the shape of change management procedures can help programmers gain a hold on the increasing complexity of games development.
Software development for the games industry today is big business. OK, we know this, so what are the ramifications of this truism? In practice, the production of games software is approaching mission critical status for the companies involved. Missing a release date can send stakeholders into panic and with so many games now tied to movies and other media events, the financial implications are clear to see.
Keeping the collective development effort of the whole team corralled and well managed becomes even more difficult when the game in question needs a multi-platform release.
Software configuration management (SCM), while never a complete panacea, can help keep the process of development channelled within an identifiable and measurable funnel, or pipeline if you like. It can do this because SCM makes it possible to view the status of a development project across multiple platforms, versions and different teams - all at one time.
I don't want to take the analogy too far, but establishing the path for project development means we need to think about laying the pipeline before we start. Tightly managed game development will feature a planning phase, an accurate assessment of project length, and will be able to anticipate the twists, turns and obstacles that are likely to be thrown up.
We also need to talk about communication from one end of the pipeline to the other. Of course in programming this translates to collaboration and is a now prerequisite for projects with even a basic level of complexity.
Binary behemoths
It's for sure that modern games programming needs control mechanisms then. The complexity of games development has spiralled, the size of the binaries are now huge and graphical rendering processes must be optimised to avoid an unnecessary drain on processing power. On top of this there's multimedia; voice, video and sound all contributing towards the need for input from a multiplicity of teams within a single games studio.
The sensible option to streamline and control these workflows is to ensure that they integrate in a unified and productive way. You might argue that this can be done with a notepad, a project manager and plenty of meetings. But in reality, unless a robust SCM tool is deployed, speed of development and scalability will never be optimised and these are both important facets in games production.
A multiplicity of minutiae
A typical games development shop may be working on multiple products, versions and releases and will very likely have to handle multiple source build requirements.
Coordinating these efforts while at the same time meeting the quality levels prescribed by a top-tier media partner, Sony Pictures or Warner Brothers for example, creates a need for merge and conflict resolution software that can automate complex processes and produce faultless bug-free results. SCM is needed to manage games development at a macro level, but with an appreciation for the minutiae of detail needed at the micro level.
Although many projects may appear to be flowing smoothly throughout the bulk of their existence, end stage developments can often throw games development projects offline and threaten the all important release date. Core elements of SCM will include options such as sandboxing, or workspaces, that can segment, and therefore protect individual work activities.
This type of rough test process becomes crucial when the complexity of a game makes a multi-platform release too expensive to undertake. If the game it a hit, with SCM the developers can work faster to remodel the code base in a safer and more productive environment that has full access to the necessary data and artifacts.
Games development has inherently suffered from bugs in the form of sprites or characters passing through solid objects etc. Some bugs are actual playability considerations and some are more subtle and difficult to detect, such as a character uttering a politically incorrect phrase for example.
Where SCM comes into play here is its advanced branching and merging features. It can provide integration with third-party development and content creation tools. These are precisely the kind of unmanaged technology areas that can lead to poor project tracking and bug creation.
Pipe(line) dreams
Software development for the games industry can be improved by many techniques and SCM is only one of them. But today, some of the biggest games shops are using SCM technology to build their development pipelines and direct the flow of data that is channelled through it.
In many cases, the fact that pipeline control techniques exist means that the development team enjoys greater peace of mind in terms of overall project progress. This in itself opens up a new world of creative thought so that games studios can start to dream up newer and ever more compelling games.