Pages: [1] :: one page |
|
Author |
Thread Statistics | Show CCP posts - 0 post(s) |
Hawk Firestorm
|
Posted - 2005.12.29 06:15:00 -
[1]
Edited by: Hawk Firestorm on 29/12/2005 06:17:28 Guys what's the point of calculating resistances etc to 13+ decimal places? Other than burning CPU time.
You guys never heard of rounding up? heh
I can't really see any point in making the servers calculate anything past 2 decimal places for practical use, or indeed having the database chew through all this garbage.
Doing this for 20k+ users has to have a significant overhead.
|
Mitram
|
Posted - 2005.12.29 08:37:00 -
[2]
You know that there is actually hardware that does this?
Reducing the precission below a 32bit float is for sure slower. On most hardware 64bit floats are even faster than 32bit float but maybe not on regulare PC's. Any additional round WHOULD cost performance for sure . Actually 32bit float is always faster than 32bit integer if you have to do additional work like normalization.
The only valid point here would be: why do we have to see all 13 digits? This cost net traffic and a print function would be faster if you limit the number of digits. (but how often do we look at the resistance values ... not so often)
|
Sirilonwe
|
Posted - 2005.12.29 09:40:00 -
[3]
Maybe resistances values are calculated on the client. I don't know why it should be sent by the server. After all, it's only client information, and it's not used for any calculation.
|
Simon Illian
|
Posted - 2005.12.29 09:50:00 -
[4]
yes and if poer hazard a client have a "mistake" and send 150% resist to all .... you can start to cry why you can't kill the Ibis of Doom ....
no all must be done severside [Eve Tool for the mass]
Maximum signature image filesize is 24000 bytes - Udat |
Jenna Malone
|
Posted - 2005.12.29 11:28:00 -
[5]
ITT yet another EVE player that knows jack**** about computer hardware.
|
Joerd Toastius
|
Posted - 2005.12.29 12:04:00 -
[6]
Originally by: Mitram You know that there is actually hardware that does this?
Reducing the precission below a 32bit float is for sure slower. On most hardware 64bit floats are even faster than 32bit float but maybe not on regulare PC's. Any additional round WHOULD cost performance for sure . Actually 32bit float is always faster than 32bit integer if you have to do additional work like normalization.
The only valid point here would be: why do we have to see all 13 digits? This cost net traffic and a print function would be faster if you limit the number of digits. (but how often do we look at the resistance values ... not so often)
It may just be that it's better to save the cycles taken to round the numbers than the bandwidth used in sending them. Besides, I suspect they may be calculated on the client and verified on the server
|
Hawk Firestorm
|
Posted - 2005.12.29 15:08:00 -
[7]
There's several potential probs with reoccuring numbers and dmg calculations etc.
Maybe nothin but then again I've seen this happen before and maybe something anyways pointed it out.
And as a IT pro of 30 years I'm perfectly aware of how hardware works. :)
|
Oylmpia
|
Posted - 2005.12.29 18:46:00 -
[8]
Of course they could round the number displayed in client side... but I really HOPE that CCP has more pressing matters to do first.
|
Jenna Malone
|
Posted - 2005.12.29 22:56:00 -
[9]
Originally by: Hawk Firestorm And as a IT pro of 30 years I'm perfectly aware of how hardware works. :)
Yeah, it's interesting how everytime someone gets called on their bull****, they're suddenly claiming to have 30 years of IT experience. I bet that guy, that tried to claim that the speed of a processor at a given clockrate scales linearly with the bitwidth of the architecture, also has like 30 years of experience.
Seriously, get the hell out! With 30 years of ACTUAL experience, you'd not have posted this thread to beginwith.
|
theRaptor
|
Posted - 2005.12.30 11:59:00 -
[10]
Edited by: theRaptor on 30/12/2005 12:04:50 Doing a simple floating point operation on an X86 would be faster then approximating and rounding up. Calculating to 13+ decimal places would happen in one instruction (using low precision at that) in an X86's FPU. To get it to 2 decimal places only you would either need special hardware as X86's FPU's do not offer a FPU instruction of that low of a precision. Or you would have to do a standard FP operation and then do another few operations to round up.
A standard precision floating point number will take up the same amount of bytes, and the same amount of time to calculate (within nanoseconds) , no matter how many decimal points you round it up to. If you really had an IT experience you would know this
I don't think you trust, in, my, self-righteous suicide. |
|
theRaptor
|
Posted - 2005.12.30 12:02:00 -
[11]
Originally by: Joerd Toastius It may just be that it's better to save the cycles taken to round the numbers than the bandwidth used in sending them. Besides, I suspect they may be calculated on the client and verified on the server
Oh yes CCP should do everything possible to save a whole one or two bytes on a whole eight pieces of data.
And to verify them on the server you would have to do the calculation anyway. In an online game you *never* believe anything the client sends you. All the client sends to the server is your keystrokes, anything more then that opens the way for hacking.
I don't think you trust, in, my, self-righteous suicide. |
Joerd Toastius
|
Posted - 2006.01.02 12:37:00 -
[12]
I don't believe that's a feasible server model for an MMOG, because nobody has that much CPU power or bandwidth. (Incidentally my 2500+ runs at a constant 100% load while Eve's running - I know a fair amount of that is not gameplay-related but I don't believe all of it is.) A simple test of this is: when you lag, does your ship jump around on your own screen relative to stationary (ie client-side stored) objects? I don't often get big lag spikes but, IIRC, as long as you're not doing anything "illegal" lag spikes will result in everyone else jumping around and your ship appearing to carry on as normal. This is because the client is doing most of the calculations independently which are subject to security checks.
For example, you checksum and then lock down all installed files on logon, double-check files resident in memory every state change, and do calculation tests on the CPU to ensure it generates correct answers to known questions. The server knows the correct values for these checksums, and thus any tampering with any modules, ships, formulae etc can be spotted by the server. This won't work for everything, granted, but there are other similar techniques for other areas which allow you to check client integrity without double-checking every single number generated. It's not perfect, but it's far more practical than the "thin client" architechture you're suggesting, IMO.
|
Sarmaul
|
Posted - 2006.01.02 14:00:00 -
[13]
Edited by: Sarmaul on 02/01/2006 14:01:06
Originally by: Hawk Firestorm And as a IT pro of 30 years I'm perfectly aware of how hardware works. :)
unfortunatly, you seem to have jack-all idea about how the principals of games programming. And if you believe calculating it to 13 places is "wasting cpu cycles", I would hate to have you as an employee.
order these (they're free), read them, and stfu
Originally by: 0Virtu0 Chuck Norris doesnt need different sized arms to beat up little kids, why should the Raven need different weapons to beat up frigs!?
|
Lady Ackrasta
|
Posted - 2006.01.02 20:39:00 -
[14]
Edited by: Lady Ackrasta on 02/01/2006 20:40:16
Originally by: Hawk Firestorm
And as a IT pro of 30 years I'm perfectly aware of how hardware works. :)
By IT pro, do you by any chance mean first-line "idiot shield" helpdesk operator?
|
Arngorf
|
Posted - 2006.01.03 11:00:00 -
[15]
Originally by: Lady Ackrasta Edited by: Lady Ackrasta on 02/01/2006 20:40:16
Originally by: Hawk Firestorm
And as a IT pro of 30 years I'm perfectly aware of how hardware works. :)
By IT pro, do you by any chance mean first-line "idiot shield" helpdesk operator?
HAHAH LOL!!!
I'm a so called "Idiot shield".. who cares? i work with computers 16 hours a day but i generaly dont know jack about hardware in general... in a broad spectra knowledge about hardware u would be a noob as having 30 years of active configurating the hardware... but 4-5 years (how long it takes) on accademy studying: server-maintaince/configurations u would have more knowledge in this matter speceficly...
-Arngorf (Idiot Shield)
________________________________________________
|
Kael D'mende
|
Posted - 2006.01.03 12:23:00 -
[16]
Originally by: theRaptor
Originally by: Joerd Toastius It may just be that it's better to save the cycles taken to round the numbers than the bandwidth used in sending them. Besides, I suspect they may be calculated on the client and verified on the server
Oh yes CCP should do everything possible to save a whole one or two bytes on a whole eight pieces of data.
And to verify them on the server you would have to do the calculation anyway. In an online game you *never* believe anything the client sends you. All the client sends to the server is your keystrokes, anything more then that opens the way for hacking.
qft
/Kael
|
Matthew
|
Posted - 2006.01.03 13:04:00 -
[17]
Originally by: Joerd Toastius I don't believe that's a feasible server model for an MMOG, because nobody has that much CPU power or bandwidth.
Well, it's what Eve is doing right now. The server dictates everything about the game state.
Originally by: Joerd Toastius A simple test of this is: when you lag, does your ship jump around on your own screen relative to stationary (ie client-side stored) objects? I don't often get big lag spikes but, IIRC, as long as you're not doing anything "illegal" lag spikes will result in everyone else jumping around and your ship appearing to carry on as normal
This is because the client is doing most of the calculations independently which are subject to security checks.
Bear in mind that although the server will be calculating and dictating the game world, the client may be doing it's own calculations to "fill-in" between updates from the server. Constant updates would indeed use too much bandwidth, so they only happen when the client needs to know about something. For example, if you orbit a can in empty space, you don't get constant updates - the client can work out the orbit for display purposes, and just gets told when to assume something different.
The important thing to remember is that although the client is doing those calculations, it's results are only seen by the one player, the server does it's own independant calculations which dictate the actual state ofthe game world. So any hack to the client would only delude the player using the hack, not affect the whole game world.
The "lag jumps" you see are when the client prediction and server actuals get out of sync, usually due to the client not getting a change notification in time, then a full-sync resetting to the correct state. Stationary objects are always correct because they are stationary, so there is no potential for error in their predicted positions. Because of this, you see a "jump", but the other players won't (or at least if they are lagging too, they won't see the same jump).
------- There is no magic Wand of Fixing, and it is not powered by forum whines. |
Joerd Toastius
|
Posted - 2006.01.03 13:23:00 -
[18]
Hmm, k. Do you have evidence for that? It seems like a rather inefficient way of doing things, but then I guess I do only have experience in this area with very small playerbases (an "MMOG" running on a single physical server...). And if this is the case, why doesn't the player's ship jump around at resync? Or does this happen and I haven't seen it?
|
Laqum
|
Posted - 2006.01.03 14:17:00 -
[19]
Please refrain yourselves from insulting other fellow players, otherwise *click*
|
Deakin Frost
|
Posted - 2006.01.03 16:12:00 -
[20]
Edited by: Deakin Frost on 03/01/2006 16:11:52 Virtually every MMO client predicts and interpolates data. Prediction discrepancies are commonly known as "rubberbanding". The server tries to reduce its load by just sending the necessary data. If a ship flies a straight line or a perfect orbit at a constant speed, the server doesn't need to send e.g. 15 updates a second, one update per one or two seconds would suffice. The client can easily interpolate things itself. If some object flies an unpredictable pattern, the update frequency raises to remodel the flightpath as much as possible while not exceeding the server's maximum update rate.
|
|
Joerd Toastius
|
Posted - 2006.01.03 16:31:00 -
[21]
Yup, but the interesting question is how much verification is server-side calculation and how much is checksums and known limits?
|
|
|
|
Pages: [1] :: one page |
First page | Previous page | Next page | Last page |