Какими необходимыми инструментами должен владеть программист C++ в сфере разработки игр?
Основные инструменты, помимо алгоритмов и навыков программирования, которые нужны для создания качественных игр - это опыт и команда.
Программисту в одиночку достаточно тяжело создать качественную игру в текущих реалиях. 
Часто во время создания игр нужно решать достаточно нетривиальные алгоритмические задачи. Также сюда можно добавить проектирование архитектуры грамотное (потому что никто вам заранее не скажет список всех фич игры, и если ваша архитектура будет жесткой - будет очень больно вставлять новую фичу). Также можно добавить понимание процессов работы программы, работы с видеокартой, оптимизаций.
Сумбурно как то получилось, но обобщенно - опыт, команда, командная работа.
Обязательно нужна система управления версиями. Поэтому стоит научиться их использовать. Например mercurial или git.