MudBytes
» MUDBytes Community » Coding Discussions » Coding and Design » A third party intermediary be...
Pages: << prev 1, 2 next >>
A third party intermediary between client and server?, Another "has anyone does this"
Impacatus
Apprentice




Group: Members
Posts: 33
Joined: May 5, 2008

Go to the bottom of the page Go to the top of the page
#1 id:37113 Posted Nov 4, 2009, 4:43 pm

I'm not sure I have the terminology right, but hopefully you can understand what I mean.

Let's say there's a mud you like but in your view it's missing one feature, and you're not the only one.  You're too attached to the community to start a competing mud.

For example, let's say you want to add PvP.  You create a special server that everyone who wants PvP can log into.  Most of the time, this just relays commands to the client from the official server and back.  However, when you want to fight a PvP battle with someone else on the special server, it uses the stats to of the two characters to run a battle.  Once it's resolved, it makes the loser hand over their inventory and commit suicide.

Like the other thing I asked about, more of a novelty than anything else, but I'm curious if this has ever been done.

Last edited Nov 4, 2009, 4:44 pm by Impacatus
Zeno
Wizard






Group: Moderators
Posts: 1,200
Joined: May 15, 2006

Go to the bottom of the page Go to the top of the page
#2 id:37115 Posted Nov 4, 2009, 5:23 pm

But wouldn't that require the server (MUD) to code in something to handle all this? If the MUD is missing something you want and is not willing to code it in, I doubt they would be willing to code something else in to "hand off" this feature.
.........................
-Zeno McDohl,
Owner of Bleached InuYasha Galaxy.
Zenorebirth: Free MUD host.
Learn how to build in Smaug at Smaug Building Institute.

Impacatus
Apprentice




Group: Members
Posts: 33
Joined: May 5, 2008

Go to the bottom of the page Go to the top of the page
#3 id:37116 Posted Nov 4, 2009, 5:33 pm

Not necessarily.  Admittedly, only people on the alternate server would be able to see what's going on, but if it has control of all the accounts involved, then it could alter them by whatever means necessary.

Like the PVP example.  All the alt server really needs is:
-the stats of the two players
-the ability to transfer spoils from the loser to the winner

To the official server, the whole battle might look something like this:
playerA: get stats
playerB: get stats
playerB: give all to playerA

The whole battle is run in the alternate server.  Once it's determined that playerA is the winner, the alternate server simply makes playerB hand over his/her possessions.

I'll admit, I don't really see a big need for this, I just thought it might be interesting to think about.

Confuto
Conjurer






Group: Members
Posts: 115
Joined: Nov 1, 2008

Go to the bottom of the page Go to the top of the page
#4 id:37117 Posted Nov 4, 2009, 5:34 pm

I know someone created an intermediary client for one of the Iron Realms games that essentially relayed information from the server to the actual client. The advantage of doing this was that it could be used to create compiled modules written in C that would have otherwise been written in a particular client's scripting language. I think a mapping module was created (back when IRE games didn't have mapping, I assume) as well as a combat module and even an IRC module.

While this system was used primarily by individual players, the way it operates is somewhat similar to what you describe. Essentially it would connect to a particular server and then start a server of its own. The user would connect to this local server, which would relay information back and forth, processing it as necessary. I doubt it could handle multiple connections to the one intermediary server, but modifying it to do so wouldn't be impossible.

Unfortunately the interesting part of the software is very tightly integrated with the game-specific stuff, but it's open source, and you can find it here.

Impacatus
Apprentice




Group: Members
Posts: 33
Joined: May 5, 2008

Go to the bottom of the page Go to the top of the page
#5 id:37119 Posted Nov 4, 2009, 5:39 pm

Ah, so it has been done to a certain extent.  Awesome, thanks.

Last edited Nov 4, 2009, 5:39 pm by Impacatus
Zeno
Wizard






Group: Moderators
Posts: 1,200
Joined: May 15, 2006

Go to the bottom of the page Go to the top of the page
#6 id:37120 Posted Nov 4, 2009, 5:49 pm


Impacatus said:
Not necessarily.  Admittedly, only people on the alternate server would be able to see what's going on, but if it has control of all the accounts involved, then it could alter them by whatever means necessary.

Like the PVP example.  All the alt server really needs is:
-the stats of the two players
-the ability to transfer spoils from the loser to the winner

To the official server, the whole battle might look something like this:
playerA: get stats
playerB: get stats
playerB: give all to playerA

The whole battle is run in the alternate server.  Once it's determined that playerA is the winner, the alternate server simply makes playerB hand over his/her possessions.

I'll admit, I don't really see a big need for this, I just thought it might be interesting to think about.


But what about skills? Item data? Etc. You would need the formulas on skills and the sort in combat, and only the original MUD would have that. Unless I'm still not understanding what you mean.
.........................
-Zeno McDohl,
Owner of Bleached InuYasha Galaxy.
Zenorebirth: Free MUD host.
Learn how to build in Smaug at Smaug Building Institute.

David Haley
Wizard






Group: Members
Posts: 6,908
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#7 id:37121 Posted Nov 4, 2009, 5:58 pm

Proxy servers have been done several times for many reasons. But you're not talking about just a proxy server that sits in between and does a few things; you're talking about an entire proxy game.

You've already identified two very simple problems illustrating why this wouldn't really work without cooperation from the main server: how exactly would this proxy game get the stats on the players, and the ability to transfer spoils? You say that's "all it needs", but, well, that's a pretty big "all".
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Confuto
Conjurer






Group: Members
Posts: 115
Joined: Nov 1, 2008

Go to the bottom of the page Go to the top of the page
#8 id:37122 Posted Nov 4, 2009, 6:06 pm


David Haley said:
Proxy servers have been done several times for many reasons. But you're not talking about just a proxy server that sits in between and does a few things; you're talking about an entire proxy game.

You've already identified two very simple problems illustrating why this wouldn't really work without cooperation from the main server: how exactly would this proxy game get the stats on the players, and the ability to transfer spoils? You say that's "all it needs", but, well, that's a pretty big "all".


One could presumably grab a character's stats by using a score or stat command, parsing the results and not displaying it to the player. Similarly, transferring a character's inventory would be a matter of parsing the inventory command output and then inputting give commands for each item, displaying only a "You lose the battle and your inventory is transferred." message or similar to the losing player. While I don't really think this would make for a good (or even decent) extra combat system, it's certainly do-able. The issue is, of course, that the proxy game can only interact with the server through the player characters, which isn't too useful.

David Haley
Wizard






Group: Members
Posts: 6,908
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#9 id:37125 Posted Nov 4, 2009, 6:50 pm

The server is supposed to act as a proxy for not just one player, but for all players. It would have to be somehow logged in as each at the same time to do the things you described -- that in and of itself can be a problem on several MUDs (e.g. ones that forbid multiplaying).
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Lobotomy
Sorcerer






Group: Members
Posts: 378
Joined: Jul 18, 2008

Go to the bottom of the page Go to the top of the page
#10 id:37127 Posted Nov 4, 2009, 7:01 pm

I would imagine this proxy server having access to the user names and passwords of multiple players as presenting something of a security issue as well. Who's to say that the person(s) running the proxy are trustworthy and/or competent enough to safely handle such information?

Edit: Fixed a typo.

Last edited Nov 4, 2009, 7:02 pm by Lobotomy
Confuto
Conjurer






Group: Members
Posts: 115
Joined: Nov 1, 2008

Go to the bottom of the page Go to the top of the page
#11 id:37129 Posted Nov 4, 2009, 7:18 pm

As I said, not a particularly great idea.

That said, are there any potential uses for creating "add-on" servers for games with cooperation between the add-on and the main servers? I could imagine one add-on server for roleplayers, another for PKers and so on, but don't really see a point to doing that.

David Haley
Wizard






Group: Members
Posts: 6,908
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#12 id:37135 Posted Nov 5, 2009, 12:54 am

I don't really see a huge demand for this, and demand I see could really be solved by having some kind of server-side plugin mechanism. I completely see the point to the "same game" with different features turned on or off, but I don't really see the point for having all of these game instances coexist, with people interacting with each other, but following entirely different game rules. (I'm not sure what that would even mean, really. What happens if somebody from the hack-and-slash game instance attacks something from the roleplaying game instance??)

What exactly is the use case here that brought up the question?
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Impacatus
Apprentice




Group: Members
Posts: 33
Joined: May 5, 2008

Go to the bottom of the page Go to the top of the page
#13 id:37136 Posted Nov 5, 2009, 1:25 am

Quote:
One could presumably grab a character's stats by using a score or stat command, parsing the results and not displaying it to the player. Similarly, transferring a character's inventory would be a matter of parsing the inventory command output and then inputting give commands for each item, displaying only a "You lose the battle and your inventory is transferred." message or similar to the losing player. While I don't really think this would make for a good (or even decent) extra combat system, it's certainly do-able. The issue is, of course, that the proxy game can only interact with the server through the player characters, which isn't too useful.

Yeah, that's pretty much it.  I don't see why the combat system would be intrinsically worse than the one provided by the MUD itself.  Maybe you're thinking of something more advanced.  RPG combat is pretty much rolling dice and adding or subtracting HP, MP, and so on.  It may not have access to the exact formulas used by the MUD's pve, but with some effort you could get it close enough.

The multiplaying issue would only come be a problem if the MUD indeed prevents multiplaying.  The trustworthiness of the people running the proxy could be established over time through word of mouth.  Yes, someone might try to scam others that way,

There really isn't much call for this in the MUD community, probably because there are so many and it's easy enough to hack the codebases to do what you want.  In the graphical MMO market it might make more sense, because there are a few games with a lot of players each.  A lot of players in each game have contradictory values, and it's much harder to update the game to fix it's shortcomings. 

This isn't a serious suggestion.  I like exploring new ideas just for the heck of it.  It's important to keep this in mind, because what I'm about to say next is even crazier.

What if you used this technique to make a fully modular and community customizable MUD/MMORPG server?

You'd start with the "official server".  Maybe this just handles logins and that's it.

Then you chose from a list of third-party race/class/skill system proxies and connect it to the official server.

Then you connect to that proxy with your choice of inventory/item system proxies.

Then you connect to that one with a world proxy filled with objects that can be interacted with through your skill and item systems.

...and so on.  Each server is specially designed to work with the next one in the list.  For example, if you have a choice between "Bob's skillset" and "Joe's Classes", at the next level you might find "Gold and weapons of Croesus" and "Marty's Manufacturing" designed to work with "Bob's skillset", and a different set of systems for "Joe's Classes".

Yes, yes, I know.  It's way too impractical and completely unnecessary.  It's would get unmanageably complicated as you worked your way down the list, and the resources involved would be better put towards developing separate games.  Still, it's fun to think about.

Last edited Nov 5, 2009, 1:30 am by Impacatus
elanthis
Wizard




Group: Members
Posts: 772
Joined: Feb 26, 2008

Go to the bottom of the page Go to the top of the page
#14 id:37139 Posted Nov 5, 2009, 2:48 am

Such proxies are not fun to think about.  They're broken by design from a game play perspective, in that you as a player would be forced to pick a single proxy to connect to, and hence a single feature set to extend the game with.  It's not just impractical, it's worthless.

If you want to think about ways for community members to extend game worlds in isolated ways, you'd want to think more along the lines of what most MUSHes or things like Second Life already do, in that they allow user-contributed logic modules that use isolated storage systems for the development of user logic extensions that can interact independently or in concert with other modules in well-defined manners.
.........................
Cutting corners to keep your line count down is just sad.

David Haley
Wizard






Group: Members
Posts: 6,908
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#15 id:37157 Posted Nov 5, 2009, 9:23 am

Impactus said:
Yes, yes, I know.  It's way too impractical and completely unnecessary.  It's would get unmanageably complicated as you worked your way down the list, and the resources involved would be better put towards developing separate games.  Still, it's fun to think about.

Are we trying to think about something practical that could lead to releases and use, or just some abstract thought experiment about something that might be nifty? I guess I'm not really sure what the point of this exercise is, since it seems to me that we're faced with technical near-impossibility (or incredible lack of practicality at best), lack of necessity, and no real use case to motivate this.

If the idea is to make plug-and-play gameplay, why not do that at the server level first? It's hard enough to freely mix and match rulesets when you're in total control of the game, let alone when you have to work through some funky proxy system and talk to a server that isn't cooperating. If you do it at the server level, you can go with well-defined user extension modules, like what Elanthis referred to.
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Pages:<< prev 1, 2 next >>
Tags
[+]

Valid XHTML 1.1! Valid CSS!