СТАРТУЕМ
После загрузки и впервые запуска лаунчера, программа сплетет уютное гнездышко в "
%APPDATA%/jetlauncher", там сохраняются все конфиги, пути к клиента, архивы и сам лаунчер (на самом деле всегда он отсюда будет запускаться),..., помимо этого в автозагрузку добавляется ярлык с лаунчером. Запущенную программа лаунчер, отображена трее с (ярлыком скилла Нублес
).
Пользователю будет предложено "кликнуть" чтоб добавить протокол лаунчера в реестр (чтоб в будущем можно было открывать программу по клику из браузера).
Если пользователь откроет страницу вашего лаунчера, и по какой-то причине лаунчер запущен не будет на его ПК, пользователь получит сообщение что его необходимо скачать и запустить.
Теперь перейдем к сложной теме - обновлению.
Вроде бы - скачать, распаковать основная цель лаунчера, ничего сложного.
На практике 65535 ошибок может помешать, а все что может пойти не так, обязательно пойдет не так.
Как это устроено. Пользователь нажимает на обновление патча:
0 - Скачивается файл с хэш-листом, начинается скан файлов клиента, сравнение, собирается инфа какие файлы нужно загрузить, а какие не нужно.
0.5 - На этом под этапе, мы ищем в архиве, был ли данный файл ранее загружен лаунчером, если да, берем его, чтоб не качать.
1 - Лаунчер запускаем N потоков скачивания (исходя из настроек пользователя, либо по умолчанию равно кол-во ядер процессора).
2 - Скачивается файлы во внутреннюю директорию, распаковывается, перемещается в папку с игрой. На этом этапе патч скаченный сохраняется (по настройки пользователя) в архивную директорию. Откуда потом будет браться в 0.5 этапе!
3 - Загрузка завершена, кнопка запустить игру станет рабочей к запуску л2.ехе.
Тут много ошибок может случится, к примеру интернет отвалиться либо сайт с патчем ляжем (мы переходим в режим ожидания N минут, если интернет возобновился, загрузка продолжится, если нет, прерывание загрузки) либо файл файл будет недоступен, либо ещё чего, многие ошибки требуют инвидидуального решения.
Пару слов сказать про архивы.
Архивы это директория, в которой сохраняются файлы скаченные с серверов, и лаунчер после скачивания их не удаляет!
Зачем они? - По моим подсчетам, 90% файлов в патчах - копии, которые есть и в патчах у других серверов либо скачивались ранее.
Какой смысл постоянно скачивать одни и те же файлы, если они копии согласно хэш-сумме.
По этому, после запуска обновления, мы проверяем, есть ли в архиве патч, который мы уже скачивали.
Это значительно сокращает время загрузки. Фактически в таких ситуациях время тратиться только на распаковку.
Эта функция не обязательна, её можно отключить, или включить частично, только для тяжелых файлов, а папку где сохраняются архивы можно сменить.
Лаунчер бесплатный?
Да, я не люблю платное ПО, и вообще платное ничего не люблю, настолько не люблю, что даже за интернет не плачу с 2013 года.
Однако, лаунчер должен окупать сервер на котором работает, и чем больше окупает тем больше можно внедрить возможностей.
Для идей мне пришлось запастись высококачественной ямайской мацой и советами наших форумчан: И так...пользователи смогут баффать ваш сервер, используя любимый скиллом, за такую услугу им придется задонатить и тем самым повысив ваш рейтинг (в будущем рейтинг назову LauncherCoin blockchain
шучу), за донат в лаунчер - Вы можете награждать игроков автоматически!
А Вы думали дракон или волонд евреи? Что ты на это скажешь Илон Маск!
Шутки в сторону: Все платные функции будут преобретаться за донаты от пользователей на странице сервера лаунчера.
Про рейтинг сервера
Когда решу все возможные технические проблемы в лаунчере, доработаю все что мне не нравится и добавлю то что нравится, и издам stable версию, появится страница с рейтингами всех серверов лаунчера, что-то вроде L2ТОП-а (если он ещё живой, тогда царство ему небесное).
Не стоит беспокоиться, не будет никакой рекламы на странице Вашего лаунчера.
Так же будет анонсер, и размещение будет бесплатным и платным (за счет вашего
рейтинга LauncherCoin).
Все изменения, идеи, и прочее, будет решаться коллективно, методом опроса среди админов в личном кабинете.