How does EQ and the like do it..

when a new character/player enters a zone, what method does the server take to send all the players info? Does it send just whats needed for graphics: locational data, image etc…or does it also send hit points, weapons items/objects, monies…etc…

I am trying to decide whether to put some vars in for shields, hullpoints, weapons power and damage or acutally have a weapons object, shield object, cargo object that extend a base ship component. Do I send the data to build them when player enters sector or send objects of them, etc…

M

Hi
For my own game I’m sending just very basic info like the object id, the type of object and it’s location, this is enough for my client to display it (I might need to add a to that list, but having created a GameObjectSnapshot as the object and messages send across the wire, it’s easy to do). If the client then needs more info, i.e. they target the object, then more information can be got at from the object ID, getting this information might be done in the background as an object enters targetting range so there is no delay when it’s targetted, but the principle is the same, only give them what they need, reduces bandwidth :slight_smile:

HTH

Endolf

All comemrical games ar purposefully mum abotu their communciation protocols to try to make hacking mreo difficult.

How I would do it breaks down like this:

(1) Combat occurs on the server. Otherwise its very prone to hacking
(2) Level data is in the CD Installs, patches and updates.
Thats static data and huge and it woudl be foolish to send it every time.

So all that is sent on entering a region is the info on where you are and the info on what other players/monsters are doing thats visible.

As you are affected by other things, you get packets that update your local display of HP, etc.

Think about it, if you lag out, combat continues. That makes it almost certain that combat is happening on the server and all you have is a “view” onto that data.

Hi
Yup, thats the plan :). One of the other reasons for the combat happening on the server, is that if you are loosing you can’t just disconnect and pretend it never happened. When it’s on the server, you have to fight to the end, what ever the outcome :slight_smile:

Endolf

sounds good. Looks like I can give my StarShips 2 create methods. One for local player so your personal data can create objects for each ship component so you can have greater control over Ship functions, and a second for all non-local player starships…hold basic data like position, type, playername, etc…to be sent when player is within visible screen space(or just before).