Утечка кода Cyberpunk 2077: Анализ и разбор

Cyberpunk 2077 – проект, вызывающий неоднозначную реакцию. Одни критикуют его за большое количество ошибок, другие восхищаются визуальным стилем и другими аспектами. С точки зрения разработчика, это грандиозное инженерное достижение, заслуживающее уважения, несмотря на недостатки. Создание проекта такого масштаба – задача, неподвластная большинству компаний, даже при неограниченном бюджете. Это требует опытных специалистов и устоявшихся команд, формирование которых занимает годы.

Утечка данных и анализ исходного кода

Недавно произошла утечка данных CD Projekt Red, в результате которой было выложено около 77 100 гигабайт информации, включая исходный код Cyberpunk 2077. Анализ этих данных позволяет взглянуть на процесс разработки игры изнутри. Ввиду юридических аспектов и этических соображений, будут проанализированы лишь отдельные фрагменты кода, опубликованные другими пользователями в открытом доступе.

Использование кода из Ведьмака 3 и проблемы скриптового языка

Заметно широкое использование кода из Ведьмака 3, в частности, saber panther – скрипт-файл с расширением .ws. Это специально разработанный язык для написания скриптов, управляющих логикой игры. В крупных играх часто создаются собственные скриптовые языки для удобства разработки; идеально – это декларативный язык для написания квестов и логики. Однако, создание такого языка – сложная задача.

Скриптовый язык Cyberpunk 2077, судя по всему, не является идеально разработанным. Он представляет собой смесь различных концепций, что делает код неэффективным и ненадежным. Это проявляется в использовании различных уловок (виртуальных функций, полиморфизма и т.д.), что ухудшает производительность и затрудняет отладку. Проблемы не связаны с намеренным ухудшением производительности, а скорее, являются следствием плохого дизайна и отсутствия опыта в создании языков программирования. Виден недостаток стандартизации кода.

Проблемы управления разработкой

Качество кода Cyberpunk 2077 нельзя объяснить только количеством разработчиков. Проблема, скорее, в недостатке опытных проектировщиков, сильных тимлидов и грамотного управленческого состава. Даже при наличии блестящих инженеров и программистов, без сильных проектировщиков и контроля над процессом разработки проект может развалиться. Применение техник рефакторинга и экстремального программирования могло бы значительно улучшить ситуацию. Отсутствие сильных проектировщиков, способных контролировать растущую сложность проекта и принимать оптимальные решения, стало, по-видимому, одной из основных причин проблем.

Уроки из анализа исходного кода и заключение

Анализ исходного кода Cyberpunk 2077 предоставляет уникальную возможность увидеть реальные проблемы разработки крупных проектов. Хотя утечка исходного кода – негативное событие, для разработчиков это ценный опыт, позволяющий изучить различные подходы к решению задач, понять, как реализованы машины состояний и квесты. Большинство решений, скорее всего, будут далеки от идеала, но именно анализ таких решений позволяет понять реальные сложности разработки игр такого уровня. В коде можно найти как неудачные решения, так и интересные находки, которые заслуживают внимания.

Быстрый рост компании CD Projekt Red и одновременное начало разработки крупных проектов привели к нехватке высококвалифицированных специалистов на ключевых позициях. Анализ утечки исходного кода Cyberpunk 2077 показывает, что проблема заключалась не только в количестве разработчиков, но и в недостатке опытных проектировщиков и слабом управленческом составе. Несмотря на все недостатки, исходный код проекта – ценный источник знаний для разработчиков.

Что будем искать? Например,программа