[Brainstorm] Seperate Game/Npc etc Servers

06/09/2010 09:27 kinshi88#1
Hey guys, I've been planing on having separate programs for the Game/Npc etc servers, so I've just been thinking of the best way to about implementing it.

It's for my own scratch source so don't worry about giving source-specific examples.

But yeah, if you got any ideas lemme hear em =P
06/09/2010 09:48 pro4never#2
Well for login>game you won't need much communication so a simple socket system can work. If you were doing something that required more data to be sent (such as a logic server, npc server, dmap server or anything) then namcode pipes are the way to go due to their speed and efficiency.

Sadly i haven't used named pipes enough to be able to give advice. Most i've done so far is read up on them and use some example code.
06/09/2010 10:05 kinshi88#3
Quote:
Originally Posted by pro4never View Post
Well for login>game you won't need much communication so a simple socket system can work. If you were doing something that required more data to be sent (such as a logic server, npc server, dmap server or anything) then namcode pipes are the way to go due to their speed and efficiency.

Sadly i haven't used named pipes enough to be able to give advice. Most i've done so far is read up on them and use some example code.
Yeah Login->Game is no problem.

Sweet, I'll have to check them out, thanks.
06/09/2010 14:42 ImmuneOne#4
Quote:
Originally Posted by kinshi88 View Post
Yeah Login->Game is no problem.

Sweet, I'll have to check them out, thanks.
PipeServer wrapper

Pinvoke functions:

PipeClient wrapper

Put it together for you as example.
06/09/2010 16:50 s.bat#5
Named pipes offer the "benefit" of relying on physical memory instead of your network, but sometimes it's necessary to be able to extend beyond that boundary. The .NET Remoting Infrastructure seems like a great solution to your inter-process communication problem-since the architecture was built to answer specifically that issue, and I would really like to see you use it in your projects.
06/10/2010 00:36 joshvette001#6
Quote:
Originally Posted by kinshi88 View Post
Hey guys, I've been planing on having separate programs for the Game/Npc etc servers, so I've just been thinking of the best way to about implementing it.

It's for my own scratch source so don't worry about giving source-specific examples.

But yeah, if you got any ideas lemme hear em =P
Honestly Kinshi get ahold of Jack aka Korvacs he did a server in front of me that was a auth/game server that communicated and transferred date in between each other extremely well and very stable. He would be able to give ya some ideas.
06/10/2010 00:43 kinshi88#7
Quote:
Originally Posted by joshvette001 View Post
Honestly Kinshi get ahold of Jack aka Korvacs he did a server in front of me that was a auth/game server that communicated and transferred date in between each other extremely well and very stable. He would be able to give ya some ideas.
Auth/Game is (again) no problem. Since the Client connects to the auth, then the game.

But yeah, I spell all night checking out named pipes, and damn are they awesome.
How come I've never heard about these before?? =P
06/10/2010 03:34 pro4never#8
Quote:
Originally Posted by kinshi88 View Post
Auth/Game is (again) no problem. Since the Client connects to the auth, then the game.

But yeah, I spell all night checking out named pipes, and damn are they awesome.
How come I've never heard about these before?? =P
Because you didn't pm korv asking what to use lol. He's the one who told me about them... although i had seen them mentioned in some research before.
06/10/2010 04:31 kinshi88#9
Quote:
Originally Posted by pro4never View Post
Because you didn't pm korv asking what to use lol. He's the one who told me about them... although i had seen them mentioned in some research before.
Haha, well thanks.
06/10/2010 05:44 s.bat#10
I guess I'm alone with .NET Remoting then, huh?
06/10/2010 06:39 kinshi88#11
Quote:
Originally Posted by s.bat View Post
I guess I'm alone with .NET Remoting then, huh?
Haha aww.
I'll check it out dude =P
06/10/2010 09:12 Korvacs#12
Quote:
Originally Posted by s.bat View Post
I guess I'm alone with .NET Remoting then, huh?
Well, if no one else has used it before, and no one has posted any information about it, i hardly think people are going to just decide to use it based on one post with no explanation of how it works or what its advantages are over other methods.

Also Named Pipes are not limited to your local machine they can be used across a local network, so there is no limitation in that way.
06/10/2010 16:09 ImmuneOne#13
Quote:
Originally Posted by Korvacs View Post
Well, if no one else has used it before, and no one has posted any information about it, i hardly think people are going to just decide to use it based on one post with no explanation of how it works or what its advantages are over other methods.

Also Named Pipes are not limited to your local machine they can be used across a local network, so there is no limitation in that way.
*cough* Some things shouldn't be released to this forum.
06/10/2010 17:39 s.bat#14
Quote:
Originally Posted by ImmuneOne View Post
*cough* Some things shouldn't be released to this forum.
I suppose that's true to an extent, but in my case, there is a lot of valuable information already accessible on the internet that could easily supersede my attempt at explicating .NET Remoting.

As for the named pipes being used over a network, I didn't research it carefully enough, and I apologize for that.

Also, has anyone taken a look at the [Only registered and activated users can see links. Click Here To Register...]? I'm asking because ImmuneOne chose to use P/Invoke instead.
06/10/2010 17:57 Korvacs#15
Quote:
Originally Posted by s.bat View Post
I suppose that's true to an extent, but in my case, there is a lot of valuable information already accessible on the internet that could easily supersede my attempt at explicating .NET Remoting.

As for the named pipes being used over a network, I didn't research it carefully enough, and I apologize for that.

Also, has anyone taken a look at the [Only registered and activated users can see links. Click Here To Register...]? I'm asking because ImmuneOne chose to use P/Invoke instead.
Personally i use the framework's classes and methods for named pipes, works like a charm.