Docs/docs/de/guides/beammp-dev/beammp-dev.md
2025-01-17 13:34:42 +01:00

5.8 KiB

!!! 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.

Getting started

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

  • BeamNG.drive, installed locally
  • BeamMP, lokal installiert; mindestens der Launcher, eventuell auch der Server
  • Git, installed locally, and a GitHub.com account
  • A code editor, for example VSCode or notepad++

Difference between mod, launcher and server

BeamMP is split into three main parts:

  • The mod is loaded by BeamNG, like any other vehicle or UI mod for the game. Its main function is to establish a local connection with the launcher and to display the multiplayer UI elements. It's mostly written in Lua, with some JavaScript, HTML, and CSS for the UI elements. Its repo is https://github.com/BeamMP/BeamMP
  • The launcher's main function is to establish a constant connection to the mod, and once necessary, establish a connection to the chosen server, as well as handling user login with the BeamMP backend. It's written in C++, is precompiled by BeamMP and can be found at https://github.com/BeamMP/BeamMP-Launcher
  • The server establishes connections between one or many launchers, as well as "heartbeating" to the BeamMP backend, providing information such as IP, port, version, number of players, etc. Additionally, it manages and runs server-side Lua plugins. It's written in C++, precompiled by BeamMP for a few different OS and CPU architectures, and can be found at https://github.com/BeamMP/BeamMP-Server

Setting up a development environment to work on the 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/

Enabling dev mode in the 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 Note
--help or -h Gibt die folgende Liste von Argumenten aus
--port <port> or -p Ändere den Standard-Port auf <port> . Dies muss auch im Spiel geändert werden
--verbose or -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...> or -- <args...> Passes arguments to the game

Cloning the BeamMP repo into the unpacked folder

While you can manually copy the BeamMP mod files from our github repo, it is highly recommended to use a source-control system like git. First create a fork of 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.


Setting up a local server

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).