Как работают обновления игр XBox?

У вас есть статический носитель, компакт-диск, поэтому вы не можете изменить какие-либо файлы на нем. Так как же работают обновления? Я понимаю, что есть код, который запускается и проверяет, верна ли версия, а затем загружает патч, если это необходимо, но как этот путь интегрируется в игру?

Есть ли какая-то "проверка обновлений", которая проверяет файлы исправлений и загружает их? Если это так, то как они проектируют код, чтобы разработчики могли исправить непредвиденные проблемы?

4 ответа

Решение

Патч содержит дельта-сжатый исполняемый файл и любые новые данные, которые могут понадобиться этому исполняемому файлу. Загрузчик исполняемых файлов Xbox 360 проверяет наличие патча (через идентификатор заголовка игры) и, если он найден, загружает старый исполняемый файл в память, а затем изменяет его в памяти с помощью дельта-сжатой версии. (Процесс создания исполняемого файла с дельта-сжатием может занять более часа, но полученный размер исполняемого файла того стоит).

Microsoft не предоставляет никаких инструментов для исправления данных. Любые обновленные данные также будут в патче, но только исполняемый файл будет искать их в области "обновления" и применять их соответствующим образом.

Как уже упоминалось, патч нужно где-то хранить - он может быть либо на жестком диске, либо на карте памяти. Если на карте памяти она будет помещена в зарезервированную системой область 8 МБ (рекомендуется, чтобы размер исправлений составлял <4 МБ, чтобы на карте памяти можно было хранить 2 исправления; это может быть превышено с разрешения Microsoft).

Все исправления должны быть накопительными - если вы обновляете заголовок до версии 1.1, когда вы выходите с версией 1.2, он должен содержать все изменения с версии 1.1.

Я бы сказал, что, просто вставив игру в Xbox, она сохраняет Манифест с описанием на жестком диске или некоторый носитель флэш-памяти в коробке, в которой хранится список версий библиотеки и их расположение (либо на CD или какой-нибудь путь на XBox HD)

Когда происходит обновление, он обновляет этот файл манифеста, чтобы сказать.

"При запуске этой игры используйте библиотеку X v1.1 с жесткого диска вместо libary X v1.0 с компакт-диска".

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

Может быть, проверить метку времени файлов, сохраненных на жестком диске, а не файлы на компакт-диске?

По сути, разработчики размещают контент, а трафик отправляется через игровые серверы, серверы Xbox One и вашу полосу пропускания. Трафик с разработчиком обычно является основной причиной медленного ввода и записи данных, поскольку они наименее приспособлены для обработки потока данных.

Другие вопросы по тегам