Well, maybe we are on the same page, at least up to the enhanced services being in the launcher -- and my main issue with that is it isn't cross-platform.
I was using Launcher in the sense of what I proposed and prototyped in the OP. People could download and use it today probably. It's in Python tho. Here is the process assuming the player had the 'neverrun' launcher prototype installed:
1) Player finds server they want to try.
2) Server has Neverwinter Resource Locator (NRL) -- which is just a JSON file
3) Player dowloads said file. Double-clicking that file is essentially the sum total of user interface.
4) An example of what the system would generate for my server:
here You'd need to look at the links in the OP to get a better idea of what it all meant.
5) They would double click on it. It would recognize that it's never been installed before. It would fetch whatever resources were needed to login.* Since most people already have picked a server would download the NRL mainly as a direct connector / updater, they'd probably not have to actually download anything.
6) Everything would be downloaded and installed.
7) Next time the player double-clicks the NRL it phones home (the source field in the JSON file described in the OP) and checks if it has changed. If not it direct connects you to the server. If so, it downloads and installs whatever is different and then direct connects you to the server.
The prototype does allow for a few modifications to nwmain.exe in order to facilitate a) server specific dialog.tlk overrides and
preloading haks on a hak by hak basis** via nwnpatch.ini. This is the one place where NWNCX would be nice, but I feel that interfacing with it on the command line level would be nicer than being a plugin. I.e. in the launcher's configuration there could be a value saying "use_nwncx=1". Then instead of modifying and running 'nwmain.exe <DIRECT CONNECT STUFF>' it could run 'nwncx.exe <DIRECT CONNECT STUFF> --dialog mydialog.tlk --preload a.hak b.hak ...'
I don't really care if that prototype goes to the dustbin, this is all to explain my perspective after implementing something that covers most of today's use cases (I think).
* On the first use of the launcher it generates sha1's (better than md5 from what I've read) for all modules, haks, tlks you have in your NWN directory.
** I'm not sure if nwnx_connect/NWNCX is like this, but at first I tried preloading everything and the shutdown time for NWN was atrocious: it jumped to 5-6 seconds which I couldn't handle.
Modifié par pope_leo, 20 décembre 2012 - 06:53 .