Как работают обновления игр XBox? - PullRequest
7 голосов
/ 21 апреля 2009

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

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

Ответы [ 3 ]

10 голосов
/ 07 августа 2009

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

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

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

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

1 голос
/ 21 апреля 2009

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

Когда происходит обновление, он обновляет этот файл манифеста, говоря:

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

0 голосов
/ 21 апреля 2009

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

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

...