A question about client vs server?
#1
Does anyone know is the client parallell calculate things like for example in D2? Oris the client completely dumb and have no clue at all what is going on? What about the UI? It do list numbers for damage and other stuff, is that numbers it has calculated itself or do even those numbers come from the server? Do the client keep stats for the character, including non shown ones that can be used to calculate such things?
There are three types of people in the world. Those who can count and those who can't.
Reply
#2
It's most definitely not like D2. Nor is it completely dumb.

The answer is somewhere in between the two.

The scripted (customizable) part of the UI does not calculate numbers itself (except for some trivial calculations like percentages). All the actual numbers are passed by the closed part of the client. Without reverse-engineering it is difficult to say exactly how much comes from the server, but it is clear that most important data is server-controlled.
Reply
#3
choppedliver,Apr 26 2005, 01:23 AM Wrote:It's most definitely not like D2.  Nor is it completely dumb.

The answer is somewhere in between the two.

The scripted (customizable) part of the UI does not calculate numbers itself (except for some trivial calculations like percentages).  All the actual numbers are passed by the closed part of the client.  Without reverse-engineering it is difficult to say exactly how much comes from the server, but it is clear that most important data is server-controlled.
[right][snapback]75188[/snapback][/right]


The question was not of control. I assume everything is server controlled (and with some bad exceptions in the start, most was in D2 also actually). What I asked was if the client calculated things in parallell. This can be good if you want to prevene lag effects. If the server tell the client the stats of the player, the client can for example calculate (assuming it has the ability to "parallell" calculate) estimate with a good accuracy if a spell will hit, what the damage will be and so on. Obviously it then updates with the server's result, but that was not my question.
There are three types of people in the world. Those who can count and those who can't.
Reply
#4
Jarulf,Apr 25 2005, 10:07 PM Wrote:The question was not of control. I assume everything is server controlled (and with some bad exceptions in the start, most was in D2 also actually). What I asked was if the client calculated things in parallell. This can be good if you want to prevene lag effects. If the server tell the client the stats of the player, the client can for example calculate (assuming it has the ability to "parallell" calculate) estimate with a good accuracy if a spell will hit, what the damage will be and so on. Obviously it then updates with the server's result, but that was not my question.
[right][snapback]75218[/snapback][/right]
Again, a very few things yes, most things no.

The client won't start a spell without a response packet from the server and won't land a spell without a response from the server. Similarly you can't start an attack without a response from the server.

Once a spell or attack has started, however, the action will continue on the server and the client will attempt some prediction, updating with the server data. This is really only noticable during periods of extreme lag. Overall, very little is done in parallel. The reason for this is obvious - the positioning is critical for combat and changes constantly making predictive values nearly impossible.

<edit: as a side note, it looks like (just based on observation) that Blizz has chosen not to do a parallel random number generator, meaning that client side you can't predict the next random number. This means it's impossible to hack to see if you're going to miss, but also means only the server can send that info>
Reply
#5
>Once a spell or attack has started, however, the action will continue on the server
>and the client will attempt some prediction, updating with the server data. This is
>really only noticable during periods of extreme lag. Overall, very little is done in
>parallel. The reason for this is obvious - the positioning is critical for combat and
>changes constantly making predictive values nearly impossible.

The main issue for me here, was to know if the client tries to calculate anything, such as chance to hit. The reason for this (asking) would of course be to know if one can simply find things such as equations for how damage, armor and such things work. An other example, that doesn't even require random numbers, is mana regeneration, it could be handled client side, with just updating from the server every now and then to see one is in synch (obviously it is always the server mana that is checkd to see if you can really do a spell). Again, if it did, one could find exact formulas and so on.

So, basicaly, my question was not what the server do and what the client do. I assume the server do everything, but wonder what possible parts the client predict or do itself so that one can find formulas. One other example would be the values shown on the UI for example for DPS. Is that a value calculated by the server and sent to the client? Or do the client simply send char stats such as int, dex, str and modifiers on items and have the client calculate the DPS value? That would mean one can find formulas for things Blizzard doesn't seem to give away. Things that really won't lend anyone to be able to cheat, yet lessen some work from the servers. Of course, Blizzard can simply have chosen to not do ANYTHING on the client, just to be sure. Considering Blizzard have never liked to tell how things really work under the hood and have people guess, I would not be surprised.


There are three types of people in the world. Those who can count and those who can't.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)