NWN Gamespy Server Replacement Project
#1
Guest_orizvi_*
Posté 07 décembre 2012 - 02:49
Guest_orizvi_*
Reverse engineering the Gamespy servers shouldn't be impossible and from what I've seen might even be a realstic solution.
We have a few things working in our favor:
1) A basic Gamespy server list viewer kindly provided by Gamespy here:
http://gstadmin.game...rver/index.aspx
2) SDK documentation kindly provided on Gamespy's website here:
http://docs.poweredb..._Implementation
3) The Gamespy protocol remains identical across games. This means we can use packet capure on other games which still have working Gamespy servers. Packet capture on NWN is also quite useful as the Gamespy server does respond - just with no servers. Blank responses are also valuable when deciphering a protocol.
4) Modifying the nwn client to point to a different server, or changing the hosts file are both simple fixes on the client end.
5) An open source server would help the other games affected as well.
#2
Posté 07 décembre 2012 - 06:29
http://aluigi.org/papers.htm#distrust
This guy here has done a lot of research into reverse engineering the gamespy servers, and has a lot of tools available for them as a result.
#3
Posté 07 décembre 2012 - 07:31
http://nwnserverlists.boards.net
#4
Posté 07 décembre 2012 - 07:44
wouldnt be just simple solution better?
something like:
- downloading a server list per game type from community driven website such as neverwinternights.info
- filling the list into game GUI, pinging these servers up and finding their players count
it would then be the server developers' responsibility to request to add their server into that list:innocent:
#5
Posté 07 décembre 2012 - 10:14
I wonder if this is something we should discuss in the PW section though.
Modifié par Zarathustra217, 07 décembre 2012 - 10:17 .
#6
Posté 07 décembre 2012 - 11:00
I just lack the skills/knowledge of how to put that directly into the GUI Display inside nwn.
That being said - My own Auto-Downloader for my PW Sever does have a 'Start Rhun' command - which, as mentioned/touched on above, does the nwnmain.exe on command line, and supplies the server IP.
Something like that would be easy to implement.
eg- it could be a datagrid in a Windows Form application, each row being a server, and it has a button on each row that says Connect - if the server doesnt respond to the ping/server status - it can be grayed out.
#7
Posté 07 décembre 2012 - 11:37
#8
Posté 07 décembre 2012 - 12:12
I'd agree with Zarathustra217 that a text/xml/json format that could be downloaded and imported into a launcher is best. Something simple enough that it could be implemented as a shell script on Linux..
#9
Posté 07 décembre 2012 - 12:18
Baaleos wrote...
eg- it could be a datagrid in a Windows Form application, each row being a server, and it has a button on each row that says Connect - if the server doesnt respond to the ping/server status - it can be grayed out.
Sounds like this:
img713.imageshack.us/img713/5954/xfirelist.jpg
Trouble is, any community fix is not going to have out of the box functionality. i.e. when a new player runs a fresh NWN install, they won't be able to see it. It's going to be a third party download, and if players are typically apprehensive of haks, they will be just as reluctant to download a launcher or a custom NWNCX that points to a working server list or Xfire or anything else. That kills off a big source of new blood for PWs. But there's nothing that can be done about that I suppose
Modifié par Aelis Eine, 07 décembre 2012 - 12:38 .
#10
Posté 07 décembre 2012 - 12:37
Aelis Eine wrote...
Trouble is, any community fix is not going to have out of the box functionality. i.e. when a new player runs a fresh NWN install, they won't be able to see it. It's going to be a third party download, and if players are typically apprehensive of haks, they will be just as reluctant to downlaod a launcher or a custom NWNCX that points to a working server list or Xfire or anything else. That kills off a big source of new blood for PWs. But there's nothing that can be done about that I suppose![]()
I agree with you which is why I suggested figuring out a way to raise donations and seek a partner with one or more of the parties still making money off of NWN.
This is an essential feature of NWN, a game which is still being sold, and yet the feature is not being supported. I think its just a matter of bringing this to the attention of the right people and get someone to take responsibility for the monthly bill for it.
#11
Posté 07 décembre 2012 - 12:40
Unfortunately, I dont belive that could ever happen. Anyway, any project to replace the gamespy server list have my support, at least in propagation.
Modifié par ShaDoOoW, 07 décembre 2012 - 12:41 .
#12
Posté 07 décembre 2012 - 12:47
Aelis Eine wrote...
Trouble is, any community fix is not going to have out of the box functionality. i.e. when a new player runs a fresh NWN install, they won't be able to see it. It's going to be a third party download, and if players are typically apprehensive of haks, they will be just as reluctant to download a launcher or a custom NWNCX that points to a working server list or Xfire or anything else. That kills off a big source of new blood for PWs. But there's nothing that can be done about that I suppose
I don't think it's much more dire than the day before yesterday... The place people would be likely to buy it is GOG.com which is more than happy to direct people to mods for legacy games. Look how much people have to download to even get a useable Baldur's Gate.
#13
Posté 07 décembre 2012 - 12:48
#14
Posté 07 décembre 2012 - 12:52
ShaDoOoW wrote...
Aelis: this is not impossible to solve, if the community agreed on some global solution, then it should be easy to persuade the companies that sell this game to include such solution so every new player would start with.
Unfortunately, I dont belive that could ever happen. Anyway, any project to replace the gamespy server list have my support, at least in propagation.
I can see that happening for pirac... err... non-official distribution. I remember downloading a game with a community multiplayer fix built in. But NWN is still being sold so I wouldn't advise for anyone to go there. For official retail distribution though, I highly doubt it would happen.
Zarathustra217 wrote...
Are there any other places than gog that still sells NWN?
From page 1 of Google:
http://www.amazon.co.../dp/B005JQ05RS/
http://www.impulsedr...com/nwncomplete
http://www.gamestop....ollection/92959
http://www.gamersgat...nights-complete
Modifié par Aelis Eine, 07 décembre 2012 - 12:59 .
#15
Posté 07 décembre 2012 - 01:23
EDIT: i see, didnt know that...
Modifié par ShaDoOoW, 07 décembre 2012 - 02:13 .
#16
Posté 07 décembre 2012 - 02:02
#17
Posté 07 décembre 2012 - 02:29
He has done work before with the modification of server player displays etc.
Granted - this was in nwnx server plugins - but I think he or virusman would be very capable of accomplishing this.
In theory, what we need to do is
1. Find a way of changing the nwn Gamespy IP Address that the client is looking for to something the community will manage.
2. Understand the networking protocols, so we can emulate the gamespy server.
In theory - we know half of this anyway - the gamespy server status query undoubtably gets executed against all the servers that gamespy sends back, and then the client automagically parses and displays it. (We have this server status query information as a series of bytes)
When this is sent to a server over udp to their game port - they automatically send back the server status.byte[] b = {0xFE,0xFD,0x00,0xE9,0x04,0x05,0x14,0x01,0x0b,0x01,0x05,0x0A,0x33,0x35,0x13,0x04,0x36,0x38,0x39,0x14,0x3A,0x3B,0x3D,0x00,0x00 };
http://docs.poweredb..._Server_Listing
Gamespy offers an SDK That is of use to game makers - it also has classes that allege to allow posting to the gamespy master server (not the bioware one)
It might be possible to use this SDK to facilitate posting to the gamespy server or another location?
Also
http://code.google.c.../downloads/list
This project has a more indepth C# implementation of a server status query module.
Handles practically all gamespy games.
Modifié par Baaleos, 07 décembre 2012 - 02:55 .
#18
Posté 07 décembre 2012 - 04:03
#19
Posté 07 décembre 2012 - 04:37
I've also tweeted to gamyspy and gamespytech to see if they can comment on what has happened to the nwn server list.
#20
Posté 07 décembre 2012 - 06:00
It's entirely possible... ;-)Baaleos wrote...
Whoever it is that manages the vault would likely be open to hosting a multiplayer patch on the same page as the critical rebuild.
...
<...nonchalantly>
#21
Posté 08 décembre 2012 - 01:50
Done, though right now nwserver NWN1 & NWN2 were patched to forward all GS relevant information to me, the client is as easily fixable. I won't distribute nwserver and nwmain binaries (pretty illegal, right?), but I'll distribute an app that patches them for the player / hoster.1. Find a way of changing the nwn Gamespy IP Address that the client is looking for to something the community will manage.
Getting the information and parsing, turning it into an XML dump for a website was all done last night. The only thing I haven't worked on yet is the challenge / request bit for the client but at least the game servers themselves will be discoverable now.2. Understand the networking protocols, so we can emulate the gamespy server.
Which is annoying, given that GS has almost all of the information the players need to populate the matchmaking list, but instead seems to respond only the ip and port of the server which then the game client is polling, again....In theory - we know half of this anyway - the gamespy server status query undoubtably gets executed against all the servers that gamespy sends back, and then the client automagically parses and displays it. (We have this server status query information as a series of bytes)
Modifié par Visavant, 08 décembre 2012 - 01:52 .
#22
Posté 08 décembre 2012 - 01:55
pope_leo wrote...
I don't think you should worry about putting server lists into the client. Server discovery would probably be best left to a website like nwn connections or whatever -- the client was never even particularly good at it, player counts and the tiny description box is all you have to go on.
I'd agree with Zarathustra217 that a text/xml/json format that could be downloaded and imported into a launcher is best. Something simple enough that it could be implemented as a shell script on Linux..
A previous project of mine a year ago, NWCore, exposed a server list via generated XMLs it created from querying GS, back when the query page they made wasn't available, at least to the public, so that's something I have available already and intend to throw to a CDN for anyone to acquire. Documentation on it, including the elements like the lastcachetime, etc, will be on the site.
Some documentation regarding how to permit your browser to launch the NWN game and autoconnect to a clicked IP / Port combination will be included.
Modifié par Visavant, 08 décembre 2012 - 01:56 .
#23
Posté 08 décembre 2012 - 11:13
I'll see if I can persuade the guys from our community that were working on something similar to come here and join the discussion. Then I propose we set up something on sourceforge or GitHub.
From the top of my head, I can think of these features that would be generally useful to all:
1. Auto-downloader/installer for:
- the critical rebuild patch.
- HakPaks/tlks for specific servers.
- Single player modules?
- Music packages?
- Portraits?
- Overrides?
2. Server lists, possibly with player count.
We could then make a simple web-hosted form that submits XMLs (or whatever we use).
Modifié par Zarathustra217, 08 décembre 2012 - 11:16 .
#24
Posté 08 décembre 2012 - 11:19
Seems a bit needless to me, but if this will be possible, why should anyone complain? The problem with this is that someone will have to make a lists of these packages and thats something that community have to agree, if the community agree on this program at all. I have a feeling that this turns out in a project of 1member.Zarathustra217 wrote...
- Single player modules?
- Music packages?
- Portraits?
- Overrides?
#25
Posté 08 décembre 2012 - 11:27
That also means we wouldn't have to worry about NWvault closing down.
The ideal here would be to allow for voting on content, but that'll depend on something hosting a database. It'll also take a bit more work on programming.
Modifié par Zarathustra217, 08 décembre 2012 - 11:27 .





Retour en haut







