Just got done reading the 4th chapter and was wondering about the automating build section specifically. Is it common to use continuous integration tools like Jenkins for game development or do teams typically roll their own?
It is VERY common to use pre-built tools. At Gameloft, worldwide we use several tools (Jenkins, Bamboo), all easily accessible and some free. The real benefit to using a pre-built tool like Bamboo for example, is its integration with other tools. With Bamboo, you can have be notified via other Atlassian products, for example when a build finishes, you can receive emails with links to the builds, link to issues in your task management system (JIRA), link to pull-requests in source control interface (Stash), and chat notification (HipChat).
There are other similar stacks, for example Jetbrains has TeamCity which is a great CI solution as well.PC - Custom Built
CPU: 3rd Gen. Intel i7 3770 3.4Ghz
GPU: ATI Radeon HD 7959 3GB
Laptop - Alienware M17x
CPU: 3rd Gen. Intel i7 - Ivy Bridge
GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
RAM: 8GB Dual Channel DDR3 @ 1600mhz
I'm not sure I agree. I've worked at several different studios and none of them have used 3rd party tools for build automation. Most of the time there was a build engineer who set all that up. Sometimes it's as easy as writing a batch file that kicked off builds every couple hours and other times you want a lot more control. On The Sims 4, we had an entire team dedicated to writing automation and build tools. They set up the continuous integration, wrote the automated tests that played the game, etc. I think it's more common for AAA game studios to use their own tech because they have the budget and resources to build it.
The reality is that you can set up a bare-bones auto-build system in a day or two and that's usually considered good enough. That's probably not the right decision though. If I were going to start up a studio today, I would absolutely research free and open source solutions.
Disclaimer: The last time I worked at a company that didn't have the massive resources of EA was about five years ago, so things may have changed. Tech moves swiftly through the games industry, especially the smaller companies.
My experience is similar to Rez's. All of the games studio's I've worked at have rolled their own. Codies had a nice (in a way) approach where dev's commits were pushed on to a build queue with a perforce python plug-in. Each commit was subjected to automated tests, and if they passed it was pushed into the master branch for the rest of the team to sync to. If it failed the commit was rejected for the original dev to sort out. That meant that we always had a build that would compile, and was capable of running. Logic errors still occurred of course, but you never checked out a build that you couldn't compile.