Netzcode

Netzcode

Der Begriff Netzcode stammt aus dem Netzjargon (vom englischen „netcode“, die Abkürzung für „network code“, zu deutsch etwa: Netzwerk-Programmcode) und bezeichnet hier in der Regel den Teil eines Computerprogrammes, der für die Kommunikation in Netzwerken zuständig ist.

Der Begriff wird im Computerspielebereich oft im Zusammenhang mit Verzögerungen (Lags) oder tatsächlichen Mängeln des Mehrspieler-Verhaltens von Computerspielen verwendet.

Inhaltsverzeichnis

Zweck

Ziel ist es, den aktuellen Zustand der eigenen Spielfigur zum zentralen Spiele-Server zu übertragen und gleichzeitig den ebenso möglichst aktuellen Zustand der anderen Spielfiguren sowie der Spielewelt zu erhalten.

Der aktuelle Zustand kann durch eine beliebige Art und Anzahl von Attributen bestimmt werden. Verbreitet sind der aktuelle Gesundheitszustand von Spielfiguren, Fertigkeiten und getragene Gegenstände der Spielfiguren sowie Typ, Größe, Position und Bewegungsrichtung von Spielfiguren und Objekten in der Spielewelt.[1]

Die auf den Rechnern der Spieleteilnehmer installierte Client-Software kann diese Zustandsinformation in Folge grafisch darstellen und dem Spieler erlauben, mit den in den Zustandsinformationen beschriebenen Gegenständen und Spielfiguren zu interagieren.

Umsetzung

Um die zu übertragende Datenmenge zu reduzieren, wird meistens ein kodiertes, also nicht direkt menschenlesbares, Netzwerkprotokoll (Binär-Protokoll) verwendet. In der darunter liegenden Schicht wird üblicherweise ein zustandsloses Netzwerkprotokoll wie das UDP eingesetzt.[2][3] Der Vorteil zustandsloser Protokolle liegt im geringeren Overhead und der geringeren Latenzzeit. Hierdurch können zumindest weiche Echtzeitanforderungen besser erfüllt werden. Der Nachteil besteht darin, dass zustandslose Netzwerkprotokolle keine Fehlererkennung / Fehlerkorrektur liefern; dies muss als Teil des Netzcodes implementiert werden.

Um die Spieleentwicklung zu vereinfachen, werden diese Netzwerkprotokolle in Programmbibliotheken verpackt um eine Übertragung von Zustandsinformationen an den Server mittels nur weniger Zeilen Programmcode zu ermöglichen und ebenso die Erstellung einer zentralen Gegenstelle, eines Spieleservers, vereinfachen.[4]

Oft sind Netcode-Bibliotheken mit anderen, für die Spieleentwicklung relevanten, Programmbibliotheken gekoppelt. Beispielsweise können 3D-Grafik-Ausgabe, Klang-Ausgabe und Steuerungs-Eingabe gekoppelt sein.[5][6] So wäre es beispielsweise möglich, einem Mausklick eine Bewegung der eigenen Spielfigur sowie ein Geräusch zuzuordnen und diese Zustandsinformationen dann mit Hilfe des Netcodes zum Spieleserver und somit zu den anderen Spielteilnehmern zu schicken.

In einer weiteren Abstraktion kann Netcode auch in einem Spieleentwicklungsbibliothek (engl. game development toolkit) oder einer Spiel-Engine enthalten sein, die ein Komplettpaket für die Entwicklung eines konkreten Spieles darstellen.[7] Dies ist ähnlich dem Konzept der Instanzierung.

Durch diese Komplettpaket-Charakter ist es beispielsweise möglich, der Spiel-Engine mitzuteilen, eine bestimmte Spielfigur in die Spielwelt zu setzen und sie mit verschiedenen Eigenschaften auszustatten. Sie wird in Folge ohne weiteres Zutun des Spieleentwicklers für die anderen Spielteilnehmer ebenfalls sichtbar werden, weil die Spiel-Engine die Zustandsinformationen automatisch zum und vom Server überträgt.[8]

Es wäre auch beispielsweise möglich, eine Spielfigur eine zuvor definierte Bewegung ausführen zu lassen, zum Beispiel einen Arm zu heben und hörbar zu Grüßen. Anstatt hier die Information zur Bewegung jedes einzelnen Armteils und den Befehl zur Klang-Ausgabe zu übertragen, können diese Abläufe weiter zusammengefasst (abstrahiert) werden, um die zu übertragende Datenmenge zu reduzieren. In diesem Fall würde nur die Zustandsinformation „Figur 1 grüßt“ übertragen werden, welche in Folge für die anderen Spielteilnehmer ebenfalls in ihrer definierten Abfolge erscheint und ertönt.

Beispiele von Netcode-Bibliotheken sind:

Siehe auch

Weblinks

Quellen

  1. Valve Software: Half-Life Developer SDK
  2. Microsoft Corp: DirectPlay 8 Protocol Realibale Specification
  3. allgemein aus den Eigenschaften von TCP vs UDP ableitbar, aber siehe auch z.B. Anzahl der Spiele die UDP-Ports besitzen versus der Anzahl von TCP-Ports. Kein Mehrspieler-Computerspiel verwendet TCP.
  4. ORGE Project: Common game networking libraries
  5. Microsoft Corp: DirectPlay 8 Protocol Realibale Specification
  6. SDL Introduction, SDL_net Overview
  7. siehe zum Beispiel CryEngine, Quake-Engine oder allgemeiner Spiel-Engine#Bekannte_Engines.
  8. id Software: Quake 3 engine source code and enclosed developer manual

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Schweizer Mobilfunkmarkt — In der Schweiz besitzen vier Netzbetreiber die Konzession für den Betrieb eines GSM Mobilfunknetzes. Sie zählen insgesamt gut 9,5 Mio. Mobilfunkanschlüsse (Q2 2011) und versorgen die Schweiz mit einer Abdeckung von rund 99,9 % der… …   Deutsch Wikipedia

  • M-tel — Mobiltel Unternehmensform Aktiengesellschaft Gründung 1994 Unternehmenssitz …   Deutsch Wikipedia

  • MVNO — Eine Mobilfunkgesellschaft ist – als Mobilfunkbetreiber (MNO Mobile Network Operator) – ein Unternehmen, das öffentliche Mobilfunkdienste für Privat und Geschäftskunden anbietet. Zu diesem Zweck beantragt oder erwirbt (z. B. mittels einer… …   Deutsch Wikipedia

  • Mobile Network Operator — Eine Mobilfunkgesellschaft ist – als Mobilfunkbetreiber (MNO Mobile Network Operator) – ein Unternehmen, das öffentliche Mobilfunkdienste für Privat und Geschäftskunden anbietet. Zu diesem Zweck beantragt oder erwirbt (z. B. mittels einer… …   Deutsch Wikipedia

  • Mobilfunkanbieter — Eine Mobilfunkgesellschaft ist – als Mobilfunkbetreiber (MNO Mobile Network Operator) – ein Unternehmen, das öffentliche Mobilfunkdienste für Privat und Geschäftskunden anbietet. Zu diesem Zweck beantragt oder erwirbt (z. B. mittels einer… …   Deutsch Wikipedia

  • Mobilfunkbetreiber — Eine Mobilfunkgesellschaft ist – als Mobilfunkbetreiber (MNO Mobile Network Operator) – ein Unternehmen, das öffentliche Mobilfunkdienste für Privat und Geschäftskunden anbietet. Zu diesem Zweck beantragt oder erwirbt (z. B. mittels einer… …   Deutsch Wikipedia

  • Mobilfunknetzbetreiber — Eine Mobilfunkgesellschaft ist – als Mobilfunkbetreiber (MNO Mobile Network Operator) – ein Unternehmen, das öffentliche Mobilfunkdienste für Privat und Geschäftskunden anbietet. Zu diesem Zweck beantragt oder erwirbt (z. B. mittels einer… …   Deutsch Wikipedia

  • Mobilfunkunternehmen — Eine Mobilfunkgesellschaft ist – als Mobilfunkbetreiber (MNO Mobile Network Operator) – ein Unternehmen, das öffentliche Mobilfunkdienste für Privat und Geschäftskunden anbietet. Zu diesem Zweck beantragt oder erwirbt (z. B. mittels einer… …   Deutsch Wikipedia

  • Mobiltel — Rechtsform Aktiengesellschaft Gründung 1994 Sitz …   Deutsch Wikipedia

  • Quake2 — Quake II Entwickler: id Software Verleger: Activision Publikation: 9. Dezember 1997 …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”