Author Topic: NWN 1 lives on!  (Read 4630 times)

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
NWN 1 lives on!
« Reply #120 on: March 25, 2013, 02:06:28 pm »


               

Urk wrote...

From where I sit it's simple... we KNOW how to fix the dents. We don't need anyone's help banging them out. All the whining for official support is a waste of breath. Time better spent modding and leveling up.

Yea of course, few peoples found out how to fix it and fixed it on their own, but the problem is that this community, meaning members of this forum, didnt supported them. It seems that many forum/community members do not approve their work and others trying to come up with their own solutions instead.

There is missing a "standardization" players are simply told, you can do this and that and you see it. Instead we tried to add the new replacement into everyones' clients either by GOG or CP or CEP maybe.

And Lazarus pointed one thing very precisely. These informations about the gamespy issue and the new replacement aren't even stickied!

And the threads about it are a mess. The main issue I see there is the usage of NWNCX or modified executables and thats what is dividing this community.

So why don't we figure out how to make it the way everyone will be satisfied?
               
               

               


                     Modifié par ShaDoOoW, 25 mars 2013 - 02:08 .
                     
                  


            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
NWN 1 lives on!
« Reply #121 on: March 25, 2013, 02:34:18 pm »


               A standardized web API that the community can contribute to, to add their own methods etc
And then - if anyone wants to make their own branded application - its basically using the same back end code

I'd be happy to work on something like this - but I would only be able to contribute if it was a C# based project.
Which I know is not generally the desired language - everyone wants to use ruby etc for max compatibility.

Im perhaps envisioning it a little too simple - but I could see it to the point where some devs volunteer to maintain the web api, and then people in the community could lodge requests with the team via a forum, to ask for function additions or report bugs etc

Entry criteria for new functions could be judged based on whether its already do-able in the api, and how many people would use such functionality.

eg:  Request - Could a function be added to the API to return an array of player objects on the specified server.

Once coded, the community could then use something like

Player[] arrayOfPlayers = GameServer.GetPlayers();

And since this would be a web Api - everyones code would be updated on the fly when the developers make additions to the api - basically like an online include file/function file.

Yes - this might be a little too lower level than what we are aiming for - but a lower level approach could be a starting point for a common project.
It would also serve to get the community involved in coding, as well as being re-usable for when a community launcher app is started.
               
               

               
            

Legacy_painofdungeoneternal

  • Sr. Member
  • ****
  • Posts: 313
  • Karma: +0/-0
NWN 1 lives on!
« Reply #122 on: March 25, 2013, 03:30:13 pm »


               

ShaDoOoW wrote...
So why don't we figure out how to make it the way everyone will be satisfied?


There is no one way everyone will be satisified.

There is no one language everyone uses, nor should there be one product everyone is required to use. We are both helped by a project like the CEP, but also limited by it, since it forces everyone to use it's choices, is either including everything, or it's including just the top of the line best. We need to not be limited to a large take it or leave it approach.

The thing that needs to be agreed on, is standards for inter-author communication, for inter-project support, so if a developer wants to build off of what someone else is doing, they can do so, but which makes everything a choice.

Baaleos wrote...
A standardized web API that the community can contribute to, to add their own methods etc
And then - if anyone wants to make their own branded application - its basically using the same back end code


An api is a language neutral method of making code available to anyone, from a given project regardless of language. You would not contribute functions to it, nor would your language matter, it's an interface into another persons code base, and allows developers to cooperate without having to actually all agree on doing things a certain way. It allows for very creative things called mashups, which are made of multiple API's all arranged and set up to work together.

It's usually done by websites, or sometimes by servers without a website ( called a REST or SOAP api ), but the idea is anything which can make a network socket, can use and manipulate the data in a API of that sort. Then people can make their own apps in ruby, in php, in C# or as NWNx plugins which can be used on servers or by end users using NWNCX. These people can use the given API alone, or even better, correlate the data with other information and make entirely new things ( a mashup ), ie combining google maps api ( probably the best known) with the gamespy API to make a map of the world which shows the servers in your country or region, thus you can find all the PW's in europe which likely have good ping. Just about every major website ( drop box, facebook, google, twitter, shutterfly, amazon ) has an API like this.

Uses involve social networking, file sharing, payment gateways, amazon lets you turn on and off virtual servers, dreamhost lets you manage your virtual host, mapping, data sharing, and the list goes on and on.

Another way it's done is a dll or dylib, which can be loaded by other projects, Tani's erf utility did this, it included an offical game DLL as a resource and ran the official code written in C via C# ( i think, been a while since i looked at the source ). Most languages have ways of using such files, since this is how they have to use the system resources of the OS.

What you are describing is a good idea, but it should be multiple simple API's in a mashup, not a single monster one. I don't want to write an API in C# like skywing did, and he does not want to change his API since it's got multiple people ( at least 6 projects ) depending on it working exactly as it does now or their projects will break. And if it starts doing too many projects, it would start getting slower and slower, all it does is list servers and meta information about them.  I am setting up my API in php, and it will support xml, json,  and php serialized arrays, and be usable directly via java script bypassing cross domain restrictions. It will have vault data and nexus data in it.

If i happen to have another idea, i would actually create an entirely new api. If someone comes up with a good idea for an API, i could probably provide enough code so they could set up their own API which would work similar to mine, but it would have to be in php. I just don't see this as realistic, since everyone good enough to do this, probably does not need code examples, and prefers their own language of choice.
               
               

               


                     Modifié par painofdungeoneternal, 25 mars 2013 - 03:44 .
                     
                  


            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
NWN 1 lives on!
« Reply #123 on: March 25, 2013, 03:42:03 pm »


               I still doesnt understand what is web API for this issue with gamespy replacement.

We certainly don't need more web-based server lists, there are three already each contains different datas which really doesnt help.

This community should decide and promote one of the offered solutions as official. Yes bioware is gone so by the definition it wont be official, but it is community now who continue to develop and support this game so whatever we all mark as official simply become official. If it will be oficial in the meaning of recommended by the community it will be easier to find and more used.
               
               

               


                     Modifié par ShaDoOoW, 25 mars 2013 - 03:42 .
                     
                  


            

Legacy_painofdungeoneternal

  • Sr. Member
  • ****
  • Posts: 313
  • Karma: +0/-0
NWN 1 lives on!
« Reply #124 on: March 25, 2013, 03:46:32 pm »


               

ShaDoOoW wrote...

I still doesnt understand what is web API for this issue with gamespy replacement.

We certainly don't need more web-based server lists, there are three already each contains different datas which really doesnt help.

This community should decide and promote one of the offered solutions as official. Yes bioware is gone so by the definition it wont be official, but it is community now who continue to develop and support this game so whatever we all mark as official simply become official. If it will be oficial in the meaning of recommended by the community it will be easier to find and more used.


Is NWNCX web based? No
Is Never launcher web based? No
Is there an actual website? No, the websites are third parties.

The original system which skywing wrote, was for usage in the NWN2 client extender, and integrated with xp_bugfix for NWN2, the support for NWN1 is mainly due to it being set up the exact same way, and his asking others to do the work of implementing it for NWN1 ( which Virusman is doing by adding it to NWNCX, and the many sites which are using it ). There was no original intention on it being just for websites, rather the intention was for people to surprise him in how it's used.

There are many websites hosting the data, but it's just data over a network socket from his source, and it means one server to point your servers hosts file at. It is impossible to replace a gamespy server without an actual central server. How this data is used, is up to whoever wants to make a new solution for the community.

The reason there are so many is that it's very easy to use a API to get and show data. I also don't know of many which are not supporting it in some manner, most are using it entirely, others are just referencing it to some degree, but all agree to work with his system - the only one which seems dead set against it is neverwinterconnections which is not yet offering anything, and I get the impression it's still more plans than a real implementation.

Perhaps being so many choices is confusing to end users, but the underlying data is not really different, it's more like being able to choose which skin you want to use, or which method. An end user should not feel forced to patch their exe file, or use NWNCX to modify their game process without any patching, or to install a complete application like mine, and should be able to just use a website if they so choose. But likewise they should not be limited to one solution either, and should be free to choose any of the above methods.
               
               

               


                     Modifié par painofdungeoneternal, 25 mars 2013 - 04:56 .
                     
                  


            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
NWN 1 lives on!
« Reply #125 on: March 25, 2013, 06:03:16 pm »


               If there is a demand for a community launcher - then perhaps the first step should be to actually put together an official list of requirements, and treat it like a real project.
I dont mean to bash anyone about this project- but its been talked to death for months, and I myself am guilty of this - I've said aload of things I consider would be great additions, but never released anything - because everyone wants it in a universal language like ruby etc

Do we have a centralized list of features or requirements for the launcher?
               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
NWN 1 lives on!
« Reply #126 on: March 25, 2013, 07:09:24 pm »


               I want the launcher that Pain has talked about. '<img'>
               
               

               
            

Legacy_Urk

  • Sr. Member
  • ****
  • Posts: 253
  • Karma: +0/-0
NWN 1 lives on!
« Reply #127 on: March 25, 2013, 08:16:53 pm »


               I agree with pain. Any attempt to "centralize" or "standardize" a gamespy replacement would not only be futile, it would be ill-advised. Even if we could get the entire community to agree on an alternate solution, which will NEVER happen, what happens in 5 years when the person or persons responsible for maintaining the "official community" server has a change of heart and shuts it down?

No. Decentralized solutions are better than centralized ones. It allows more freedom of choice and reduces the chances of a catastrophic system failure.

I also think low tech solutions are better than high tech ones. Again... down the road things change. The player base will continue to dwindle, and that means the skill set for maintaining fan based systems will also get smaller. If the solution is not open sourced and the developer decides to abandon the project... system failure. If the system is overly complicated, if it requires expensive licenses to use, or if it's just badly comented and the developer decides to abandon the project and the community does not have the skills and/or money to maintain it... system failure.

Besides, retro gamers are a pretty smart lot. I think you'll find the vast majority are quite accustomed to making mod choices and tweaking old games to work on modern machines.
               
               

               


                     Modifié par Urk, 25 mars 2013 - 08:27 .
                     
                  


            

Legacy_painofdungeoneternal

  • Sr. Member
  • ****
  • Posts: 313
  • Karma: +0/-0
NWN 1 lives on!
« Reply #128 on: March 25, 2013, 11:50:16 pm »


               not total agreement.

There has to be one authoritative and centralized list of what servers exist. Having multiple lists makes it hard on the PW admins trying to get on every list, and creates issues where some servers are on one list and not another, and makes it very complex for third parties like myself who want to use that data - hmm lets get what he has and he has and merge both of them. That data can be mirrored, synced, and the like, but we need a central spot which has authority for what is up and what is not up.

That being said, the data HAS to be open, with a secure and well run host, with posted code to allow us to recreate it easily if need be, and that data should be usable by anyone in the community who so desires, to access via any programming language dynamically.

I understand what NeverwinterConnections is planning, it just does not make sense since there are PW's listed on the Skywing API using the single method you are proposing ( hosts file edit ) as the only means they could get to work. The skywing API has developed and matured enough to have a lot of methods of joining it, but the most "Simple" method it is using, and you are proposing to use of hosts file edit, would require a PW admin to choose which one. And the benefit of it is limited to just getting another website ( we have plenty already ) and would not be available to third parties, for in game server listings, for my launcher.

The skywing API specializes in the gamespy replacement, it's all it does, it does this using multiple methods, including all the ones so far discussed, and has a working and well tested system. There are bugs in it, like any software project, but those are minor and will be dealt with long before your competing system is up, and it's supporting an ecosystem of projects all of which are already reliant upon it.

If you do decide to continue with your project, it's imperative for the community that you talk to skywing, work with him on making sure that any servers choosing yours over his, is properly synced. As for your getting his server listing, it's open and available for you to get dynamically, and i have a rough working php class which can be used as a starting point.

( Note that for the most part, the developers of all the existing projects are ALL working together and getting the data into Skywings API, or using his API, there is already widespread agreement under the hood, the only real exceptions are XFire and Gameranger who are using their own users as a data source, and those systems are set up for far more games than NWN )
               
               

               


                     Modifié par painofdungeoneternal, 25 mars 2013 - 11:53 .
                     
                  


            

Legacy_painofdungeoneternal

  • Sr. Member
  • ****
  • Posts: 313
  • Karma: +0/-0
NWN 1 lives on!
« Reply #129 on: March 26, 2013, 12:08:10 am »


               

Baaleos wrote...

If there is a demand for a community launcher - then perhaps the first step should be to actually put together an official list of requirements, and treat it like a real project.
I dont mean to bash anyone about this project- but its been talked to death for months, and I myself am guilty of this - I've said aload of things I consider would be great additions, but never released anything - because everyone wants it in a universal language like ruby etc

Do we have a centralized list of features or requirements for the launcher?


I think i have most of those requested features in my project already, most of them working or close to being working. ( latest screen shots in the last post )

I am not using Ruby, however I do support Mac and PC, and probably will support linux eventually as well. I am working out an API so anyone can have access to the same data as i am using.

I don't see what i am doing as that urgent since NWNCX was released, which solves the ingame listing issue, and see the need to keep both my app and any third party content ( like NWNCX, CEP, PRC, Project Q ) completely up to date, and handling version checking. I also do not want to create a perception that I am doing a MP only tool, and working on feature parity for SP users in joining modules, and for authors in tools for their content, and for the NWN1 features to match the NWN2 features.

My main goal is to make playing, using custom content, playing a module, hosting a MP game, as easy as hitting "play" yet also at the same time following best practices so that guy setting up a DM'd lan game has a hosting configuration as good as an experienced PW admin. ( even then i am concerned about setting up their router, and might be able to open ports via UPNP being turned on )

I am probably going to release a beta to select users in another week, and based on feedback release entirely after that, or revise things to fix any issues found. After that, i will be periodically adding new features and bug fixes and using my app's autoupdate to ensure everyone has the latest and most bug free version.
               
               

               


                     Modifié par painofdungeoneternal, 26 mars 2013 - 12:17 .
                     
                  


            

Legacy_Lazarus Magni

  • Hero Member
  • *****
  • Posts: 1837
  • Karma: +0/-0
NWN 1 lives on!
« Reply #130 on: March 26, 2013, 02:12:02 am »


               

painofdungeoneternal wrote...


Have you tried sending a PM to Selene Moonsong, and asking her to sticky a thread or two which you've prepared, then commit to maintaining such thread ( which you obviously are already doing ). She is not a bioware employee, but is among those who can sticky and unsticky threads.


Done.
               
               

               
            

Legacy_Urk

  • Sr. Member
  • ****
  • Posts: 253
  • Karma: +0/-0
NWN 1 lives on!
« Reply #131 on: March 26, 2013, 06:31:50 pm »


               

painofdungeoneternal wrote...

Baaleos wrote...

If there is a demand for a community launcher - then perhaps the first step should be to actually put together an official list of requirements, and treat it like a real project.
I dont mean to bash anyone about this project- but its been talked to death for months, and I myself am guilty of this - I've said aload of things I consider would be great additions, but never released anything - because everyone wants it in a universal language like ruby etc

Do we have a centralized list of features or requirements for the launcher?


I think i have most of those requested features in my project already, most of them working or close to being working. ( latest screen shots in the last post )

I am not using Ruby, however I do support Mac and PC, and probably will support linux eventually as well. I am working out an API so anyone can have access to the same data as i am using.

I don't see what i am doing as that urgent since NWNCX was released, which solves the ingame listing issue, and see the need to keep both my app and any third party content ( like NWNCX, CEP, PRC, Project Q ) completely up to date, and handling version checking. I also do not want to create a perception that I am doing a MP only tool, and working on feature parity for SP users in joining modules, and for authors in tools for their content, and for the NWN1 features to match the NWN2 features.

My main goal is to make playing, using custom content, playing a module, hosting a MP game, as easy as hitting "play" yet also at the same time following best practices so that guy setting up a DM'd lan game has a hosting configuration as good as an experienced PW admin. ( even then i am concerned about setting up their router, and might be able to open ports via UPNP being turned on )

I am probably going to release a beta to select users in another week, and based on feedback release entirely after that, or revise things to fix any issues found. After that, i will be periodically adding new features and bug fixes and using my app's autoupdate to ensure everyone has the latest and most bug free version.


Just FYI I love the MP launcher idea. IMO it's the best idea yet for a working solution to the gamespy issue. I like that it's independent of the game and all of the special features you are adding are AWESOME. 

I especially love the Mac support. We really need to pressure GoG into releasing the MaC versions of NWN. 

I do still fear the centralization of the list server. If Skywings tracker goes down, the whole system crumbles. 
               
               

               


                     Modifié par Urk, 26 mars 2013 - 06:36 .
                     
                  


            

Legacy_painofdungeoneternal

  • Sr. Member
  • ****
  • Posts: 313
  • Karma: +0/-0
NWN 1 lives on!
« Reply #132 on: March 26, 2013, 09:13:44 pm »


               

Urk wrote...
I do still fear the centralization of the list server. If Skywings tracker goes down, the whole system crumbles. 


True, but skywing is pretty reliable. The root issues is that is how gamespy is designed, nothing we really can do about it. The closest we can do is mirror the data, which is possible since it's open. His API however specializes in this, and he's already dealing with a lot of details I am sure no one else even knows about. I am sure if you discuss it with him, he could even discuss a means of mirroring, or show why it's a non issue, and show you the source code thereof, as he's always worked with the community and shown integrity and reliablity.

The issue is that everyone's project has to have a data source that is dynamic, and it basically has to be structured similar to gamespy which is centralized. Now if we all have different lists, it's impossible to make them accurate and we would be competing on who has the most accurate list. If we all have the same list, then we can ALL work towards making them accurate, and likewise we all don't have to reinvent the wheel and can instead compete on who can deliver that data best to the player. ( and i mean friendly competition to deliver a better product )

My thought is that we all should specialize on our own area of expertise, and cooperate with whoever seems like they have the best solution. The community is stronger when we work together and don't do each thing on our own. This is kind of the problem which is solved by mashups, it allows you to grab good parts from other services ( via a secure and open API ), and lets your app have features of facebook, twitter, google search for example - i don't think i can make a better search engine than google, nor would i want to, nor do i want to learn how to do matchmaking, even though I want to get such features into my app ( and increase the likelyhood of such matchmaking ).

Further we should embrace and support what is working, and presume it's being reliably run, but likewise plan for when it might go down. To me this is just a list of PW's, so I can deal with it going down and replace it if needed. I plan on supporting the vault as is, until it goes down, but unlike this which is relatively trivial to recreate, the vault ( and Rolo's backup project ) are a bit more worrisome so I am discussing a backup plan with Rolo just in case.

Note that you can use his data dynamically, keep a data of it on your site and periodically mirror it. Likewise you can provide an easy to use interface to updating his data and your data ( the add server function is not working on the one web site that offers that even after providing a workign example, we need such a feature urgently for ease of use reasons ), and cooperate with what he is doing, and set it up so if his does go down, you have a complete copy ( including inactive servers ). But as long as his is up, we should work on making sure his is authoritative and accurate since it's already being used in so many projects.

I actually set up a very rough class, showing how to do the communication, with examples, which I provided to one of the many "competing" systems - i can provide this to you ( i did it at about 2 am and so not really wanting to release it publicly until another php developer vetts it and reviews it for mistakes ). I don't think he's using that to a large degree, but he is communicating new servers and getting ones from the API that weren't submitted to him -- we all should be able to do our own thing, but we need to work together and make sure that the actual list people get via whatever source is complete and accurate.

Basically it is a good idea to talk to skywing and discuss what you are both doing, and how they can relate to each other in a way that benefits everyone. ( communication tends to be a good idea )  Remember I am just a third party myself, another member of the community, and my respect for skywing is based on how much he has done for my PW and the years of advice he has given me - much like what Virusman, Funky, Elven, Zebranky and others which you probably know a lot better since they are more focused on NWN1. Likewise my support is based on self interest, I don't want to spend my time recreating what he has done, and instead want to provide a better interface into using this data ( which is actually a sneaky way to prevent people going to the tech support forums because they have messed up their own installs and install things for them ).
               
               

               


                     Modifié par painofdungeoneternal, 26 mars 2013 - 09:26 .
                     
                  


            

Legacy_virusman

  • Sr. Member
  • ****
  • Posts: 448
  • Karma: +0/-0
NWN 1 lives on!
« Reply #133 on: March 26, 2013, 09:18:14 pm »


               Also, as far as I know, Skywing's server implementation is open source, so even if it ever goes down, it's just a matter of time before another server with the same functionality and API appears and all clients will just have to update their configurations.
               
               

               


                     Modifié par virusman, 26 mars 2013 - 09:28 .
                     
                  


            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
NWN 1 lives on!
« Reply #134 on: March 27, 2013, 04:55:11 pm »


               The only way we will get around the vulnerability of a server/page going down is if we invest/create in our own cloud managed server infrastructure.

Which isnt that hard to create.
My PW Content downloader kinda does this - it checks to see if there are any peers that have the content online - and if so - it downloads the content from them instead . (it uses md5 hashes to make sure the file being sent/received is the correct file - to dissuade abuse/viruses)
But in theory- its technically feasible to have the same backend server code on multiple servers - provided by people in the community, and then if one goes down: it just takes the next available.
heck - it could even choose the one that is best ping for the player - if we really wanted to get technical.

That being said - we would still need a list of Servers to be read in by the application, and that would need to come from somewhere.
eg: Central Server location - where the pw downloader/app looks to get the cloud server ips etc
Then it checks each ip to see whether there is a server list at that location that is up to date.

It looks very impressive when laid out as a spider diagram.


                                                       ServerList(Public)                                    ServerList(Public)
ServerList(Public)                        CloudServerList ServerList(Public)
                                            ServerList(Public)                                        ServerList(Public)

Note - the ServerLists are meant to be around the CloudServerList
The CloudServerList redirects the player to the best Public Server list for their location/ip address.
And then the players application will then download the server details from that ServerList instance.
If one of the servers goes down - then the others in the network would be able to accomodate users.

The more participants in the network - the more structurally strong the system becomes.
eg: It would take more servers crashing or going offline to cause downtime for players.
               
               

               


                     Modifié par Baaleos, 27 mars 2013 - 04:57 .