ID:260821
 
Could there be a client.tick_lag value for commands only? Setting world.tick_lag to a value like 0.5 speeds up all the icon animations for the entire game. I would just like the client to be able to send more than one command per tick so I can implement features like "super speed running mode" without having to make walking slow as heck for everybody.
Android Data wrote:
Could there be a client.tick_lag value for commands only? Setting world.tick_lag to a value like 0.5 speeds up all the icon animations for the entire game. I would just like the client to be able to send more than one command per tick so I can implement features like "super speed running mode" without having to make walking slow as heck for everybody.

That would be great to have.
A pretty good idea, seconded, though I'm not sure how feasible that would be. Anyway, it would be much better fitted differently though, with a different name and on /world, which is more suited and is in the pattern (unless they'd actually make it modifiable per-player, in which case it'd need to be on /client). world.command_lag or as such would be a far better name.
you'd need to speed the world up in order to speed up clients.
In response to Crashed
Talking specifically about your sentence and the nature of the request, you are incorrect.
At the moment, a client can only send one command (which in turn invokes a proc or verb server-side) per tick. However, the server is perfectly able to process many commands (essentially, procedures) per tick.
So, at least technically speaking, the only thing that would be required to give clients the ability to send more than one command per tick is to "speed up the clients".

Or, more accurately, to just give them the ability to send multiple commands and have them accepted: whether the client is fast enough to send a command multiple times and have all those commands received by the server in a timeframe of one tick (one tenth of a second, by default) is entirely up to the client's connection [to the server]. It is probable that even with the default tick timeframe, even some people with good connections will not be able to do so, merely due to things like network jitter and their physical distance from the server.
In response to Kaioken
Well, in certain multiplayer online games, it's possible to use "speedhacks", which also makes the client faster than the server. So maybe it would also be possible in BYOND to have independent speeds for clients?
In response to Nielz
Those work entirely differently, though. Essentially, the client just cheats in his local game and also cheats the server.
On the other hand, certain multiplayer online games do actually allow clients to customize the rate at which they send updates to the server, which is related to the topic at hand (however doesn't necessarily say anything as far as specifically discussing BYOND goes).
This could potentially work in reverse, easing network congestion for players with poor connections.
Very good idea. This is one aspect that I've always found annoying about BYOND. Not much incentive to work with advanced 2D collision detection or moving things off the grid if it all runs slow as crap.
In response to Rockinawsome
Rockinawsome wrote:
Not much incentive to work with advanced 2D collision detection or moving things off the grid if it all runs slow as crap.

Saying that there strikes me as odd, since his suggestion essentially wouldn't make anything any less slow at all, but making the world faster and increasing the FPS has been possible for a while now.
Yes! This would surely be a great, GREAT help.
This should also speed up the rate at which the client sends data to the server. Right now, the client only sends data to the server every .5 seconds, which can be a pain in some fast-paced games.
Android Data wrote:
Could there be a client.tick_lag value for commands only? Setting world.tick_lag to a value like 0.5 speeds up all the icon animations for the entire game. I would just like the client to be able to send more than one command per tick so I can implement features like "super speed running mode" without having to make walking slow as heck for everybody.

It might make more sense for us to speed up the client tick by default, based on what the server can reasonably handle (judged by network lag). A lot of the current limitations were written a long time ago, when we couldn't expect as much out of the network connections. I think we can do better.
In response to Kaioken
Well, I stopped working on anything BYOND related a while ago, so the FPS thing is news to me.

But this part that he said here:


I would just like the client to be able to send more than one command per tick so I can implement features like "super speed running mode" without having to make walking slow as heck for everybody.


Is what prompted me to write what I wrote.
In response to Tom
Don't you think this might increase spamming in certain games that some people don't think are good for some reason(GOA). That might even crash some servers too, because if people are using macros faster and there's many people on, doing it at the same time.. Also if a developer doesn't think about the increased amount of commands allowed, they may end up getting spammed.
I'm probably so far off, but I think it'd be more reasonable to make a variable for clients(if possible).
Though, this is all based off of the thought that your not making a built-in variable for this.
In response to Tom
Tom wrote:
based on what the server can reasonably handle (judged by network lag)

If you can already determine network latency server sided, wouldn't it be a 'fast feature' to allow the developers to access these data (since it has been requested a couple of times before)?
I just had another idea. The set instant thing is nice, but what about a variable set at client-level that implements this for all mouse procs? That way, procs such as MouseEntered() and MouseExited() have little to no overhead when the network isn't strained and the user will have a seamless experience. Otherwise... eh, t'was worth a shot.