Experienced programmer looking for network platform recommendations

Started by
4 comments, last by Saikodan 5 years, 3 months ago

Hi,

I'm doing some experimenting on network architecture and currently working on my multiplayer RPG game.

The game is written in c# (of course) and the client\single player part has basic functionality, so now I've started working on the network side of stuff. I've heard about KryoNet(Java) and it seems like a good solution for my server. But as I'm fairly new with C#, I wasn't sure what is the best library to go along with it on the client side.
There is no KryoNet-like library in C#, so I was wondering if you have any recommendation on a library you know, or should I just use the basic system.net of C# and try to learn from that. 

I would gladly accept any tips! Thank you!

Advertisement

I'm not familiar with KryoNet but I'm guessing since it has no client component/library it's just a server application that speaks standard UDP/TCP packets?  If so then there are quite a few NuGet packages out there that can give you basic networking capabilities.  Writing a simple bit of client-side netcode isn't impossible either, takes some significant care though and lots of troubleshooting.  If you have experience as a programmer and want to keep your code bloat minimized, it's certainly possible to write it yourself. ;)

Tip: If you decide to diy, asynchronous netcode is a bit more complicated(but also not impossible), and you might not need it(depends on game), try to use synchronous methods first as they are easier to understand and troubleshoot.

3 hours ago, Septopus said:

I'm not familiar with KryoNet but I'm guessing since it has no client component/library it's just a server application that speaks standard UDP/TCP packets?  If so then there are quite a few NuGet packages out there that can give you basic networking capabilities.  Writing a simple bit of client-side netcode isn't impossible either, takes some significant care though and lots of troubleshooting.  If you have experience as a programmer and want to keep your code bloat minimized, it's certainly possible to write it yourself. ;)

Tip: If you decide to diy, asynchronous netcode is a bit more complicated(but also not impossible), and you might not need it(depends on game), try to use synchronous methods first as they are easier to understand and troubleshoot.

Thanks for the answer!

 

KryoNet has a client-side library also, but it's in Java, and that does not help me much.

I can write everything myself, just wanted something prepared :)

Maybe I'll write something in C,  build it and just use it as an executable with my C# code. Should be easier, since it's on windows either way.

The most-mentioned C# networking library for games is Lidgren; have you checked that out?

A second option is RakNet with C# bindings, which has also been mentioned on these forums before. (I don't know if the bindings are P/Invoke or what, though.)

 

enum Bool { True, False, FileNotFound };

Thanks! I'll try it :)

This topic is closed to new replies.

Advertisement