netzwerk spiel



  • Vor den grundlegenden Sockets ( z.b. WinSock ) sollte man keine Angst haben. Hatte ich auch, hab mich lange gesträubt, mich dann aber überwunden und mich damit beschäftigt. Es gibt diverse Beispielsourcen im Netz, die dir helfen können, den Umgang mit Sockets zu erlernen. Ist wirklich nicht schwer, aber man sollte schon einige Erfahrungen in C++ und C haben.

    D.h. lerne erstmal C++ und auch C und dann beschäftige dich mit Grafik und Sockets und evtl. auch Threads und allem was dazu gehört. Spannend werden Sockets auch erst dann, wenn man effizient höhe Datendurchsätze bewältigen will 😉



  • Marthog schrieb:

    Das sehe ich nicht so. Es kann sehr helfen, ein Ziel als Motivation zu haben, man sollte sich aber bewusst machen, dass es nichts wird und sollte nicht zögern, zwischendurch alles wegzuschmeißen und mit dem neuen Wissen neu anzufangen und man sollte auch bereit sein, das ganze Projekt irgendwann aufzugeben.

    Die Realität sieht leider anders aus. Schau dir ein beliebiges Spieleentwickler-Forum an: Sehr viele Anfänger können kaum C++ und scheitern andauernd an trivialen Problemen aufgrund mangelnder Sprachkenntnisse. Sie verschwenden tagelang mit Debugging, Experimenten, Warten auf Antworten im Forum -- aber Hauptsache, sie haben ein wenig Zeit mit dem Lesen der Theorie "gespart". Traurigerweise sieht es bei einigen Fortgeschrittenen nicht mal viel besser aus: C++-Stil der 90er, kein Plan von RAII, und so fort... Die Argumentation ist jeweils "es reicht doch, um Spiele zu machen". 🙄

    Eine Bibliothek wie SFML kann man nicht vernünftig benutzen, wenn man nicht wenigstens die C++-Grundlagen beherrscht. Klar muss man dazu nicht jedes Detail der Sprache kennen und lernt während der Entwicklung eigener Projekte weiter.

    Marthog schrieb:

    Von komplizierten Themen, wie Netzwerke rate ich auch ab

    Es stimmt, dass Netzwerkprogrammierung relativ viele Low-Level-Kenntnisse erfordert, die bei Spielen anfänglich umgangen werden können. Dennoch wird die Komplexität von Spielen oft unterschätzt, gerade wenn man zuvor nie etwas in die Richtung gemacht hat. Siehe dazu auch But can you make Pong?



  • Seien wir mal ehrlich, ein Grossteil der Komplexitaet ruehrt doch daher, dass TCP konzeptuell einfach scheisse ist.



  • Kellerautomat schrieb:

    Seien wir mal ehrlich, ein Grossteil der Komplexitaet ruehrt doch daher, dass TCP konzeptuell einfach scheisse ist.

    Stimmt. Die Wissenschaftler hinter TCP haben das Protokoll primär aus Langeweile derart komplex gestaltet. Ist wahrscheinlich deswegen, dass sich TCP in der Welt kaum bewährt hat 😉



  • Lies dir einfach mal die Beschreibung von SCTP durch, dann wird dir erst bewusst, wie kaputt das Internet ist.



  • Natürlich gibt es etliche Probleme, gerade im Bezug auf Sicherheit. Aber ich wage zu bezweifeln, dass ein Protokoll, welches dies alles zusätzlich berücksichtigt, viel simpler aufgebaut wäre.



  • Darum gehts nicht. Niemand will einen reinen Datenstrom, das macht einfach keinen Sinn. Nicht mal bei FTP.



  • eventuell SFML, liefert 2D, Sound und Netztwerk



  • Kellerautomat schrieb:

    Niemand will einen reinen Datenstrom, das macht einfach keinen Sinn.

    Was willst du denn sonst? Die Datentypen mitschleifen, die dann vom Layer drunter geparst werden müssen?
    Außerdem ist TCP dafür da, dass die Daten korrekt ankommen. Wenn das nicht gewollt ist (Stichwort Streams) oder reicht, dann nimmt man halt was anderes (UDP zum Beispiel).



  • nwp3 schrieb:

    Kellerautomat schrieb:

    Niemand will einen reinen Datenstrom, das macht einfach keinen Sinn.

    Was willst du denn sonst? Die Datentypen mitschleifen, die dann vom Layer drunter geparst werden müssen?
    Außerdem ist TCP dafür da, dass die Daten korrekt ankommen. Wenn das nicht gewollt ist (Stichwort Streams) oder reicht, dann nimmt man halt was anderes (UDP zum Beispiel).

    http://en.wikipedia.org/wiki/Head-of-line_blocking
    http://en.wikipedia.org/wiki/SCTP



  • Die bekannteste API dafür wird wohl Boost.Asio sein.

    Nein, ist es nicht.

    Ansonsten: http://beej.us/guide/bgnet/



  • Nexus schrieb:

    Kellerautomat schrieb:

    Seien wir mal ehrlich, ein Grossteil der Komplexitaet ruehrt doch daher, dass TCP konzeptuell einfach scheisse ist.

    Stimmt. Die Wissenschaftler hinter TCP haben das Protokoll primär aus Langeweile derart komplex gestaltet. Ist wahrscheinlich deswegen, dass sich TCP in der Welt kaum bewährt hat 😉

    Der TCP Standard ist per se nicht kompliziert. Er ist nur schlecht. Gut genug um überlebt zu haben, aber schlecht genug um ordentlich zu nerven. Und warum der Schluss "ist voll erfolgreich, muss also gut sein" totaler Unsinn ist muss ich hoffentlich nicht erklären.

    Zurück zu TCP... das komplizierte bei TCP ist nicht Absicht bzw. im Standard so kompliziert vorgegeben. Es sind die ganzen Workarounds/Optimierungen/... die nötig sind um die vielen Schwachstellen von TCP zu umschiffen. Und das natürlich ohne die Kompatibilität zu älterer Hardware zu beeinträchtigen.
    Das ganze Window-Scaling ist furchtbar, Congestion-Control ist ne eigene Wissenschaft. Die (vorgeschriebene!) State-Machine für Connections ist auch totaler Käse (Beispiel: wenn man am Server TIME_WAIT vermeiden will muss immer der Client auflegen -- was z.B. nicht mit dem Auflegen des Servers nach Ablauf eines Timeouts vereinbar ist).


Anmelden zum Antworten