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

Harry222

Alter Hase

  • »Harry222« ist der Autor dieses Themas

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

11

29.07.2010, 13:30

Naja, egal! Den genialsten Kopierschutz, den sich die Spielefirmen je ausgedacht habe ist immernoch die CD zu benötigen.

Vielleicht habt ihr ja auch reicht und es ist dem zahlenden Kunden gegenüber viel freundlicher keinen Kopierschutz hinzuzufügen und ihn in ruhe Spielen zu lassen!

Aber kennt den irgendwer ein brauchbares Buch über LAN-Programmierung?

MFH Harry222

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

12

29.07.2010, 13:50

Immernoch die CD zu benötigen ist die antiquierteste Methode, weils mitunter am leichsten zu umgehen ist. Liegen Daten direkt auf der CD ist das auch kein Problem -- vielmehr ein Problem für das Spiel wegen Ladezeiten usw. (aus dem Grund werden heutzutage alle Daten auf die Platte kopiert: Platz ist da und lesen ist schneller).

"LAN-Programmierung" solltest du etwas präzisieren. Natürlich gibt es jede Menge allgemeiner Dinge zu beachten, die überall recht gleich sind. Ansonsten gibt es aber viele Low & High Level Bibiliotheken. Dazu frägst du am besten Nox, der hat sich mit verschiedensten Libs beschäftigt und sie verglichen. Vielleicht antwortet er ja eh gleich noch drauf ^^

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

13

29.07.2010, 14:03

Im Buch C++ von A bis Z ist am Ende ein Kapitel der Netzwerkprogrammierung gewidmet.
Da lernst du dann Packete zu versenden , zu empfangen , mehrere Klienten gleichzeitig zu behandeln usw..
Hier ist auch noch ein Tutorial
http://www.c-worker.ch/tuts/wstut_op.php

MfG Stazer

Harry222

Alter Hase

  • »Harry222« ist der Autor dieses Themas

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

14

29.07.2010, 14:06

Ich brauche LAN-Programmierung für das Spielen per Netzwerk! Spielzustandsdatenaustausch uns so was halt...

Und danke für die Antwort Stazer! Aber gibt es auch noch ein Buch nur über Netzwerkprogrammierung, oder einen brauchbaren Artikel auf Wikipedia?

Wenn Nox sich damit tatsächlich auskennt wäre ich ihm und natürlich auch allen anderen für eine Antwort dankbar!

MFG Harry222

15

29.07.2010, 14:10

Ich hätte da noch:
http://zotteljedi.de/ (die oberen beiden Tutorials)

und

http://www.boost.org/doc/libs/1_43_0/doc…boost_asio.html

anzubieten.
Lieber dumm fragen, als dumm bleiben!

Harry222

Alter Hase

  • »Harry222« ist der Autor dieses Themas

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

16

29.07.2010, 14:17

0. Erstmal danke für die Antwort

1. Bei dem Oberen sehe ich leider nichts über Netzwerkprogrammierung ?(

2. Gibt das Untere auchnoch in Deutsch? ich bin nicht so der Meister in Englisch!!! ;)

3. Könnte mir nochmal jemand sagen was alles in diesem C++ von A bis Z drinsteht!? ?(

MFG Harry222

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

17

29.07.2010, 14:25

Naja...
Ich denke nicht das es ein Buch darüber gibt.
Aber du kannst dir sowas relativ schnell selber ausdenken.
Du solltest als erstes klären ob es einen Server geben soll , der dazu dient
die Daten zwischen den Klienten auszutauschen oder , Server unabähängig zu arbeiten und das
ein und das selbe Packet an alle Klienten zu senden ( was ich nicht empfehlen würde ).
Du solltest auch klären , ob du TCP oder UDP verwendest.
TCP ist Server basiert und es muss eine Verbindung aufrecht gehalten werden.
Bei UDP kannst du direkt Daten an die und die IP und den Port los senden ( Server unabhängig ).
Soweit ich weiß benutzen die meisten Spiele das TCP Protokoll.
Übertragen auf ein Spiel , in dem es die Aufgabe ist dorthin zu rennen könnte man das folgendermaßen anstellen.
Man programmiert einen Server.
Dieser hat zwei Threads.
Ein Thread davon nimmt stetig Verbindungen an und der andere empfängt Packete der schon bestehenden Verbindungen.
Jeder Klient hat dann auch mindestens zwei Threads.
In einem Thread werden die Packete empfangen und verarbeitet und in dem anderen Thread
wird die Grafik des Spiels gerendert.
Nehmen wir mal an , dass 4 Spieler zu unserem Server verbunden haben.
Niemand bewegt sich.
So sollten auch keine Packete versendet werden.
Bewegt sich nun Spieler 1 , so sendet der Klient von Spieler 1 ein Packet mit der neuen Position von Spieler 1 an den Server.
Der Server sendet dann Spieler 2 , Spieler 3 und Spieler 4 ein Packet mit der neuen Position
Der Klient von Spieler 2 , Spieler 3 und Spieler 4 empfängt das Packet mit dem einen Empfangs Thread der eingerichtet wurde.
Dieser Thread verändert nun die Position von Spieler 1 , sodass wenn eine neue Frame gerendert wird , Spieler 1 die Position hat , die er haben soll.
Solltest du das nicht genau verstanden haben kannst du mich ja per ICQ hinzufügen.

MfG Stazer

Edit : In C++ von A bis Z steht alles drin , was du wissen musst ;).

MfG Stazer

18

29.07.2010, 14:28

Gaffer on Games - Networking for Game Programmers
Das ist relativ interessant. Die Sources (unter anderem auch ein Beispiel mit LAN-Verbindung findest du hier)

Edit:

Zitat von »Stazer«

Niemand bewegt sich.
So sollten auch keine Packete versendet werden.
Bei TCP würde das vielleicht noch gehen, aber bei UDP sollte man das auf keinen Fall machen!
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

Harry222

Alter Hase

  • »Harry222« ist der Autor dieses Themas

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

19

29.07.2010, 14:34

Ich hab kein ICQ! Aber wie du das da beschrieben hast hört sich das gut an! Aber brauch man für diese Methode denn nun eine Server oder nicht? ?(
Außerdem habe ich auch noch nicht richtig verstanden (noch nie wirklich), was jetzt mit Server gemeint ist! ist ein Server jetzt so eine Festplatte die per Netzwerk an alle Computer angeschlossen ist, oder einfach nur ein Teil des Arbeitsspeichers auf einem der mitspielenden Computer? (vielleicht der Host?) ?(

MFG Harry222

Harry222

Alter Hase

  • »Harry222« ist der Autor dieses Themas

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

20

29.07.2010, 14:38

Ähhm...
Ich muss jetzt erstmal Schluss machen!
Gucke heute Abend oder morgen Früh nochmal rein!

MFG Harry222

Werbeanzeige