I doubt that client-side processing is ever going to be implemented to the extent that some people would like to see. Not only is it a complicated task, but it would be hard to find a good, general purpose solution.
One form of client-side processing that would come in handy is client-side visual effects. I am guessing that the missile proc sends a single command to the client and the client handles the visual effect entirely (if this isn't the case, why not?). If this is the case, there's no efficient way to reproduce the missile proc. You can set an object's loc and pixel offsets every tick to mimic missile's behavior, but this would be sending updates to every client every tick. If you wanted to make simple changes to missile (change the projectile's speed, give it an arced path, etc.) you'd have to implement the effect yourself. With enough projectiles, this could cause a severe performance hit.
The main purpose is to create visual effects so the client code shouldn't need to modify anything but the objects used to create the effect. Likewise, the server doesn't need to be notified of anything done by the client proc since these objects only exist on that client. Everything the client needs to know will be passed as a parameter, so there's no situation where the client would need some data and not have it.
The client code is handled so differently that it could be its own type of code file (since the client procs aren't mixed in with server code, there's no confusion about what you can or can't do). Depending on how it would be handled on the client end, it may not even have to be DM code at all.
Any thoughts?
ID:260845
![]() Dec 8 2009, 5:03 am
|
|
Flame Sage wrote:
Can't client-side effects be done with DLLs? No, as DLLs can only be executed on the server-side. |
AJX wrote:
Suggested many times. Great minds think alike! Any idea why there isn't more talk about this? I was looking through the other thread ([link]) and it seems quite reasonable. The client code (in our proposed scenarios) is intentionally restricted to performing actions that only exist to create visual effects on the client end. Because this is not general purpose client-side processing this avoids all of the headaches that come with coordinating distributed work. There is already some client-side processing of visual effects and there's already the ability to execute DM code in the client. While there are bound to be some hurdles, the majority have already been overcome. |
Android Data wrote:
Flame Sage wrote: Hence the reason why I haven't put up anything related to Speech Recognition yet (experiment was server-side since only the host/server can use it at this time). |
Another related idea that might not have a closely related implementation:
The smooth transition from one tile to another is handled by the client. However, like missile, this assumes a straight-line path. If you want to have players jump from one tile to the next, this has to be done using pixel offsets. Since the pixel offsets for each frame of the transition would be the same every time, this transition could be implemented as a client-side effect. |
Android Data wrote:
Flame Sage wrote: Ignoring the huge security risk of running DLLs on the client: Even if DLLs could be executed on the client, that wouldn't lend a nice solution for this problem. I'm not looking to do some general purpose computing on the client, I'm looking to expand BYOND's already existing (but somewhat lacking) support for client-side graphical effects. |
A few times by myself.
On the to-do list. Somewhere shortly after buyout Blizzard.
And the list must be done in order.