Beim Client-Server-Konzept bietet ein Server einen Dienst an, den viele Clients in Anspruch nehmen können. Das ist vergleichbar mit einem Restaurant: Der Server stellt Essen zur Verfügung, die Clients holen es ab.
Das Konzept ist nur möglich, wenn eine Datenverbindung zwischen den Clients und dem Server existiert. Befinden sich Clients und der Server in räumlicher Nähe (z.B. die Computer und der Serverraum einer Schule oder einer Firma), wird die Verbindung in einem LAN (Local Area Network) realisiert, ansonsten durch das Internet.
Hier drei Beispiele für Server in einem LAN:
- Printer-Server: Der Printer-Server bietet einen zentralen Drucker an. Über das LAN nimmt er Druckaufträge von den Clients an und druckt sie aus. Ein bedeutender Vorteil besteht darin, dass nur ein Computer - nämlich der Server - mit einem Drucker ausgestattet sein muss. Die Clients kommen ohne eigenen Drucker aus.
- Mail-Server: Der Mail-Server, z.B. der einer Firma, verwaltet die internen Mails und Anhänge, die sich die Mitarbeiter schicken. Hier sieht man einen weiteren Vorteil: Da der Server unabhängig von den Clients betrieben wird, kann man über das LAN von jedem Arbeitsplatz auf den Server zugreifen. Man benötigt gar kein eigenes Büro mehr.
- Datenbank-Server: Der Datenbank-Server verwaltet Daten an einem zentralen Ort, sodass z.B. alle Mitarbeiter einer Firma immer die aktuellen Kundendaten abfragen können. Das wäre nicht so einfach möglich, wenn die Kundendaten dezentral auf den Computern der Mitarbeiter gespeichert wären.
Auch im Internet werden zahlreiche Serverdienste angeboten. Die Kenntnis über den Standort des Servers ist dabei völlig unerheblich. Wichtig ist jedoch die Verbindungsqualität.
Das Client-Server-Konzept beim Spielen mit Minecraft[]
Der Minecraft-Server ist ein Programm, das eine Spielwelt anbietet. Der Server kümmert sich um die Spielstand-Speicherung. Zusätzlich kann er weitere Funktionen für die Welt zur Verfügung stellen, wie ein Berechtigungs-, ein Zonen- oder ein Handelssystem. Spielen kann man mit dem Server jedoch nicht. Zum Spielen benötigt man einen Minecraft-Client. Das ist ein Programm, das die Weltdaten beim Server abholt und anzeigt. Der Server verwaltet die Welt, der Client zeigt sie an.
Das hat die oben genannten Vorteile, nur diesmal auf Minecraft bezogen:
- Der Minecraft-Server kann auf einem sehr leistungsfähigen Computer installiert sein, der große Datenmengen schnell speichern und viele gleichzeitige Client-Zugriffe problemlos verwalten kann. Die Minecraft-Clients können dagegen auf vergleichsweise einfachen Geräten laufen, sie müssen die Daten nur noch anzeigen. Dies ist allerdings abhängig von der Leistungsfähigkeit der auf dem Gerät eingebauten Grafikkarte (oder des Grafikchips), während der Server gar keine Grafikkarte benötigt. In jedem Minecraft-Client kann individuell eingestellt werden, welche Datenmenge er für ein flüssiges Spiel vom Server abholen möchte. In den Grafikeinstellungen beeinflusst z.B. die Sichtweite, wie viele Chunks ständig zwischen Client und Server übertragen werden.
- Mit einem Minecraft-Client kann man von unterschiedlichen Orten (von der Schule, von zu Hause, bei einem Freund) auf die Welt-Daten zugreifen, da diese auf dem Computer des Minecraft-Servers liegen, nicht auf dem Computer des Clients.
- Mit ihren Minecraft-Clients können mehrere Spieler auf dieselben Welt-Daten zugreifen, die zentral an einer Stelle vom Minecraft-Server verwaltet werden. Jeder Spieler sieht mit seinem Client immer den aktuellen Zustand der Welt aus seiner Perspektive.
Für den Minecraft-Client gibt es noch ein Zusatzprogramm, den Launcher. Dieser startet den Client und ermöglicht es, bequem abwechselnd frühere Versionen von Minecraft spielen zu können.
Kommunikation[]
Zwischen Client und Server findet ein ständiger Datenaustausch statt. Beispiel:
- Ein Client sendet eine Anfrage an den Server, z.B. das Abbauen eines Blockes.
- Der Server liest die Anfrage und ändert die Welt, der Block ist weg.
- Nun informiert der Server alle Clients, deren Spieler sich in Sichtweite des Blocks aufhalten, über die Änderung.
- Jeder informierte Client verarbeitet die Änderung: Der Block wird in der Anzeige gelöscht und der dahinterliegende Block wird sichtbar gemacht.
So kann also ein bestimmter Spieler einen Block abbauen und sowohl er als auch alle umstehenden Spieler sehen das Ergebnis.
Zuerst jedoch muss der Client mit dem Server eine erfolgreiche Verbindung aufbauen, was über das sogenannte Handshake geschieht. Das geschieht auch, wenn der Client den Server nur in seiner Serverliste mit aktuellen Informationen anzeigen will. Möchte der Spieler den Server betreten, wird das Login durchgeführt und dann eine Vielzahl von Informationen übertragen, u.a. die Spawnposition.
Die Kommunikation zwischen Client und Server läuft über den Austausch von Datenpaketen, deren Format genau festgelegt ist. Das englischsprachige Wiki Minecraft Modern enthält alle Details zur Kommunikation zwischen Client und Server.
Mehrspielermodus[]
Beim Mehrspielermodus ist das Client-Server-Konzept sofort ersichtlich: Irgendwo läuft ein Server, der eine Minecraft-Welt zur Verfügung stellt. Solange der Server online ist, kann man von jedem Ort der Welt per Internet mit seinem Client auf diese Welt zugreifen. Jeder andere Spieler kann das auch, sodass man mit mehreren Mitspielern gemeinsam und gleichzeitig in einer Welt spielen kann. Die Verbindungsqualität zwischen Client und Server wird in der Server-Auswahlliste als kleines grünes Balkendiagramm angezeigt. Wenn man mit der Maus darüber fährt, wird die Antwortzeit des Servers in Millisekunden wiedergegeben.
Einzelspielermodus[]
Im Einzelspielermodus erstellt man eine Welt ohne externen Server und spielt darin. Damit ist man unabhängig vom Internet und einem Serveranbieter. Aber man kann nur alleine in dieser Welt spielen.
Der Minecraft-Client enthält dazu einen speziellen, integrierten Einzelspieler-Server. Den sieht man normalerweise nicht. Schaut man aber in das Launcher-Protokoll (unter Development Console), steht da:[Server thread/INFO]: Starting integrated minecraft server ...
Diese interne Trennung des Programms in Client-Funktionen und integrierte Serverfunktionen hat den Vorteil, dass dieselben Client-Funktionen für den Mehrspieler- und für den Einzelspielermodus genutzt werden können. Der Client funktioniert in beiden Modi gleich. Nur muss er sich im Einzelspielermodus nicht per LAN oder Internet mit einem Server verbinden, sondern findet ihn als Nachbarprozess auf demselben Computer (Thread). Sobald eine Welt geladen werden soll, wird der integrierte Server von Minecraft automatisch erzeugt. Und sobald die Welt verlassen wird, wird er beendet.
LAN-Welt[]
Wenn man im Einzelspielermodus eine Welt als LAN-Welt zur Verfügung stellt, wird auch in dieser Variante das Client-Server-Konzept angewendet. In diesem Fall greifen die Clients der anderen Mitspieler nicht auf ihre eigenen integrierten Server zu, sondern über das LAN auf den integrierten Server des LAN-Welt-Hosts. Da dessen integrierter Server beendet wird, sobald er die Welt verlässt, werden damit auch gleichzeitig alle Mitspieler gekickt.
Mojang-Server[]
Die Firma Mojang stellt Server mit speziellen Diensten zur Verfügung, die die Spieler nutzen. Das geschieht meistens unbemerkt. Nur wenn einer der Server offline ist und der Dienst nicht mehr zur Verfügung steht, fällt er auf. Ansonsten laufen die Server rund um die Uhr, sind also ständig verfügbar.
Bereitgestellt werden folgende Dienste:
- Minecraft.net: Die Webseite von Minecraft. Wenn sie offline ist, kann man keinen neuen Account anlegen und Minecraft weder kaufen noch im Demo-Modus erhalten.
- Mojang accounts website: Die Verwaltung der Mojang-Accounts. Wenn sie offline ist, kann man seine Account-Daten (E-Mail-Adresse, Passwort etc.) nicht ändern.
- Authentication service: Die Login-Datenbank. Wenn sie offline ist, kann man kein erstes Login im Launcher machen. Hat man sich allerdings einmal dort eingeloggt (und nicht wieder ausgeloggt), kann man auch ohne diesen Server spielen, denn das Login wird lokal gespeichert, damit man auch ohne Internetanschluss (offline) spielen kann.
- Multiplayer session service: Die Minecraft-Server-Loginprüfung. Sie betrifft den Mehrspielermodus. Wenn dieser Dienst offline ist, kann man sich mit keinem Minecraft-Server mehr verbinden (außer er hat in seinen server.properties online-mode=false gesetzt). Ist man jedoch bereits mit einem Minecraft-Server verbunden, kann man störungsfrei weiter spielen, solange man die Verbindung nicht trennt.
- Minecraft skins: Die Spielerskin-Datenbank. Jeder Spieler kann einen eigenen Skin bei Mojang hinterlegen. Beim Verbinden mit einem Minecraft-Server holt sich dieser den Spielerskin ab und stellt ihn allen Minecraft-Clients zur Verfügung. Dadurch können alle Mitspieler den individuellen Spielerskin auf ihrem Minecraft-Client sehen. Wenn der Skin-Server offline ist, tragen Spieler, die sich neu mit einem Minecraft-Server verbinden, den Standardskin.
- Public API: Die Webschnittstelle (Mojang API) zum Abfragen von Spielerdaten.
Den Status der Mojang-Server kann man hier ablesen: https://help.mojang.com
Geschichte[]
Das Client-Server-Konzept wurde für Minecraft in der Classic-Phase mit dem Creative Multiplayer-Modus eingeführt. Damals gab es nur einen einzigen Minecraft-Server, der von Notch bereitgestellt wurde. Die Clients liefen im Webbrowser der Spieler.
Erst mit Alpha 1.0.0 wurde zum ersten Mal ein Minecraft-Client zum Download angeboten. Zum Start des Clients wurde ein Launcher zur Verfügung gestellt (siehe Minecraft Launcher/Versionsgeschichte).
Überblick |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
Editionen |
| ||||||||
Funktionsweise |
| ||||||||
Software | |||||||||
Multiplayer | |||||||||
Universum |
| ||||||||
Rezeption | |||||||||
Vorläufer | |||||||||
Scherze |
|