Как организовать автоматическое обновление игры через Electron приложение?
Доброго времени суток. Вопрос, так скажем, объемный.
Есть игра (TES4: Oblivion), есть сборка на ее основе, т.е. сама игра плюс моды, совмещенные друг с другом. Я делаю лаунчер для сборки, через который можно управлять некоторыми настройками игры и сборки в целом: запустить игру, изменить параметры графики через ini файл игры и все в таком духе.
Да, чуть не забыл, лаунчер пишу на Electron, т.к. хорошо знаком с web-разработкой.
Так вот, есть идея организовать автоматическое обновление сборки. Моды меняются, файлы меняются, настройки переписываются, баги правятся и хотелось бы, чтобы игроки всегда имели свежие обновления как можно быстрее.
Но проблема в том, что я не знаю, как это правильно организовать, например, где хранить файлы обновления. Как я
себе это представляю: составляем список файлов, где прописываем, что изменить, что удалить, что добавить. Там же прописываем версию игры, чтобы сравнивать. Закидываем на сервер, где храним обновления. Туда же файлы новые и измененные. В лаунчере делаем запрос на сервер при запуске, считываем файл настроек обновления, сделанный ранее, проверяем версию и скачиваем нужные файлы. Потом надо проверить, что все скачалось и скачалось правильно, а не криво (контрольные суммы?). Ну и перезаписать и удалить файлы. Но как правильно составить список изменений, ведь у пользователей будут разные версии при обновлении, надо куда-то скачивать предварительно файлы, надо где-то это все хранить.
В общем, если у кого-то есть опыт в этом деле, то было бы неплохо, если бы вы им поделились. А может кто знает статейки на эту тему, но с учетом используемых мной инструментов, сам я толкового не нашел.
Falconer, На самом деле для меня самая главная проблема это все же хранение файлов. Где хранить? У нас есть сайт на какой-то CMS, не помню. Я не знаю, есть ли возможность тянуть это все из ее базы. Может облако (Yandex, Google). Свой сервер держать не резон.
И да, спасибо про напоминание про папку Old, про возможность хранить старые файлы для отката я как-то подзабыл.
Falconer, Спасибо за подробный ответ. В нашем случае это как-раз таки первый вариант, с недорогим хостингом. Игра старая и аудитория у нее уже далеко не такая большая, чтобы тратиться на vps.
Эдуард Трайт, а разница? можете просто взять за основу эти пакеты.
Суть в чём обновления: получили данные о новой версии - если нет, то ни чего не делаем, иначе - скачиваем. А как качать и от куда - это другой вопрос.