🎉 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!

I was wondering how EQ works

Started by
5 comments, last by Arkon 23 years, 10 months ago
hello well I was wondering how EQ works SO FAST?? do you think that every time you transfer a zone you actually moves to another server? it means that if you have 5 servers(worlds) and in each world 2 zones so 5*2=10...which is a big waste, but i''m not sure if it''s a waste for SONY... well or another thought that when you transfer a zone you send your msgs to the zone PORT, every zone will have its own port... that''s it thx
Advertisement
This is just a guess at their implmentation but....

To handle large amounts of players they need *many* servers. Each with fast internet connections.

I wouldn''t be surprised if there''s more than 10 servers per world. Again it all depends on the hardware their running for servers. If they''re using Sun boxes they won''t need as many servers as if they were running on intel boxes.

My guess is that each zone is a seperate process, and many zones exist on a single server. This way they can connect zones no matter where they''re running.

When you "Zone" what''s probably happening is that the current process that handling your previous zone is communicating with another process that may or may not be on the same machine to set up the transfer of your character.

Obviously they must a centralized server that stores your character state/details which is updated when you see "saving your character...". This is definetly a *HUGE* Sun box running an Oracle database with *many* processors, and gigs of RAM.

I kinda of like their idea of zoning, as the design enables scalability easily. (Just add a new server!)

Even games that claim seemless worlds (i.e. UO) implment a Zoning design. UO claims to be seemless, but in reality each world is subdived into 4 worlds handled by different servers. You can notice a slight lag when crossing one of these "server boundries" because you are "zoning".

Again I don''t know if I''m right but I think this is close to their actual design. (Comments?)

hope this helps...
yeah ....
sounds "working"

but never know what they use

hmm about the characters

if you played EQ, you would remember that there is a LOGIN server..

i bet this is the FASTES server in their office..
As I recall ALL of EQ servers are located in a centralized location (although probably different backbones), and I agree that a login server must be able to handle the requests, BUT...

A login server only has to deal with one thing: Logging in the players.

Which is *extremly* simple. Think of a web server that can handle 10,000 sim. requests. This server doens't have to have any fancy hardware, a P3 600 Mhz machine is easily capable of this feat, (with a sufficient connection).

Here's the login pseudo code:

while (login_server_is_running)
{
player = waitforconnection()
spawn thread to handle login(player)

}

These requests are really small, and so is the connection overhead, basically connection between this server start/die very quickly (Their desired server handles the connection immediately after account validation)

Take a look at any heavy traffic web site, imaging your server only has to handle small user/password packets, not image transfers etc.

I know most game developer machines could handle EQ's login requests with a sufficient backbone connection.




Edited by - Darrell on August 6, 2000 7:31:37 PM
maybe yer right...

but you forget one thing
after i logged on, i send my USER NAME

then it has to search for my characters and stuff

IO for tons ppl take time

and man, EQ has 500,000(!!!!) players

not 10,000 and now it''s cost 15 $ per month instead of 10$ per month and ppl still COMING!!
what a great succeed

anyway now that i know DP good enough, i need advices
about the msgs in a 2d tanks action game...

you are a tank and you player against others...
(the game i''m writing now called Kondor2, if you wanna see Kondor1 check out at my site qsoft.cjb.net)

so i was thinking how often to send the position msg and other
stuff

sooo could anyone help?
I would suggest sending a message when they start moving and when they stop moving and when they change direction. Each message would have a starting position, speed and direction, except the stop message which just has a position.

From these messages, everything else can be interpolated.

You''ll need other messages for firing, hits and power-ups (or whatever your game has).


Pax
p
the game will have frames instead of a rotated texture...

i thought to send your position/frame in udp(no guaranteed) every time you move
and every 1 min (or another time) to send a guaranteed position/frame

?

This topic is closed to new replies.

Advertisement