Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.12.2006, 12:02

Der Netcode - Das unbekannte Wesen

Hallo Leute,
das ist mein erster Post in diesem Forum und ich freue mich das ich so ein gutes Forum gefunden habe :)

Vielleicht kann mir ja jemand gleich weiterhelfen.

Und zwar trete ich nächstes Jahr (2007 - ist ja nicht mehr soweit hin ;) ) eine neue Arbeitsstelle an. Dort soll ich für den Netcode zuständig sein.

Bisher war ich hauptsächlich mit der Grafikengine bzw. Gameplayengine beschäftigt. Da ich in meiner alten Firma keine neuen "Bereiche" mehr entdecken konnte habe ich mich für den Wechsel entschieden.

Nun steht die Herausforderung "Net-Code" für mich an.
Ich würde gerne im vorher ein bischen mit dieser Engine herumspielen und mir einfach mal ansehen aus welchen Teilen sowas besteht.

Vielleicht kann mir jemand von Euch hierzu ein paar gute Links (oder vllt. sogar ein paar Happen Code) liefern?

Aus welchen Komponenten setzt sich so ein Code zusammen?
- Fragmentierung
- Protokoll
- etc...

Wie geht ihr so ein Thema an?

Vielen Dank :p

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

2

28.12.2006, 12:11

So richtig helfen kann ich dir da nicht, aber schau dir doch mal die Rak.Net Netzwerklib an. Ich denke vieles da ist auch auf sehr grundlegendem Niveau gültig. (Ohne Gewähr ^^)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

28.12.2006, 15:58

Sehr wichtig sind Techniken wie Dead Reckoning und Client Side Prediction, mit denen man den Netzwerkverkehr drastisch reduzieren kann. Such bei Google danach, dann findest du genug darüber. Ohne sowas kommt kein Online-Spiel aus.

4

29.12.2006, 19:02

Zitat von »"David Scherfgen"«

Sehr wichtig sind Techniken wie Dead Reckoning und Client Side Prediction, mit denen man den Netzwerkverkehr drastisch reduzieren kann. Such bei Google danach, dann findest du genug darüber. Ohne sowas kommt kein Online-Spiel aus.


Hi David,
vielen Dank für die Tipps...

Hab nach den Themen jetzt mal ein paar Stunden "gegoogled" und Artikel durchgelesen.

Gibt es eigentlich den Netcode von Quake irgendwo? (oder ist der jetzt schon zu alt um daraus noch was zu lernen?) :oops:

Meine grundlegenden Fragen sind eigentlich:
Wie baut man sowas auf? Auf Sockets vom Typ RAW und baut dann sein "eigenes" Protokoll oder setzt man nur ganz normale Sockets auf TCP/IP bzw UDP Datagrams auf?
Ich kann mir im Moment nur schwer vorstellen wie sich so ein Net-Code entwickelt bzw. auf welchen Grundlagen man plant?
Denn für die verschiedenen Spiele sind ja unterschiedliche Anforderungen.. und ich kann mir nicht vorstellen das dies mit den "Standardfunktionen" wie Sockets, etc.. realisierbar ist...

Danke :)

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

5

29.12.2006, 19:16

natürlich, man kann ja durchaus aus diesen Funktionen eine mächtige Netapi gestalten

6

29.12.2006, 19:43

Zitat von »"code.ger"«


Gibt es eigentlich den Netcode von Quake irgendwo? (oder ist der jetzt schon zu alt um daraus noch was zu lernen?) :oops:

Meine grundlegenden Fragen sind eigentlich:
Wie baut man sowas auf? Auf Sockets vom Typ RAW und baut dann sein "eigenes" Protokoll oder setzt man nur ganz normale Sockets auf TCP/IP bzw UDP Datagrams auf?
Ich kann mir im Moment nur schwer vorstellen wie sich so ein Net-Code entwickelt bzw. auf welchen Grundlagen man plant?
Denn für die verschiedenen Spiele sind ja unterschiedliche Anforderungen.. und ich kann mir nicht vorstellen das dies mit den "Standardfunktionen" wie Sockets, etc.. realisierbar ist...

Danke :)


Warum sollten SOCKETS nichts sein? Es hat sogar Vorteile sie zu verwenden. Der wesentliche Vorteil ist die Verbreitung des Berkleystandards der es ermöglicht das verschiedene Betriebssysteme miteinander komunizieren können (vorsicht Windows hat den Standard leicht erweitert).

Grundlegend würde ich dir empfhelen einen Blick auf die Tuts von http://www.c-worker.ch zu werfen. Da stehten die absoluten Basics gut erklärt.

Wenn dich der Quake3 Sourcecode interessiert, den findest du unter http://www.idsoftware.com/business/techdownloads/

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

29.12.2006, 20:25

Also es kommt eigentlich immer darauf an, was man machen will. Sich was selbst zu basteln halte ich für nonsense. UDP ist schnell und TCP/IP sicher sowie für große Mengen an Daten gut geeignet. Auch bin ich der persönlichen Meinung, dass TCP/IP für die meisten Sachen(Strategie usw.) schnell genug ist.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige