Imagine starting a game. You made an almost empty game template. What should be your next step? Making a movable character? Creating a folder structure? Gathering your assets?
All true, but there is one more step to do before them.
A build pipeline!
At any point when you are making your game, including the empty screen with the "Hello world" text box, you should be able to build your game into the target executable file. Why? So you can run it and check that it works.
It's easy to fixate on designing/developing a game and delay this step infinitely, but you shouldn't. Because as much you need to build your game, you need to play test it, preferably in the near-final format.
I've worked on many software projects (not games). Those who implemented this process called Continuous Deployment (often used along with Continuous Integration) were usually faster, more stable, and easier to test.
Teams that did not implement these steps were having a hard time preparing a build, not to mention giving someone your game for testing, publishing an alpha, beta, insider demo, pitch deck demo, or whatever.
What is considered material for one of the last chapters in handbooks, should be the second chapter in mine. And revisited every time something is added. Because making that executable is not only important in the end. It should be important at every step of game development.
Always have a testable build.
The process of building one is the most important part of game development!
Trust me.
This will make your life easier!
ABC - Always Be Compiling
Continuous integration and a build server are of more value the more remote contributors there are. Or I suppose if you have very large and slow to build content. Or, if you are using a Homebrew code base in which you have to invent the whole content Pipeline and build process. However if you're a solo developer using say unity, and have an empty new project, I do not feel like there is any value (correct me if I'm wrong) to set up a build server and continuous integration. As you yourself are building whenever you make a change, and that happens automatically when you run it.