Modding Tutorial

Das ist die Übersetzung zum Time to Make The Mods Artikel auf unknownworlds.com. Es ist ein Tutorial zum Erstellen eines Mod, am Beispiel einer „Uber Shotgun“.

Launch Pad

Das erste Tool, dass wir hier besprechen, ist das Launch Pad. Mit dieser Anwendung werdet ihr eure Mods erzeugen, managen und im Steam-Workshop veröffentlichen. Das Programm heißt LaunchPad.exe und befindet sich in eurem NS2 Installationsverzeichnis, z.B.

C:\Program Files (x86)\Steam\steamapps\common\Natural Selection 2\LaunchPad.exe

LaunchPad
LaunchPad ist der Startpunkt für's Modden

Sobald ihr das LaunchPad geöffnet habt, holt euch einen Tee, geht nochmals aufs Klo wenn nötig und macht euch bereit, denn wir werden jetzt MODDEN!!

Drückt den New Button.

Damit öffnet ihr die „Mod Wizard“ Dialogbox.

NewMod 
Die Namenswahl ist ein wichtiger Part des Moddings

Dort müsst ihr den Speicherort für eure Projektdateien und den Namen festlegen. Drücke den Create Button um den Mod zu erstellen.

Builder

Launch Pad ist nun für diesen Mod eingestellt. Als nächstes starte den Builder.

Doppelklick auf das Builder-Icon und du wirst folgendes Fenster sehen:

Builder 
Der Builder wird all deine Modelemente erstellen 
und in den Output-Ordner kopieren.

Klicke auf das Build Menü und dann auf Build.

Das sorgt dafür, dass der Mod im Output-Pfad erstellt wird. Während du an deinem Mod arbeitest solltest du immer den Builder am laufen haben. Builder wird im Hintergrund weiterlaufen, wenn du das Fenster schließt.

The Source

Gehe nun zum LaunchPad zurück und doppelklick auf das Source Icon. Du siehst dann folgendes:

SourceContents 
Alle Sourceelemente gehen in diese Ordner

Die Modquell-Dateien gehen alle in diese Ordner.

  • lua ist für den Lua Gamecode.
  • mapsrc ist für Level-Dateien.
  • materialsrc ist wohin die Materialdaten und Texturen hingehen.
  • modelsrc ist für die Model- und Animationsdateien.
  • soundsrc ist für FMOD Projekte und .wav Dateien.
  • game_setup.xml ist eine Datei, die Informationen über den Mod an das Spiel weitergibt.

Game Setup

Öffne das game_setup.xml mit einem Texteditor wie z.B.  NotePad++:

GameSetupFile

Name ist die Spielbezeichnung, die im Serverbrowser angezeigt wird. Wenn du einen NS2 Mod machst, ist es das beste es bei ns2 zu belassen (z.b. bei DAK Admin Mod). Für den Fall, dass du ein eigenes Spiel machst (z.B. Combat), solltest du ein eigenes kürzel vergeben.

Description ist der vollständige Modname.

Client, predict, server, und loading sind die Einstiegspunkte für die Ausführung des Modcodes.

Es gibt auch Felder, hier nicht dargstellt, für einen Main-Menu-Eintrag (<startup>lua/Main.lua</startup>) und das Icon das für den Mod verwendet werden soll. Default sind diese die NS2 Einstellungen und müssen nicht geändert werden.

Die 7. Zeile ändert ihr in:

<loading>lua/Loading.lua</loading>

Das wird dafür sorgen, dass unser Mod den default-Loading screen code verwendet.

File System

Jetzt ist ein guter Zeitpunkt zu erklären wie das Datensystem in Spark funktioniert. Es ist sehr wichtig das Konzept zu verstehen.

Das System kann eine beliebige Anzahl von Ordner als virtuelle Ordner erstellen. Beispielsweise enthält die default NS2 Installation einen „ui“-Ordner, indem alle Benutzeoberflächen-Bilder hinterlegt sind. Aber jede beliebige Zahl von Mods können auch ihr eigenen „ui“-Ordner haben.

Es gibt eine Datei „crosshairs.dds“ im „ui“-Ordner. Das ist das Bild, dass die Crosshairs für die verschiedenen NS2 Waffen und Fähigkeiten darstellt.

Sobald der Gamecode nach “ui/crosshairs.dds” fragt, wird diese vom virtuellen Datensystsem geladen.

Wenn ich einen Mod erstelle, der einen „ui“-Ordner miteinbezieht, so wird Spark die Dateien in meinem Mod-Ordner den default NS2 Dateien vorziehen.

FilesystemDecision
Das Dateisystem wird Moddateien zuerst laden und erst danach NS2 Dateien.

Einstiegspunkte

Als nächstes erstellen wir die Einstiegs-Dateien ModClient.lua, ModPredict.lua, und ModServer.lua.

Dafür musst du zurück zum Source directory und dort in den lua-Ordner. Erstelle eine neue Textdatei und bennen diese in ModClient.lua um. Das gleiche machst du für ModPredict.lua und ModServer.lua.

CreatingEntryPoints 
Erstellen der Einstiegspunkte

Programmieren!

Der nächste Schritt ist es, die Dateien mit Code zu füllen. In diesem Fall verwenden wir einfach den Startcode von NS2.

Öffne ModClient.lua und geb folgendes ein:

Script.Load("lua/ModShared.lua")

Das gleiche macht ihr für ModPredict.lua und ModServer.lua.

Shared Code

Erstelle eine neue Textdatei im lua Ordner mit der Bezeichnung ModShared.lua.

Öffne diese Datei und geb folgendes ein:

if Server then
   Script.Load("lua/Server.lua")
elseif Client then
   Script.Load("lua/Client.lua")
elseif Predict then
   Script.Load("lua/Predict.lua")
end

Script.Load("lua/Class.lua")

-- Load mod files here.

In diesem Tutorial wird nicht erklärt wie man in lua porgammiert. Dafür gibt es Tutorials wie z.B. Programming in Lua oder Suchmaschinen.

In diesem Tutorial wird aber erklärt was der Code macht.

Was ist hier los?

if Server then
   Script.Load("lua/Server.lua")
elseif Client then
   Script.Load("lua/Client.lua")
elseif Predict then
   Script.Load("lua/Predict.lua")
end

Die sieben Zeilen laden den default NS2 Startscripte, abhängig davon welches VM gerade läuft.

Die VM (Virtual Machine) steht für den Code der zurzeit ausgeführt wird. Die primäre VMs mit denen wir in diesem Tutorial umgehen müssen sind: Server, Client und Predict.

Diese Zeilen prüfen ob eine Lua-Tabelle vorhanden ist und laden dann entsprechend die Startscripts. Die Lua-Tabellen werden automatisch von der Engine erstellt, bevor der Modecode ausgeführt wird.

Script.Load("lua/Class.lua")

Das script ist Teil des Modding-Frameworks. Es darf erst ausgeführt werden, nachdem der dafult NS2 Code geladen wurde.

-- Load mod files here.

Die Zeile ist nur ein Kommentar und wird vom Programm ignoriert. Dort werden wir später unseren Modcode einfügen.

Ausführen!

Ab diesem Punkt haben wir praktisch einen Mod den wir Ausführen können.

Geh zurück zum LaunchPad und doppelklicke auf den Launch Game Button.

LaunchGame

Du wirst das normale NS2 Main-Menu sehen, nur wird in der Titelzeile dein Modname stehen. (Es wird empfohlen den Fenstermodus (Windowed) zu verwenden)

Öffne die Console mit dem ~ Key und gebe map ns2_summit ein und drücke Enter.

LoadSummit

Nach dem Laden wirst du in Summit stehen und alles sollte wie das normale NS2 funktionieren. Der einzige unterschied ist der NS2 Mod der läuft.

Olol, noob! … Gut gemacht!

Uber Shotgun!

Jetzt lass uns mal was ändern.

Erstell eine neue Textdatei im lua Quellverzeichnis und benenne es UberShotgun.lua.

UberShotgunFile  
UberShotgun.lua !! 4 pr0 0nlyz

 Geh zurück in die ModShared.lua Datei.

Nach dem Kommentar füge hinzu:

-- Load mod files here.
Script.Load("lua/UberShotgun.lua")

Öffne die UberShotgun.lua Datei und gib folgendes ein:

function Shotgun:ApplyBulletGameplayEffects(player, hitEnt, impactPoint, direction, damage, surface, showTracer)
   if HasMixin(hitEnt, "Fire") then
       hitEnt:SetOnFire(player, self)
   end
end

Änderungen testen

  1.  Geh zurück in das  LaunchPadGo und doppelklicke den Launch Game Button.
  2. Öffne die Konsole mit dem  ~ Key und gebe map ns2_summit ein und drücke anschließend Enter.
  3. Sobald du im Spiel bist, öffne die Konsole erneut und gebe cheats 1 ein.
  4. Join ins Marine-Team, öffne die Console und führe give shotgun aus.
  5. Geh in die Alienbase und  fang an zu ballern!
TestingChange 
Brennneeeee! Mwahahaha!

Veröffentlichen

Im letzten Schritt musst du nur noch deinen mod im Steam Workshop veröffentlichen.

Geh dafür wieder ins LaunchPad und drück den Configure Button.

Configure

Beschreibe dort deinen Mod und drücke OK.

Als nächstes musst du den Publish Button drücken.

Publish

Du kannst die sichtbarkeit für Friends Only oder Private stellen, wenn du den Mod nur austesten möchtest.

Wenn du soweit fertig bist, drück den Publish Button und dein Mod wird in den Steam Workshop hochgeladen.

Ist dieser abgeschlossen, befindet sich dein Mod im Steam Workshop.

 

 

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>