E
E
Edward Treit2020-02-09 10:36:22
symfony
Edward Treit, 2020-02-09 10:36:22

How to organize automatic game updates through the Electron application?

Good day. The question is, shall we say, voluminous.
There is a game (TES4: Oblivion), there is an assembly based on it, i.e. the game itself plus mods combined with each other. I'm making a build launcher through which you can manage some of the settings of the game and the build as a whole: launch the game, change graphics settings through the game's ini file, and stuff like that.
Yes, I almost forgot, I write the launcher on Electron, tk. well versed in web development.
So, there is an idea to organize an automatic update of the assembly. Mods change, files change, settings get rewritten, bugs get fixed and we want players to always have fresh updates as soon as possible.
But the problem is that I don't know how to organize it properly, for example, where to store update files. Like me
I imagine it: we make a list of files, where we prescribe what to change, what to delete, what to add. In the same place, we prescribe the version of the game in order to compare. We throw it on the server where we store updates. There are also new and modified files. In the launcher, we make a request to the server at startup, read the update settings file made earlier, check the version and download the necessary files. Then you need to check that everything downloaded and downloaded correctly, and not crookedly (checksums?). Well, overwrite and delete files. But how to compile a list of changes correctly, because users will have different versions when updating, you need to download files in advance somewhere, you need to store all this somewhere.
In general, if someone has experience in this matter, it would be nice if you shared it. Or maybe someone knows articles on this topic, but taking into account the tools I use, I myself did not find any sensible one.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
U
user49981, 2019-05-28
@user49981

get-by-option-and-price?price=100;500&lang=eng&color=reg;green
class Filter (price, color, ...)
many-to-one relationship to
class FilterValue (100, 500) (eng, rus )
output to ChoiceType

A
Alex, 2020-02-09
@Kozack

https://www.electronjs.org/docs/api/auto-updater
https://www.electron.build/auto-update
New versions can be downloaded directly from the repository

E
Evgeny Koryakin, 2020-02-10
@zettend

Pull the torrent technology from here https://www.electronjs.org/apps/electorrent when you click "Play" load a new magnet link. And then only conditions like “if the hash does not match, then the Play button will become Refresh”. I think I understand the logic

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question