Quote:
Originally Posted by taylor2846
i was needing some info on creating my own source what all is needed just to login the a 1.0 Clint? and u all thank i need to code a source for base or get a source and just redo most of it? and how do i set up a login server gameserver and npc server ? may not do that just want someinfo on it!
|
A common focus in the development of the game server is to eliminate lag by attempting to process data in as little time as possible. If a server is hung up on processing many different requests (user authentication, NPC's, or DMaps, etc.), then that's going to add latency to your server's throughput. One of the suggested ways to eliminate this is to split up major jobs to different processes.
One of the issues with splitting up these tasks is finding a solution to IPC (inter-process communication). If you split up your project into different process, they will need some way of communicating with one-another. There are many different solutions to this issue, including sockets, pipes, or .NET Remoting. IPC isn't well-documented on these forums, but here is a discussion on solutions to it
[Only registered and activated users can see links. Click Here To Register...], but you'll need to search the web for more information.
Splitting your project up into different servers certainly seems like the most scalable plan, and one benefit is the ability to isolate problems with each server, and being able to change code in one application without effecting any of the others, but it will be more time-consuming. If you are just beginning, my recommendation would be to do everything in one application, but with the intention of splitting it up in the future. This means that you must design and document a well-thought-out server.
Even if you're new to programming, I still believe that anyone can start out by making their own server instead of using one that's already been released. It's obviously going to be more difficult, but if you're interested, you should start by learning how sockets work in whatever language you plan on using to develop your server. If it's C#, then here are a few resources I would use:
[Only registered and activated users can see links. Click Here To Register...] - API documentation of the .NET framework.
[Only registered and activated users can see links. Click Here To Register...] - Blocking Servers/Sockets
[Only registered and activated users can see links. Click Here To Register...] - Asynchronous Sockets.
Basic instructions for the road ahead:
Learn the language and how it's applied well before attempting to make a server in it. Make sure that you know the data types, keywords, and the most commonly used namespaces and utility classes, and don't forget to use the MSDN API when you're stuck on an error or some code. It has some of the most useful information out there.
Basic instructions for starting your account server:
Start out with a server listening for connections on port 9958, and change your client's Server.dat to use your IP, and then try to connect to the server using the client.
After you've successfully been able to connect, have the server read in the data sent to it from the client. The data is encrypted, so you'll need to implement a Cryptographer. The cryptographer will encrypt the data sent from the server, and it will decrypt the data sent from the client. You can use the cryptographer from any server that is developed for patch 5017 and lower.
Use the publicly released sources like Hybrid's
[Only registered and activated users can see links. Click Here To Register...] to design an effective data handling system.
Quote:
Originally Posted by pro4never
Didn't you post a very similar thread like 2 days ago?
|
Actually, it was today:
[Only registered and activated users can see links. Click Here To Register...]
OP: In the future, you should bump your thread if you feel that your question isn't getting the amount of attention it deserves, or if we've missed something.
Quote:
Originally Posted by .Summer
blowfish is 5018+
|
What a useless post. Why do you even bother?