RakNet or TorqueNL ?

Started by
22 comments, last by hplus0603 16 years, 12 months ago
Me and some friends are currently developing an online game. Its kind of an FPS - but we are putting in destructible terrain and ninja ropes(like in worms).. What is the ideal networking library for us? we are willing to pay ~1000$ tops for the library - it should lag as little as possible, and support up to 30 players at least.. What is the ideal library for us? The most apparent options are Torque and RakNet, but you can also suggest another alternative as long as it is a relatively common library like the above two , I don't want to get stuck with a library without good documentation.. We also need the library to be relatively simple to use - but not for the price of performance, of course. Any help would be appreciated.
Advertisement
Enet is another library. It's the networking library used by Sauerbraten (Cube 2) which has an active online community, so the library is certainly battle proven for FPSes...
"ENet is NOT intended to be a general purpose high level networking library that handles authentication, lobbying, server discovery, compression, encryption and other high level, often application level or dependent tasks."

Torque and RakNet sure sound much more impressive...
What language? What platform or platforms? What's your experience in software development? Release form/license?

I would recommend something along the lines of OpenTNL, Replica.Net or RakNet. There are other libraries (like demonware) which may be "nicer" but are also outside of your price range.
enum Bool { True, False, FileNotFound };
I have several years of experience developing with Java and C++..
I know how to write basic networking code but doing so with my budget and time is just plain stupid.

The game is being developed using the Ogre3D SDK and a plugin that enables us to make some of the meshes fully destructible(it's still being developed..)
The technology basically uses voxels (kind of 3d pixels) to describe a 3d object - when something blows up near it voxels are removed from the mesh.

I need a networking library thats good for fps games but is also fast because of all the data about the destroyed objects being transferred.

btw , I know how to make the ninja rope thingy subdivide itself when it collides with meshes - how hard is it to make it work in a network game?


About the ReplicaNet thingy - is it as good as they describe it?
Should I take it over the more standard OpenTNL(TorqueNL..)/RakNet?

[Edited by - DanielB on April 12, 2007 12:27:55 PM]
Just go with RakNet....they allow you to send data at the bit level, so you could do anything you want with it [grin]. At the same time you'll get a lot of higher level features...and the price is right. I've been using RakNet for over a year now and I <3 it. Assuming you're confident with network/c++ programming, RakNet is a good balance between high level features, and low level access.

- Danny
Quote:I need a networking library thats good for fps games but is also fast because of all the data about the destroyed objects being transferred.


Any competent network library will be "as fast," because the limitation is not on the CPU, but in the wire between the machines. You can only send so many bytes per second -- it's up to you to design objects and interactions so that they fit in whatever bandwidth your minimum is.

Why don't you try all three for a day each, and see which one you like the best? If it's important, that's good research time. If it's not important, just take the free and unencumbered one and be happy, because it's not that important.
enum Bool { True, False, FileNotFound };
Haven't used TorqueNL, but I have used RakNet and it's great.
Thanks for the help.

I'll probably go with RakNet.

btw - the data is compressed, and it's up to the library to prevent lag, so it does matter how powerful the library is - it needs to send as little data as possible, as fast as possible(little delay) and have good error prevention mechanisms, unlike what most open source network libraries have.
You'll still find that the efficiency difference between various networking libraries is very minimal relative to the physical transfer speed available and your choice of data representation. There aren't that many different ways to represent the data and handle reliability anyway. What's usually most important is the API and how well it suits your needs.

This topic is closed to new replies.

Advertisement