Netzwerkspiele mit Server [also 2 programme(?)]
Übersicht

VirusBetreff: Netzwerkspiele mit Server [also 2 programme(?)] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In Robs 2. BB Kurs gibts ein Kapitel zum Thema Netzwerkprogrammierung:
http://www.robsite.de/download...blitzbasic |
||
flashmaxel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
Real C programmers never die; they cast to void. |
Virus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke
aber irgendwie hab ich schon gewusst, dass meine frage nicht ganz gelesen wird ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() |
||
Virus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group