Übersicht für neue Entwickler
-
Dieser Thread soll als Einstiegspunkt und Übersicht für Entwickler dienen, die neu in der OPT mitwirken.
Die OPT wird zu 100% via Github entwickelt und verwaltet. Alle Repositories laufen hier:
https://github.com/OperationPandoraTrigger
Je nachdem, woran ihr arbeitet, könnt ihr euch hier die aktuellsten Dev-Versionen holen.
Repo-Übersicht
- CLib
Ist unser verwendetes Framework für die Servermod. Vorteil: Funktionen werden rein auf die Servermod gespielt und müssen nicht jedes Mal auf dem Client aktualisiert werden.
Alle OPT-Funktionen müssen in der unscheduled-Environment laufen. Eine gute Erklärung des Unterschieds findet man hier (Nur verwenden wir CLib statt CBA). CLib unterstützt ausschließlich unscheduled Funktionen!
Dieses Repository muss NICHT heruntergeladen werden. Hier werden Änderungen nur in den seltensten Fällen (idealerweise gar nicht) nötig sein. Es wird nur als Submodul der Server-Mod mitgeladen. - **Client-Mod
**Diese Mod müssen alle Clients herunterladen und aktuell halten. Hier landet alles, was in der Servermod nicht funktioniert: Klassen-Konfigs (Fahrzeuge, Einheiten, Waffen, Dialoge, ...), Assets (Texturen, Sounds, ...) . Funktionen sind hier nur in Ausnahmefällen erlaubt. Ziel ist es, diese Mod nur selten aktualisieren zu müssen (Spielerkomfort). - **Server-Mod
**Das Herzstück der OPT. Alle Spiellogik und -funktionen unserer Missionen landen hier. Diese Mod wird es nur auf dem Server geben. CLib sorgt zu Beginn der Mission dafür, dass die nötigen Funktionen auf die Clients übertragen und ausgeführt werden. Komfortabel für uns Devs wie auch die Spieler!
Achtung: Wenn ihr dieses Repo klont, zieht euch UNBEDINGT auch die submodules, damit CLib als solches mitgeladen wird! - Mission
Hier liegt unsere Dev-Test-Mission und später auch etwaige Schlacht-Missionen. Die Mission beinhaltet dabei wiederum nur das Nötigste: Einheitenplatzierungen im Editor. Assets sollen in die Client-Mod ausgelagert werden. So bleibt der Missions-Download am Schlachttag auch schön schlank. - Tools
Eine Sammlung aus Tools und Skripten, mit denen komfortabel alle Mods aus den Quellen heraus neu gebaut werden können. Weiterhin kann hiermit auch ein lokaler ArmA-DevServer sowie Client hochgefahren werden.
Workflow für neue Features/Änderungen:
Zuerst stellt ihr euer Feature-Konzept im Forum vor: Mod - Komponenten
Das dient nicht als Fleißaufgabe, sondern viele Reibungspunkte können schon in diesem Stadium entdeckt und ausgemerzt werden. In diesen Threads finden höchst konstruktive Diskussionen statt, die viel späteren Frust und Ärger vermeiden können. Es gibt wenig Frustrierenderes als die Erstellung von Code, der anschließend in die Tonne getreten wird.
Wenn ihr dann mit dem Coden loslegen wollt, gilt es folgendes zu beachten:
Alle Änderungen an den Repos laufen zu 100% über Pull Requests (PR). Erstellt euch einen Fork der jeweiligen Repos und arbeitet eure Features dort auf.
Sobald die erste Zeile Code geschrieben ist, eröffnet ihr einen PR auf das Haupt-Repo. Schreibt "WIP" in den Titel bzw. erstellt den PR als "Draft", damit er noch nicht gemergt werden kann. Committet sehr kleinteilig (keine Megacommits mit tausenden Dateien!) So können andere Devs und auch die Reviewer schon frühzeitig von euch lernen und auch Feedback beisteuern. Auch bei Problemen könnt ihr so ganz einfach auf eine Codezeile in eurem PR verweisen, wenn ihr Hilfe holt. Ist euer Feature fertig, entfernt ihr das "WIP" bzw. schaltet den PR auf merge-bereit. Dann werden unsere Code-Gurus das nochmal prüfen und bei Fehlerfreiheit und Standardkonformität in den Hauptzweig mergen, so dass das Feature im nächsten Update ausgerollt wird.
Wie entwickle ich komfortabel?
Als Entwicklungsumegbung hat sich VS Code bei uns verbreitet. Selbstverständlich könnt ihr aber auch andere Umgebungen nutzen, dort können wir aber bei Problemen nur begrenzt helfen.
Das Tools-Repo beinhalten entsprechende Hilfsskripte, um die Mod/Mission zu kompilieren und ggf. am richtigen Fleck im Dateisystem einzublenden (Zielpfade müsst ihr natürlich anpassen, README beachten!).
Anschließend könnt ihr mithilfe der Startskripte ganz leicht die Mod/Mission hochfahren, um euch als "echter Client" einfach dort zu verbinden. Nur so könnt ihr euer Feature so testen, wie es später auch laufen wird (Server-Client statt alles lokal).
Weiterführende Links
Anleitung Localen Dedi Server erstellen. oder Lokaler Dev-Server
Anleitung Git (etwas veraltet) - für aktuelle Infos immer die Repo-READMEs lesen sowie in die Github-Wikis gucken!
Git Fork Workflow Erklärung & Guide
Ansprechpartner
- CLib
Da wir kein Clan im gängigen Sinne sind, verstreuen sich Dokumentation, Mitschnitte, Rekrutierungsgesuche und Promo teilweise etwas weiter im Netz. Dennoch geben wir unser Bestes das Material der Mitspieler zu bündeln.
Wir sind unter allen gängigen Plattformen erreichbar: