Vai al contenuto

Questo sito è in costruzione!

Questo sito è attualmente in fase di lavorazione.

Pensate di poter aiutare? Per favore, fatelo cliccando sulla pagina con una matita a destra!

Questo può essere fatto anche su qualsiasi altra pagina.

Per iniziare

Per iniziare a sviluppare per BeamMP avrai bisogno di almeno queste cose:

  • BeamNG.drive, installato in locale
  • BeamMP, installato in locale; come minimo il launcher, anche il server se necessario
  • Git, installato in locale, e un account di GitHub.com
  • Un editor di codice, come VSCode o notepad++

Differenze tra mod, launcher e server

BeamMP è diviso in tre componenti principali:

  • La mod è caricata da BeamNG, come qualsiasi altra mod per il gioco. La sua funzione principale è quella di stabilire una connessione in locale con il launcher e mostrare gli elementi di interfaccia utente per il multiplayer. È scritta principalmente in Lua, con parti in JavaScript, HTML e CSS per gli elementi di UI. Il suo repo è https://github.com/BeamMP/BeamMP
  • Il launcher stabilisce una connessione costante alla mod, quando necessario apre una connessione al server selezionato in gioco, infine si occupa del login del giocatore tramite il backend di BeamMP. È scritto principalmente in C++, viene precompilato da BeamMP e il suo repo è https://github.com/BeamMP/BeamMP-Launcher
  • Il server stabilisce una connessione tra uno o più launcher, inoltre manda "heartbeat" al backend di BeamMP contenenti diverse informazioni tra cui l'IP, la porta, la versione, il numero di giocatori, ecc. Gestisce ed esegue plugin Lua lato server. È scritto in C++, viene precompilato da BeamMP per diversi sistemi operativi e architetture CPU, il suo repo è https://github.com/BeamMP/BeamMP-Server

Creare un ambiente di sviluppo per lavorare sulla mod

Usare una cartella unpacked per BeamNG

Per lavorare in modo efficiente alle mod in BeamNG è molto consigliato usare una cartella unpacked, invece di ricreare zip dopo ogni cambiamento.

Apri la cartella utente di BeamNG navigando a %appdata%/Local/BeamNG.drive/0.xx/mods dove xx è l'ultima versione di BeamNG. Crea una cartella chiamata unpacked all'interno della cartella mods.

Altre informazioni riguardo la cartella utente si possono qui https://documentation.beamng.com/support/userfolder/

Abilitare la modalità sviluppatore per il launcher BeamMP

Per evitare che gli aggiornamenti automatici cancellino la tua git clone locale, bisogna disabilitarli usando --no-download. Se non vuoi che il launcher apra BeamNG e vuoi vedere stampe di debug, è consigliato usare --dev.

Parametri Note
--help o -h Stampa a video questa lista di parametri
--port <port> o -p Cambia la porta di ascolto da quella di default a <port>. Deve essere configurata anche in gioco
--verbose o -v Modalità verbosa, stampa messaggi di debug
--no-download Salta il download e l'installazione della mod Lua di BeamMP
--no-update Salta l'aggiornamento automatico del launcher (bisognerà aggiornare manualmente)
--no-launch Salta l'avvio automatico del gioco (bisognerà avviare il gioco manualmente)
--dev Modalità sviluppatore, equivalente a --verbose --no-download --no-launch --no-update
--game <args...> o -- <args...> Passa dei parametri al gioco

Clonare il repo di BeamMP nella cartella unpacked

Nonostante si possa copiare manualmente i file di BeamMP dal nostro repo di Github, è consigliato usare un sistema di source-control come git. Per prima cosa crea una fork di https://github.com/BeamMP/BeamMP

La cosa più efficiente sarebbe quella di clonare il repo direttamente nella cartella unpacked.

Per git, lanciare git clone https://github.com/yourName/BeamMP da una finestra PowerShell o CMD, avviata nella cartella unpacked. Controlla che nella cartella utente di BeamNG non ci sia alcuna cartella multiplayer in mods e che invece ci sia unpacked/beammp.

Ora puoi provare la modalità sviluppatore. Avvia il launcher BeamMP, avvia BeamNG manualmente, controlla che BeamMP sia l'unica mod attiva. Dovresti riuscire a giocare normalmente.

Usando un editor di codice, puoi aggiungere o cambiare codice direttamente dalla cartella unpacked. In seguito alle modifiche ricarica Lua in gioco premendo Ctrl+L (e F5 se hai effettuato modifiche all'interfaccia utente).

Quando sei soddisfatto delle modifiche, puoi effettuare una commit tramite git. Guarda il sito Git-SCM per guide e documentazione sull'utilizzo di Git. Non appena hai effettuato commit e push (al tuo repo), puoi aprire una pull-request.

Chiedi pure nel canale #scripting nel nostro Discord se hai dei problemi.


Creare un server in locale

Mentre si lavora su BeamMP può essere d'aiuto l'utilizzo di un server in locale. Puoi seguire la guida di installazione del server saltando i primi due passi per quanto riguarda le connessioni locali.

Imposta il server come privato in serverConfig.toml e puoi usare una qualunque stringa come AuthKey.


Linee guida per contribuire

Per i dettagli riguardo la formattazione del codice, formato dei messaggi di commit, migliori pratiche per lo sviluppo, ecc. leggere il file CONTRIBUTING.md presente in ogni repo. Questo file contiene informazioni dettagliate su come contribuire. Il file README.md in ogni repo, di solito contiene anche dei passi per compilare il codice (per i progetti precompilati).