Networking Control

Context: Making an RTS

I’m hoping that some time this year, we would be able to have more control over networking. I’ve suggested this in the past, but I’m not sure I got the point across. This is a great example where a bit more flexibility would be extremely nice when it came to replicating. At the moment, I don’t think roblox can handle 200 to 400 troops without causing some kind of lag.

I’m personally not sure how this would be implemented, as I’m not very good when it comes to replicating outside of roblox, but this would be very useful for certain game types that could be a lot faster if a few settings were tweaked.

1 Like

Having a direct connection to other clients would be great as well. I don’t like having the server as a middle man for things that don’t require a middle man.

If you want actual direct connections to other clients (so not via the server) then that’s definitely a no-go, because then people could use fiddler or any similar program to find out the IPs of the other players.

Also @Ninja_Deer make sure to stick your request in the appropriate subcategory (Client Features).

I’m running over 2000 AIs with pathfinding at the server just fine. Replicating it all to clients by sending RemoteEvents containing state changes of specific AIs and add/remove tags.
It’s probably worth just trying out what you think Roblox will fail on, you may be surprised.

In my experience, handling over 100 AIs with physics will cause the physics system to slow it down a lot (thus I simply handle everything mathematically within scripts), but the replication system hasn’t been a bottleneck here for me, yet. Updating many of those AIs client-sided graphically also has some issues, as at some point Roblox gets confused whether or not a part is static or dynamic.
It’s sort of issues everywhere, except for with replication :stuck_out_tongue: .


Bookmarking this, So whenever I create AI again I know how to make them not lag.

1 Like

You’re saying you don’t use humanoid physics, correct? Just wondering, how are you handling collision and such, or do you just not have it?

Isn’t really relevant for my game, so I don’t handle it (although I may add some sort of basic collision avoidance, not sure if it’s worth spending time on).
Very dynamic collisions are certainly more complex compared to my assumed semi-static environment, which I abused a lot in my implementation. I’d argue it’s still possible to handle dynamic collisions on a fairly decent scale, though (assuming internal spherical/axis-aligned-cylindrical hitboxes + octrees).
Largest challenge is really simulating it smoothly client-sided (which isn’t that much of an issue in my case either), as you can no longer rely on Roblox to properly render and update 500 AIs through normal replication/part updates. Fun stuff though :slight_smile: .

1 Like