random image
ForumNewsletterModDBSteam Community
Blog
25. Juli 2012: Erstellen von Multiplanet-Maps
Liebe Fans der Stargate Mod,

heute möchte ich euch einige Einblicke in die Infrastruktur bieten, die wir bei der Erstellung von Maps für die Stargate Mod verwenden. Diese Informationen könnten von besonderem Interesse für diejenigen unter euch sein, die später Maps für die Mod erstellen wollen. Jedoch sind alle anderen auch eingeladen weiterzulesen, wenn Sie an ein paar technischen Details interessiert sind.

Was ist so speziell beim Erstellen einer Map zum Thema Stargate? Nun ja, wie ihr aus der Fernsehserie wisst, besteht das Stargate-Universum aus einer Vielzahl an verschiedenen Planeten, die durch Stargates verbunden sind. Hätte man unlimitierte Ressourcen, dann könnte man theoretisch von jedem Tor zu jedem anderen gelangen, wie es auf dem Bild unten links dargestellt ist.

Alle Stargates sind mit allen anderen verbunden Teilweise Verbindung der Stargates untereinander
Stargate-Universum: eine Vielzahl an Stargates
bilden ein gigantisches Netzwerk.
Im Spiel: wegen technischer Einschränkungen
kann nicht jedes Stargate erreicht werden.

Es wäre schön, dieselbe Freiheit in der Mod zu haben, aber von einem technischen Standpunkt aus ist dies natürlich nicht möglich. Wir können nicht einfach alle Planeten zusammen in eine einzige Map packen – nicht nur würde dies zu sehr langen Ladezeiten und zu einem hohen Speicherbedarf führen, es gibt auch einige harte Einschränkungen in der Source-Engine, die uns dazu zwingen, nur eine kleine Zahl an Planeten in jeder Map zu verwenden. Wir nennen diese Maps "multiplanet maps" (englisch). Wie viele Planeten in eine Map passen, hängt natürlich von deren Komplexität ab, aber in der Regel passen vier bis sechs Planeten hinein, was bereits ein ausreichend komplexes Gameplay in unseren Multiplayer-Missionen erlaubt.

Um euch die einzigartige Technik zu erläutern, die wir hierbei verwenden, werde ich euch ein bisschen hinter die Kulissen des Mapping für die Source Engine entführen. Normalerweise verwendet man eine Software namens Hammer World Editor, um die Geometrie (englisch brushes), Objekte und Effekte (englisch entities) und die Beziehungen zwischen den entities zu erstellen. Die Map wird dann durch Kompilieren in eine binäre Form überführt, die von der Engine effizienter gehandhabt werden kann und bereits einige vorberechnete Daten wie z.B. die Beleuchtung, enthält. So läuft das heutzutage bei nahezu allen Source Engine-basierten Spielen.

Hammer World Editor
Stargate Center im Hammer World Editor.

Wo liegt also das Problem? Einige Planeten werden in mehreren multiplanet maps benutzt. Ein typisches Beispiel ist das Stargate Center (SGC) im Cheyenne Mountain Complex auf der Erde – es dient in den meisten Missionen als Spawn-Punkt für die Tau'ri (Menschen). Das Problem liegt nun darin, sicherzustellen, dass jede multiplanet map dieselbe Version des SGC in sich trägt.

Was meine ich damit? Stellen wir uns vor, ein Map-Autor will eine multiplanet map erstellen und kopiert dazu das SGC in seine Map. Später wird die SGC-Map jedoch überarbeitet und hat einige coole neue Dinge, die Spieler gerne auch in der multiplanet map sehen würden. Um dies zu erreichen, müsste allerdings der entsprechende Teil der Map erneut kopiert und die Map neu kompiliert werden. Ihr könnt euch vorstellen, dass dies eine aufwändige, manuelle und fehleranfällige Vorgehensweise ist, vor allem wenn der ursprüngliche Autor nicht mehr verfügbar ist.

Hier kommt unser so genannter multiplanet-merge-Ansatz zum Einsatz. Aber wie funktioniert er? Er erlaubt uns, festzulegen, wie multiplanet maps automatisch aus einzelnen Maps zusammengefügt werden. Das folgende Bild zeigt ein Beispiel:

Mischen von Maps
Erstellen von multiplanet maps durch Mischen einzelner Maps.

Hier werden zwei verschiedene multiplanet maps aus drei einzelnen "Planeten" erstellt: Die Map namens "Goa'uld Invasion" kombiniert das SGC mit einer Map namens "Ha'tak", während die Map "Goa'uld Jail" das SGC und eine Map namens "Jail" enthält. Anstatt die SGC-Map manuell zu duplizieren, wird dieses Mischen (englisch merging) als Teil des Kompilierungsprozesses einer Map durchgeführt. Wenn sich die SGC-Map anschließend ändert, können die Änderungen automatisch auf beide multiplanet maps angewendet werden.

Mit multiplanet merge können wir auch schnell neue Multiplayer-Missionen durch Kombinieren existierender Planeten erstellen – ohne Hammer World Editor überhaupt starten zu müssen! Wenn wir die Mod veröffentlichen, wird dies für die Mapper unter euch hilfreich sein, da ihr damit eure eigenen "Planeten" sehr schnell mit unseren verbinden könnt.

Ist es wirklich so einfach? Wer von euch Erfahrung mit Mappen hat, der weiß, dass eine multiplanet map nicht durch bloßes "aneinanderkleben" von Maps funktioniert. Die Geometrie ist da, aber natürlich muss die Spiellogik angepasst, vielleicht ein paar Türen versperrt und die Spawns für die Teams zugewiesen werden. All dies können wir mit multiplanet merge mittels einer entsprechenden Konfigurationsdatei als Teil des Kompilierprozesses durchführen – man kann es mit einer .qc-Datei vergleichen, die man beim Kompilieren eines Models an studiomdl.exe übergibt. Wir haben es daher einen ähnlichen Namen gegeben: .vmfc (Valve Map Compilation-Einstellungen). VMFC unterscheidet sich von existierenden externen Werkzeugen, da es auf jeder Plattform (nahezu) identische Resultate liefert. Und natürlich arbeitet es gut mit unserem Multi-Skybox-System zusammen.

Ich hoffe, euch hat dieser Blog Post gefallen.
Danke für's Lesen!
0 comments | posted by Sidewinder

Disclaimer - Privacy Policy