12-10-2017, 10:50 PM
Нормальный апдейтер сделать довольно сложно, вряд ли кто-то из фришек приблизился близко к идеалу. Во-первых, все эти "полные проверки" - глупость. Не сложно каждый раз проверять весь клиент, просто делать это нужно правильно. Можно в кэшэ держать размер файла и дату модификации (можно добавить служебный ntfs поток) и пересчитывать хэш только при изменении этих показателей. В итоге, "полная проверка" выполняется каждый раз и практически моментально, потому что получение даты и размера - очень быстрые операции. Понятно, что файлы нужно сжимать. Но если качать игру целиком, то качать по одному файлу - это долго, быстрее один большой архив (и в плане файловой системы, и в плане веб-сервера, и в плане распаковки). Скачивание должно идти в несколько потоков, по-хорошему, p2p. Автоматические повторы при ошибках. Некоторые файлы, например, ini, должны иметь версии по умолчанию, но не перезаписываться при наличии измененных пользователем параметров (при это хорошо бы отдельные параметры или секции делать фиксированными, т. е. не давать изменять и перезаписывать). Короче, сложно это, если делать хорошо.
hLaPEx, Evermore, hAuthD, L2on, ...