Für MazeRun wird Python 2.7 32bit benötigt, man kann es hier herunterladen. Wichtig: Python 3 und/oder die 64bit Version werden nicht unterstützt.
Python der Path-Variable hinzufügen
Dazu unter Windows 10: Rechtsklick auf Start-Symbol -> System -> Erweiterte Systemeinstellungen ->
Umgebungsvariablen…, unter “Systemvariablen” “Path” auswählen, Bearbeiten -> Neu, den Pfad des Python
Verzeichnisses eintragen (idR. C:\Python27) und mit “OK” bestätigen.
Hinweis: Da Releases von libavg nur selten erstellt werden, empfehlen wir, libavg selbst auf der Zielplattform zu kompilieren.
Visual Studio 2015 Update 3 hat einen Bug, der das Kompilieren verhindert. Bitte eine frühere/ältere Version nutzen.
Für Arch-Linux Nutzer gibt es einen (inoffiziellen, experimentellen) PackageBuild unter diesem
Link.
3. Spiel starten
Ausgangspunkt: Konsole im Hauptverzeichnis des Spiels gestartet
Hauptverzeichnis des Spiels im Explorer öffnen (KPMI_16_C)
“Shift” + Rechtsklick
“Eingabeaufforderung hier öffnen”
In das Verzeichnis “code” navigieren: cd code
Mittlels Python Interpreter die Hauptklasse ausführen: python Game.py
Entwicklung
MazeRun wurde in Python programmiert und nutzt das auf C++/OpenGL basierende Framework
libavg für die grafische Darstellung und Eingabe auf dem
Samsung Tabletop “SUR40”.
Projekt-Struktur
Die Struktur des Projekt-Codes ist im folgenden UML- Klassendiagramm verdeutlicht.
Top-Level Architektur
Editor
Zur einfachen Erstellung von Kampagnenleveln und zur Diagnose von Problemen in zufällig erstellten Leveln, wurde
speziell für dieses Spiel ein Tile-Editor entwickelt.
Tutorial
Funktionen
Kamerasteuerung und Zoom
Mittlere Maustaste: gedrückt halten, um Welt zu bewegen
Mausrad: hinein- und herauszoomen
Platzieren von Schienen
“2” drücken (Path Brush) und linke Maustaste gedrückt halten
Schienen durch ziehen der Maus platzieren
Zum Löschen: rechte Maustaste gedrückt halten und Mauszeiger über die zu löschenden Schienen bewegen
In manchen Fällen ist der Brush nicht präzise genug. Dafür gibt es das Path-Tool, das einzelne Pfad-Tiles setzen kann:
“1” drücken (Path Tool) und Schienen mit Linksklick platzieren
Zum Löschen: Rechtsklick auf die Schiene
Platzieren von Objekten auf der Welt
“3” drücken
Gewünschtes Objekt aus der Liste auswählen
Mit Linksklick auf einem Schienenstück platzieren
Mit Rechtsklick unerwünschte Objekte entfernen
Größe der Welt ändern
“P” drücken
Gewünschte Größe in Tiles eingeben (z.B. “20,30”)
Größe der Hintergrund-Textur ändern
“T” drücken
Gewünschte Größe in Pixeln eingeben (z.B. “400,300”)
Tileset ändern
Um das Tileset zu ändern drückt man “y” und gibt den Namen des gewünschten Tileset ein. Aus den folgenden Möglichkeiten kann man wählen:
“swamp”: Sumpf
“mine”: Mine
“himalaya”: Gebirge
“underground”: Kanalistation
Dabei ist es wichtig, Groß- und Kleinschreibung zu beachten.
Speichern/Laden von Welten
Speichern:
“S” drücken
Gewünschten Dateinamen eingeben
Mit “Speichern” bestätigen
Laden:
“L” drücken
Zum Verzeichnis mit der zu ladenden Karte navigieren
Karte auswählen
Öffnen von Welten
Game.py mit Parameter --level “Pfad zur Level-Datei” aufrufen:
python Game.py --level ../maps/test.json
Im Menü “schnelles Spiel” auswählen
Das Dateiformat
In den world.json Dateien, die vom Editor ausgegeben werden, wird das unten definierte Level Objekt gespeichert:
TileVec2 := { “x”: (int), “y”: (int) }
LeverRiddleInfo := (TileVec2) ∪ { “levers”: [ (TileVec2) ] }
PortalInfo := (TileVec1) ∪ { “other”: (TileVec2) }
→ only one of each pair of portals is serialized!
Level := {
“spawn”: (TileVec2),
“objective”: (TileVec2),
“tileset”: (string),
“world”: {
“size”: (TileVec2),
“backgroundTextureSize”: (TileVec2, background texture tile size in pixels),
“path”: [
(TileVec2),
(TileVec2),
...
],
“events”: [
(string, event or feature name): (TileVec2|LeverRiddleInfo|PortalInfo),
...
]
}
}