Explicit Client-Side Leveraging
In all honesty, BYOND's networking and server-client setup were designed around pre-2000's architecture if I'm not mistaken, so if anything, an update to the client-server handling would do nothing but good for the engine's life expectancy.
game_client var/DM_Socket/socket //DM_Socket being a built-in class for handling connections. connect2server() //custom function ConnectRenderSocket(target_address, target_port, credentials, other_data) //built-in BYOND function to receive rendering data socket.Connect(target_address, target_port, credentials) //sends a connection request to the server
Since a large number of developers, myself included, strive to use as little of BYOND's .dmf UI as possible,
we usually default to HUD objects, which to my knowledge, is still being calculated server-side.
Even with the webclient, it's the fact that we wouldn't use these UI features in the first place is why we don't really care that they're there.
There's absolutely nothing saying that the default setting for a proc or something wouldn't be to be completely server-side, but allow the developer to explicitly make certain operations client-side.
I don't know why we'd want to open up networking functions... We already have networking done for us, and any server to server stuff we need to do can be done with world.Topic()...
What we need is the ability to write client side code-
As for world.Export() being slow, we need a speed-up for performance there and ssl support.
Wouldn't that take away the ease of use for newbies?
Some people are going to argue that that would completely ruin BYOND's ease-of-use, but that's just ridiculous. Pixel movement didn't ruin BYOND's native tile-movement. It wasn't a complete change, it was an add-on. If you left the code alone, then you get the default tile-movement. It's not until you explicitly start working with the pixel movement do you actually have to worry about handling the pixel movement. Networking would and should be on the exact same footing. Default of totally server-side until you started to mess with it.
It's a miraculous wonder that it even works, and has lasted for so long.