Networked Servers - Large Community
#1
Posté 29 octobre 2012 - 12:31
Yes - We have vaultster, and other means to achieve shared ServerVaults, and to facilitate portalling from one server to another.
One of the major limitations of this is
* The Player/Character of one server may be completely overpowered or underpowered for another server.
As result, if a character comes into your server from another server, they can bring all sorts of things with them, which can destroy balance, and maybe even economys if you are that rigid on gameplay systems.
So, the idea I had was this:
A Community Driven Space Station Server
Essentially a community webSite - for instance nwnconnections.com were to host this space station server.
Servers redirect their vaultster to this server - so everyone goes here.
Servers who have an account at nwnconnections.com etc
Can customize rule-sets that define what players are allowed in, level caps, maximum item strength, disallowed feats, etc
These rule sets are all stored in a Database that is used by the Space Station.
The player is then able via conversation, to cycle through each of the servers in the list.
He can then attempt to enter the server from the conversation.
Before he gets there however, nwnx_areas plugin, would spawn a temporary customs area for that player.
The player has chests etc that he can drop items into (items that he isnt allowed to take on the plane/shuttle)
And then he can try to enter the server via clicking on the door or portal.
If he passes all the checks, imposed by the ruleset for that server, he portals to the destination server.
If he fails - he is returned to the room/never leaves the room, and has to go back and customize his inventory/ability scores to make himself allowable on the destination server.
Rulesets imposed could include (Customized by the PW Owner that he is travelling to)
(an Example ruleset)
No item of greater worth than 5000000 based on Bioware Pricing
No Gold on Person more than 250000
Remove Flat Out Base Ability Score Edits, and allow only Level Stats.
No more than 4 Ability Gains per Level
No More than 4 Skill Points per Level
Remove all Feats not present in Level Stats.
Remove Specified Feats (eg Playertools etc)
No Plot Items
No Immortal Flags on Self
No Plog Flags on Self
Level Cap etc
Once he passes this, he is then Vaultstered to the destination server.
And the Destination Server admin, is reasonably assured that the Space Station, acted like a quaranteen/customs check area, which ensured that the over powered players from other servers, dont get onto his server, with their overpowered gear.
Instead, they have to get the 'immunizations' etc, to enter.
* Immunizations being the euphanism for 'Character Edits' required to enter the target server.
#2
Posté 29 octobre 2012 - 04:50
Right there with ya, big B!
That is what the Nexus was supposed to be all about, a central, neutral server for meet-up and transport to specific worlds, with "translators" that worked based on which server vault they were coming from and which server vault they were going to (with memory, so they are restored when back-tracking). Er, the *original* Neverwinter Nexus...
Was talking with KCoffee yesterday, in fact and have started on a Hypermodule for that very purpose ;-)
(Also, see thread on using GPG to validate characters...)
<...name badge>
#3
Posté 29 octobre 2012 - 05:09
I am gonna give this a try.
At first, its just gonna be a Single Area Module/Server, no need for hak's / CEP etc
I will try it with my own server.
Eg - Find a way of specifying details rulesets in a standardized way that can then apply the appropriate character edits to the inbound player.
At the very least - It will generate more traffic to my main server. Lol
#4
Posté 30 octobre 2012 - 09:53
What happens when he comes back to the hub? Is it going to be the original high-level character or deleveled one? That would be two different characters already.
How changes from one character version would apply to the other one?
#5
Posté 30 octobre 2012 - 10:32
Im thinking that for every server that the player travels 'From' a stored copy of them can be stored in a database.
If they attempt to return to that Server via the hub, another customs checkpoint is needed to ensure they dont take anything they arent meant to into the server.
Its essentially a case of the server admin needs to make sure that the ruleset they define, allows people to exit their server, and then return again with no changes required to their character.
In the example you are describing,
High Magic, would get de-leveled/de-magic'd to get into a low magic server.
If they were returning, to the high magic server, I would say they have 2 choices.
1. Return as Low Magic
2. Start a Merge Process
Merge could involve
(First - another database backup of the player, this time - coming FROM the low magic server)
1. Put items you want to retain, into a chest.
2. Spawn a copy of the player from database. (the high magic version)
3. Give the items to the npc copy.
4. Optionally copy some ability scores/skills/feats to the NPC (If they are allowed by the destination server)
5. When the merge is done, nwnx possess the npc
6. Export Character - to make the Bic in servervault the npc' bic
Do vaultster, to transfer the merged Bic to the destination server. (assuming the ruleset gave the character the green light)
Its not going to be a simple process - no disagreement there.
To be strictly honest, the safest thing for servers who that participate in a system like to do, would to define RuleSets that make it so that the player who does transition in, is slightly weaker than the server average.
#6
Posté 30 octobre 2012 - 02:22
Q:I like the idea ,can PW put a merchant/npc to avertise their world?
#7
Posté 30 octobre 2012 - 02:51
Eg: People who subscribe to a webSite eg: neverwinterconnections.com or something like that
Could opt in to have their server details shown on 'The Hub'
Then, for every server that is in the database & online, an area is generated: Lobby's etc
The Merchants inside those areas will have conversations that use Chat Tokens (SetCustomToken()) etc - to display a blurb about the server.
There will also be a portal, that allows the player to travel to the Customs Area (if required) or directly to the Server.
Imagine it like a Space Station, or an Airport.
Lots of Terminals
At the very least - it would be a Portal to an infinite amount of servers.
At the most - it could use Vaultster and Advanced scripting to legitamize/convert characters from one server to make them acceptable in another server.
#8
Posté 30 octobre 2012 - 04:38
My server is setup to use C# Code via nwnx plugins.
I happen to have this function, that can query servers, for their status and descriptions.
Im thinking I can setup the Hub server, so players who want to add their server to the available server list, could literally just speak the server IP Address and port, and then this code would go and get all the relevant info from the remote server, and then use it to generate the necessary info to create lobbys etc for each server.
I will give it a test tonight.
I am imagining a system where the player speaks something like
Server:90.22.121.122:5121
The system queries it (should get the data back within 2 seconds, or timeout - it is blocking, so it would freeze the Hub Server for that duration).
The info returned would be a long string containing the
Server Name,
Module Name,
Level Restrictions,
Item Level Restriction Enabled etc,
Password Required,
Player Population etc
as well as the Short Description that comes from the Desc.txt file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace NwnxAssembly
{
public class ServerStatusServices
{
public static string CheckStatus(string sIP, string sPort)
{
var timeToWait = TimeSpan.FromSeconds(2);
var udpClient = new UdpClient(sIP, Convert.ToInt32(sPort));
byte[] sendBytes = new byte[] { 0xFE, 0xFD, 0x00, 0xE0, 0xEB, 0x2D, 0x0E, 0x14, 0x01, 0x0B, 0x01, 0x05, 0x08, 0x0A, 0x33, 0x34, 0x35, 0x13, 0x04, 0x36, 0x37, 0x38, 0x39, 0x14, 0x3A, 0x3B, 0x3C, 0x3D, 0x00, 0x00 };
udpClient.Send(sendBytes, sendBytes.Length);
var asyncResult = udpClient.BeginReceive(null, null);
asyncResult.AsyncWaitHandle.WaitOne(timeToWait);
try
{
IPEndPoint remoteEP = null;
byte[] receivedData = udpClient.EndReceive(asyncResult, ref remoteEP);
return Encoding.ASCII.GetString(receivedData);
// EndReceive worked and we have received data and remote endpoint
}
catch (Exception ex)
{
// EndReceive failed and we ended up here
return "BAD_RESPONSE";
}
return "BAD_RESPONSE";
}
}
}
#9
Posté 30 octobre 2012 - 06:57
As far as the issue of bic files going back and forth between servers, this could be simplified by having it only be one way. What I mean is a player could go from their home server to an new one, undergo the filtering process for the new server, but once that bic file is established on the new server’s vault it would not be able to go back to the home server in it’s altered state.
This would eliminate the need to refilter/rebuild toons, and have it only occur once. It would not be vaultster then, but this might be a good thing. It would preserve the integrity of the PC on their home servers (e.g. going to a new server with a much faster xp rate and then coming back to the home server at a much higher lvl.)
It would be more like plane walking, rather than a shared universe, where going from one plane to another doesn’t affect your character on your original plane.
To have a truly shared universe, I think all servers would have to be using a universal rule set (xp rate, item guidelines, and possibly even core scripts.)
Something like this might also require having multiple versions. For example having low, medium, and high magic versions, or even broken down further to high magic low xp rate, high magic high xp rate, ect…
The PWs would have to come to some sort of agreement about what constituted these things.
A fascinating concept though.
Modifié par Lazarus Magni, 30 octobre 2012 - 06:59 .
#10
Posté 30 octobre 2012 - 10:36
But worth it, I think. *Very* worth it.Lazarus Magni wrote...
This is definitely an interesting idea. I quite like the concept of a NWN 1 connected universe. It would be incredibly complicated though, and quite a few issues would have to be worked out.
This, I think, would be a good *setting* between servers. They may choose one way or the other, but it wouldn't need to be either/or.As far as the issue of bic files going back and forth between servers, this could be simplified by having it only be one way. What I mean is a player could go from their home server to an new one, undergo the filtering process for the new server, but once that bic file is established on the new server’s vault it would not be able to go back to the home server in it’s altered state.
I think a better approach is to establish "translators" between server vault pairs. If all the characters on a star of servers use the same server vault/HR set, then no translation needed. Between two related, but slightly different rule sets- minimal translation. Between wildly different servers (think D20 vs Mothra, er, Arnheim) - Heavy custom translator....
To have a truly shared universe, I think all servers would have to be using a universal rule set (xp rate, item guidelines, and possibly even core scripts.)
Something like this might also require having multiple versions. For
example having low, medium, and high magic versions, or even broken down
further to high magic low xp rate, high magic high xp rate, ect…
The PWs would have to come to some sort of agreement about what constituted these things.
A fascinating concept though.
There is the trust issue involved, also. If I was to link Amethyst with Arnheim, I'd probably be willing to accept the characters with minimal translation because I know his world has similar xp/magic/whatnot values and I trust characters coming from there.
Were an unknown server to look for a link, I'd have the strictest translator involved to be sure the L33t folk were pared down.
Finally, natives of Amethyst, players who are regulars and built their characters in my server vault family, would have certain very palpable advantages over world-walker. The idea being to open up the migration of players among servers, but to still encourage your natives to stay and play.
I am *really* behind this initiative, in case anyone missed it :-)
<...a babelfish>
#11
Posté 30 octobre 2012 - 11:09
I've made good progress tonight.
I have a persistent server up already, called 'The Hub:Online Portal'
Its currently displaying the details for my own PW, and players can cycle through a conversation, and choose which server to portal to.
Granted - it doesnt do character transfers yet.
One hurdle at a time.
I am in the process of developing the mechanism allowing people to add their own servers via ingame conversation.
Note - That code I added above works a charm, its able to tell immediately whether the server is up or down.
Granted - my server that I am testing it with, is next door to it, so might not be an adequette test.
Anyone wana beta test?
Hub IP is 31.132.2.125:5121
#12
Posté 30 octobre 2012 - 11:18
And I think for say a cleric entering Arnheim it could get very tricky. Do I allow them to pick a religion in the setting? Or do I enable my set of religions to expand and include theirs? Theoretically I could do the later. The former would require a merging of my "Welcome To Arnheim" character adjustment/building area with some NWNX and Leto magic. Unfortunately that is not presently in the cards as I don't have an intel based server. ...
and so anyway all that written merely to illustrate that translators would likely need to be specific for at least some worlds.
if teams worked in conjunction on this from the beginning however, the sky would be the limit. Way back in the months prior to release of NWN I tried to get some others to work with me on a similar idea (multiple modules built and served independently but linkable. Roger Zelazny's multiverse of Amber and Shadows was my inspiration ). Ondaderthad unfortunately destroyed that group to my great disappointment. Seeing this thread and the excitement here has piqued my own.
Modifié par henesua, 30 octobre 2012 - 11:18 .
#13
Posté 30 octobre 2012 - 11:48
Not gonna pretend that it can handle all scenarios or all servers.
Eg - I have a server that has Gods that actually run around with Plot flag enabled - I bet those wouldnt want granted entry to other peoples servers.
As such - The Major, and most obvious things are the first things to tackle.
Server Admins could say
Allow/Disallow plot flag (most would disallow)
Max Character Level
Disallowed classes
Subraces
Feats
Skills
Ability Scores
Inventory
These are the major ones that would need to be processed.
The sneaky ones - would be things like Local Vars stored on the items as well.
Eg - Imagine SQL Injection attack, where instead of injecting bad sql, your actually putting specific variable values on your items, travelling to a server knowing that they have a system that would read and interpret those vars.
As such -I think Variables on items would prob be safer if they were deleted - this might reduce their value on certain servers. Who knows....
But guess it would be the receiving server admins choice if he wanted to accept them or not.
#14
Posté 31 octobre 2012 - 12:12
I wonder if it is possible to have a verification process for this. Can the two servers talk to one another prior to sending a PC through the portal?
#15
Posté 31 octobre 2012 - 12:24
Eg:
The Hub calls its own PHP Page, which then calls the Server Owners PHP Page.
They can share data with eachother, and then the Hub php page would receive the output.
Here is a novel idea.
What about making it so that the php page actually downloads an ncs file from the destination server, which is then run on the player who is being translated/validated?
ncs Files are basically compiled Binary data files - they could be downloaded by the dotNet plugin I have for nwnx.
It downloads it to the externalsources directory - runs it on the player, and then that way, the server admin gets the ability to customize entrants to his server the way he wants.
You might object to this idea - but lets face it - once the player enters that server admins server, the admin can do anything he wants to the bic file anyway - and since the script would only run on characters who were transitioning - no harm no foul.
Only thing though - is security - making sure that the Script doesnt have things like infinite loops, or GetFirstPC() calls etc
anything that would let the script access anything besides the player.
In other news - I have got the data entry section done.
People can now enter the Hub server, and submit their servers to the database, which will then be displayed as travel destinations.
#16
Posté 31 octobre 2012 - 01:33
Works well.
basically - it portals you to an area that is generated specifically for you, and inside this area
you can speak
servername:<the server name>
ipaddress:<the ip address>
port:<the port>
description:<short description>
followed by 'finished'
It then checks if the remote server is online, and if so - it checks if its already added to the database (by ip address and port together)
If it is a brand new unique entry - it adds it to the database.
I didnt have any volunteers so I added Higherground Hub 1 - just to test it, and it seems to be working.
If they want me to remove it - just let me know, figure the free advertising couldnt hurt, especially if it allows people to portal from my server to theirs.
Yeah- tested another 2 things.
Normal Portalling - yes, it can direct traffic to the target server- they wont have their character though - but its good for directing traffic.
Vaultster Portalling - Got this working between my main PW and TheHub - worked alot faster than I thought it would, litterally was 1 second and bam, was in my other server, with the character I made on the Hub.
Still lots of work to be done.
Note: The Server is still running the Vaultster version of code - so if you do try to test it out, it wont work for anything besides a vaultster enabled server, that has default password, and has 31.132.2.125 in its allowed dns list.
#17
Posté 31 octobre 2012 - 05:18
Baaleos wrote...
The WebService type setup I have - where I can actually call php webPages from inside the game, would be able to facilitate that sort of thing.
Eg:
The Hub calls its own PHP Page, which then calls the Server Owners PHP Page.
They can share data with eachother, and then the Hub php page would receive the output.
Here is a novel idea.
What about making it so that the php page actually downloads an ncs file from the destination server, which is then run on the player who is being translated/validated?
ALTERNATE METHOD: Set a variable on the PC - that ques the server they are entering to run whatever script THEY want on it - that way you don't have incoming .ncs anywhere.
Be well. Game on.
GM_ODA
#18
Posté 01 novembre 2012 - 10:49
Thats why when the server turns off, and on again, they get wiped.
Could store them on an item in his inventory though.
#19
Posté 09 novembre 2012 - 02:36
However, I think it is a worthy idea and I'd be willing to support it.
#20
Posté 31 décembre 2012 - 10:47
FYI - TheHub server has been updated to make use of the NWN WebService API.
Any server posting to the new Master server, is now accessible from inside TheHub (game server)
Users can browse all Master Server game servers via conversation inside 'TheHub' and then portal to the place of their choosing.
Vaultster functionality has been disabled for the time being.
So for the time being - its just a case of portaling to the destination server - without bringing your character with you.
If anyone is interested in working on this project with me - let me know.
The end goal is to create a system where Servers can receive Character transfers from The Hub, and that each PW Server can have customized entry rules that must be passed before a Vaultster transfer is carried out.
#21
Posté 31 décembre 2012 - 05:43
I'm interested, B. Very.
But, as you know, busy all over the map. :-P
Still, I want to be involved and intend to help... somehow.
You're envisioning the entry rules as a filter? Not a translator?
<...rather than dead>
#22
Posté 19 février 2013 - 04:59
We need to solve this problem as well. Our ideas are subtly different from yours. We prefer to have a peer to peer approach rather than a central hub, and to solve a great number of the potential downfalls via system design rather than technically, BUT regardless of these differences working on a system to translate characters between worlds is clearly a shared interest.
Your input is valued.
Modifié par henesua, 19 février 2013 - 04:59 .





Retour en haut







