You need to call BridgeNet.Start on both the client and server- this starts BridgeNets internal processes.
Due to the amount of issues, I’m going to be making CreateForBridge yield until started.
You need to call BridgeNet.Start on both the client and server- this starts BridgeNets internal processes.
Due to the amount of issues, I’m going to be making CreateForBridge yield until started.
BridgeNet has an overhead of ~1.5 kbps. However this is made up for with BridgeNets compression - which mainly shows itself under pressure.
You need to be testing it in an actual game, or a significant stress test for BridgeNet to show. Again, the testing code is open source.
Ping in Roblox is based off of frame time, and sometimes bandwith in extreme cases. BridgeNets footprint is within half a millisecond- and in some cases said footprint is lower than Roblox’s.
When is the beta 2.0.0?
Char limit
2.0.0 is going to focus on redoing how BridgeNet is used, and making it easier to create scale w/ BridgeNet.
A big problem with BridgeNet right now is that there’s no easy way to centralize your bridges- this will change. There will be a few new methods that’ll make it super easy to create things like identifiers.
As for when it’s coming, probably after all the features are ironed out and bugs are squashed right now.
So it’s kinda soon, right ?
I don’t know
Yeah but it’s initialized on another server script. Don’t you only need to start it once for the client, once for the server?
It’s initialized on another server script. Don’t you only need to start it once for the client, once for the server? And even if that wasn’t the case why does it work sometimes, and not work other times?
It’s most likely because you’re creating the bridge before the server is started- this can cause unpredictable behavior. The best solution right now is to use single-script architecture- but I’d wait until maybe 1.9.9 so CreateBridge yields until started.
Hey, sorry if this has already been asked but couldn’t find - is there a GitHub?
It’s on the main post.
From the admittedly small research I’ve done, it seems like you limit how many requests / receives remotes can send / get, thereby improving performance. Wouldn’t this be an issue for games that require precision? For example, if there are too many events going on in a shooter game, and you try to fire your weapon, that action would be delayed until there is less traffic?
I don’t mean to say your work is bad, it seems impressive, but it’s just a question I have.
There is the option to limit the rate at lower fps, yes. However, Roblox already does networking at 60 Hz- so capping it at 60 results in little to no additional latency. No events are queued or deferred, or limited.
Alright, thanks for clarifying.
Insane networking library! It’s really easy to rewrite current network scripts using BridgeNet as it does not require hard configuration.
oh sorry for that, i meant to send it in another thread
I’m currently working on a custom NPC system that doesn’t use humanoids and only has 1 part to represent the enemy NPC for ray projectile hit reasons, I’m also using dot product & raycasting on the server to see if the NPC is in the player’s view so they can send data packets to the client. However, when there’s 70+ NPCs, receivedNetwork & ping increases. I feel like the reason why receivedNetwork is increasing is because of Roblox’s physics replication, while ping is because of the amount of data the packets have.
NPC Data packets are sent 20 times per second (1/20) to improve network bandwidth.
I’m also thinking of making “CFrame physics” to anchor the NPC’s hitbox to prevent Roblox from using physics on that part.
I’ve been wondering if BridgeNet can optimize these replication steps above tremendously?
Thank you!
So sorry for the late reply.
Yes. BridgeNet is literally designed for use cases like that. However it’s important to note that the reason ping is increasing is most likely due to server fps- as ping is directly tied to fps. If your server frames are 30 fps, ping will increase substantially. Your server should never drop below 60fps.
No problem with late replies, take your time;
My NPC has a FindTarget and Fire Projectile function.
Each player has their own visual remotes, which the NPC will be using to replicate their bullets.
The target function simply gets the closest target on a specific table, the table doesn’t use workspace:GetChildren() per frame to get the targets on the table but simply a connection.
Fire projectile function fires projectiles in which will send a projectile data (table) via a RemoteEvent to clients for replication the server uses BindableEvent to communicate with eachother, again, sends the projectile data to the server projectile handler.
What do you think the reason why the Server’s FPS drops below 60 FPS with the information above?
Firstly: Switch your BindableEvents to GoodSignal. Might yield a better result.
Secondly: You can find this out yourself! Use the server microprofiler (F9, microprofiler)
If 2 server scripts require the same module (GoodSignal), will the module return the same Signal?
I’m using a Signal module already, it’s for firing the BindableEvent which sounds really unoptimized.