Я немного поработал с Source SDK и внес некоторые изменения. На самом деле вы должны хорошо понимать C и C ++. Source SDK не является современным C ++ и гораздо больше похож на C с классами, чем на любой настоящий ООП.
SDK просто вылеплен тем, что основная часть кода состоит из сущностей, многие из которых вы можете игнорировать.
Также знайте, что SDK очень интенсивно использует наследование, поэтому обращайтесь к базовым классам за функциональностью, которую вы можете пожелать.
Я бы сказал, составьте список важных файлов и классов, которые могут иметь отношение к тому, что вы хотите сделать с SDK. Затем начните сортировку этих файлов с использованием виртуальных папок в VS (или реальных папок в файловой системе) и используйте опцию поиска в файлах (или grep), чтобы найти дорогу.
Некоторые примеры файлов:
eiface.h - Интерфейсы движка
gameinterface.cpp / .h - множество интерфейсов от внешних библиотек для сервера
cdll_client_int.cpp / .h - множество интерфейсов из внешних библиотек для клиента
* _gamerules.cpp / .h - Gamerules (определяет логику игры)
world.cpp - объект, который определяет свойства карты и загружает правила игры и другие объекты
Также попробуйте использовать Source SDK Base вместо HL2MP Base для мода. Первый намного чище и его легче построить.