If you want to replicate head rotations for a better aesthetic experience, the best solutions all require RemoteEvents. The simple and lazy way is to have the server adjust the head for other clients with information it receives from a character turning their head. The optimal solution for the smoothest rotations is using a RemoteEvent to pass information between clients so each client is responsible for the head rotation of other characters, the server’s only involvement being delivering information.
Animations will natively replicate but you aren’t using animations for head rotations so not applicable.
I’m as excited as ffrostfall that this is being shown to the Roblox engine team. I can’t express how much we need this for our games.
Reason why I’m so excited about this is that I’m developing a CO-OP game that really needs server authoritative characters to eradicate exploit concerns, don’t forget about network entity interpolation/replication, it is my biggest wish to achieve this as it is impossible to have over 100 entities who attack players & specific entities without a Received Network and ping overload.
(Yes, I know that people have ran more than 100 entities before, but they rely on Roblox’s replication and don’t seem to do expensive calculations, such as having a “schedule” on what they do every frame, for example if they need to fire, seek cover, or find a healer when they’re low in health.)
In conclusion, this can absolutely push the limits of FPS games.
This is something you would put on the client. Sure, it would be easier to do this on the server if you want this to exist for everyone, but it is as equally possible to simulate this event on each client by synchronization.
You wouldn’t as the brick would be directly controlled by another player which would move unpredictably, this is only to visually show the huge impact packetloss would and does have for moving custom characters as they suffer from the same exact same issues.
The spinning brick is only a visualization of the impact of packetloss, not an example of something that could be done without UDP.
All communication in roblox uses UDP, though effectively all ways the developers have access to is forced to be ordered & reliable (so effectively TCP) including remote events and any property changes.
As far as what developers have access to only physics and native character movement(excluding animations) replicate via an unreliable unordered channel, both of which developers only have very limited ways to interfere with.
I would really love the implementation of this for a system that handles replicating movedirection to the server. I believe that allowing remote events to be switched to UDP would make this system way more efficient than it currently is
Not only that, but allowing HttpService to be switched to UDP (if thats not already possible) would open doors to super cool stuff like efficient cross-server livestreaming.
HTTP isn’t meant for non-reliable communication, it’s meant for “hyper-text transfer” through reliable means, AKA TCP. What you are looking for, is websocket support.
I can’t wait for this at all
This would allow for more complex custom systems to be made on roblox (death to humanoids) and remove the requirement for a complex anticheat to put a bandage on legacy systems
I can’t wait to see this implemented. Allowing developers fine tuning over things like this would help avoid a lot of lag and stability issues by prioritising certain remotes over others/allowing unimportant packets to be dropped to avoid remote heavy gameplay stacking packets in an eternal death spiral when there’s a big lag/ping spike.
Gonna bump this one.
Encountered an issue just now I really could use unreliable events for to fix, but alas.
I don’t expect this to be added anytime soon, it’s clearly not on the roadmap and the dev team doesn’t seem too eager to work on it, but I’d like it to float near top requests.
I’d be really happy if they added this, considering that if you try to make a server owned character now the input delay is really awful. This should already be in the engine, it would be extremely useful.