Нет это не так. Вы можете получить исходную лицензию от Valve, но сам Source не является открытым.
Кроме того, как правило, очень опасный подход - использовать все существующие движки в качестве учебного материала без руководства от кого-то, кто активно участвовал в разработке этого движка.
Один только исходный код говорит вам о том, как принимаются конкретные проектные решения, а не о причинах, лежащих в основе большинства из этих решений, что часто чрезвычайно важно, учитывая, что так много вариантов в разработке программного обеспечения принадлежат в целом одинаково допустимым вариантам. Вам нужен контекст, чтобы понять, почему выбор хорош, и если вы просто посмотрите на источник какого-то движка и попробуйте его методы и идиомы, вы вряд ли узнаете что-нибудь полезное.
Кроме того, только потому , что код погружен в игре , не делает этот код хорошо (Источник , в частности , склонен к многим в настоящее время очень устаревшие проектных решений по отношению к C ++ и ОО, к примеру). В кодовых базах движка даже самых успешных игр ААА есть множество страшных историй. И как впечатлительный новичок, как вы сможете отличить хороший код от плохого?
Будьте очень осторожны, используя исходный код в качестве учебного ресурса, и убедитесь, что он сопряжен с как можно большим количеством дополнительной информации.
tl; dr: научиться создавать движок часто так же полезно для создания игр, как и научиться создавать свой собственный компьютер и операционную систему с нуля. Если вы не специалист в данной области, вы, вероятно, не хотите делать двигатель. Сделайте игру вместо этого, движок уже существует. Позже, если ни один из движков, к которым у вас есть доступ, не соответствует критериям для вашего игрового дизайна, вы могли бы сосредоточиться на создании этого конкретного аспекта, и, черт возьми, это может быть полезно и другим, поскольку вы создаете что-то новое, а не перефразируете менее надежную версию. о том, что люди уже вложили тысячи часов.
Длинная версия: Если вы действительно хотите научиться писать движок, пока не смотрите на существующий движок. Учитесь вместо частей (алгоритмов), которые делают движок, будь то рендеринг, физика или поиск путей и т. Д. Как только вы получите глубокое понимание определенного аспекта, вы можете захотеть проверить источник.
Вы обычно не хотите учиться непосредственно из источника, если нет лучшей альтернативы. Даже опытные программисты обычно не смотрят на источник всего движка, чтобы извлечь из него урок (если они могут ему помочь), они, скорее всего, проверят определенную его часть или настроят определенную ее часть. Попытка взглянуть на исходный код исключительно для целей обучения не будет раскрывать процедуры и мыслительный процесс, стоящие за кодом движка; Это было бы все равно что разорвать здание на части, пытаясь увидеть его внутренности, чтобы узнать, как его построить. Хотя я согласен с ответом Джоша, я сделаю еще один шаг вперед, вы даже не узнаете «как» во многих смыслах (если вы не знакомы с этой областью); например, какая методология использовалась командой программистов? На какие принципы они опирались при реализации рабочего кода? Какие инструменты и методы они использовали для отладки? Все эти вопросы иногда более важны, чем сам код (в учебных целях).
Если вы хотите учиться у источника, поищите источник, который хорошо документирован и на нем построено сильное сообщество. Чтение (движкового) кода, даже если вы написали его самостоятельно, часто сбивает с толку.
источник