Установка и обслуживание игр
В этой статье описывается набор рекомендаций, которые помогут уменьшить разочарование пользователей по поводу времени, необходимого для установки игры, предотвращения ненужных вызовов поддержки и позволить пользователям начать играть в игру как можно быстрее и безболезненно.
Начальная установка
Пользователи покупают игры, потому что им нравится играть в них, а не потому, что они любят устанавливать их. Установка игры должна быть максимально быстрой, простой и безболезненной для конечного пользователя. В идеале конечные пользователи даже не должны видеть пользовательский интерфейс установки; они должны иметь возможность просто бросить диск игры в лоток и начать играть.
Упрощение пользовательского интерфейса установки
Распространенные аспекты существующих пользовательских интерфейсов установки игр влияют на требуемый интерфейс пользователя:
Задавая пользователю ненужные вопросы.
Например, многие игры спрашивают, хочет ли пользователь установить DirectX. Если для запуска игры требуется Microsoft DirectX, а правильная версия DirectX еще не установлена, игра должна просто установить DirectX.
Отвечая на вопросы пользователя, большинство пользователей будут отвечать таким же образом.
Для типичных пользователей параметры по умолчанию для пути установки, меню расположение и т. д., все хорошо. Предложить дополнительные параметры для пользователей, которые хотят изменить эти параметры.
Пользовательский интерфейс установки должен быть разработан, чтобы обычный пользователь начал играть в игру как можно скорее. Если автозапуск включен на компьютере пользователя, который является значением по умолчанию, программа установки должна предположить, что пользователь хочет играть в игру как можно скорее, обходя ненужные вопросы. Программа установки должна начать установку игры в путь установки по умолчанию, желательно использовать установку, как описано в разделе "Установка по запросу". Необходимо предоставить пользователям возможность изменить параметры установки перед автоматическим запуском установки. Однако это необходимо сделать, побудив пользователя получить ключ для расширенных параметров настройки, а затем автоматически использовать параметры по умолчанию, если пользователь не ударил этот ключ в течение пяти до десяти секунд.
Если функция автозапуска не включена на компьютере пользователя, программа установки должна предположить, что пользователь не хочет, чтобы программа установки начала устанавливать игру автоматически. Если программа установки запускается с помощью некоторых средств, отличных от автозапуска, она должна запустить пользовательский интерфейс расширенной настройки.
Сокращение времени, необходимого для установки
Большинство игр Microsoft Windows сегодня занимают от пяти минут до получаса, чтобы завершить процесс установки. В отличие от этого, большинство консольных игр занимает не более тридцати секунд с момента вставки игрового компакт-диска до времени, когда пользователь может играть в игру. Это различие связано с тем, что большинство игр Windows предназначены для выполнения большинства, если не всех, их содержимого с жесткого диска компьютера; консоли, которые не имеют места для постоянного хранения большого объема содержимого, требуют, чтобы содержимое выполнялось из исходного носителя. При загрузке содержимого с локального жесткого диска происходит более быстрое время загрузки в игре, недостатком является то, что все содержимое должно быть скопировано из исходного носителя на жесткий диск в какой-то момент. Большинство игр Windows решили скопировать все содержимое на жесткий диск одновременно в рамках процесса установки. Это отвлекает от первоначального взаимодействия пользователя с игрой, сделав пользователя смотреть индикатор хода выполнения в течение нескольких минут, прежде чем иметь возможность играть в игру.
Существует два подхода, которые можно использовать для минимизации времени, затраченного на начальную установку игры: минимальная установка и установка по запросу.
Минимальная установка
В минимальном сценарии установки игра устанавливает только минимальный набор содержимого на жесткий диск. Обычно это состоит только из исполняемого файла игры и библиотек DLL. Оставшаяся часть содержимого обращается непосредственно из исходного носителя. Это резко сокращает время установки, так как исполняемый файл игры редко превышает 10–20 МБ. Недостаток заключается в том, что игра занимает больше времени, чтобы загрузить содержимое во время игры, так как он должен загрузить его из более медленного исходного носителя.
Чтобы создать минимальную конфигурацию установки в установке на основе установщика Windows, выполните приведенные ниже действия.
Сгруппировать все компоненты, которые необходимо установить на жесткий диск, в компонент, помеченный для локальной установки.
Эта функция будет называться функцией Bootstrap.
Сгруппировать все компоненты, которые должны выполняться из исходного носителя, в компонент, помеченный как "запуск из источника".
При открытии файла, который может находиться на исходном носителе, используйте функцию MsiGetComponentPath , чтобы определить путь к файлу, а не жестко закодировать путь.
Это гарантирует, что файл можно найти, даже если буква диска пользователя изменяется.
Сжатие содержимого, которое остается на CD/DVD.
Время, затраченное на распаковку содержимого, обычно будет скрыто медленным скоростью передачи данных с диска CD/DVD.
Группировать содержимое в большие, смежные файлы и обращаться к нему в последовательном порядке.
Время поиска дисков CD/DVD по сравнению с жесткими дисками, и большинство дисков CD/DVD не достигают пиковых скоростей передачи, если только они не считывают большой, непрерывный файл.
Разложите содержимое на CD/DVD в том порядке, к которому он, скорее всего, будет доступен.
Время поиска значительно уменьшается при доступе к файлам в том же порядке, что и их макет на диске.
Установка по запросу
В сценарии установки по запросу, что касается минимальной установки, игра изначально устанавливает на жесткий диск только те файлы, которые необходимы для запуска игры. Однако вместо доступа к оставшемся содержимому из исходного носителя каждый раз, когда это необходимо, игра фактически устанавливает каждый фрагмент содержимого на жесткий диск, так как он необходим в первый раз, а затем обращается к нему с локального жесткого диска на каждом последующем использовании. Время, необходимое для начальной установки, так же мало, как и при минимальной установке, но после первого доступа к каждому элементу содержимого улучшается время загрузки.
Чтобы создать конфигурацию установки по запросу в установке на основе установщика Windows, выполните следующее:
Сгруппировать все компоненты, которые изначально устанавливаются на жесткий диск, в компонент, помеченный для локальной установки.
Обратите внимание, что это идентично функции начальной загрузки для минимальной установки.
Группировать оставшееся содержимое в несколько функций на основе компонентов, которые, скорее всего, будут использоваться вместе.
Например, в игре на уровне сгруппировать все содержимое, используемое на данном уровне, в одну функцию. Обратите внимание, что установщик Windows позволяет компоненту совместно использовать несколько функций, поэтому при наличии содержимого, используемого на нескольких уровнях, вы можете добавить это содержимое во все необходимые уровни без репликации содержимого. Все эти функции должны быть помечены как "Объявленные", что означает, что они не будут установлены изначально, но их можно установить позже по мере необходимости.
Если требуется файл, сначала проверьте, установлен ли файл с помощью функции MsiQueryFeatureState.
Если он еще не установлен (то есть его состояние INSTALLSTATE_ADVERTISED), вызовите функцию MsiConfigureFeature , чтобы установить эту функцию локально. При открытии файла после его установки вызовите MsiGetComponentPath , чтобы определить путь к файлу. Хотя не обязательно для этого сценария (так как содержимое всегда будет установлено на жесткий диск до его использования), это упрощает поддержку минимальной установки в дополнение к установке по требованию.
Если это возможно, предвидите, что содержимое, скорее всего, потребуется в ближайшее время, и установите его в фоновом режиме во время простоя.
Фоновая установка наиболее подходит, когда игра находится в точке, которая не нуждается в каждой последней унции производительности из компьютера; например, при отображении фильма интро, сцены, меню и т. д.
Создайте параметр в меню параметров игры, чтобы принудительно установить все оставшееся содержимое.
Чтобы реализовать эту функцию, создайте компонент, который является родительским элементом всех компонентов установки по запросу, а затем вызовите MsiConfigureFeature , чтобы установить эту главную функцию локально. Это приведет к локальной установке подзаготовок.
Макет содержимого должен совпадать с тем, что для минимальной установки, за исключением того, что содержимое должно быть кластеризовано только с другим содержимым, которое, вероятно, потребуется одновременно (например, все содержимое для одного уровня должно быть вместе).
После установки игры-игры
Автозапуск
Чтобы играть в игру, которая уже установлена, пользователю необходимо только удалить диск установки в области диска. Первое, что должен сделать исполняемый файл AutoRun на диске, — проверить, установлена ли игра, и если да, запустите игру. Предположим, что игра была установлена с помощью установки установщика Windows, проверьте, можно ли установить игру с помощью одного вызова функции MsiQueryProductState.
Преобразование установки по запросу на полную установку
Хотя установка по запросу позволяет пользователю начать играть в игру гораздо раньше, чем полная установка, пользователь может явно установить оставшуюся часть игрового содержимого на локальный жесткий диск. Пользователь может иметь возможность играть в игру, не требуя исходного носителя, или он или она может просто избежать длительного времени загрузки в игре, что приводит к установке содержимого по запросу. Если программа установки игры использует установщик Windows, игра может предоставить возможность в пользовательском интерфейсе параметров игры, чтобы завершить установку оставшегося содержимого. Когда пользователь выбирает этот параметр, игра может вызвать MsiConfigureFeature , чтобы принудительно установить остальные компоненты локально. Для этого не нужно создавать отдельное приложение установки.
Обслуживание программного обеспечения и содержимого игры
Одним из преимуществ, которые игры Windows имеют над консольными играми, является относительная легкость, с которой издатель может выпускать обновления игры после первоначального выпуска. Независимо от того, являются ли эти обновления новым содержимым или просто исправляют ошибки, важно сделать процесс обновления как можно проще для конечного пользователя. Процесс обновления еще более важен для онлайн-игр, которые обычно требуют, чтобы все пользователи запускали последнюю версию игры для подключения.
Автоматическая проверка обновлений
Пользователям не нужно помнить, чтобы искать исправления. Если для игры доступно обновление, пользователь должен получать по крайней мере уведомление и в идеале скачать исправление.
Простой способ проверки обновлений игры — подключиться к веб-серверу, размещенному издателем с помощью определенного URL-адреса, и скачать текстовый файл, указывающий номер версии последней доступной версии игры, а также URL-адрес, с которого можно скачать пакет, который обновит игру до последней версии.
Проверка обновлений каждый раз, когда пользователь играет в игру достаточно, чтобы убедиться, что пользователь работает с последней версией. Однако, если наличие нового обновления обнаруживается непосредственно перед тем, как пользователь пытается играть в игру, пользователь может быть вынужден отложить игру до тех пор, пока обновление не завершит скачивание. Для больших обновлений или медленных подключений эта задержка может находиться в порядке часов. Чтобы избежать принудительного ожидания пользователя, прежде чем играть в игру, игра может использовать планировщик задач для планирования периодических проверок новых обновлений. Если обнаружено обновление, игра может начать скачивание обновления немедленно, чтобы она была полностью скачана и готова к установке в следующий раз, когда пользователь играет в игру.
Автоматическое скачивание исправлений
После того как игра обнаружила, что новое обновление доступно, оно должно сразу же начать скачивание обновления. Так как задача, которая проверяет наличие обновлений, обычно выполняется автоматически в фоновом режиме, скачивание должно быть как можно более ненавязчивым. Фоновая интеллектуальная служба передачи (BITS) — это функция операционной системы, которая позволяет приложениям скачивать файлы из Интернета даже в то время как само приложение не запущено. Задания загрузки BITS выполняются только в том случае, если пользователь вошел в систему, и только если компьютер уже подключен к сети. BITS не попытается принудительно подключить компьютер к сети самостоятельно. Если пользователь отключается от сети или отключается, задание BITS приостановлено и возобновляет загрузку при следующем входе пользователя и подключении к сети. Приложение может настроить свои задания BITS для использования только пропускной способности сети, которая в противном случае останется неиспользуемой, чтобы предотвратить влияние задания на производительность любых других приложений, которые могут использовать сеть (например, онлайн-игры). BITS доступна в Windows XP и Windows 2000 с пакетом обновления 3.
Другие ресурсы
Дополнительные сведения о технологиях, указанных в этой статье, см. в следующих разделах:
Дополнительные сведения об использовании установщика Windows для игр см. в столбце DirectX в следующем месяце "Введение в установщик Windows для разработчиков игр".