MagicManICT wrote:Granger wrote:While the server can't enforce what the client does with the data it gets (and culling the objects in an area is too CPU expensive)
Culling is a relatively inexpensive operation in 3D processing. It's been a few years since I've messed with a rendering engine, but it's a relatively simple formula to calculate, even more so when it's a 2D map. For our purpose here, it'd be a single distance calculation relative to the bounding boxes of the object and light range. In a fresh world with little player clutter, this wouldn't be a huge issue. Later in a world filled with stockpiles and such, it might be something that could slow the server significantly. (Good reason for bigger stockpiles, better object management.)
The server already culls objects by not sending everything on the loaded maps in sight, yet those objects are in memory and being managed. What's the difference between a 91x91 tile area (or somewhere around there) vs a 10 tile radius?
The problem is not with doing the culling, but the bandwidth of sending the updates to the client. Also you can work around that as it is no problem to hack the client to ignore object deletions (that get send when objects leave your render range) to extend the range you see after you have seen the stuff in the first place.
My suggestion is to make avoidance (through a light hack) not beneficial, as it won't help you to mitigate the effects - or even be contra productive as it'll make it less obvious that you are entering a zone with a higher accident probability.