Grundlagen für die Entwicklung
LeonMrBonnie
Moin,
da es hier noch an alt:V Tutorials mangelt, werde ich mal mit einer kleinen Tutorialreihe anfangen, in der ich die Basics von alt:V erkläre, damit der Einstieg leichter ist.
Die Dokumentation und besonders das Wiki ist lange nicht so umfassreich wie das von Rage:MP oder FiveM, das liegt auch einfach an der kleineren Community.
Wichtige Informationen für die Entwicklung
Der alt:V Discord
Zu Beginn möchte ich erst einmal auf den offiziellen alt:V Discord verweisen. Falls man mal Probleme oder Fragen zu alt:V wird einem dort immer sehr schnell und nett geholfen. Dort bin ich auch oft vertreten und helfe.
Der Invitelink ist hier zu finden: Invitelink
Vorraussetzungen
Bevor man mit der Entwicklung in alt:V starten kann muss man zu erst einige Vorraussetzungen empfehlen.
- Beherrschen der englischen Sprache (Das muss man egal wo oder wie man entwickeln will, ohne Englisch kommt man in der Entwicklung einfach nicht weit!)
- Grundkenntnisse in JS (dort wäre auch NodeJS von Vorteil, ist aber kein muss) oder C# (In diesem Tutorial beschäftigen wir uns nur mit JS)
- Für JS: Kenntnisse in der ES6 Spezifikation (import/export etc.)
- Eine legale GTA:V Installation und alt:V installiert (sollte denke ich mal klar sein, ich erwähn es aber lieber noch mal)
Du erfülltst all diese Vorraussetzungen? Super, dann kanns auch schon mit der nächsten Frage weitergehen. Wenn nicht, empfehle ich erstmal alle Voraussetzungen zu erfüllen, sonst wird die Entwicklung nur schwerer als sie sein sollte.
Herunterladen des alt:V Servers
Informationen
Den Download für den Server finden wir auf der offiziellen alt:V Webseite, hier haben wir nun die Wahl zwischen Windows oder Linux, dort nehmen wir dann das Betriebssystem auf dem Server laufen soll, im Live Betrieb ist Linux empfehlenswert, für Entwicklungszwecke reicht es aber den Server lokal auf dem eigenen Windows PC zu hosten.
Die Auswahl der genutzten Branch
Darunter finden wir nun ein Dropdown Menü in dem wir 3 Möglichkeiten haben: Release, RC und Dev. Welche Branch man hier wählt ist nun einem selbst überlassen.
Release ist der Branch in dem die aktuellste stabile Version läuft, diese Version ist immer einige Versionen hinterher und erhält neue Features erst später. Dieser Branch ist für den Live Betrieb zu empfehlen, da auch nur dieser Branch die Masterlist anzeigt.
RC (Release Candidate) ist der ehemalige Beta Branch, in dem die neuen Features oft schon Stunden nach der Implementation verfügbar sind. Dieser Branch ist zum Entwickeln gedacht, und ist meine persönliche Empfehlung, da dieser zwar die neuen Features bietet aber auch trotzdem meist sehr stabil ist.
Dev (Development) ist der ehemalige Alpha Branch, hier erhält man als erstes die neuen Features und Updates, aber dafür ist dieser Branch oft instabil und sollte nur verwendet werden wenn man umbedingt die neuen Features so früh wie möglich ausprobieren will. Dieser Branch ist genauso nur für die Entwicklung gedacht, und sollte NIEMALS im Live Betrieb verwendet werden.
Für den entsprechenden Branch brauch man auch die entsprechende alt:V Version installiert, achtet also darauf dass ihr wenn ihr RC verwenden wollt z.B., auch die RC Version von alt:V installiert habt.
In diesem Tutorial wählen wir den RC Branch, für neue Features aber trotzdem guter Stabilität.
Auswahl der benötigten Dateien
Nachdem wir uns hier nun einen Branch ausgewählt haben müssen wir nun den Haken bei den Sachen setzen, die wir runterladen möchten. Hier sollte man als erstes den Punkt Data files wählen, dann das gewünschte Modul für die Programmiersprache die man verwendet also das JS Module oder C# Module. (Wenn man sich für den Release Branch entschieden hat MUSS man hier das NodeJS Module wählen und den Haken beim JS Module rausnehmen, außer man will C# benutzen, dann wählt man auch beim Release Branch einfach nur das C# Module, das JS Module ist aber beim Release Branch noch nicht verfügbar, und stattdessen muss man das alte NodeJS Module verwenden)
Dann wählt man auch noch die Sample config file aus, um eine fertige Config für den Server dabei zu haben.
Das Example Resource Pack sollte man nur auswählen, wenn man Beispielsresourcen brauch um sich diese anzugucken.
In diesem Tutorial wählen wir die Data files, das JS Module und die Sample config file.
Installation des alt:V Servers
Entpacken der Dateien
Nachdem wir nun die Serverdateien runtergeladen haben, haben wir nun ein ZIP Archiv welches wir in einem beliebigen Ordner entpacken.
Der Inhalt dieses Ordners sollte dann nun ungefähr so aussehen:
Hier haben wir nun also mehrere Dateien und Ordner, die unser Server benötigt.
Bedeutung der verschiedenen Dateien
In dem data Ordner liegen einige Daten von GTA V in Binärform, die Vehicle Models und die Vehicle Modifikationen. Diese sind aber relativ unwichtig, sie müssen nur da sein, und werden vom Server selber intern verwendet.
In dem modules Ordner liegen die verschiedenen Module, wie z.B. das C# Modul oder das JS Modul. Das Modul welches wir ausgewählt haben, sollte in diesem Ordner zu finden sein.
Die altv-server.exe Datei ist die Hauptdatei des Servers. Diese Datei führen wir entweder mit einem Doppelklick oder mit der Konsole aus, um den Server zu starten.
Die server.cfg ist die Konfigurationsdatei des Servers. Hier können wir wichtige Einstellungen wie z.B. den Servernamen oder die verwenden Module einstellen.
Die Server Konfiguration
Bevor wir den Server nun starten können müssen wir erstmal unseren Server richtig konfigurieren. Die Konfiguration des Servers können wir in der vorher erwähnten server.cfg Datei bearbeiten.
Diese Konfigurationsdatei sollte nun ungefähr so aussehen:
name: 'alt:V Server'
host: 0.0.0.0
port: 7788
players: 128
#password: ultra-password
announce: false
#token: YOUR_TOKEN
gamemode: Freeroam
website: example.com
language: en
description: 'alt:V Sample Server'
modules: [ node-module ]
resources: [ ]
Hier können wir nun unseren Server konfigurieren. Eine Übersicht über die Konfigurationsdatei können wir hier im alt:V Wiki finden: Server.cfg - alt:V Wiki
Diese Konfigurationsdatei sollten wir nun also erstmal zu unserem belieben bearbeiten.
Ganz wichtig ist hier, dass wir falls wir das JS Module verwenden, bei dem Punkt modules das node-module zu einem js-module ändern, sonst startet der Server nicht, weil das Modul nicht gefunden wurde.
Nachdem man es nun so konfiguriert hat, wie man es gerne hätte sollte es ungefähr so aussehen:
name: 'Leons geiler alt:V Server'
host: 0.0.0.0
port: 7788
players: 500
#password: ultra-password
announce: false
#token: YOUR_TOKEN
gamemode: Roleplay
website: leonmrbonnie.de
language: de
description: 'Leons alt:V Entwicklungsserver'
modules: [ js-module ]
resources: [ ]
debug: true
Hier fällt einigen nun bestimmt die letzte Zeile auf, diese Zeile sorgt dafür dass der Server im Debug Modus startet. Wenn wir nun in unserem alt:V Installationsverzeichnis die altv.cfg bearbeiten und die gleiche Zeile dort hinzufügen, können wir nun nachdem wir mit dem Server verbunden sind die Taste F8 drücken um die Konsole zu zeigen. Diese ist sehr hilfreich in der Entwicklung für z.B. Debugging, oder eingebaute Befehle wie reconnect um neu auf den Server zu verbinden.
Dies ist nur möglich wenn auf dem Server sowohl beim Client der Debug Modus aktiviert ist. Diese Option sollte also im Live Betrieb ausgeschaltet werden.
Den Server das erste mal starten
Nun haben wir den Server erfolgreich konfiguriert, jetzt kann man den Server zum ersten mal starten.
Um den Server zu starten doppelklickt man nun also die altv-server.exe (alternativ auch Rechtsklick und dann auf Öffnen klicken) oder öffnet ein Terminal, navigiert in den Ordner unseres Servers und gibt altv-server.exe ein.
Nun sollten man ein bisschen Text in der Konsole sehen. Wenn das ungefähr so aussieht:
Dann ist der Server erfolgreich gestartet, und wir können mit der Entwicklung beginnen!
Falls dort nun Fehler auftauchen, dann poste diese bitte hier unter diesem Thread damit ich weiterhelfen kann.
Schlusswort
Ich hoffe euch hat die "kleine" Einführung in das Entwickeln mit alt:V gefallen. Für Verbesserungsvorschläge und konstruktive Kritik bin ich wie immer offen.
Falls Probleme bei dem Tutorial auftraten, dann einfach hier unter dem Thread das Problem beschreiben. Damit ich bei der Lösung helfen kann.
*drops mic*