2009-09-04, 04:35 PM
blackincal Wrote:Server side database solution is not good, it will create massive amounts of read/write and memory and CPU usage at game servers, even if you put some protection like: max requests/seconds, still create lots of CPU usage and memory allocation, resources already allocated deal w/ currently game problems.
How do all those things compare to what a normal player does? Every time you hit a target, it sends your targets to the server, the server looks them up, subtracts some hp, checks if they died and sends their new HP back. I'm not 100% sure what the fastest anyone does this is but I suspect it's the Bowmaster's 500/minute Hurricane arrows.
Not only does this require receiving each of those packets and looking up the monster HP, it requires server side damage calculation (players sending packets containing how much damage they do = recipe for abuse - MS synchronizes the RNG to the server about every second, so visible damage closely approximates actual damage dealt unless you lag, but client damage does not determine damage done) which has to take into account the player's stats, all their buffs, etc. meaning more db lookups. Any way you put it, it's going to be more complicated than reading a boolean from their "receive_whispers" table.
If they can do the monster damage then they can put whispers server side too.
There's no viable way to stop outgoing whispers at the client - any client can be compromised, it's simply not possible to have 100% security of what it sends to the server. Forwarding the packets on without checking whether the client is accepting them encourages abuse - if you can send packets at your max up-stream, and they have to acknowledge them all, then it's relatively easy to force-D/C someone. If Nexon fixes chat spam on their side, then "d/c hackers" will stop using this technique and the server load based on whispers will drop anyway, which is good for everyone.

