Netzwerkspiele mit Server [also 2 programme(?)]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Virus

Betreff: Netzwerkspiele mit Server [also 2 programme(?)]

BeitragFr, Jul 21, 2006 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe schon so lange nach einem Code oder Tutorial gesucht, wo steht
wie man Netzwerkspiele programmiert, aber nichts gefunden.
Also man kann die ja auf 2 weisen programmieren:
ein pc macht sofort normal host, oder online game mit server, worauf
glaubich noch ein zweites Programm liegt und immer läuft.

Keine Ahnung wie das alles funktioniert. Meine Frage: wie geht das, und
woher wissens die leute dies wissen wie das geht? ^^
www.legacy.de
 

gamble

BeitragFr, Jul 21, 2006 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
In Robs 2. BB Kurs gibts ein Kapitel zum Thema Netzwerkprogrammierung:

http://www.robsite.de/download...blitzbasic
 

flashmaxel

BeitragFr, Jul 21, 2006 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich würde mir auch Rob´s Tut angucken da lernst du UDP,TCP und Direktplay kennen. Eigentlich alle für ein Onlinegame in frage kommenden Protokolle.
Directplay eignet sich allerdings nur wenn du ein Spiel für ein lokales Netzwerk, wie bei einer Lan programierst, da wenn Direktplay über das Internet genutzt wird 100te Ports an Routern freigegeben werden müssten.
Das wäre eine Sichwerheitslücke und viel zu aufwendig.
http://blitzbase.de/menu/2d.htm

UDP ist das schnellste der 3 Protokolle. Dabei wird keine feste Verbindung zwischen den Computern aufgebaut. Es ist mehr so als würden sich die Computer gegenseitig Briefe schicken. Allerdings ist es nicht so sicher das auch tatsächlich alle Daten beim gegenüber ankommen.(Bei mir gab es allerdings noch nie einen bemerkbaren Datenverlusst!)
http://blitzbase.de/menu/2w.htm

Sicherer aber auch ein wenig langsamer ist da TCP.
http://blitzbase.de/menu/2t.htm

Im Prinzip musst man ja bei einem Netzwerkspiel nur Informationen (Positionen, ...) an alle Mitspieler senden.
Dazu gibt es viele Möglichkeiten die auch in Robs Tut beschrieben sind

Wenn du das Tut durchgearbeitet hast proggst du am besten erstmal etwas wie ein UDP / TCP Chat dazu gibt es auch schon viele Beispiele im Codearchive die dir helfen können. Wenn sich dann Fragen auftun zum Beispiel wegen Routern ... , einfach mal im Forum suchen ich denke die meisten gabs schonmal - auch von mir.

Max Wink
Real C programmers never die; they cast to void.
 

Virus

BeitragSo, Jul 23, 2006 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
danke
aber irgendwie hab ich schon gewusst, dass meine frage nicht ganz gelesen
wird Laughing
wie ich so ein network game programmiere weiss ich schon. ich wollte wissen
wie ich ein spiel mit server, also auch mit 1 programm, das immer läuft
programmiere und was in dem immer-laufenden programm steht.

ich glaube wenn ich das so ganz normal mache mit einem programm für
spieler und amen, dann is so, dass wenn der host geht, alle gehen oder keine
ahnung.
auf diese weise würde ich jedenfalls kein gärtnerspiel hinbekommen, wo
die pflanzen immer weiterwachsen, auch wenn kein spieler online ist.
www.legacy.de
 

Nox

BeitragSo, Jul 23, 2006 11:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst das Server-Client-Modell und nicht Peer-to-Peer, richtig?
Eigentlich haste es selbst schon beantwortet: Du benötigst zwei eigene Programme. Zum Ersten halt dein Spiel, das als Client fungiert, und dann einen sog. Dedicated Server, der sich rein um die Datenkontrolle und den Datenaustausch zwischen den einzelnen Clients kümmert. De facto zwei völlig verschiedene Programme, die allerdings dasselbe Protokoll verstehen müssen, welches du in deinem Spiel einsetzen möchtest. Smile
 

Virus

BeitragSo, Jul 23, 2006 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, so komm ich der sache schon näher.
was ich aber noch überhaupt nicht verstehe ist..wie ich das client programm
mit dem immerlaufprogramm verbinde...?
www.legacy.de

SpionAtom

BeitragSo, Jul 23, 2006 11:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Das netzwerkiste, was ich mal geschrieben habe (mit einem Freund), war ein Chat.
Generell muss ein Server alle Clients verwalten, sprich er muss sie kennen und ihnen Daten schicken.
Clients können eigentlich nur eines: Daten an den Server schicken. Es liegt dann am Server zu entscheiden, wie er die Daten verarbeitet, oder ob er sie weiterleitet.
Also verbunden werden Server und Client nur über Daten, die sie austauschen.
Vielleicht können wir dir besser helfen, wenn du dein Vorhaben konkret beschreibst.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Virus

BeitragSo, Jul 23, 2006 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit der Verbindung meinte ich eigentlich so, dass ich nicht weiss, wie ichs
im Code lösen soll. Also CreateUDPStream(www.lol.de/serverprogramm.exe)
oder wie?^^

Weiter konkretisieren kann ichs eigentlich nicht.
Naja, nehmen wir zum Bleistift an, ich will ein Gartenspiel programmieren
bei dem die Pflanzen immer weiter wachsen, rund um die Uhr.
Unkraut entsteht, usw... von all dem bekommt der Spieler der gerade nicht
spielt natürlich nichts mit, aber wenn er dann "online kommt" merkt er, dass
sich die Welt verändert hat.
Ich nehme also an, im Serverprogramm muss geschrieben stehen, dass die
Pflanzen wachsen sollen.

Nochmal allgemein zum Ablauf des Ganzen anhand eines Beispieles:
Ein Ego-Shooter. Neue Clients kommen dazu. Sie verbinden sich jeweils mit
dem Serverprogramm und schicken ihre Daten. Wenn eine Bewegung
erfolgt, sendet der Client die Position an den Server. Dieser schickt die
Position dann an alle Clients weiter. Clients haben zueinander keine
direkte Verbindung.
Berichtigt mich bitte falls hier was falsch ist.
www.legacy.de

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group