Hi, Here's the first iteration of my suggested changes to networking in gnome games. I hope I can get some feedback, to make sure this is going in the correct direction. Also, the patch has gotten fairly big already... Iagno-specific network code is now in iagno/network.c,h, while common network code which can be used by other games as well has been separated to libgames-support/games-network.c,h Adding multiplayer support to gnibbles can then use this common network code. I've made a connection dialog, which can ease the setting up of games with more than two players. First, the user enters a nickname in the dialog. The dialog then displays a list of clients who have connected, and eventually any player can start the game when enough players have joined. The dialog will require futher improvements probably. This change towards more than two players, will mean that iagno will not be backwards compitable with older versions. Some steps towards making a meta-server which supports several game-types, is done in libgames-support/games-server.py This is basically the old iagno-server, now running one thread with a server for each game type, listening on different ports. So when we have agreed on these changes, adding networking to gnibbles is next. :) Andreas Røsdal On Mon, 12 Jul 2004, Callum McKenzie wrote: > On Mon, 2004-07-12 at 01:13 +0200, Andreas Røsdal wrote: > > I've had a close look at the networking code in iagno (from CVS), and it > > seems like a very good starting point for adding networking to some of the > > other games. I'd like to reuse most of the network code from it, in other > > games, like gnibbles. Parts of the networking code could be generalized. > > > > Iagno contacts a simple meta-server written in python (called > > iagno-server.py), and provides a mean for one iagno client to connect to > > another iagno server. I'd like to generalize this metaserver to be able > > to handle more users, and handle several games (iagno, gnibbles etc.) > > > I'm open to almost any code that improves networking. Your suggestions > all seem like good ideas. > > Some points you might like to consider: > > I'm going to roll the code for iagno and ataxx together, probably in the > 2.9 time-frame. If you make the code general enough this won't be a > problem (and hopefully it will make it easy). > > Some parts of GNOME (e.g. gnome-vfs) are starting to consider zeroconf, > it might be worth a look at. > > Security is, as always, a problem. I'm not concerned about anti-cheating > measures but I certainly don't want the game to be crashed over the > network. > > I'm not going to have any time to work so patches are most definitely > welcome ! :) > > - Callum > >
Attachment:
games-network-patch-1.diff.bz2
Description: Binary data