BindableEvent/BindableFunction vs. RemoteEvent/RemoteFunction dichotomy makes programming a complicated multiplayer game with logic split between client and server hell.
I want to use the same RPC mechanism between scripts regardless if the underlying communication is client-client or server-client or client-server.
Right now for every function in a server script that I want to be callable from anywhere, I have to add both a client and a server side binding object. This is tediousaf. :X
While we are at it, can we fix the naming convention. The only call I should need is Invoke. It is never ambiguous where I want the code to be Invoked from or to. This criticism only applies to RemoteEvent/Function. I have to look up every time whether RemoveFunction:InvokeServer means âinvoke on the serverâ or âinvoke from the serverâ. I hate thinking about this. Itâs especially stupid because right now it only works client-server or server-client. Imagine a world where it is RemoteFunction:Invoke everywhere. :imagine:
Needing to filter where you invoke is gross and leads to bad design regardless. Filtered invokes are a special case and I can always build this mechanism myself.
TL;DR -
All you need to do is:
- Deprecate BindableFunction/Event
- Deprecate RemoteFunction/Event:InvokeServer/InvokeClient
- Add RemoteFunction:Invoke and Event:Fire and make them work across network boundaries
You have made programming a multiplayer game in ROBLOX 20% easier in 30 minutes of work.