Page 1 of 1

Generic Multiplayer Connector (Java)

PostPosted: 17 Oct 2016, 13:53
by Julius ... rconnector

The Generic Multiplayer Connector (GMC) is a library to help turn any single-player game into a multi-player game by allowing clients to easily connect to a shared server and pass data to each other without having to worry about all the usual networking complications. It uses a client/server model, and when a client sends out any data, it is automatically received by all other clients in the same game. Clients also receive notifications of when a game has been won and who the winner was.

Maybe worth a look for some simple games without build in multiplayer so far.

Re: Generic Multiplayer Connector (Java)

PostPosted: 17 Oct 2016, 22:15
by Lyberta
Uhh, that is unsuitable to any fast game. First, server handles everything to avoid cheating, 2nd there is client-side prediction to avoid mouse lags and server-side lag compensation for avoiding ping issues.

For that reason my engine is multiplayer focused from day one and single player is just a multiplayer with 1 client. You can't simply convert single player game, it requires rethinking most of the internals of the engine.

Re: Generic Multiplayer Connector (Java)

PostPosted: 18 Oct 2016, 05:27
by andrewj
Yeah client/server multiplayer is not something you can just "tack" onto an existing single player game, the code *has* be developed with client/server concepts in mind, as doing it later leads to a whole world of pain.

Nevertheless this GMC library may be useful for some projects.

Re: Generic Multiplayer Connector (Java)

PostPosted: 19 Oct 2016, 02:43
by Lyberta
It may be useful for turn based strategies, but if the client knows everything, that means map hacks, etc.

Re: Generic Multiplayer Connector (Java)

PostPosted: 02 Nov 2016, 19:38
by SteveSmith
Hi guys, I'm the author of this Generic Multiplayer Connector, I justy thought I'd help clarify a few points about it.

It's my fault for not making the readme more explicit, but the GMC isn't designed to turn a single-player FPS into the next World of Warcraft. I wrote it so I could play relatively simple single-player games against other people on a LAN.

The best example (and one that's included in the library) is Mutlplayer Tetris. The GMC makes it easy to retro-fit a single-player game of Tetris into multiplayer, so that when a player completes a row it sends a signal to all the other clients, which then speeds up their game. I've also retro-fitted a version of Tempest and maze game that work in the same way.

The GMC still gives you full control of what is sent, so you could implement encryption, client-side prediction etc.., but you'd have to implement all that yourself. And theoretically, one of the 'clients' could be a server that is in full control of the game, so you can still have a central server without any of the hassle of managing connections. However, for any game with complex player interactions, as andrewj says, the game would need designing from the ground up. But the GMC would certainly make life easier. :)