On Tue, Jun 05, 2007 at 11:45:25AM +1000, 12 Dogs wrote: > > Don't know if this will be helpful, but a while ago i started writing a > lemmings clone using twisted for networking. the file in question is > availablehere:[1]http://thescarydoor.googlecode.com/svn/trunk/default.pyi > didn't have much problems with the twisted loop and the event code, i just > didn't use the event loop. The only other option is to use twisted in a > second thread which can get a little messy but not too bad as it's just 1 > thread. > Nathan >
I also did a game sketch (emphasis on the sketch part) of a "Space Wars" game that would support network play using twisted. The trick I think I used was to integrate the pygame event loop and the Twisted reactor was to write a function to handle all the pygame things would normally do in the main loop, and then supply that function as a callback to reactor.callLater(). The callback's last action would be to call reactor.callLater() again. In that way, the pygame event loop just got handled by the reactor. It's not done, as it just supports the server side, but you can see it run and send updates out by telnetting to port 7190 on the machine you run it on. You'll get spammmed by the server player's ship position. The protocol was designed to be dirt simple, so I could do things like telnet in and get some sense of what was going on for debugging purposes. It's probably a naive way of approaching the problem, but it seemed to be on the path of working. If someone wants to play with the code, you can get it at http://aminorgames.com/downloads/sketches/netgame_demo.tar.gz It works well on my Fedora Core 4 system using Python 2.4.3 and pygame 1.7.1 As a bonus, I was learning about joystick controls in pygame, too, so the ship has all kinds of fun controls like directional fire, autobraking, and retrorockets if you use a Saitek ST290 Pro joystick. ;-) Randy