Zum Inhalt

!!! warning „Diese Site befindet sich im Aufbau!“

An dieser Seite wird aktiv gearbeitet.

Du meinst, du könntest helfen? Dann klicke einfach auf die Seite mit dem Bleistift rechts!

Dies kann auch auf jeder Seite erfolgen.

Erste Schritte

Um mit der Entwicklung für BeamMP zu beginnen, benötigst du mindestens:

  • BeamNG.drive, lokal installiert
  • BeamMP, lokal installiert; mindestens der Launcher, eventuell auch der Server
  • Git, lokal installiert, und ein GitHub.com-Konto
  • Ein Code-Editor, zum Beispiel VSCode oder Notepad++

Unterschied zwischen Mod, Launcher und Server

BeamMP ist in drei Hauptteile unterteilt:

  • Der Mod wird von BeamNG geladen, wie jeder andere Fahrzeug- oder UI-Mod für das Spiel. Seine Hauptfunktion besteht darin, eine lokale Verbindung mit dem Launcher herzustellen und die Multiplayer-UI-Elemente anzuzeigen. Er ist größtenteils in Lua geschrieben, mit etwas JavaScript, HTML und CSS für die UI-Elemente. Sein Repo ist https://github.com/BeamMP/BeamMP
  • Die Hauptfunktion des Launchers besteht darin, eine konstante Verbindung zum Mod herzustellen und bei Bedarf eine Verbindung zum ausgewählten Server herzustellen sowie die Benutzeranmeldung beim BeamMP-Backend abzuwickeln. Er ist in C++ geschrieben, wird von BeamMP vorkompiliert und ist unter https://github.com/BeamMP/BeamMP-Launcher zu finden.
  • Der Server stellt Verbindungen zwischen einem oder mehreren Launchern her und sendet „Heartbeats“ an das BeamMP-Backend, wobei er Informationen wie IP, Port, Version, Anzahl der Spieler usw. bereitstellt. Darüber hinaus verwaltet und führt er serverseitige Lua-Plugins aus. Er ist in C++ geschrieben, von BeamMP für einige verschiedene Betriebssysteme und CPU-Architekturen vorkompiliert und kann unter https://github.com/BeamMP/BeamMP-Server gefunden werden.

Einrichten einer Entwicklungsumgebung zum Arbeiten am Mod

Einen "unpacked" Ordner für BeamNG verwenden

Um effizient an Mods in BeamNG arbeiten zu können, empfiehlt es sich, einen unpacked Ordner zu verwenden, anstatt nach jeder Änderung Zip-Dateien zu verpacken.

Öffne den BeamNG-Benutzerordner, indem du zu %appdata%/Local/BeamNG.drive/0.xx/mods navigierst, wobei xx die neueste BeamNG-Version ist. Erstelle im Ordner mods einen Ordner mit dem Namen unpacked .

Weitere Informationen zum Benutzerordner finden sich unter https://documentation.beamng.com/support/userfolder/

Aktivieren des Entwicklermodus im BeamMP-Launcher

Um zu verhindern, dass ein automatisches Update den lokalen Git-Klon überschreibt, kannst du dies mit dem Start-Argument --no-download deaktivieren. Wenn du außerdem nicht möchtest, dass der Launcher BeamNG automatisch startet, und Debug-Ausdrucke sehen möchtest, wird die Verwendung von --dev empfohlen.

Argument Notiz
--help oder -h Gibt die folgende Liste von Argumenten aus
--port <port> oder -p Ändere den Standard-Port auf <port> . Dies muss auch im Spiel geändert werden
--verbose oder -v Ausführlicher Modus, gibt Debugmeldungen aus
--no-download Überspringt den Download und die Installation des BeamMP Lua-Mods
--no-update Überspringe das Anwenden von Launcher-Updates (Du musst manuell aktualisieren)
--no-launch Überspringe den Start des Spiels (Du musst das Spiel manuell starten)
--dev Entwicklermodus, dasselbe wie --verbose --no-download --no-launch --no-update
--game <args...> oder -- <args...> Übergibt Argumente an das Spiel

Klonen des BeamMP-Repos in den entpackten Ordner

Sie können die BeamMP-Mod-Dateien zwar manuell aus unserem GitHub-Repo kopieren, es wird jedoch dringend empfohlen, ein Quellcodeverwaltungssystem wie Git zu verwenden. Erstellen Sie zunächst einen Fork von https://github.com/BeamMP/BeamMP

Am effizientesten ist es, das Repo direkt in den unpacked Ordner zu klonen.

Bei verwendung vongit, führe git clone https://github.com/yourName/BeamMP in einem PowerShell- oder CMD-Fenster aus, das aus dem unpacked Ordner gestartet wurde. Stelle im Benutzerordner sicher, dass unter mods kein multiplayer Ordner mehr vorhanden ist und dass jetzt unpacked/beammp vorhanden ist.

Probiere jetzt den Entwicklermodus aus. Starte den BeamMP-Launcher, starte BeamNG manuell und stelle im Spiel sicher, dass BeamMP der einzige aktive Mod ist. Du solltest BeamMP wie gewohnt verwenden können.

Mithilfe eines Code-Editors kann nun Code direkt im unpacked Ordner hinzugefügt oder geändern werden. Du kannst die Änderungen dann ausprobieren, indem Lua im Spiel durch drücken von Ctrl+L neu geladen wird. Durch drücken vonF5 kann die Benutzeroberfläche neu geladen werden, falls Änderungen daran vorgenommen wurden.

Wenn du mit den Änderungen zufrieden bist, kann dies über Git "comitted" werden. Auf der Git-SCM-Website finden sich Tutorials und Dokumentationen zur Verwendung von Git. Sobald die Änderungen comitted und (an Ihren Fork) gepusht wurden, können Sie einen Pull-Request stellen.

Wenn du auf Probleme stößt, kannst du jederzeit im #scripting-Kanal in unserem Discord nachfragen.


Einrichten eines lokalen Servers

Beim Arbeiten mit BeamMP kann es von Vorteil sein, einen lokalen Server zu verwenden. Du kannst die allgemeine Serverinstallation durchführen und dabei die ersten beiden Schritte für rein lokale Verbindungen überspringen.

Setze den Server in der serverConfig.toml auf privat und verwende dabei eine beliebige Zeichenfolge als AuthKey .


Mitwirkungsrichtlinien

Einzelheiten zum Codeformat, Commit-Nachrichtenformat, allgemeinen Best Practices für die Entwicklung usw. findest du in der Datei CONTRIBUTING.md in jedem Repo. Diese Datei enthält ausführlichere Informationen zum Mitwirken. Die README.md in jedem Repo enthält normalerweise auch Build-Schritte (für kompilierte Projekte).