Multiplayer mit eigenem Server

Das größte Spielerlebnis bei Assetto Corsa Competizione ist der Multiplayer. Dafür hat der Hersteller eine kleine Software beigelegt, mit der man seinen eigenen Server starten kann. Dieser Server meldet sich dann am Hauptserver(Lobby) des Herstellers an und trägt diesen in eine Liste ein, die im Spiel angezeigt wird sobalt man dort den Multiplayer wählt. Damit kann man dann mit seinen Freunden ungestört auf dem eigenen Server fahren.

Voraussetzung für Multiplayer

Um einen eigenen Multiplayer-Server zu betreiben, muss deine Internetverbindung eine sogenannte "Portweiterleitung" unterstützen. Oh je wieder diese Fachausdrücke - ok ich versuche es dir mal zu erklären. 

Die eigene Verbindung besteht ja im einfachsten Fall aus einem Computer der an einem Router mit Modem angeschlossen ist, der Router ist wiederum mit dem Modemanschluss am Internet angeschlossen. Damit kannst du dann im Internet serven. Um im Internet zu serven und ein paar Downloads zu machen, brauchst du nur eine "ausgehende Verbindung", das bedeutet, es werden nur Anfragen von deinem Computer ans Internet gestellt und du bekommst dann eine Antwort in Form von Text, Bildern, Filmen oder Downloads.

Damit deine Freunde sich mit deinem eigenen Server von ACC verbinden können, brauchst du eine "eingehende Verbindung". Bei einer eingehende Verbindung, werden Anfragen von anderen Computer über den Internetanschluss gesendet, die dann an deinen Computer weiter geleitet werden auf dem dein ACC-Server läuft. Um eingehende Verbindungen überhaupt verarbeiten zu können, muss dein Internetprovider das auch zulassen. Leider ist es so, dass verschiedene Internetanbieter diese Funktion nicht mehr im Basispaket anbieten. Vor allem sind es alternative Firmen zur Telekom, die das so tätigen. In dem Basispaket ist das sogenannte "Port Forwarding" nicht mehr mit eingeschlossen, also die Portweiterleitung zum eigenen Computer. Diese Funktion muss man sich dann über einen teuereren Anschluss kaufen. Deshalb nutzen Spielefans meistens externe Serveranbieter um einen eigenen Server zu betreiben, die eine kleine monatl. Gebühr dafür verlangen.

Neben der Portweiterleitung, ist es auch wichtig eine Internetanbindung mit einem guten Up-Stream zu haben. Bei ACC ist es so, dass man für ein Server mit 24Ports ungefähr eine Bandbreite von 5000kb/s braucht. Das ist schon eine Nummer und eine Herausvorderung wenn man z. B. in ländlichen Gebieten wohnt, bei denen es keinen guten Internetausbau gibt.

Verbindung Internet zum Computer einrichten

Legen wir mal mit dem einrichten los, damit schnell deine Freunde mit fahren können. Wenn die Voraussetzung der Internetanbindung erfüllt sind, kann es jetzt ans eingemachte gehen. Zuerst musst du in deinem Router 2 Ports frei geben, die von aussen erreichbar sein sollen. Oh ha schon wieder so Fachbegriffe. Ok ich erkläre es kurz . Stell dir ein sehr großes Hochhaus vor mit hundert von Bewohnern. Das Hochhaus ist dein Computer und die Bewohner wären dann die Software. Einer dieser Bewohner ist dein ACC-Server. Jetzt kommt der Postbote und will deinem Server Post zustellen. Nur wie findet er deinen Server in dem Hochhaus. Am einfachsten ist es er schaut auf die Schilder der Briefkästen und wirft die Post dann in den Briefkasten ein, auf dem ACC-Server steht. Und genau diese Briefkästen, sind die sogenannten Ports.

In der Konfiguratinsdatei "configuration.json" sind Nummern für die Ports UDP und TCP eingetragen und diese Nummern sind deine Namensschilder wie auf den Briefkästen. Damit jetzt diese Ports von aussen erreichbar sind, muss man dem Router sagen, ja von aussen darf man auf diese Ports zugreifen. Schau in deine Bedienungsanleitung von deinem Router, dort gibt es einen Abschnitt, wie man Portweiterleitungen einrichtet. Die Standardports sind TCP: 9231 und UDP: 9231. Diese müssen dann in deinem Router eingetragen werden. 

VORSICHT! ÖFFNEN VON PORTS BEDEUTET IMMER EIN SICHERHEITSRISIKO!
Idealer weise betreibt man Software, die aus dem Internet erreichabr sein soll, auf Computern, die keine persönliche Daten enthalten, und wieder schnell herstalbar sind, wenn mal versehentlich sich ein Virus oder Malware darauf eingenistet hat. Also am besten auf einem 2 Computer. Der ACC-Server ist recht anspruchslos. Ich betreibe diesen auf einem alten Laptop. Man muss nur den Ordner "server" aus dem Hauptverzeichnis auf den 2. Rechner kopieren. Zum betreiben des Servers ist die Installation des Hauptspieles auf dem 2. Computer nicht nötig.

Es kann sein, dass du auch deine Firewall noch einrichten musst. Dazu kannst du das in der Bedienungsanleitung deiner Firewall nachschauen.

Ist alles eingestellt, dann ist jetzt von aussen aus dem Internet weltweit dein Rechner auf den oben genannten Ports erreichbar.  

Server einrichten (ab V 1.0.0)

Der Server selbst wird mit Konfigarationsdateien eingestellt. Das sind 3 Dateien mit der Dateiendung .json. Die Konfigarationsdateien sind in dem Ordner cfg gespeichert.

Configuration.json
Mit dieser Datei stellt man ein, wie man den Server verbinden will. Also die Portnummern (nur wichtig wenn man mehrere Server auf einem Computer starten will) und die maximale Anzahl der Spieler. Die Standardwerte können hier gerne so übernommen werden.



setting.json
In der setting.json kann man schon etwas mehr einstellen. Bei "servername" kannst du einen Text eintragen, der in der Serverliste angezeigt wird, wenn im Spiel der Multiplayer gestartet wird. Ist ganz gut wenn  du den Text so wählst, dass deine Freunde wissen, das es dein Server ist, wenn sie die Serverliste im Spiel durchschauen.

Mit "password" und "adminPassword" kannst du Passwörter einstellen. Das Passwort ist wichtig, wenn nur deine Freunde auf den Server dürfen. Gib jedem deiner Freunde das Passwort und trage es zwichen den Anführungszeichen ein und speichere es ab.  Das Serverpasswort ist wichtig, wenn du verschiedene Dinge wärend des Multiplayer Spiels machen willst. Trage das Passwort ein und speichere die Datei. Wärend dem Multiplayer-Spiel kannst du mit der "Spacetaste" oder "Entertaste" den Chat öffnen. In der roten Eingabezeile kannst du dich dann mit /admin passwort am Server als Administrator anmelden. Mit den folgenden Befahlen lassen sich dann verschiedene Dinge auf dem Serevr ausführen: /next startet das nächste Event, /restart startet den Server von neuem, /kick Rennummer kickst du einen Spieler vom Server, /ban Rennummer damit bekommt ein Spieler einen Ban bis der server neu gestartet wird, /dq Rennummer mit diesem Befehl werden Spieler Disqualifiziert und autom. in die Box teleportiert, /clear Rennummer damit werden alle Strafen von einem Spieler gelöscht.

Neu gibt es jetzt die Zuschauerslots. Trage unter "spectatorSlots" die Anzahl ein, wieviele Leute als Moderator zuschauen können. Dafür braucht es ein Passwort, das bei "spectatorPasswort" eingetragen wird. Um als Zuschauer einem Server beizutreten, wählt man diesen in der Serverliste aus und trägt als Passwort, das Zuschauerpasswort ein. Damit wird man automatisch als Zuschauer dem Server zugewiesen, und hat die Zuschauerfunktionen aktiviert.

Die Einträge "trackMedalsRequirement" und "safetyRatingRequirement" sind dafür da, damit sich nur Spieler mit einer höheren Erfahrung am Multiplay beteiligen zu können. Bei "trackMedalsRequirement" kannst du 0-3 Eintragen. Das sind die verdiente Medallien aus der Trackcompetition TC. Im Idealfall hast du und deine Freunde 3 Medallien. Mit "safetyRatingRequirement" wird das Savtyrating SA eingetragen. Hier kannst du -1 für ausgeschaltet eintragen oder 0-99. Bei null, müssen deine Freunde zumindest das SA Rating frei geschaltet haben bei -1 nicht. Willst du haben, dass nur Spieler mit einer SA von 50 am Spiel teilnehmen können, dann musst du hier den Wert 49 eintragen.

Neu ist, dass damit jetzt auch eine maximale Anzahl von Slots freigegeben werden. Trägt man kein SA ein, können nur 10 Slots maximal genutzt werden, trägt man SA=45 ein, dann können 24 genutzt werden und bei SA=70+ kann die volle Kapazität von 30 Slots genutzt werden. Diese kannst du wiederum mit "maxClients" auf eigene Wünsche einstellen.




event.json
Diese Datei ist für die Konfiguration der Rennen zuständig. Bei "track" trägt man die Rennstrecke ein, die du gerne mit deinen Freunden fahren willst. Es sind folgende Einträge zur Zeit möglich: nurburgring, misano, zolder, monza, paul_ricard, hungaroring.

"preRaceWaitingTimeSeconds" hier die Zeit eintragen, die vor dem Start des Rennens nötig ist. 60sec ist ein guter Wert, dann kann man noch kurz das Setup ändern bevor das Rennen startet.

"sessionOverTimeSeconds" Ist die Zeit nach einem Event. Wenn man z. B. 5 Sekunden vor dem Ablauf der Qualifyzeit die Ziellinie überquert und die "sessionOverTimeSeconds" z. B. auf 180 steht, kann man die Runde noch zu Ende fahren und die Zeit wird noch zum Qualifying gewertet.

"ambientTemp" und "trackTemp" werden die Temperaturen für Umgung und Rennstreckenasphalt eingetragen

"cloudLevel" und  "rain" damit wird in % (Zahl zwischen 0 und 1) die stärke für die Wolken und Regen eingetragen.

"weatherRandomness" das ist die Einstellung für das dynamische Wetter. Werte sind von 0-10 erlaubt. 0=Wetter bleibt wie eingestellt. 10=Absolutes Wetterkaos. Um realistische Wetterwechsel bei einem Langzeitrennen zu haben, sind Werte zwischen 3 und 5 sehr sinnvoll. Will du einen schnelleren Wetterwechsel, dann sollte du den "timeMultiplier"entsprechend höher einstellen.

In der original Konfigurationsdatei ist bei "session";[ ] zwischen den Eckigen Klammern nichts eingetragen. Um Practice, Qualifying und Race fahren zu können, muss zwischen den Eckigen-Klammern Events eingetragen werden. Das habe ich mal mit lila und cyan markiert. Um ein einzelnes Event zu gestalten, muss du es eintragen, wie es im cyan markierten Block steht. Um mehrere Events nacheinander zu spielen, müssen die Blöcke davor mit einem Komma getrennt werden. Das ist am Ende des lila markierten Blocks zu sehen.

Die Werte bedeuten wie folgt:
"hourOfDay" Uhrzeit Stunde das Tages

"dayOfWeekend" der Tag am Rennwochenende 1=Freitag 2=Samstag 3=Sonntag

"timeMultiplier" wie schnell die interne Tageszeit zur Echtezeit vergehen soll. Ein Wert von 2 bedeutet z. B., dass die bei 20min Rennzeit die Spielezeit dabei 40minuten vergehen. So kann man z. B. um 19:00 starten setzt den Multiplier auf 5 und man hat am Ende vom Rennen 20:00 Uhr. Somit können in 20 Minuten Rennzeit z. B. Tageswechsel Tag-Nacht simmuliert werden.

"sessionType" P = Practice, Q = Qualifying, R = Rennen

"sessionDurationMinutes" wie lange soll das Event in Echtzeit-Minuten dauern.




Fertig und starten
Wenn du alle Einstellungen fertig hast und die Dateien abgespeichert sind, brauchst du nur noch die accServer.exe zu starten. Der Server startet und meldet sich bei der Lobby an. Ist alles richtig eingestellt, sollte der Server ähnlich wie unten im Bild die Verbindung mit "succeedet" und "Lobby accepted connection" bestätigen. Jetzt kannst du dich im Multiplayer mit deinem Server verbinden und heiße Rennen selbst gestalten und mit deinen Freunden geniessen.




Du kannst es dir einfacher machen!
Alles was hier beschrieben ist von Hand zu machen, kannst du mit dem ACC-Server-Manager, den ich programmiert habe, bequem per grafischem Userinterface einstellen und den Server starten. Interesse geweckt? Hier findest du mehr.