phoenitydawn

May 27th, 2008

Out-of-Quake

Posted by Dunedan in Programmieren, Python, Studium & Co

Im Rahmen meines Hiwi-Jobs beschäftige ich mich zur Zeit mit der Quake3-Engine in Form von ioquake3. Und zwar geht es darum Möglichkeiten auszuloten und gegebenenfalls umzusetzen wie man die Engine am besten auf die VR-Anlage unseres Institutes bekommt um damit beispielsweise virtuelle Rundgänge durch Gebäude zu zeigen.
Dabei stieß ich auf auf einige lustige Sachen. Zum Beispiel fand sich an einer Stelle im Quelltext folgender Kommentar:

// all drawing is done to a 640*480 virtual screen size
// and will be automatically scaled to the real resolution

Ich weiß ja nicht ob alle Spiele das so machen, aber ein bisschen merkwürdig find ich das schon. ;-)
Heute beschäftigte ich mich dann ein wenig mit der Kommunikation zwischen Client und Server, da ich dazwischen gegebenenfalls einen Proxy bauen will. Die Kommunikation läuft über UDP. Soweit so gut. Sie läuft aber auch Out-of-Band. Warum habe ich bisher noch nicht rausfinden können, aber in meinen Augen erscheint das leicht sinnlos zu sein. Aber nun gut. Ich wollte mir also in Python einen kleinen UDP-Client schreiben mit dem ich einen Server vorgaukeln kann ich wäre ein Client. Dazu brauchte ich ja aber nun Out-of-Band-Nachrichten. Aber kein Problem: Die Socketbibliothek von Python unterstützt bei allen Sende- und Empfangsfunktionen Flags von recv, unter denen sich auch eins namens MSG_OOB für Out-of-Band-Kommunikation befindet. Für socket.recv funktioniert das Flag, für socket.sendto wo ich es eigentliche brauchte, nicht. Dort kriege ich nur ein schönes

socket.error: (95, ‘Operation not supported’)

Andere Flags funktionieren allerdings.
Falls also einer der Leser dieses Beitrages zufällig weiß, wie man das eventuell doch zum laufen kriegen könnte, dann bin ich froh über jeden Tipp. Ansonsten werd ich das demnächst wohl nochmal in C implementieren müssen. :-(

Edit: Offensichtlich ist Out-of-Band nur für TCP spezifiziert. Das was bei der Quake-Engine als Out-of-Band bezeichnet wird hat also technisch nichts mit dem eigentlichen Out-of-Band zu tun. Die Pakete sind durchaus in-Band, enthalten aber zu Beginn die Zeichenfolge “0xff 0xff 0xff 0xff” was sie in Quake-Logik zu Out-of-Band-Paketen macht.

January 19th, 2008

Chaosradio und Bittorrent

Posted by Dunedan in Chaosradio, Computer, Podcasts, Programmieren

Das Chaosradio hat momentan ein kleines Problem. Und zwar ist der Server überlastet, sodass für das herunterladen von einzelnen Sendungen eine recht geringe Bandbreite die Folge ist. Was läge da näher die Sendungen via P2P zu verteilen? Mit Bittorrent um genau zu sein. Überlegungen und Pläne Torrents der einzelnen Sendungen direkt auf die Homepage zu integrieren gibt es wohl bereits, aber umgesetzt ist davon noch nichts. Doch gerade jetzt wären diese Torrents ja aufgrund der geringen Bandbreite besonders nötig.

Ich dachte mir, dass das doch nicht so schwer sein kann extern Torrents bereitzustellen. Da ich allerdings keine Lust hatte das alles per Hand zu machen, bastelte ich mir ein kleines Python-Skript, welches einen beliebigen Podcast-Feed entgegennimmt, aus diesem die URLs der Audiodateien extrahiert, die Audiodateien herunterlädt und Torrents daraus erzeugt. Mit einem passenden Bittorrentclient lassen sich diese Torrents dann gleich noch automatisch seeden.

Soweit so gut. Meine Idee war den Skript auf meinem Server laufen zu lassen, sodass dieser das Herunterladen der Audiodateien und für Bittorrent das initiale Seeden übernimmt. Wer dann Bock hat kann sich einfach den Torrent von einer extra Seite auf meinem Server holen und die gewünschten Sendungen über Bittorrent herunterladen.

Ich dachte mir, dass ich zur Sicherheit Tim Pritlove fragen könnte, ob das von seiner Seite aus in Ordnung ginge, doch ganz so einfach schien das dann nicht zu sein. Er hatte jedenfalls Einwände. Die genauen Gründe sind mir weiterhin schleierhaft. Ob es ihm dabei darum geht, dass er somit keinen Überblick mehr über die Anzahl der Downloads hat, lieber gleich eine offizielle Bittorrentlösung haben möchte oder was auch immer, weiß ich nicht. Mir geht es ja gar nicht darum offizielle Torrents für Chaosradio zur Verfügung zu stellen, sondern nur solange Torrents anzubieten bis eine offizielle Möglichkeit überhaupt erst einmal existiert.

Und gerade jetzt wo der Chaosradio-Server so überlastet ist, wäre eine alternative Downloadmöglichkeit besonders praktisch. Schade. Sehr schade das Ganze.