online,multiplayer,2buffer?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

online,multiplayer,2buffer?

Beitrag von captain third »

Hallo mit ein ander...

ich hab mir überlegt,wenn ich ein onlinespiel machen will...also von client to server prinzip....wäre es logisch mit 2 buffern zu hantiern? ich hab gedacht den einen buffer zum senden und den andren zum empfangen.Auf die idee kam ich als ich überlegt,und zwar,wenn ich nur einen buffer benutze,und ich sende die ganze zeit,kann ich doch rein theoretisch nix empfangen....

achja und noch ne frage,wenn ich ein onlinespiel mache,muss dann wenn ich die ganze zeit sende,SendNetworkData oder SendNetworkString benutzen?

bedanke mich schonmal im vorraus für ne Antwort
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Moin

Natürlich kannst du mit 2 Puffern arbeiten. Und wenn du auf der einen Seite dauernd sendest, wäre wirklich praktisch, einen zweiten Puffer als Empfang zu haben.

Zur zweiten Frage: Rein vom Prinzip ist es egal, ob du SendNetworkData() oder SendNetworkString() benutzt, weil beide eigendlich dasselbe machen. Ich würde aber SendNetworkData() verwenden, weil die Daten dann gleich in einem Puffer liegen und es einige PB-Befehle gibt, die auf Pufferdaten zurückgreifen (zB die Packer-Lib). So spart man sich später andauerndes hin- und herkopieren der Daten.


Greetz Laurin

PS: "mit ein ander" schreibt man eigendlich "miteinander" :wink:
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

Danke Laurin....

wegn der "Packer-Lib" muss ich mir die noch runterladn oder ist des standard ???
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

ai....mir fällt grade auf das ich kein plan habe wie ich das machen soll...des läuft ja alles über client to server...aber der andere client muss doch wissen wo der andere client ist,was er macht,wohin er will und so...wie mache ich des am dümmsten?
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Client1-> SendNetworkString(SID,"MOVE 10,-20") //Er sagt dass er 10 nach vorne und 20 nach links geht
Server-> SendNetworkString(CID,"C1 MOVED 10,-20") //Server gibt client 2 bescheid
Client2 -> Nimmt daten entgegen und stellt gegnerfigur da....
:)

mfg
125
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

@125: Ich glaube nicht, dass das eine gute Idee wäre. Man sollte übers Netzwerk immer absolute Positionen angeben, da sonst mit der Zeit eine Verzögerung zustande kommen würde.
Sonst aber richtig!

greetz
remi
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

ok Remi hast recht
Hier korrigiert:
Client1-> SendNetworkString(SID,"COORD 10,20") //Er sagt dem Server dass er bei den Koords 10|20 ist.
Server-> SendNetworkString(CID,"C1 COORD 10,20") //Server gibt client 2 bescheid
Client2 -> Nimmt daten entgegen und stellt gegnerfigur da....

:)

mfg
125
Zuletzt geändert von 125 am 04.02.2005 23:29, insgesamt 1-mal geändert.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

:allright: :wink:
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

mmmh,das ist das was ich mir schon gedacht habe...mit sendnetworkstring einfach des ma so hinschreiben...der server leitets weiter und der näxte client siehts...nur bei einer "welt" (sagn wirs mal so) in einer "Welt" sind mehrere kleine maps (ca. 2000,2000 groß) und denn? das heist ja praktisch das ein client auf jeder map von der welt zu sehen ist...oder nicht???
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
Ground0
Beiträge: 318
Registriert: 05.02.2005 02:09
Wohnort: Stilli, Schweiz
Kontaktdaten:

Beitrag von Ground0 »

hmm :) ich hoffe ich ärklär das jetzt richtig /:->

Also wen du es so ungetrennt machst ja aber kanst ja weitere Parameter mitgeben z.B. so:

Client1-> SendNetworkString(SID,"WELT 1,COORD 10,20") //Er sagt dem Server dass er bei den Koords 10|20 ist in der Welt 1.
Server-> SendNetworkString(CID,"C1 COORD 10,20") //Server gibt client 2 bescheid wen dieser in derselben Welt hockt...
Client2 -> Nimmt daten entgegen und stellt gegnerfigur dar.

Gruss Ground0
Antworten