iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
113 stars 32 forks source link

Remove TCP connection #249

Closed rakiru closed 8 years ago

rakiru commented 8 years ago

Do we still need this? Default mode is ENet, and in my opinion that should be the only way. It's just unnecessary functionality that no-one uses adding more clutter to the codebase.

iamgreaser commented 8 years ago

@asiekierka made a point that if we were to port this to certain platforms that didn't do UDP (e.g. 3DS, HTML5 (although it would have to be adapted to do WebSocket initialisation)) then it would still be useful. At this stage that's the one argument I would actually defend.

The "let's make probing the connection easy" argument is kinda not worth upholding as nobody has done it and there are other ways to make the server probeable through external programs.

The "my connection sucks" argument is definitely not worth upholding. Stop using the school network to play games.

rakiru commented 8 years ago

I'm not sure running a Lua VM in a Javascript VM will ever be a good idea. I also think porting to the 3DS is never gonna happen, but as long as the required maintenance for keeping TCP support is 0, then that cancels out anyway.

I'm not sure what you mean by "probing the connection".

Any network stalls are more likely to be caused by routers on the internet than the local network. If anything, shitty local networks are more likely to break UDP than TCP.

iamgreaser commented 8 years ago

I mean the idea that an external program could connect to the server and query it for information.

rakiru commented 8 years ago

Oh right. I believe ENet has a way to hook packets before it processes them, which I was considering using for that. Either way, that's irrelevant to keeping TCP or not.

asiekierka commented 8 years ago

I'd say the platforms argument is fine-ish. Also, it's good to make the codebase allow for multiple protocols - ENet does not seem to be maintained that much nowadays and in the far future we might want to move to a different networking API. TCP is also a good, reliable fallback everyone can use.

rakiru commented 8 years ago

ENet's still being maintained, but the author refuses to make any backwards-incompatible changes, so we'd need a fork for IPv6. I'll close this as the consensus seems to be keep it.

Ericson2314 commented 8 years ago

Rebase https://github.com/Ericson2314/enet/commit/dad08a6847f959b9a21ccb337fcd18b54c8a59ca (I never tested it, but it looks right :))