Problem description:
I packed BYOND in about a year ago when I discovered my intricate and v. pretty skin (and a game half changed to accomodate) simply couldn't work because the elements in the skin all updated server side. Thus, controlling the game in an online environment would have been a nightmare, and overall ugly.
So my question is:
Is there now a way in BYOND to update all skin elements client side (as I was told was eventually happening)?
- If not, why not??
Jul 15 2012, 4:31 am
|
|
winset()
|
OK, clearly I need to explain what client side vs server side is.
If the elements are updating server-side, it means that whenever you click a button or refresh a health bar etc. the information is being sent to server, validated or what have you, and then the information is sent back in order to change the visuals. In this case the speed of the updates is entirely dependant on connection speed and server load. Client-side updates are when the visuals change right away according to the pre-defined outcomes saved on the player's computer. In case of the server's info not synching with the players', periodical checks may be performed to make sure what the server things you have clicked, and what you actually have clicked match... In this instance, the updates are instant and if there is increased load on the server, the player may not even notice as he or she freely clicks buttons and changes settings for the game etc. I know how to use winset() tyvm. |
Right, so 1 step closer to an answer, thanks for that `
But it's a little like asking someone "Why can't we break the speed limit?" And they reply: "Because of the law." When a more appropriate answer would be "Because it increases the risk of a crash and you might hurt yourself or others. To that end, the government must endeavour to protect the citizens of the State, and have thus implemented laws to control our behaviour in regards to, amongst other things, speeding." I don't simply want to be told the status quo, I would like to understand it, and be given the relevant information that may indicate when the BYOND team will fix this issue. Last I heard it would come around as a delightful byproduct of the java android thingy thats supposed to be coming. But this was last year and all that seems to have changed, per release notes, is we can type on the map panel. o_O |
Saucepan Man wrote:
I don't simply want to be told the status quo, I would like to understand it, and be given the relevant information that may indicate when the BYOND team will fix this issue. As far as I know, there are no immediate plans to advance in this direction at all. BYOND is built up around a model with an extremely thin client. To allow the sort of client-side processing you're presumably asking for, would be a major architectural change, and also change the dynamics of creating games on BYOND a great deal. There have been numerous requests in the past, for 'stored' visual procedures on the client, but those are of a different nature than what you mean. And those serve mainly to allow things which require consistent, already-known graphical updates, to occur entirely client-side (Such as a clock counting down). But even then, those have also been turned down. In short, I wouldn't be holding my breath. Mind you, I don't represent BYOND, and I may be out of touch with the direction of things. |
You can do some basic things with the .winset client-side command and the ternary operator (see "Special .winset commands"). So if you simply want to change a tab or child pane at the press of a button, you can do that entirely client-side. However, it doesn't support pulling values from other controls, so it's limited to hard-coded values. And there's only so much logic you can cram into ternary operators.
It would be cool if they added basic operators for working with control parameter values client-side, but I doubt that's high on the priority list. Particularly because the Flash client will have such limited interface support. |
Awesome thanks for the last two replies - each validated some things I was thinking and answered my question(s) in good detail :)
The only thing that would further answer my question is what the potential for the proposed flash client will be, with specific regard to what I could use in it (last I heard it was SUPER basic). I guess, then, it's time to re-think my skin design if I ever want to finish my new skin / head over to design philosophy. |