Что происходит с компьютером в первые секунды после запуска игры

0
67

Вы кликаете по ярлыку, и дальше начинается пауза, за которую можно успеть налить чай. Иногда пятнадцать секунд, иногда полторы минуты, а после большого патча почему-то ещё дольше. Со стороны выглядит так, будто компьютер просто думает. На самом деле за это время он успевает проделать десяток разных операций, и каждая из них упирается в свой ресурс.

Коротко: время старта складывается из чтения исполняемого файла и его зависимостей с накопителя, инициализации графического API и создания ресурсов на видеокарте, компиляции шейдеров под конкретную связку железа и драйвера, распаковки стартового набора ассетов и подключения всего постороннего, что цепляется к игровому процессу. Ускорить из этого списка можно далеко не всё, но понимание, что где тормозит, экономит время и деньги.

От клика до появления процесса

Первое, что делает система, читает заголовок исполняемого файла и раскладывает его секции в память. Дальше загрузчик разбирает таблицу импорта: список библиотек, без которых игра не стартует. Их там обычно несколько десятков, от системных до рантаймов вроде распространяемых пакетов Visual C++ и компонентов физического движка.

Каждая библиотека ищется по цепочке путей, читается с диска, проецируется в адресное пространство, после чего исполняется её код инициализации. На SSD этот этап почти незаметен, на жёстком диске он превращается в основную часть паузы, потому что головке приходится собирать сотни мелких файлов из разных мест пластины.

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

Инициализация графического API

Дальше игра обращается к DirectX или Vulkan и просит создать логическое устройство. Драйвер перечисляет доступные адаптеры, проверяет поддержку нужных возможностей, выделяет очереди команд и создаёт цепочку буферов кадра.

На этом же этапе выделяется видеопамять под постоянные ресурсы: буферы, целевые текстуры, дескрипторные кучи. Если памяти на карте не хватает, драйвер начинает размещать часть ресурсов в оперативной, и вы это почувствуете позже, уже в игре, в виде рывков при повороте камеры.

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

Что подключается к игровому процессу на старте

Как только создана цепочка буферов, к ней выстраивается очередь желающих. Оверлей магазина, оверлей мессенджера, счётчик частоты кадров, программа записи роликов, панель драйвера видеокарты со своим оверлеем: каждый из них подгружает в игровой процесс собственную библиотеку и перехватывает вызовы отрисовки, чтобы дорисовать поверх кадра свои элементы.

Стоит это времени. Каждый перехват добавляет к старту свои миллисекунды, а иногда и секунды, если библиотека лезет в сеть за обновлением. Хуже другое: два оверлея, перехватывающие один и тот же вызов, регулярно конфликтуют, и результатом становится вылет на запуске, который потом ищут в настройках графики.

ЧИТАЙТЕ ТАКЖЕ:  Не меняется разрешение экрана: 5 причин и что делать

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

Шейдеры: почему после патча запуск всегда дольше

Шейдер, написанный разработчиком, доезжает до вас в промежуточном виде. Превратить его в машинный код конкретной видеокарты может только драйвер, и делает он это на вашей машине. Современные игры собирают тысячи вариантов таких программ, поэтому результат складывают в кэш на диске.

Кэш привязан к версии драйвера и версии игры. Обновили драйвер, поставили патч, поменяли видеокарту: кэш недействителен, и всё компилируется заново. Отсюда и долгий первый запуск, и рывки в первые минуты боя, которые сами проходят к концу сессии.

Из практических выводов: не чистите кэш шейдеров без причины, чистильщики дисков любят его сносить. И не пугайтесь долгого старта сразу после обновления драйвера, второй запуск будет нормальным.

Ассеты и первый кадр

Последний этап: загрузка контента. Геометрия, текстуры, звук, скрипты. Данные лежат в упакованных архивах, поэтому диск отдаёт сжатый поток, а процессор его распаковывает. На быстром NVMe узким местом становится именно распаковка, и загрузка упирается в одно-два ядра.

Технологии прямой передачи данных с накопителя в видеопамять снимают часть этой нагрузки, перекладывая распаковку на видеокарту, но поддерживают их пока не все игры. Проверить, где у вас затык, можно диспетчером задач: если во время загрузки диск занят на 20 процентов, а одно ядро в потолке, дело не в накопителе.

Что реально можно ускорить

SSD под игру закрывает этап чтения библиотек и ассетов, это самое заметное улучшение из доступных. Чистая переустановка графического драйвера убирает долгую инициализацию API. Отключение лишних оверлеев экономит секунды и снимает часть вылетов. Отдельно проверьте автозагрузку: клиенты магазинов, поднявшиеся вместе с системой, стартуют быстрее, чем те, что просыпаются вместе с игрой.

А вот чего ускорение не даст, так это компиляции шейдеров после патча. Она однократная и неизбежная, её остаётся пережить.

Частые вопросы

Почему игра запускается по минуте, хотя стоит на SSD?

Скорее всего, время уходит не на чтение, а на проверку лицензии, старт службы защиты и компиляцию шейдеров. Посмотрите на нагрузку диска в диспетчере задач: если она низкая, накопитель ни при чём.

Помогает ли дефрагментация?

Для SSD она вредна и в современных версиях Windows не выполняется. Для жёсткого диска смысл есть, но переносом игры на SSD вы выиграете несравнимо больше.

Стоит ли отключать оверлеи полностью?

Достаточно оставить один, которым вы действительно пользуетесь. Проблемы обычно начинаются, когда в процесс встраиваются четыре разные программы сразу.