Netzcode
{{#if: beschreibt den Begriff im Zusammenhang mit Computerspielen. Zur Bedeutung als Zugangscode für Mobiltelefone siehe SIM-Lock. Davon zu unterscheiden ist der Begriff der Netzwerk-Codierung.
| Vorlage:Hinweisbaustein | {{#ifeq: 0 | 0 |}}
}}
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.
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.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20090221032417
| {{#ifeq: 20090221032417 | *
| {{#if: Valve Software: Half-Life Developer SDK | {{#invoke:WLink|getEscapedTitle|Valve Software: Half-Life Developer SDK}} | {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20090221032417}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Valve Software: Half-Life Developer SDK | {{#invoke:WLink|getEscapedTitle|Valve Software: Half-Life Developer SDK}} | {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20090221032417}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Valve Software: Half-Life Developer SDK | {{#invoke:WLink|getEscapedTitle|Valve Software: Half-Life Developer SDK}} | {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Valve Software: Half-Life Developer SDK | {{#invoke:WLink|getEscapedTitle|Valve Software: Half-Life Developer SDK}} | {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Valve Software: Half-Life Developer SDK | {{#invoke:WLink|getEscapedTitle|Valve Software: Half-Life Developer SDK}} | {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}} }} ({{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Valve Software: Half-Life Developer SDK | {{#invoke:WLink|getEscapedTitle|Valve Software: Half-Life Developer SDK}} | {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}} }}
}}}}}}}}{{#if:2019-05-03 15:42:38 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20090221032417|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html}}
|| {{#if: || }}
}}{{#if: Valve Software: Half-Life Developer SDK
| {{#if: {{#invoke:WLink|isBracketedLink|Valve Software: Half-Life Developer SDK}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.vgpro.com/file/13003_hl_sdk_v23.exe.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
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
Vorlage:Hinweisbaustein 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.<ref name="ms" /><ref>allgemein aus den Eigenschaften von TCP vs UDP ableitbar, aber siehe auch zum Beispiel Anzahl der Spiele die UDP-Ports besitzen versus der Anzahl von TCP-Ports. Kein Mehrspieler-Computerspiel verwendet TCP.</ref> Der Vorteil zustandsloser Protokolle liegt im geringeren Overhead und der geringeren Latenzzeit. Hierdurch können zumindest weiche Echtzeitanforderungen besser erfüllt 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 Gameservers, vereinfachen.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20070209160746
| {{#ifeq: 20070209160746 | *
| {{#if: ORGE Project: Common game networking libraries | {{#invoke:WLink|getEscapedTitle|ORGE Project: Common game networking libraries}} | {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20070209160746}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: ORGE Project: Common game networking libraries | {{#invoke:WLink|getEscapedTitle|ORGE Project: Common game networking libraries}} | {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20070209160746}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: ORGE Project: Common game networking libraries | {{#invoke:WLink|getEscapedTitle|ORGE Project: Common game networking libraries}} | {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: ORGE Project: Common game networking libraries | {{#invoke:WLink|getEscapedTitle|ORGE Project: Common game networking libraries}} | {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: ORGE Project: Common game networking libraries | {{#invoke:WLink|getEscapedTitle|ORGE Project: Common game networking libraries}} | {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: ORGE Project: Common game networking libraries | {{#invoke:WLink|getEscapedTitle|ORGE Project: Common game networking libraries}} | {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20070209160746|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.ogre3d.org/wiki/index.php/Libraries}}
|| {{#if: || }}
}}{{#if: ORGE Project: Common game networking libraries
| {{#if: {{#invoke:WLink|isBracketedLink|ORGE Project: Common game networking libraries}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.ogre3d.org/wiki/index.php/Libraries%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.ogre3d.org/wiki/index.php/Libraries%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.ogre3d.org/wiki/index.php/Libraries }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
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.<ref name="ms">Microsoft: DirectPlay 8 Protocol: Reliable</ref><ref><templatestyles src="Webarchiv/styles.css" />{{#if:20090308010913
| {{#ifeq: 20090308010913 | *
| {{#if: SDL Introduction | {{#invoke:WLink|getEscapedTitle|SDL Introduction}} | {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20090308010913}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: SDL Introduction | {{#invoke:WLink|getEscapedTitle|SDL Introduction}} | {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20090308010913}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: SDL Introduction | {{#invoke:WLink|getEscapedTitle|SDL Introduction}} | {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: SDL Introduction | {{#invoke:WLink|getEscapedTitle|SDL Introduction}} | {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: SDL Introduction | {{#invoke:WLink|getEscapedTitle|SDL Introduction}} | {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html}} }} ({{#if: {{#if: 2019-05-03 15:42:38 InternetArchiveBot | 2019-05-03 15:42:38 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: SDL Introduction | {{#invoke:WLink|getEscapedTitle|SDL Introduction}} | {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html}} }}
}}}}}}}}{{#if:2019-05-03 15:42:38 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20090308010913|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.libsdl.org/intro.de/toc.html}}
|| {{#if: || }}
}}{{#if: SDL Introduction
| {{#if: {{#invoke:WLink|isBracketedLink|SDL Introduction}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.libsdl.org/intro.de/toc.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.libsdl.org/intro.de/toc.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.libsdl.org/intro.de/toc.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}, SDL_net Overview</ref> 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.<ref>siehe zum Beispiel CryEngine, Quake-Engine oder allgemeiner Liste von Spiel-Engines.</ref>
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.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20090708140606
| {{#ifeq: 20090708140606 | *
| {{#if: id Software: Quake 3 engine source code and enclosed developer manual | {{#invoke:WLink|getEscapedTitle|id Software: Quake 3 engine source code and enclosed developer manual}} | {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20090708140606}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: id Software: Quake 3 engine source code and enclosed developer manual | {{#invoke:WLink|getEscapedTitle|id Software: Quake 3 engine source code and enclosed developer manual}} | {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20090708140606}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: id Software: Quake 3 engine source code and enclosed developer manual | {{#invoke:WLink|getEscapedTitle|id Software: Quake 3 engine source code and enclosed developer manual}} | {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: id Software: Quake 3 engine source code and enclosed developer manual | {{#invoke:WLink|getEscapedTitle|id Software: Quake 3 engine source code and enclosed developer manual}} | {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: id Software: Quake 3 engine source code and enclosed developer manual | {{#invoke:WLink|getEscapedTitle|id Software: Quake 3 engine source code and enclosed developer manual}} | {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: id Software: Quake 3 engine source code and enclosed developer manual | {{#invoke:WLink|getEscapedTitle|id Software: Quake 3 engine source code and enclosed developer manual}} | {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20090708140606|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.idsoftware.com/business/techdownloads/}}
|| {{#if: || }}
}}{{#if: id Software: Quake 3 engine source code and enclosed developer manual
| {{#if: {{#invoke:WLink|isBracketedLink|id Software: Quake 3 engine source code and enclosed developer manual}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.idsoftware.com/business/techdownloads/%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.idsoftware.com/business/techdownloads/%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.idsoftware.com/business/techdownloads/ }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
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:
- DirectPlay als Teil von DirectX
- SDL_Net als Teil von SDL
- RakNet oder HawkNL zusammen mit Crystal Space
- OgreSocks zusammen mit OGRE
Weblinks
- Gängige Netcode-Bibliotheken (englisch, von der OGRE-Website)
Einzelnachweise
<references />
- Wikipedia:Vorlagenfehler/Mehrdeutigkeitshinweis
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Computerspiel-Entwicklung
- Computerspielbegriff