@KlaimI was asking myself about the minecraft-like model, that is to have the whole application in application data roaming directory, is it suited for all type of games?
Potentially, provided your game is designed around that model. Actually, since working on this project I've been studying how other applications use this directory, and it's pretty much used like how Linux apps store their data in /home/username/.application_name (Firefox on Linux is a good example).
This model also avoids using the registry to find where files have been installed, though allowing the user to choose where to install files is arguably a better model (it's the model advocated by Microsoft).
What about this (classic) case:
- The game installer is downloaded and executed, the game install in "program files" etc..
- Then the launcher is executed to update the game.
In this case we avoid the Program Files folder altogether by downloading all files to Application Data and running it from there. This avoids the need for privilege elevation. The Launcher/Updater itself could be installed in Program Files though, since it does not self-update.
Important: Use \\ rather than / as the directory separator character.
My bad
The reason for that nonsense is that those strings go directly to the Windows Shell API functions, which are pedantic about using \ as the directory separator (the \\ is just an escaped \). I can easily fix it so you can use / by adding an extra step that flips all / to \. There's no need to involve the boost library or any others.
On a related note, I've just noticed the source code package contains an extra file that isn't used: "resource.h". I changed resource.h to resources.h and forgot to delete the old one. I'll be removing it in the next release.
Also, I've not read everything in details so maybe I misssed that part, but what about the server-side?
Server side at this point consists of just an XML file. Just use umgen to generate the XML file, and upload all files (using FTP) to a public HTTP server. Make sure all files are accessible (LAMP: files chmod 644 and directories chmod 755).
All lean-and-mean bare bones stuff. If you wanted, we could put together a more advanced "publishing" tool to automate the back-end process even further, but for now simplicity and minimalism are the primary objectives.
Last question : no workspace? github/bitbucket/googlecode/whatever? That would help for collaborative work...
No problem - I'm just hosting it on my site for the moment while we work out the details. I think our first priority is to give this thing a proper name. I've not done the online collaborative thing before, so I'll let you guys figure that one out.
@Christian KnudsenI figured the files are only temporarily downloaded to the "application roaming" folder, but then copied to the supplied game directory after all the files have been successfully downloaded?
No, they are downloaded to Application Data folder and run from there. Writing to the Program Files folder on Vista and higher requires administrator privileges. This approach avoids that problem. For Linux users, think of it as analogous to writing to /home/username/.application_name. I'm not sure what the Mac analog is...
Otherwise you risk a corrupt update if the process is canceled halfway through.
All files are checked using MD5 hashes. If any file fails this test, the application does not run. The launcher just terminates with an error message.
@CelluloseRegarding the name, I still like Launchy, but OpenLauncher sums it up pretty well. (It's an untaken name to boot!)
Additional random ideas: "Subtlepatch" and "Pilfer".
I'm a big fan of "OpenLauncher" too.
He he, "Pilfer" might be misconstrued