Aller au contenu

NWN Gamespy Server Replacement Project


  • Veuillez vous connecter pour répondre
251 réponses à ce sujet

#1
Guest_orizvi_*

Guest_orizvi_*
  • Guests
Alright - so it seems GLU Mobile are a bunch of jerks.

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
SteelStallion

SteelStallion
  • Members
  • 25 messages
I'm certainly for collaborating to find a solution, for this has affected NWN 2 as well! You may find this link interesting:

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
Melkior_King

Melkior_King
  • Members
  • 135 messages
I welcome any effort which would make my workaround list redundant.

http://nwnserverlists.boards.net

#4
Shadooow

Shadooow
  • Members
  • 4 465 messages
do we really need the exact gamespy replacement?

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
Zarathustra217

Zarathustra217
  • Members
  • 221 messages
Yeah, we could easily make something even better. In our community, we've toyed with making an auto-downloader that also features direct connect options. If we set up a plug-n-play solution that allows PW people to send in an xml file to a shared archieve, the auto-downloader could automatically update that (wouldn't take much bandwidth to host). It may take a bit more work implementing listings of player count, but not overly so.

I wonder if this is something we should discuss in the PW section though.

Modifié par Zarathustra217, 07 décembre 2012 - 10:17 .


#6
Baaleos

Baaleos
  • Members
  • 1 322 messages
I could certainly build an application/assembly that can retrieve the info from a remote server.
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
Shadooow

Shadooow
  • Members
  • 4 465 messages
Also good idea Baaleos, and much much easier to implement. I say go for it.

#8
leo_x

leo_x
  • Members
  • 223 messages
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..

#9
Aelis Eine

Aelis Eine
  • Members
  • 149 messages

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
henesua

henesua
  • Members
  • 3 858 messages

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
Shadooow

Shadooow
  • Members
  • 4 465 messages
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.

Modifié par ShaDoOoW, 07 décembre 2012 - 12:41 .


#12
leo_x

leo_x
  • Members
  • 223 messages

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
Zarathustra217

Zarathustra217
  • Members
  • 221 messages
Are there any other places than gog that still sells NWN?

#14
Aelis Eine

Aelis Eine
  • Members
  • 149 messages

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
Shadooow

Shadooow
  • Members
  • 4 465 messages
well why wouldnt GOG do this? as for other places, I didnt knew that the game sells there, but if GOG adds the unofficial multiplayer support from NWN community, there is a chance that others do the same

EDIT: i see, didnt know that...

Modifié par ShaDoOoW, 07 décembre 2012 - 02:13 .


#16
Aelis Eine

Aelis Eine
  • Members
  • 149 messages
For the same reason they don't include CEP or your 1.70 patch with NWN. The publisher usually has the final say on what should be packaged with their product, and I don't think Hasbro/WoTC is very supportive of community work.

#17
Baaleos

Baaleos
  • Members
  • 1 322 messages
I think someone like Zebranky might be able to help with integration into the nwn GUI.

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)

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 };

When this is sent to a server over udp to their game port - they automatically send back the server status.

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
SHOVA

SHOVA
  • Members
  • 522 messages
I'll go one step further for what needs to be done. Whatever is made to fix this, needs to be on the same vault page as the critical rebuild for 1.69, since most new buyers go there to update their game.

#19
Baaleos

Baaleos
  • Members
  • 1 322 messages
Whoever it is that manages the vault would likely be open to hosting a multiplayer patch on the same page as the critical rebuild.

I've also tweeted to gamyspy and gamespytech to see if they can comment on what has happened to the nwn server list.

#20
Rolo Kipp

Rolo Kipp
  • Members
  • 2 788 messages
<whistles...>

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.
...

It's entirely possible... ;-)

<...nonchalantly>

#21
Visavant

Visavant
  • Members
  • 46 messages

1. Find a way of changing the nwn Gamespy IP Address that the client is looking for to something the community will manage.

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.

2. Understand the networking protocols, so we can emulate the gamespy server.

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.

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)

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....

Modifié par Visavant, 08 décembre 2012 - 01:52 .


#22
Visavant

Visavant
  • Members
  • 46 messages

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
Zarathustra217

Zarathustra217
  • Members
  • 221 messages
Whatever we do, let's see if we can make it something community wide without turning at each other in pedantries. It might be just me, but I think we could achieve more with doing a launcher than modifying the binaries. Still, it should be something simple yet adaptable and able to serve individual needs. Visually, the most neutral solution is just using textures from NWNs own GUI.

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
Shadooow

Shadooow
  • Members
  • 4 465 messages

Zarathustra217 wrote...

- Single player modules?
- Music packages?
- Portraits?
- Overrides?

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.

#25
Zarathustra217

Zarathustra217
  • Members
  • 221 messages
Well, my thought was that there were no reason to minimize the content as long as we just make our data structure versatile and the program able to show content in categories and easily searchable. If we just plan out the organizing right, it'll be very forward to add the support for a large variety of content.

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 .