🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

MMORPG Server-Client Tech Design Document

Started by
7 comments, last by Whirlwind 23 years, 11 months ago
Is there a place where I can go look at a sample tech design document for a hypothetical MMORPG client-server/server-client setup? I want to make sure that what I want to do is something that can be done. Basically, I want a stimulus - responce setup where the player clicks somewhere, the client tells the server, and the server tells the client what to go and do with itself. It is more secure that way - the server knows how fast Player can walk, where he is, and what he has. The attack rate will be limited to the Player stats/skills/abilities and targeting, not how fast the player can click. "Check out my lack of progress on the Ge Game engine at GeGames.com"
Advertisement
Oh, it can be done alright. it''s just a matter of bandwidth and server processor ability. You''re going to need a distributed server application to run that much clock time Since everyone doing everything will have to report to the server.. you''ll have a LOT of incoming and outgoing data in small packets.. which is a good thing in some respects. But the server will have to look at all of those and repond immediately to them.. otherwise the game will seem slow and no one will want to play it.

Good luck finding any examples at all. No one really seems to make client-server engines for free.. only graphics engines I''ve got some books i''d reccomend to you if you''re interested.

J
I just would like to see a sample tech doc on it so that I can make sure that I don''t miss anything. Not all entitie actions will be processed server side. Things like particle effects from explosions will be done client side, but damage will be determined server side. D2 appears to be using this approach, but I am not sure about the trade and sale screens.
Like I said, from what i''ve seen.. client-server stuff is almost always copyrighted.. so there''s nothing out there. Email me on this and i''ll see if i can''t answer what you''re looking for there I''ve done a good bit of MPI work in distributed computing which is rather like client-server.. cept any and all machines can be the client or server depending hehe. And i ''m workin on a client-server project now. Client will be windows and Linux and server is based in Linux.

J
Niphty,

What are the books you mentioned you knew that were useful?

Thanks.
About your idea, what you''re describing sounds like a very thin client, not really sure that''s what you''d want to go with if you''re trying to put the "massive" in MMORPG.

IMO, You''ll want to interpret at least what object, or world-coordinate position is being clicked on the client. If that''s what you meant, then disreguard this rambling.
Oh yeah, who, what, when (maybe), and where are going to be pre-processed.

Edited by - Whirlwind on July 11, 2000 12:32:03 PM
Even in a thin client some things you will find to just be more efficient to calculate in the client and report to the server. This doesn''t mean that security has to be breached to do so.

For instance, assuming that you have all of the graphics and world files on the users hard drive like all MMORPGs these days do, it makes much more sense to let the 3D engine determine where in the world you clicked and what you clicked on. Have the server tell the engine what is there on a periodic basis. When the user clicks, the #d engine can see if the user clicked on anything significant and if so send the request on what it thinks it clicked to the server. Just eliminating the clicks that don''t mean anything by filtering them in the client will save you piles of bandwidth and precious CPU time on the server. When the request gets to the server, nothing is stopping you from authenticating and validating it at that time. The time spent doing this at the server will be much less than accepting and processing a number of bad clicks or do nothing clicks.


In the end the server CPU time that you save from a slightly fatter though well planned client will allow you to expand your game by adding content, monsters, NPCs, pathing logic, AI logic, and quests. One of the things VenuSoft realized early on is that we are going to use almost all of the RAM and CPU time on our large 4 or 8 processor machines to handle the massive in MMORPG. 50,000 players at once is a significant amount of world management. You need every CPU cycle you can get to manage this real time.

Kressilac
ps Send me email if you wish to discuss server design more. I would be happy to share my ideas as guidance.
Derek Licciardi (Kressilac)Elysian Productions Inc.
I recently picked up a book called Windows Network programming that looked very good. At least, i think that''s the name of it I also got a Win32 networking, for both windows 9X/2000 and NT. I''ve got Linux sockets by example.. and that book looks seriously awesome. I just picked all these up like two days ago, so i haven''t started on them yet. i just got them to get ready to use them. I''m still reading C++ for linux, SQL, and a management book.. hehe

As far as making things that communicate.. it can all be intercepted and even changed then resent. Most people don''t go that far, though. Humm.. put kressilac and me on an email together and we''ll start like a little list going. Something tells me he prolly knows more practical stuff than i do about it, but i know a lot about low-level IP and whatnot read an IPv6 book and TCP/IP book vols I and II so far.. got to get three.. hehe

J

This topic is closed to new replies.

Advertisement