A branch is a parallel line of development: a copy of the project where you can make changes without affecting anyone else, with the intention of combining your work back later.
In software engineering, branching is close to free, and teams create one per feature or per ticket without thinking about it. That works because the merge at the end is usually automatic. Text files combine cleanly most of the time.
Game projects invert this. The moment your branch touches a binary asset, the merge at the end is not automatic and often not possible at all. Two people who both edited a level on separate branches do not get a combined level; they get a choice about whose week to discard. The longer a branch lives, the more assets it touches, and the worse that choice becomes.
The result is that most game teams branch sparingly and keep branches short. Common cases where a branch still earns its keep: a release branch that freezes while main keeps moving, an engine-upgrade branch that touches only code and config, or a spike that will probably be thrown away. What teams generally avoid is long-lived feature branches over shared content.
The alternative that works is everyone on one line, with file locking preventing collisions in real time rather than deferring them to a merge that cannot succeed.