PDA

View Full Version : How does P99 server handle clients traveling to other zones (non-seamless)?


Rissy
08-06-2022, 04:59 PM
Hello!

Hoping this reached the right area of forums, I am not having any technical problems with Project 1999. Trying to learn about how older MMO games handled clients traveling non-seamlessly.

I am working in an Unreal Project (v5), maybe this is something new game engines impose as a self-limit. The current Guru's suggest a dedicated server can only run one map, and clients who want to travel to another map must disconnect from server and go to a new one (logic handles this). This would mean someone traveling from Qeynos Hills (Server 1) would be disconnected and then routed to server holding Black Burrow (Server 2).

For Project1999, did EverQuest handle clients in the same way?

I would love to hear from the Project 1999 server admin's or if someone knows how to pass this to them - I am not that smart in networking, as time has moved on - did this become something more complicated in gaming, or was it simpler or easier to implement for Project1999?

magnetaress
08-06-2022, 06:47 PM
Every zone is it's own server. Except it's handled in the net code i think severside/services with port ranges foreach zone. Kinda like loopbacks server-side. I have never looked at emu code tho. So it's probably totally different. And I'm wrong and don't know what I'm talking about. If you're making a clone or new game just use a modern server architecture. Don't copy this shit which was copied over from the 80s. As a hack.

loramin
08-06-2022, 06:54 PM
http://www.eqemulator.org/

https://github.com/EQEmu/Server

The whole core emulator is open source: you can see for yourself how it works. P99 is a fork, but I don't think they changed anything fundamental with regards to zone transitions.

mcoy
08-06-2022, 10:46 PM
Every zone is it's own server. Except it's handled in the net code i think severside/services with port ranges foreach zone. Kinda like loopbacks server-side. I have never looked at emu code tho. So it's probably totally different. And I'm wrong and don't know what I'm talking about. If you're making a clone or new game just use a modern server architecture. Don't copy this shit which was copied over from the 80s. As a hack.

A hack (reliable UDP) that let hundreds of thousands of people on dial-up play the game a few years before they otherwise would've been able to.

-Mcoy

Homesteaded
08-07-2022, 12:24 AM
The way forward, is back.

Rissy
08-07-2022, 03:43 AM
Every zone is it's own server. Except it's handled in the net code i think severside/services with port ranges foreach zone. Kinda like loopbacks server-side. I have never looked at emu code tho. So it's probably totally different. And I'm wrong and don't know what I'm talking about. If you're making a clone or new game just use a modern server architecture. Don't copy this shit which was copied over from the 80s. As a hack.

http://www.eqemulator.org/

https://github.com/EQEmu/Server

The whole core emulator is open source: you can see for yourself how it works. P99 is a fork, but I don't think they changed anything fundamental with regards to zone transitions.


magnetaress and loramin thank you both very much!

and maybe that is the way to understand it then, for the sake of resources put each zone on its own server.

I always think of a server as one dedicated machine - but in today's market, is one rentable commercial server able to spin-up all 60-90 server-instances needed to host P1999?

magnetaress
08-07-2022, 08:36 AM
magnetaress and loramin thank you both very much!

and maybe that is the way to understand it then, for the sake of resources put each zone on its own server.

I always think of a server as one dedicated machine - but in today's market, is one rentable commercial server able to spin-up all 60-90 server-instances needed to host P1999?

yes u can run p99 emu in an amazon clould vm ez pz --- there used to be like a bit of physical network seperation between the authentication and zone servers for the sake of like physical security and having an actually seperated auth server so if one got comprimised it wasn't all on the same box i think that is still SoP. Entirely up to u tho... p.s. i'm way out of date/touch with all this stuff. just a big heads up to absolutely ignore everything i say

having actually different servers for each zone i think is what allowed zones to have like 100 connections without crashing the entire machine because its starts to get messy when one server is updating mob positions and checking line of site on 2000 clients among other things like cycling thru a spawn table etc.

loramin
08-07-2022, 11:12 AM
I always think of a server as one dedicated machine - but in today's market, is one rentable commercial server able to spin-up all 60-90 server-instances needed to host P1999?

Pretty sure Rogean doesn't use a "rentable commercial server": the dude has rack space and builds his own (powerful) machines to run P99. (If you dig hard enough, you should be able to find an old post from him where he shares a picture of one.)

I'm sure one could use AWS or something similar to "spin up" zones as needed, but even with just micro-sized EC2 instances, running even 60 at once would be very cost prohibitive (we're talking like $300/month without even using EBS or other AWS features). However, you might be able to make it work with just one very large server (eg. an A1) ... but you'd have to see (or check in with the larger EQ Emulator community, as I'm sure people have tried it before).

robayon
08-07-2022, 11:53 AM
a series of tubes

Jibartik
08-07-2022, 12:25 PM
a series of tubes

FpkmSYUYDqE

magnetaress
08-07-2022, 04:54 PM
U don't rent an aws for each zone server. One aws runs like 60 zone servers or however many zones there are.

Loramin. Sheesh.

Gustoo
08-07-2022, 05:14 PM
Lol

loramin
08-07-2022, 06:33 PM
U don't rent an aws for each zone server. One aws runs like 60 zone servers or however many zones there are.

Loramin. Sheesh.

That's what I was saying (or more accurately, I was saying one could rent 60+ AWS instances ... but it would be an expensive/bad idea).

Darksinga
08-09-2022, 08:27 PM
Hello!

Hoping this reached the right area of forums, I am not having any technical problems with Project 1999. Trying to learn about how older MMO games handled clients traveling non-seamlessly.

I am working in an Unreal Project (v5), maybe this is something new game engines impose as a self-limit. The current Guru's suggest a dedicated server can only run one map, and clients who want to travel to another map must disconnect from server and go to a new one (logic handles this). This would mean someone traveling from Qeynos Hills (Server 1) would be disconnected and then routed to server holding Black Burrow (Server 2).

For Project1999, did EverQuest handle clients in the same way?

I would love to hear from the Project 1999 server admin's or if someone knows how to pass this to them - I am not that smart in networking, as time has moved on - did this become something more complicated in gaming, or was it simpler or easier to implement for Project1999?

I'm not a network engineer nor proficient at C, however, have run a few drug boxes.

Your guru, from my understanding, is correct however maybe he got the terminology incorrect.

Each zone is it's own instance. You can, however, run hundreds (or possibly thousands) of instances from one server.

Think of each instance as an open console window application.

You have all classic zones open, so have 60ish or whatever the # of classic zones open as windows.

Darksinga
08-09-2022, 08:30 PM
Also, I don't know much about Unreal, however, having a few years of experience in Unity, I can assume Unreal would be similar in that there are several network solutions that will solve these normal problems from you.

Might be worth it to invest the money into a networking solution rather than coding it from scratch.