Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
реализовать updater
#11
Нормальный апдейтер сделать довольно сложно, вряд ли кто-то из фришек приблизился близко к идеалу. Во-первых, все эти "полные проверки" - глупость. Не сложно каждый раз проверять весь клиент, просто делать это нужно правильно. Можно в кэшэ держать размер файла и дату модификации (можно добавить служебный ntfs поток) и пересчитывать хэш только при изменении этих показателей. В итоге, "полная проверка" выполняется каждый раз и практически моментально, потому что получение даты и размера - очень быстрые операции. Понятно, что файлы нужно сжимать. Но если качать игру целиком, то качать по одному файлу - это долго, быстрее один большой архив (и в плане файловой системы, и в плане веб-сервера, и в плане распаковки). Скачивание должно идти в несколько потоков, по-хорошему, p2p. Автоматические повторы при ошибках. Некоторые файлы, например, ini, должны иметь версии по умолчанию, но не перезаписываться при наличии измененных пользователем параметров (при это хорошо бы отдельные параметры или секции делать фиксированными, т. е. не давать изменять и перезаписывать). Короче, сложно это, если делать хорошо.
hLaPEx, Evermore, hAuthD, L2on, ...
Ответ
#12
Для нормального update-launcher'a, лучше делать все проверки на сервере.
Какие файлы исправлены или добавлены - на клиенте сверять дату изменения и размер файла.
При скачивании файла, желательно делать запись, чтобы при обрыве, сохранилось то, что уже скачалось, а дальше уже дергать файл и позицию с которой начать скачивать дальше.
Работы не мало.
Но вы действительно уверены, что сможете это сделать самостоятельно?kappa
Ответ
#13
Hint Написал:Нормальный апдейтер сделать довольно сложно, вряд ли кто-то из фришек приблизился близко к идеалу. Во-первых, все эти "полные проверки" - глупость. Не сложно каждый раз проверять весь клиент, просто делать это нужно правильно. Можно в кэшэ держать размер файла и дату модификации (можно добавить служебный ntfs поток) и пересчитывать хэш только при изменении этих показателей. В итоге, "полная проверка" выполняется каждый раз и практически моментально, потому что получение даты и размера - очень быстрые операции. Понятно, что файлы нужно сжимать. Но если качать игру целиком, то качать по одному файлу - это долго, быстрее один большой архив (и в плане файловой системы, и в плане веб-сервера, и в плане распаковки). Скачивание должно идти в несколько потоков, по-хорошему, p2p. Автоматические повторы при ошибках. Некоторые файлы, например, ini, должны иметь версии по умолчанию, но не перезаписываться при наличии измененных пользователем параметров (при это хорошо бы отдельные параметры или секции делать фиксированными, т. е. не давать изменять и перезаписывать). Короче, сложно это, если делать хорошо.
ну всё вышеперечисленное, кроме версий инишек делается чуть ли не из коробки на всяких дотнетах или делфях. просто надо не лениться.
а дополнительные манипуляции можно сделать на уровне расширения функционала каким-нибудь скриптовым движком. или тупо прикрутить луа\питон. благо врапперов на просторах инета валяется куча
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Updater / Launcher Ave 1 2,669 05-24-2017, 01:31 PM
Последний пост: Ave
  Updater source mountaineer 10 5,217 12-09-2015, 05:26 AM
Последний пост: mountaineer
  Updater lineage HF GameAdvisor 0 1,132 07-27-2015, 11:15 AM
Последний пост: GameAdvisor
  Updater под дизайн raindew 0 1,401 04-25-2015, 10:29 AM
Последний пост: raindew
  updater Starli 1 1,572 09-08-2013, 09:04 AM
Последний пост: SoniPro
  Updater вместо l2.exe Durand 9 9,015 10-25-2012, 02:42 PM
Последний пост: Romka
  как реализовать поддержку клиента других хроник BlackPR 24 6,958 02-24-2011, 08:52 PM
Последний пост: BlackPR
  Бан как реализовать ZeroMS 5 2,889 11-17-2010, 02:45 AM
Последний пост: ZeroMS
  L2 Updater v2.0.2 + sources Credo 1 11,058 06-23-2010, 05:43 PM
Последний пост: VISTALL
  Updater на (Rus-of)Life Клиент Bastexses 0 2,884 04-29-2009, 10:50 AM
Последний пост: Bastexses

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)