Was ist iMaze?; Die neuen Features: Zählweisen, Wandverhalten, Wandaussehen, Spieleraussehen, Labyrinth-Konverter; Anmerkungen; Patch-Quellcode: Tcl-Frontend für den Server: Unterstützte Systeme.
Was ist iMaze?
iMaze ist ein Multiplayer-Game, das im Rahmen eines Softwarepraktikums an der TU-Clausthal entstanden ist. Dort kann auch eine ausführliche Dokumentation des Spiels eingesehen werden, deshalb erspare ich mir an dieser Stelle Details. Nur soviel: Die Spieler (Kugeln) bewegen sich durch ein Labyrinth und müssen sich gegenseitig abschießen.Die einzelnen Spieler sind dabei mit einem gemeinsamen Server verbunden, der die Spielumgebung (das Labyrinth) bereitstellt.
Ein paar 'Tips & Trix' zu iMaze sowie spielbereite Server verrät Lothar Christoffels in seiner Spielhölle (im Keller - Licht anmachen nicht vergessen!)
Die neuen Features
Zählweisen
Die erste Veränderung, die mein erbitterter iMaze-Gegner Dirk Pioreck ins
Rollen brachte, war eine neue Zählweise: Getroffene Spieler bekamen einen
Punkt abgezogen. Kurze Zeit später führte er auch noch den Team-Modus
ein. Nachdem er mit diesen von ihm durchgeführten Patches mein
Interesse an weiteren Modifikationen geweckt hatte, begann auch ich, an der
Wertung herumzubasteln:
Es existieren jetzt drei verschiedene Zählweisen, von denen eine beim
Start des Servers über Parameter ausgewählt werden kann:
- Standard
- Die normale, altbewährte Methode: jeder getroffene Gegner bringt einen Punkt
- Adaptiv
- Die ausgleichende Methode, durch die schwächere Spieler leichter mithalten können: Jeder getroffene Gegner bringt 1/10 seiner Punkte (und noch einen weiteren) ein, jeder eigene Abschuss kostet 1/10 der eigenen Punkte
- Team
- Jeweils der 1.,3.,5... und 2.,4.,6... in das Spiel gekommene Spieler spielen zusammen. Punkte gibt es nur für Abschüsse von Spielern des gegnerischen Teams.
Wandverhalten
Nachdem die computergenerierten Labyrinthe den Anforderungen unseres Kampfstils nicht mehr genügten, beschäftigten wir uns mit dem Entwurf eigener Labyrinthe. Zu diesem Zweck entwickelte ich den Konverter 'MazeConvert' (dazu später mehr). Gleichzeitig entdeckten wir, dass viele Möglichkeiten durch die bisherigen (von 'genlab' generierten) Labyrinthe gar nicht ausgenutzt wurden. Es war gar nicht nötig, viel an der Handhabung der Wände zu verändern: Nur wenige durch den Einsatz von 'MazeConvert' möglich gewordenen Wandkombinationen wurden vom iMaze-Server beanstandet, aber selbst diese wurden trotzdem korrekt verarbeitet.Jetzt können beliebige Kombinationen aus den folgenden Optionen für die Vorder- und Rückseite jeder Wand getrennt anstandslos verwendet werden:
- schusssicher/schussdurchlässig
- die Wand ist von dieser Seite für Schüsse eine unüberwindbare Barriere bzw. durchlässig.
- passierbar/unpassierbar
- Spieler können die Wand von dieser Seite durchqueren bzw. nicht durchqueren.
- transparent/opak
- die Wand ist von dieser Seite durchsichtig bzw. undurchsichtig.
transparent | schussdurchlässig | passierbar | |
---|---|---|---|
1. nichts | ja | ja | ja |
2. Vorhang | nein | ja | ja |
3. Schutzschild | ja | nein | ja |
4. Tür | nein | nein | ja |
5. Lichtvorhang | ja | ja | nein |
6. Zaun | nein | ja | nein |
7. Fenster | ja | nein | nein |
8. Wand | nein | nein | nein |
Außerdem hat sich das Verhalten von Türen (insbesondere von
Einbahn-Türen) geändert: Solange ein Spieler in einer Tür steht
(und sie daher geöffnet ist), können sowohl Spieler als auch
Schüsse in beiden Richtungen diese passieren. Man kann sich dadurch nicht
mehr so leicht in einer halbdurchlässigen Tür
verheddern. Außerdem kann es so eventuell im Team-Modus zu interessanten
Manövern kommen, wenn ein Spieler seinem Teamkollegen die nur einseitig
durchlässige Tür öffnet, um ihn durchzulassen (z.B. auf der
Flucht vor einem Gegner).
Wandaussehen
Durchsichtige Wände waren auch in der ungepatchten Version
möglich. Allerdings waren diese automatisch vollkommen unsichtbar. In der
gepatchten Version werden Fenster durch die Diagonalen des Fensters und einen
Rahmen markiert, Schutzschilde nur durch den Rahmen und Lichtvorhänge (ich
weiß, der Name ist etwas seltsam, aber mir ist kein besserer eingefallen)
nur durch die Diagonalen.

Besonders interessant sind durchsichtige Wände natürlich, wenn ohne Map gespielt wird, da dann der Vorteil der Transparenz am deutlichsten spürbar ist. Insbesondere Wände, die von einer Seite durchsichtig aber schuss- und spielerundurchlässig sind und von der anderen zwar undurchsichtig aber nicht schusssicher, haben dann ihren Reiz. Jede Wandseite hat dann ihren ganz eigenen Vorteil zu bieten: Auf der einen kann man sich einen Überblick über die Situation auf der anderen Seite verschaffen, auf der anderen ist man dagegen vor Schüssen geschützt und kann (mit etwas Glück) einen Spion auf der anderen Seite treffen...
Derartige 'Fenster' machen natürlich nur wenig Sinn, wenn man mit der Karte spielt und sowieso weiss, was sich auf der anderen Seite tut. Aus diesem Grund spiele ich eigentlich immer ohne Map. Meiner Meinung nach erhöht das auch die Spannung in 'altbewährten' Labyrinthen, wenn man nicht weiss, welche Gefahr hinter der nächsten Ecke lauert.
Spieleraussehen
Die Spieler können unter bestimmten Umständen transparent werden und so einen leichten Vorteil durch geringere Auffälligkeit erlangen:- Auftauchen im Labyrinth
- nach dem Absetzen des Spielers im Labyrinth bleibt er eine gewisse Zeit durchsichtig, damit er nicht sofort zur Zielscheibe wird, bevor er selbst sich überhaupt orientieren konnte.
- Abschuss eines transparenten Spielers
- schiesst man einen transparenten Spieler ab, so übernimmt man für eine gewisse Zeit die Transparenz
- 'Schlechtester Spieler'
- wenn kein anderer Spieler transparent ist, wird der letzte Spieler in der Score-Liste durchsichtig. Dadurch erlangt dieser einen Vorteil gegenüber den anderen und kann leichter aufholen, andererseits ist so sichergestellt, dass immer ein transparenter Spieler abgeschossen werden kann

Der Labyrinth-Konverter
Der Konverter dient dazu, Labyrinthe, die in einem leicht editierbaren ASCII-Format eingegeben wurden, in das imaze-Binärformat zu wandeln (und umgekehrt). Das ASCII-Format definiert ausschließlich die Art der Wand (einer der acht oben bereits aufgezählten Typen), die Farben der Wände werden vom Converter automatisch aufgrund der Art der Wand vergeben.Die folgende Gegenüberstellung von ASCII-Format und dem sich daraus ergebenden Labyrinth (als Screenshot der iMaze-map) zeigt die Definition des bereits im vorigen Abschnitt verwendeten Labyrinthes; auf der Karte sind auch die Positionen der drei Spieler des entsprechenden Screenshots zu erkennen.
ASCII-Format | iMaze-map |
---|---|
: ## ## ## ## ## ## ## ## ## ## :# . . X . . X . . . # :# . . X . . X . . . # : .. FW ##.WF .. FW WF ## X# .. :# # . . # # . # . F # :# X . . # # . # . W # : .. OO .. .. .. .. .. .. .. .. :# # . O O # # . # # # :# # . O W # # . # # # : .. .. OO .. .. .. .. ## .. XX :# F O . # . # . . W # :# W O . # . # . . F # : XX .. .. OO .. ## ## WO ## .. :# W . . # . . . . . # :# F . . # . . . . . # : .. ## ## .. .. .. .. ## ## .. :# . . . . . # . . F # :# . . . . . # . . W # : .. ## OW ## ## .. WW .. WW XX :# F . . . . # . . W # :# W . . . . # . . F # : XX .. .. .. .. .. .. WW .. .. :# # . . . # W W . # # :# # . . . # O W . # # : .. .. .. .. .. .. .. .. .. .. :# W . . . # # . W X # :# F . . . # # . W # # : .. #X ## FW WF .. FW ## WF .. :# . . . X . . X . . # :# . . . X . . X . . # : ## ## ## ## ## ## ## ## ## ## |
![]() |
Anmerkungen
Neue Clients und Ninjas können problemlos mit alten Servern zusammenarbeiten. Alte Clients können ebenfalls mit neuen Servern verbunden werden, allerdings werden dann eventuell vorhandene transparente Wände nicht dargestellt, wodurch alte Clients große Nachteile gegenüber neuen Clients haben. Alte Ninjas können zwar mit neuen Servern verbunden werden, sind dann aber vollkommen dämlich.Server
Der Server übermittelt nun nicht mehr nur die reinen Farbdaten der Wände, sondern auch ihre Schusssicherheit und Passierbarkeit. Dies ist nötig, damit die Clients korrekt mit den durchsichtigen Wänden umgehen können.Clients
Die Clients empfangen nun die Schusssicherheit und Passierbarkeit und stellen transparente Wände entsprechend mit Diagonalen und/oder Rahmen dar.Ninjas
Die Ninjas mussten auf die Benutzung durchsichtiger Wände angepasst werden, damit sie sich nicht an jedem Fenster verhaken. Dafür müssen sie allerdings vom Server die Passierbarkeitsdaten geliefert bekommen.Gib's mir!
Wichtiger Hinweis
Damit es nicht zu Verwechslungen mit eventuell/wahrscheinlich später folgenden offiziellen Versionen von iMaze kommt, habe ich die gepatchte Version ixMaze 1.4 genannt (die Quellen werden in das Verzeichnis 'ixmaze-1.4' ausgepackt). Ich bitte darum, diese Namensänderung nicht wieder rückgängig zu machen.
Die gesamten
ixMaze-Quellfiles (168K) inklusive man-Pages
und Labyrinthen können als
gegzipptes TAR-File von hier geladen
werden.
Frontend für den ixMaze-Server
Auch an der Universität Münster gibt es Menschen, die ixMaze
spielen. Einer von denen hat ein grafisches Frontend für den Server
geschrieben, welches auch Leuten, die mit der Kommandozeile auf Kriegsfuß
stehen, das einfache Starten des Servers ermöglicht. Das Tcl-Skript von
Karl-Heinz
Krämer steht hier zum Download bereit.
An dieser Stelle möchte ich mich bei ihm ebenfalls für den Hinweis
auf einen Fehler in der Parameterauswertung des Servers bedanken. Die
korrigierte Version werde ich demnächst (zusammen mit seinem Skript) als
neues Paket ins Netz stellen.
Unterstützte Systeme
Das Spiel sollte auf folgenden Systemen laufen (korrekt müsste hier
von 'rollen' gesprochen werden, da Kugeln ohne Beine erhebliche Schwierigkeiten
mit dem, was gemeinhin als 'Laufen' bezeichnet wird, haben werden. Vielen Dank
für den entsprechenden Hinweis an Stefan Waschk)
können:
- SunOS 4.1.3, OpenWindows
- SunOS 5.5, OpenWindows
- SunOS 5.5, Motif
- Linux Slackware, OpenWindows
- Ultrix 4.4, Motif
- HP-UX 9.05, Motif
- DEC OSF/1 3.2C, Motif
- AIX 4.1.4, Motif
- FreeBSD 2.1, OpenWindows
- SGI Irix v5.3, Motif
- Sinix 5.41, Motif, GNU-make