Wer kennt es nicht? Das Kultspiel Siedler 3, das sogar noch heutzutage mein und so manch anderes Spielerherz höher schlagen lässt. Aber keine Sorge, in dieser Serie wird kein Hack entwickelt, dafür wäre das Spiel zu schade. Es geht also um etwas anderers:
Der Publisher Ubisoft, welcher Blue Byte im Jahre 2001 aufkaufte, hat vor einiger Zeit die öffentliche Lobby (siedler3svr.bluebyte.de:3344) abgeschaltet. So ist ein Online Matchmaking umständlich nur noch über den LAN Modus und diverser Tricks zu erreichen. Über das Back2Hack Board bekam ich Kontakt zu einem Programmierer, welcher das Matchmaking wieder leichter und komfortabler machen will. Das optimale Ziel wäre es, die Lobby wiederherzustellen, aber die Matchmaking Logik über seine Server laufen zu lassen.
Nach ein wenig Kontakt beschlossen wir, ein solches Projekt in Angriff zu nehmen. Dabei geht es im ersten Schritt darum, das Matchmaking über die Spielesuche im LAN-Menu zu entwickeln. Der selbst programmierte Server empfängt alle neu gehosteten Spiele und sendet diese an andere Clients, die gerade Spiele suchen. Dabei sendet der Server Packete, wie sie der Siedler 3 Client/Host im LAN schicken würde.

Das alles klingt leichter gesagt als getan, denn Siedler 3 legt einem einige Stolpersteine, wenn nicht sogar ziemlich große Felsbrocken in den Weg. So ist das Spiel ohne Fenstermodus erschienen, was dank Auflösung von max. 800 x 600 Debugging unmöglich macht. Des weiteren wird das alte DirectDraw verwendet, was ein Segen und Fluch zugleich ist. Der DirectPlay Support ist in Windows Vista nahezu vollständig entfernt worden, was Probleme beim Erzeugen von gewrappen Interfaces gibt. Und als ob das nicht alles schon schwer genug wäre, so ist der Programmierstil der 2000der Jahre auch nicht der strukturierteste.
In der folgenden Serie wird es also darum gehen, Siedler 3 unter die Lupe zu nehmen und geschickt ein paar Hooks zu platzieren, die uns im Ende eine funktionierende Lobby ermöglichen. Ob es funktioniert weiß ich noch nicht, allerdings bin ich durch die bisherigen Ergebnisse ziemlich zuversichtlich. Zudem bekommt ihr einen Eindruck, wie Gruppen wie z.B Techogods arbeiteten, wenn sie Spiele Analysieren und Modifizieren. Des weiteren werden ein Informationen zu DirectDraw, GDI und natürlich Netzwerktechnik vermittelt.
Der nächste Artikel wird sich mit COM Objekten, Direct Draw und dem Fenstermodus befassen. Je nach Länge des Posts wird noch der DircetDraw Hook vorgestellt. Und bis dahin fröhliches Siedeln!
Greez
8 people like this post.