I’m planning to create a new game soon, but I’m unsure which library to use.
There are so many available, and I’m sure many developers feel the same confusion.
What matters most to me is sustainability and ongoing support.
Which library do you use? Are you satisfied with it? Would you recommend it?
I have never used a networking library but I have seen them talked about a lot. What kinds of requirements are you trying to fill with these libraries?
I personally use NetRay by @TheYusufGamer, Really quick to push out updates and fixes, it was easy to learn and I just recently started using it about a month ago (My first networking library ever used). The documentation is well and it offers Promises for Request Events which was a good point for me, since you are able to handle error cases and honestly with that the documentation also helped structure my game better by sending through a table of data rather than params of data. Although thinking about it now a Youtube Video would be nice showcasing everything / a mini tutorial.
They’re meant to optimize RemoteEvents by handling everything within your script, and also by using buffering to reduce the load on server-client communication.
Personally, I would avoid them unless they solve a specific issue you are encountering. While they may seem appealing for their benefits, it is important to consider that you would have to learn the abstractions the library provides as well as its potential quirks and flaws. In terms of productivity, this could take considerably more time than directly using remotes. Additionally, reducing the bandwidth cost is less impactful when you are not frequently sending data and when your data is not particularly large in size (e.g., obstacle games and tycoons). On the other hand, these libraries sometimes offer runtime type checking, which ensures that you do not accidentally receive invalid data from clients. While useful, there is a library called “t” that allows you to do the same thing, but without needing to learn as much. Ultimately, I think that it would be best to profile your game before opting to use any library. Not only would that help you determine whether your game is encountering one of the issues the networking libraries solve, but it would also allow you to see the degree of the improvement they offer.
Neither.
There no reason to use any.
Just use remote events.
An idiot admires complexity smart person admires simplicity.
Why would you serialize already serialized data?
Personally, I find it cleaner to use libraries instead of adding tons of RemoteEvents. I’ve only used EasyNetwork before, it handles everything in the background.
However, there are many other popular networking libraries with more features. It’s debatable whether they’re overkill or not.
How are remote events less organized? Using a networking library forces you to remember an events name and makes your code less readable to people who aren’t familiar with the library for little to no benefit. A lot of these library over complicate a simple thing, which already has good performance if you are using them right. Packet sounds cool due to it automatically converting your data into buffers (and stopping DDos attacks, but this is easy to implement with remotes), but I’m not sure if it was necessary to turn it into a networking library.
I’ve tried using Knit before but it provided little to no benefit to just using a RemoteFunction. I’m pretty sure Slietnick said himself it was basically useless, and just a remote wrapper.
Well, if you check out EasyNetwork, it provides a simple networking library that mainly automates RemoteEvents. It helps keep things organized without including extra features like DDoS protection.
Also, as I mentioned earlier:
I agree that RemoteEvents alone are sufficient in most cases.
Personally I try to avoid network libraries as I like to challenge myself to make one (happens almost in everything really).
But a network library I really found cool and useful is ByteNet or a newer one is Packet, I did not really test out Packet but its from Suphi and just that is a point in favor to it, Suphi is an amazing dev.
Either way if you don’t want to try to create your own network system I higly recommend to try these two libraries.
I use this really nice networking library. It has a few built-in classes like RemoteEvent and RemoteFunction. They’re great! Better than any other networking library out there, that’s for sure.