View previous topic :: View next topic |
Author |
Message |
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Sat Dec 08, 2012 11:20 Post subject: Centralized master server emulator- post-gamespy server list |
|
|
I've started a project to create and host a basic emulation master server (speaking the nwmaster/nw2master master server to game server communication protocol), with the intention of providing a centralized and automatically updated location for discovering live PWs on NWN2/NWN1.
The latest NWN2 Client Extension release provides restored multiplayer server browser functionality in-game using this system.
Github repository for the project resides here: https://github.com/SkywingvL/nwn2dev-public
Contributors are welcome.
The objective of the project is to host a centralized master server replacement that can provide the following capabilities:
- Automatic updates and maintenance of a list of participating NWN1 and NWN2 PW servers (servers will need to either redirect hosts file or install an updated, not yet available xp_bugfix - a NWN1 plugin could also easily be written by an enterprising party).
- A web-based frontend to display this information to end users for each game. Now available at http://www.nwnlist.com .
- Cotential client-based integration to fill the in-game server browser in the NWN2 client for clients using an updated NWN2 Client Extension. Clients without the CE will have to make do with the web frontend. This is now available with the latest Client Extension build, forum thread at: http://social.bioware.com/forum/1/topic/161/index/3116438
- A simple and documented API for external parties wishing to access the server list for other community related projects.
I have spare hosting space to host a centralized emulation master server for both games for the foreseeable future.
In the general sense, it would be to the advantage of the community to have a single, centrally located point that servers check in to and which is kept automatically up to date, so as to provide a one stop shop for players to find PWs.
It will be necessary for PWs to opt in to using the emulation master server through either the aforementioned hosts file edit or the not-yet-available xp_bugfix update (or appropriate NWN1 plugin - which could be easily made by an enterprising NWNX2 developer, simply needing to replace the default hostname string for the master server).
It is currently not planned for the emulation master server to perform any account authorization activities. As a result, the emulation master server is planned to just consider all authorization attempts successful (essentially the same behavior that individual PWs observe today with the official master servers having long been gone.)
(While processing authorization requests would be in theory be possible were we willing to start with an entirely fresh account database and entirely new system for registering player accounts, this appears problematic from many respects - notably that anything that might require players to change their account names would be massively disruptive to existing PWs.)
Current status (commit log):
- Master server emulator: Done.
- xp_bugfix update to change default master server hostname: Done. Servers check in to both BioWare and my master servers.
- Web frontend: Done, third party: http://www.nwnlist.com, as well as eeriegeek's NWN2 and NWN1 lists.
- CE integration: Done, available at http://social.bioware.com/forum/1/topic/161/index/3116438 .
Last edited by Skywing on Sun Dec 23, 2012 7:15; edited 1 time in total |
|
Back to top |
|
|
Lokey
Joined: 02 Jan 2005 Posts: 158
|
Posted: Sun Dec 09, 2012 1:39 Post subject: |
|
|
Question: is the domain used client-side unique to nwn*? I.e. hostmask say nwn.gamespy.wtf, gamespy will still work as normal for other games?
If you want some cash towards continuing hosting costs, that can happen as well. _________________ Neversummer PW NWNx powered mayhem |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
|
Back to top |
|
|
Nightrise
Joined: 15 Feb 2012 Posts: 2
|
Posted: Tue Dec 11, 2012 9:30 Post subject: |
|
|
Just want to say publicly what a fantastic job Skywing has done on this , he's always been a tremendous support to the community time and time again.
Also, I've put together a light little program for whomever is interested - all it does is query the web service and show a list of available servers on the new network.
You can Download it here.
I'm not a C# programmer by default, so please be forgiving .
Nightrise |
|
Back to top |
|
|
leo_x
Joined: 25 Aug 2010 Posts: 75
|
Posted: Tue Dec 11, 2012 15:52 Post subject: |
|
|
Skywing,
Thank you for your work on this!
I had a feature suggestion: I wondered if server descriptions/ServerDesc.txt could be polled and included in the web interface?
Thanks,
leo _________________ the awakening (PW Action) |
|
Back to top |
|
|
eeriegeek
Joined: 07 Jan 2008 Posts: 59
|
Posted: Wed Dec 12, 2012 20:59 Post subject: |
|
|
Similar to what Nightrise has done, I threw together a Linux command line / C++ / gSOAP version of a server browser for the web services interface that Skywing has published. Note that the NWN1 product should be working as well as the NNW2, but there seem to be no servers registering yet. Much work ongoing I'm sure.
The source is on github here (program name listnwns):
https://github.com/eeriegeek/NWN-Miscellaneous
An example screen shot:
|
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Thu Dec 13, 2012 1:27 Post subject: |
|
|
leo_x wrote: | Skywing,
Thank you for your work on this!
I had a feature suggestion: I wondered if server descriptions/ServerDesc.txt could be polled and included in the web interface?
Thanks,
leo |
Yes. We should be able to pull the module URL and module description too. I'll add these later today. |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Thu Dec 13, 2012 4:08 Post subject: |
|
|
The infrastructure has been updated and the API now returns three new fields:
ModuleUrl
ModuleDescription
GameType
(The latter being the game type category, e.g. action, role play, etc.)
Servers have to configure the module URL and module description in the server INI file for the server to return that information. |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Thu Dec 13, 2012 12:14 Post subject: |
|
|
Hi Skywing,
Module URL and Description - these arent default nwn settings are they?
Eg- Do they already have entries in the ini file?
Could you post an example - so we can see the syntax? |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Thu Dec 13, 2012 13:22 Post subject: |
|
|
These are under [Server Options] in nwn2player.ini.
http://nwn2.wikia.com/wiki/Starting_a_PW has an example. (Ignore the comment in the example about the module URL having anything to do with firewall settings - this is erroneous. The setting just sets a field that is advertised to game clients requesting the other server configuration stats for the server. |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Fri Dec 14, 2012 2:54 Post subject: |
|
|
that explains it
Dont suppose anything like that exists for NWN1.
Also - While your delving into the mysteries of the nwn network protocols.
Have you found any use for the admin password feature?
I know bioware left it unimplemented - Im just wondering if any of their half finished features could actually be used by the community with a few tweaks?
Would also be nice to specify a module URL/Website URL for nwn 1 too. |
|
Back to top |
|
|
nwnlist
Joined: 14 Dec 2012 Posts: 6
|
Posted: Fri Dec 14, 2012 4:21 Post subject: |
|
|
Scry, simple web UI for Skywing's excellent server, can now be previewed at http://www.nwnlist.com/beta.php
Up next? Sortable columns. Integration with manually-added data (like campaign setting) from the main list. Maybe a left navbar for categories, to make it as close to the original Gamespy UI as possible. _________________ NWNList Scry |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Fri Dec 14, 2012 9:18 Post subject: |
|
|
Baaleos wrote: | that explains it
Dont suppose anything like that exists for NWN1.
Also - While your delving into the mysteries of the nwn network protocols.
Have you found any use for the admin password feature?
I know bioware left it unimplemented - Im just wondering if any of their half finished features could actually be used by the community with a few tweaks?
Would also be nice to specify a module URL/Website URL for nwn 1 too. |
The server admin protocol is actually fully implemented (although there are a couple of deficiencies that make the boot player option unusable, but otherwise it is functional).
http://nwvault.ign.com/View.php?view=NWN2Tools.Detail&id=100 is a client I wrote that supports the NWN2 version of it. I suspect that the protocol is likely completely unchanged from NWN1 with the code being completely carried over (you can give it a shot).
It's possible that the module URL is a new addition for NWN2. In this case, you could put a URL in the server description field (I believe that is present for NWN1?). |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Sat Dec 15, 2012 9:04 Post subject: |
|
|
I've updated the API again with some new additions:
- New method uint GetOnlineUserCount(string Product)
- New method IList<string> GetSupportedProductList()
- New method IList<NWGameServer> LookupServerByModule(string Product, string Module)
NWGameServer has new fields:
- string PwcUrl
- uint MinimumLevel
- uint MaximumLevel
- uint PVPLevel
- bool PlayerPause
- bool OnePartyOnly
- bool ELCEnforced
- bool ILREnforced
API interface documentation can be found in the xmldoc comments for INWNMasterServerAPI here: https://github.com/SkywingvL/nwn2dev-public/blob/master/NWNMasterServerAPI/App_Code/INWNMasterServerAPI.cs |
|
Back to top |
|
|
eeriegeek
Joined: 07 Jan 2008 Posts: 59
|
Posted: Sat Dec 15, 2012 21:11 Post subject: |
|
|
Skywing, thanks for getting the NWN1 version up and running!!
There seems to be another minor difference in the NWN1/NWN2 protocol handling that I didn't notice at the time. The first string field in the BNDR packet (labeled GameDetails in the .cs code,) contains the contents of the ServerDescription.txt file configured in the NWN1 server's home dir. It looks like that field is ignored in the current code (presumably NWN2 does not use that mechanism or send anything.) In the original browser, the service concatenates the ServerDescription with the ModuleDescription to fill the server description field in the game browser interface. It would be great if the new API could also return the ServerDescription field (i.e. the GameDetails) so new browser implementations can report the server description text for NWN1 servers either separately or concatenated with the module description. |
|
Back to top |
|
|
|