As there is no cross-platform launcher for CDDA yet and current Windows one is very basic when it comes to functionality, I decided to create a new launcher. In this thread, I will show planned features. If you have any feature requests or want to discuss something related to the program/ask a question, please feel free to write below - it will be easier to make changes now than after the release!
I will release first public version once all basics will be done (launching/updating the game, basic mod/soundpack/tileset/backup management).
Target platforms - Windows 64-bit, Linux 64-bit, OSX Programming language used - Java 8 or higher GUI Technology - JavaFX with ControlsFX
Features
Currently planned features are:
Launching the game
Checking for stable and unstable releases
Updating the game
Auto-detecting any external modifications of game folders and taking them into account inside launcher
Program database containing informations about CDDA mods, soundpacks and tilesets
Program database updates not requiring the program update
Mod manager including ability to automatically update known mods from GitHub or CDDA-CC database
Soundpack manager including ability to automatically update known soundtracks from GitHub or CDDA-CC database
Tileset manager including ability to automatically update known tilesets from GitHub or CDDA-CC database
Save manager
Backup manager
Program database
The database will contain informations about mods, soundpacks and tilesets (below I’m referencing to all of them as just “mods”). Information about them can exist in four forms:
First two are contained in program online database, which can be configured to always stay in sync with GitHub version without need to download new program version:
GitHub reference (launcher will pull all info about mod from its own GitHub, and use it to auto-update the mod)
Program database reference (database contains download link to the mod and current version. Increasing version number in database can trigger automatic update of the mod)
Last two exist only locally:
CDDA included mod (for mods that are included with the game on download - I’m not sure about possible complications of that yet, but ideally launcher would automatically remove them if they are mainlined to reduce the clutter)
Hey this sounds really neato. I stopped using the current launcher because my entire folder disappeared after one update and I lost my saves, custom mods, templates, modified sound and gfx packs
Make sure your launcher doesn’t include that feature and I’ll be all over it :]
I agree. It would be nice to somehow have the /data/ folder synced to the master repo and then download the exe and replace it. Right now the exes are all bundled in zips so there is no way to eliminate all that extra fluff from the download when you only need to update one JSON file
It might be possible to check what needs updating using Git comparison between two commits. There is one big problem, through - if any source file is changed (which is the case in most builds), entire game needs to be re-downloaded anyway as currently there is no way to get just the executable file. This solution would also need much more code, and therefore be more difficult to maintain/keep bug-free.
If you’re compiling from source, then make already handles it – it compiles only the parts that have changed, and then reassembles the executable, so it’s much faster than a compile from scratch.
I’d assume a launcher miiight automate that if you had a compile environment set up, but it shouldn’t require one. Binary diff and patch tools exist already.
A cross-platform launcher for CDDA!! (´▿`)/
Assuming it wouldn’t be hard, dark mode would be much appreciated! If not, let the window use GTK3 for tux penguin users.
JavaFX is using GTK2 under the hood, but it is possible to do some CSS magic (JavaFX offers full CSS support) to introduce different color themes.
I made a quick test and wildcard selector * works pretty well, but some nodes need special handling to look good after global color change.
Everything in first tab is functional already, backup creation/restoration is very safe compared to current Windows launcher (launcher makes sure at least one game copy is always intact, and never modifies it without duplicating first). Current progress screenshot:
How long does it take to fetch and display the revision notes in that window? I ask cuz half the reason (other than my files being deleted) I quit using the current launcher is because it took a solid two to three millennia to fetch and parse the update notes and it was always faster for me to just go to the website and read it there while I waited for the update to finish installing and copying my saves over.
Unstable changelog is usually near instant for me (<300 ms), stable changelog takes 1-3 seconds. Parsing itself takes less than a single frame.
The likely problem in case of Windows launcher is that it pulls changelog directly from Jenkins website instead of API, which takes much longer to load and parse. It also got infinite scrolling, but I doubt that’s the issue here.