updater
updater copied to clipboard
Allow option for nightly engine build
With the recent work being done on CI for the engine, is there a possibility we could introduce nightly builds players could optionally use (with the usual warnings of dragons ahead when enabling such an option)? That way the players can feel the upstream improvements without having to wait a long time (read: years) for a stable release?
For engine only?
We could do gamelogic too if you like, but the engine is the most important part as the maintained servers provide more up to date gamelogic anyway.
With the engine it's a simple case of replacing the executable. The gamelogic would require additional dpks to be downloaded each day which could quickly flood users' hard drives. I'm not sure how desirable that is unless you can find at way around this current limitation. As far as I know, the updater doesn't currently remove old dpks.
Just to be clear, I think providing nightly engine builds only would be preferable.
I would be willing to implement the updater side, if someone else got the nightly automated build of the engine going.
Implementation sketch:
- Add nightly build option in settings (or perhaps "bleeding edge"; "nightly" is lame and jargony)
- Install into a subdirectory of the install directory. We want to keep the release engine intact so the user can switch back quickly upon hitting a bug.
- Since we are installing in a different directory and not installing data, a
-pakpathoption will be needed to locate the paks. Luckily the connect URL work has established a decently robust framework for adding extra Daemon flags (even in the face of custom commands). - When checking if an update is available, if the nightly is option is enabled, check for changes of both released version and nightly version. Released version must always be installed to get paks.
- When nightly needs to be updated but released version does not, make a special mode for the download screen where the download starts automatically, and only the nightly version is downloaded.
- If the special mode is not active on the download screen and the nightly option is enabled, it should do both the standard download+install and the nightly download.
- We might want to consider omitting zips for other platforms when downloading, since for a nightly build those will constitute a large percentage of the data.