Author Topic: NWN Gamespy Server Replacement Project  (Read 11449 times)

Legacy_Aelis Eine

  • Full Member
  • ***
  • Posts: 212
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #15 on: December 07, 2012, 02:02:31 pm »


               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.
               
               

               
            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #16 on: December 07, 2012, 02:29:10 pm »


               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 .
                     
                  


            

Legacy_SHOVA

  • Hero Member
  • *****
  • Posts: 893
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #17 on: December 07, 2012, 04:03:46 pm »


               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.
               
               

               
            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #18 on: December 07, 2012, 04:37:07 pm »


               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.
               
               

               
            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #19 on: December 07, 2012, 06:00:56 pm »


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

               
            

Legacy_Visavant

  • Jr. Member
  • **
  • Posts: 54
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #20 on: December 08, 2012, 01:50:59 am »


               

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 .
                     
                  


            

Legacy_Visavant

  • Jr. Member
  • **
  • Posts: 54
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #21 on: December 08, 2012, 01:55:08 am »


               

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 .
                     
                  


            

Legacy_Zarathustra217

  • Sr. Member
  • ****
  • Posts: 322
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #22 on: December 08, 2012, 11:13:16 am »


               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 .
                     
                  


            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #23 on: December 08, 2012, 11:19:57 am »


               

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.
               
               

               
            

Legacy_Zarathustra217

  • Sr. Member
  • ****
  • Posts: 322
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #24 on: December 08, 2012, 11:27:20 am »


               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 .
                     
                  


            

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #25 on: December 08, 2012, 11:33:28 am »


               

Zarathustra217 wrote...

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


Well I would love to see something like this happen.  I was messing about with the idea...  Lua is the language I hack stuff in so the format I worked up was like this:


Server {  
   ip = "1.1.1.1", -- or hostname whatever.  
   port = 5121,  
   mod = { "optional uri to download module for SP", "md5" }  
   name = "Game/Server Name",  
   tlk = { "optional uri to tlk", "md5" },  
   homepage = "optional uri to homepage",  
   manifest = "optional uri to manifest as used by the old CEP2.3 updater..."

   Hak { "optionaluri to hak 1", "md5" },  
   Hak { "optionaluri to hak 2", "md5" },  
   Hak { "optionaluri to hak 3", "md5" }
   -- .. etc
}

I think a good analogy would be to make it like Magnet links for NWN, that downloaded and installed all the haks/tlks you need to play.

Website operators (there could be more than one) could accept these files and maybe a Markdown file with your servers description.  If people wanted a list of every server in the universe the website could offer them all zipped for download.  
               
               

               


                     Modifié par pope_leo, 08 décembre 2012 - 11:36 .
                     
                  


            

Legacy_Zarathustra217

  • Sr. Member
  • ****
  • Posts: 322
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #26 on: December 08, 2012, 11:39:46 am »


               Sure, magnet links would be nice, but I think that given the relatively limited amount of servers still active, having them all included with the installer is realistic - and the same with other content really. You could have several thousand entries without it adding significantly to the download size. It'll also help the smaller servers and start out projects by not having to rely on people finding them by searching the web, so that people could explore all the community content of NWN in one easily accessible place.
               
               

               
            

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #27 on: December 08, 2012, 11:43:50 am »


               

Zarathustra217 wrote...

Sure, magnet links would be nice, but I think that given the relatively limited amount of servers still active, having them all included with the installer is realistic - and the same with other content really. You could have several thousand entries without it adding significantly to the download size. It'll also help the smaller servers and start out projects by not having to rely on people finding them by searching the web, so that people could explore all the community content of NWN in one easily accessible place.


Yea, I see what you mean.
               
               

               
            

Legacy_Zarathustra217

  • Sr. Member
  • ****
  • Posts: 322
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #28 on: December 08, 2012, 11:44:20 am »


               And thought about md5 check as well, but I also think we really should focus on making it forward for the content makers too. Since I think it would be too much to depend on centralized hosting of files, we would need people to manually fetch the md5s. Encouraging people to include a version number in filenames is probably simpler.

It's somewhat the same reason I propose XML - it's so forward to use and so well-established a standard.
               
               

               


                     Modifié par Zarathustra217, 08 décembre 2012 - 11:44 .
                     
                  


            

Legacy_leo_x

  • Sr. Member
  • ****
  • Posts: 403
  • Karma: +0/-0
NWN Gamespy Server Replacement Project
« Reply #29 on: December 08, 2012, 11:52:21 am »


               No reason the md5s couldn't be optional... I agree that XML would probably be best.