logo logo

 Back to main page

The NWNX Community Forum

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Centralized master server emulator- post-gamespy server list
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    nwnx.org Forum Index -> General Discussion
View previous topic :: View next topic  
Author Message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Sat Dec 08, 2012 11:20    Post subject: Centralized master server emulator- post-gamespy server list Reply with quote

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
View user's profile Send private message
Lokey



Joined: 02 Jan 2005
Posts: 158

PostPosted: Sun Dec 09, 2012 1:39    Post subject: Reply with quote

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 Wink
Back to top
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Tue Dec 11, 2012 4:37    Post subject: Reply with quote

The emulation master server is now operational and a simple web services API to return data about known servers is running.

API endpoint: http://api.mst.valhallalegends.com/NWNMasterServerAPI/NWNMasterServerAPI.svc

API WSDL: http://api.mst.valhallalegends.com/NWNMasterServerAPI/NWNMasterServerAPI.svc?wsdl

Use the string "NWN2" for the Product argument to request the server list for participating NWN2 servers. Similarly, use "NWN1" for participating NWN1 servers. Zebranky has a NWNX2 plugin coming to enable participation for NWN1 users soon.

A user-friendly front-end website (and NWN2 CE integration) are forthcoming.
Back to top
View user's profile Send private message
Nightrise



Joined: 15 Feb 2012
Posts: 2

PostPosted: Tue Dec 11, 2012 9:30    Post subject: Reply with quote

Just want to say publicly what a fantastic job Skywing has done on this Smile, 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 Smile.

Nightrise
Back to top
View user's profile Send private message
leo_x



Joined: 25 Aug 2010
Posts: 75

PostPosted: Tue Dec 11, 2012 15:52    Post subject: Reply with quote

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
View user's profile Send private message
eeriegeek



Joined: 07 Jan 2008
Posts: 59

PostPosted: Wed Dec 12, 2012 20:59    Post subject: Reply with quote

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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Thu Dec 13, 2012 1:27    Post subject: Reply with quote

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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Thu Dec 13, 2012 4:08    Post subject: Reply with quote

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
View user's profile Send private message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Thu Dec 13, 2012 12:14    Post subject: Reply with quote

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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Thu Dec 13, 2012 13:22    Post subject: Reply with quote

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
View user's profile Send private message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Fri Dec 14, 2012 2:54    Post subject: Reply with quote

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
View user's profile Send private message
nwnlist



Joined: 14 Dec 2012
Posts: 6

PostPosted: Fri Dec 14, 2012 4:21    Post subject: Reply with quote

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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Fri Dec 14, 2012 9:18    Post subject: Reply with quote

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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Sat Dec 15, 2012 9:04    Post subject: Reply with quote

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
View user's profile Send private message
eeriegeek



Joined: 07 Jan 2008
Posts: 59

PostPosted: Sat Dec 15, 2012 21:11    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    nwnx.org Forum Index -> General Discussion All times are GMT + 2 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group