2009-08-09 11 views
3

Ich mache ein einfaches Multiplayer-Wirtschaftsspiel in Pygame. Es besteht aus Kurven einer bestimmten Länge, an deren Ende Daten an den zentralen Server gesendet werden. Ein paar schnelle Berechnungen werden an den Daten vorgenommen und die Ergebnisse werden an die Spieler zurückgesendet. Meine Frage ist, wie ich die Netzwerkunterstützung implementieren soll. Ich habe Twisted und Pyro angeschaut und irgendwelche Vorschläge oder Ratschläge würden mir gefallen.Netzwerkunterstützung für Pygame

Antwort

6

Verdreht wäre sicherlich eine gute Idee. Here ist ein Beispielcode, der twisted und pygame integriert.

1

Ich habe nichts gegen Twisted und PyRo, aber die Art von einfachen Nachrichten, die Sie senden werden, erfordern nichts dergleichen und könnten durch die Verwendung einer Art Framework zu kompliziert werden. Ein Objekt zu picken und es über einen Socket zu senden, ist eigentlich eine sehr einfache Operation und es lohnt sich, es zu versuchen, selbst wenn Sie schließlich mit einem schwereren Framework gehen. Fürchte das Netzwerk nicht!

+1

Verwendung von Gurke für Netzwerkprotokolle ist eine * extrem schlechte * Idee. Hier sind zwei aktuelle Beispiele dafür: http://plone.org/products/plone/security/advisories/cve-2007-5741 http://cve.mitre.org/cgi-bin/cvename.cgi? name = CVE-2009-0668 –

+0

Ja, das ist ein sehr gültiger Punkt bezüglich Gurken. Ich stehe zu meiner Behauptung, dass es eine gute Idee ist, eine triviale Serialisierung durchzuführen und das Netzwerk selbst zu verwalten. Bietet Python keine Standardfähigkeit für die reine Serialisierung von Daten ohne mögliche Nebenwirkungen? – Kylotan

+0

@Kyotan: Verwenden Sie einfach verdreht und du bist fertig. Was wirklich "überkompliziert" ist, ist zu versuchen, das, was verdreht ist, mit der Hand neu zu schreiben. Twisted ist ein komplizierter, gut geschriebener und getesteter Code. Der Versuch, ihn selbst zu replizieren, bedeutet fast, dass Sie mit einem halb funktionierenden, halb gebackenen Code schlechter Qualität enden. Der Umgang mit dem Netzwerk ist viel mehr als nur das Öffnen eines rohen Low-Level-Sockets und das naive Übertragen von Daten. Fürchte dich nicht vor dem Rahmen !! – nosklo

1

Es gibt eine Reihe von Plug-and-Play-Bibliotheken, die speziell auf PyGame auf der pygame.org-Website zugeschnitten sind.

Dazu gehören PodSixNet, PygLibs.net, und mein eigenes Mastermind (was auf eigene Gefahr, leicht, einfach zu bedienen ist, und kommt mit einem einfachen Tutorial).