Cross-checking your post against my NSIS skills and NSIS capabilities. Comments will appear in
bold red.
(10-01-2010, 05:27 PM)divVerent Wrote: [ -> ]Generally, I'd prefer to ONLY package the zip archive for all platforms. However, a small NSIS installer that downloads the zip, why not. If it also can put a launcher in front of Xonotic that checks for a newer release, and can upgrade, even better. But just a huge exe NSIS installer is not really worth much.
So, the ideal Xonotic installer:
- is about 1MB in size, or less Check.
- downloads Xonotic engine and data, extracts and installs it I think there is a Zip plugin for NSIS out there.
- is independent from Xonotic version (always downloads and installs the current one) If the file on the server is always going to be the same name (eg. xonotic.zip or maybe even download-newest.php), that's doable.
- provides uninstaller that also asks whether or not to keep game settings Blender's setup does this when uninstalling, so check.
- allows updating by simply running a newer installer, retains old settings If the installer is version-independent, the core download-and-install code will be retained, thus the new installer versions will be essentially the same. So, check.
- puts a launcher in front of Xonotic startup to check for updates Also NSIS - PortableApps does this, and the check-and-update code should be easy.
- provides a .pk3 shell extension (and possibly even .pk3 manager where you can easily remove them, or "install" pk3s from dlcache) Unfortunately, I don't know either NSIS way or Windows native C/C++, so I might want to do this one in either Silverlight or .NET forms.
__________________________________________________
It's true that a huge installation file is kind of not worth is. Personally, I hate when installers take more than 30 Mb, and I like the way DirectX is installed. Of course, all of this can be done in NSIS (except for the pk3 manager). However, there should be a way to prevent the core pk3's from being modified by the manager - that's why I'd like you to keep the xonotic- prefix before core pk3's and pk3dir's. The program will be then set to omit or grey out packs with prefixes like "xonotic-" and "font-".
First version of my installer will consist of the following:
1. Installation bootstrapper (the file you download)
- Will connect to the http download link and download the zip
- Will unpack the zip to specified folder
- Will extract some installer-related files.
- Will create shortcuts
2. Game bootstrapper (the play-xonotic.exe file)
- Will read the /RMODE:x parameter for wgl/sdl
- Will try to connect to the http download link and check versioninfo.txt file to determine if there is a new version
- - If yes, will unpack and run a copy of the installer with /RETAINSETTINGS:true switch.
- - If no, will run the game with selected render mode.
3. Uninstaller
- Will ask if you want to retain settings
- Will simply delete the folder everything was installed in, as it does not know what's really in it.
Future versions will also include:
4. Patcher with settings
- A small, NSIS-based program which has two options.
- SETTINGS option:
- - Will display settings dialogue which will enable user to decide if the program should check for updates on game startup.
- - Will enable user to decide if to install a Windows Schedule task for checking updates to the game.
- UPDATE
- - Will check for updates, and install them when available.
5. PK3 Manager
- A small, non-NSIS program which will help users to install and manage their maps and models.
- Optional during installation