Pull to refresh

Comments 8

Делал однажды подобную вещь.
Но несколько проще:
  1. Делаем новый билд
  2. Создаем торрент файл
  3. Выкладываем на сайт, заменяя старый
  4. Лаунчер сливает файл при запуске (тут всякие варианты кеширования, но он все равно мелкий хоть на cdn клади)
  5. Благодаря libtorrent просто запускаем на скачивание этот файл (он сам проверит хеши файлов и перекачает изменения, причем от размера блока и файла зависит сколько он скачает)
  6. Дожидаемся 100% — профит, причем раздачу можно оставить на небольшой скорости.
В вашем случае не требовалось делать ограничений для тех, кто может скачать билд, как я понимаю?
Это можно решить уже другими методами при желании — но нет. Тут скорее сам механизм доставки.
эффективность торрентов сильно зависит от того как меняются файлы, если данные внутри файлов «двигаются» хоть на один байт, торрент перекачает весь файл
В результате, мне показалось логичным каждый файл в директории игры рассматривать как набор блоков данных. При выпуске очередной версии, билд игры анализируется, строится карта блоков и сами файлы игры сжимаются поблочно. На клиенте производится анализ существующих блоков и скачивается только разница.
Как вам уже заметили выше, вы переизобрели торрент-раздачу ) Она примерно по такому принципу и работает.
Скорее не торренты, а rsync/borg, но да, я не изобрёл абсолютно новый подход — я просто скомбинировал имеющиеся у меня знания для построения собственного велосипеда :)
Но тут есть одна дилемма — если файл будет повреждён (или отсутствовать), но при этом сохранится запись в кэше об этом файле — то патчер его пропустит
Первоначальная сверка даты создания/изменения файла — не надёжный способ?
Абсолютно ненадёжный, это я отбросил на самых ранних стадиях. В некоторых проектах разработчики ставят временные метки по только им понятным принципам. Максимум, что делает патчер с датой создания файлов — выставляет их в то же значение, что у оригинала актуальной версии.
Sign up to leave a comment.

Articles