А про распаковку изображений игра, если ты не заметил, писала во всех версиях кроме самой последней, где это убралось случайно (т.к. весь код игры переписывался) и вернуть обратно не составит труда.
Я заметил, а ты уверен, что всем это было/будет видно?
Я вообще за игры без установок, распаковок. Берите пример (с кого? Правильно!) с близард.
Все их игры, ещё раз повторюсь для закрепления,
ВСЕ не требуют установки, точнее если сказать - установленные когда-то - успешно запускаются. Кроме того, установщики весят чуть меньше чем установленные.... на 0.1% если не меньше )). Патчи ставятся просто заменой одного архива + исполняемых файлов. Как правило исполняемые файлы весят много меньше чем ресуры, итого вот например в Diablo II патч 1.11b сжатый весит не больше 5 метров... (на память сказал) хотя сама игра весит все 1.5 гб. Warcraft 3 - таже фигня. Исключением может показаться World of Warcraft, но и там, если просматривать историю изменений от WOW до WOW Wrath of the Lich King - сохраняется таже техника.
Чо могу сказать, фишка вся в MPQ файлах - они все образуют "виртуальную" файловую систему игры, вместо тысяч файлов, в файловой системе лежит пара-тройка. Виртуальная файловая система выгледит так: берётся первая MPQ по приоритетам, в "виртуальную" файловую систему игры толкаются все файлы по указанным путям в MPQ, затем берётся вторая по приоритетам MPQ и снова делается тоже самое только с ЗАМЕНОЙ существующих. Что получаем? Последняя MPQ по приоритетам - Patch.MPQ, он заменяет посути любой из файлов, которые надо заменить патчем.
Поиск файла в MPQ идёт за O(log N) как мне помнится... На пальцах это если в архиве миллион файлов - то нужный находится, или говорится, что его нет - за порядка 20 операций. Главное тут слово "порядка". Файлы в MPQ сжаты, может быть и хреновым архиватором, но сжаты. Однако все наверно видели как быстро запускаются игры, идёт загрузка. Просто не всё что лежит в файлах - грузится сразу, а только когда надо.
Вроде всего-то, много файлов заменили одним - пустяк. На самом деле открыть файл это дофига делов и времени: найти в файловой системе (что винда не так быстро делает), заблокировать какие-то опции (как минимум удаление). Чтобы небыло косяков с файлами, система должна обеспечивать последовательность операций с ними, отсюда чтение файлов - тоже дофига делов. Для чтения - нужно закончить/приостановить любую операцию записи в данный файл, прочитать, продолжить - снова дофига делов. Если файлов дофига - то логично и дофига "дофига" делов. Заталкиванием всего в MPQ - даёт возможность: читать всегда только один файл(несколько, если несколько MPQ), постоянно держать их открытыми - не нужно открывать/закрывать. Короче большой выйгрышь производительности, да и пользователю приятно - нету хлама папок.
Ликбез окончен, всем спасиба...
Добавлено позже:кстати да, ты подкинул мне идею - надо чтобы игра проверяла размер файла распакованых изображений и сверяла её.
Одна проверка размера - не тру, лучше ещё прикрутить хотябы маломальскую чексумму (см. гугл: чексумма или хэши (checksumm,hash)). Но и чексумма может не найти косяков в файле, поэтому в торрентах например используют несколько чексумм на разные отрывки файла "покрывающие" весь файл. Хотябы CRC32.