Reccomendations

BlitzMax Forums/BlitzMax Programming/Reccomendations

Galaxy613(Posted 2010) [#1]
My question is thus: What Networking Library wrapped/made for BlitzMax would you recommend to me that can support 50-80 players and is well supported/has good documentation?

At the end of last year I finally figured out how to do GNet correctly, I got extremely excited because maybe I'll be able to do a multiplayer game finally! WRONG. I got it to a point where you could fly a ship around and chat, so a friend and I tried to stress test it. We both started 10 cilents and connected them to the server... the server started dropping cilents and eventually crashed itself.

The game I want to make is essentially a 2D version of Freelancer, if anyone has played the Freelancer on multiplayer you'll know exactly what I'm going for... sadly there is very few people who have. Basically, it's a game where each player controls a ship which you can upgrade/sell/buy/fight/travel with directly. This won't be turned based and solar systems will be without bounds. I started it around 2008 as a singleplayer game but since gone on hiatus, I want to return with keeping the general gameplay the same, but multiplayer.

For the past week I've taken a look around and I found RakNet that seems like a good choice, but it seems like the wrapper is still largely in development still. I've also heard mention of BNetEx, ENet and TNet but I am very weary of trying anything new without recommendation for my specific usage. I also really want feedback on the fesiblity of this endeavor. Is it really going to be too much work to make this game idea into an actual working multiplayer game? Or should I go back to my original single player idea? :S


Dreamora(Posted 2010) [#2]
GNet is very taxing.
The used networking itself, ENet is very high performant and pretty simple.

you would likely use Leadwerks network if you liked GNet basically, which is straighter wrap of ENet than GNet without the overhead of the automagic.
If you like the large flexibility, then BNetEx is the way to go.


RakNets wrapper has been done pretty far (at least when it comes to the gaming part, if you want more, you will have to go with C++), but RakNet itselfs moves very fast, so the wrapper becomes incompatible to the actual version on a regular base.
But if you remain on the old version its no problem.


I would personally either go with leadwerks network or with BNetEx, always depending on if I only need UDP or if UDP & TCP is needed


Czar Flavius(Posted 2010) [#3]
Use sockets and streams. They're not that hard and will remove any concerns over performance.


Retimer(Posted 2010) [#4]
If you're using the sockets, you'll likely want to add threading which is a bit of a hassle (said the guy who just dealt with it recently), or take a look at bruceys raknet wrapper.

well supported/has good documentation?


Oops...not sure you'll find that anywhere here =p


Galaxy613(Posted 2010) [#5]
Thanks for the responses guys. :)

@Dreamora

By the Leadwerks one, do you mean Leadwerks Netwerks? http://blitzbasic.com/Community/posts.php?topic=84665
I didn't particularly like GNet, mostly how it took almost everything out of my hands. ENet looks pretty decent though.

I thought BNetEx is sorta in disrepair? I donno where I heard that so it might not be true at all. I don't neccesarily need flexibility, but stability.

@Czar

Have you done this method for a game before? How hard was it coding a network engine from scratch?

@Retimer

I'm not afraid of threads... at least not yet.

Has any of these libraries (except Raknet) been proven to be solid enough for 50+ players?