Gamestudio Links
Zorro Links
Newest Posts
Trading Journey
by howardR. 04/24/24 20:04
M1 Oversampling
by Petra. 04/24/24 10:34
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
Data from CSV not parsed correctly
by EternallyCurious. 04/20/24 21:39
Scripts not found
by juergen_wue. 04/20/24 18:51
zorro 64bit command line support
by 7th_zorro. 04/20/24 10:06
StartWeek not working as it should
by jcl. 04/20/24 08:38
folder management functions
by VoroneTZ. 04/17/24 06:52
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, howardR), 472 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Mega_Rod, EternallyCurious, howardR, 11honza11, ccorrea
19048 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Traffic (GER) #302357
12/18/09 21:03
12/18/09 21:03
Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
3D_Train_Driver Offline OP
Serious User
3D_Train_Driver  Offline OP
Serious User

Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
Hallo!
Ich hab mal kurz ne Traffic-Frage.
Was hab ich wohl verkehrt gemacht?
Habe eine kleine MP-Anwendung, einmal mit -sv -cl und einmal mit -cl gestartet.
Funktioniert auch alles super, wenn da nicht so unheimlich viel Traffic auf dem Server wäre und ich weiß nicht wo er herkommt.
Spielfigur kann laufen, rennen und sich drehen.

dplay_bps sagt beim Clienten was zwischen 8 und 12. (halt ich für normal).
Sobald ich auf dem Clienten loslaufe, steigt dplay_bps auf dem Server auf 3000 - 4000 an.

Da haut definitiv was nicht hin.
Wäre für ein paar Tips dankbar.

MfG

Re: Traffic (GER) [Re: 3D_Train_Driver] #302364
12/18/09 21:42
12/18/09 21:42
Joined: Jun 2006
Posts: 2,640
Earth
Germanunkol Offline
Expert
Germanunkol  Offline
Expert

Joined: Jun 2006
Posts: 2,640
Earth
ich denke dafür brauchen wir code.
So wie sich das anhört schickst du jeden frame die position. Das darfst du nicht machen. du darfst sie nur alle 0,25 sekunden (oder noch weniger, je nach spiel-typ) schicken, und musst zwischen den updates auf den anderen clienten interpolieren bzw vorrausberechnen, wo es wahrscheinlich ist, dass die person hinläuft. (also in die gleiche richtung weiter, oder gleich weiterdrehen etc).


~"I never let school interfere with my education"~
-Mark Twain
Re: Traffic (GER) [Re: Germanunkol] #302408
12/19/09 10:02
12/19/09 10:02
Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
3D_Train_Driver Offline OP
Serious User
3D_Train_Driver  Offline OP
Serious User

Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
Hi!
Alles klar. Ich vermute, wir kriegen das auch ohne code hin.
Habe dplay_entrate mal auf 8 gesetzt. Also alle halbe Sekunde.
Animation läuft flüssig, nur dass die Entities auf dem clienten jetzt alle halbe sekunde weiter"hüpfen". dplay_bps liegt auf dem Server jetzt bei 36 oder so. Das haut auf jeden Fall hin und entspricht dem, was ich mir in etwa vorgestellt habe.

Re: Traffic (GER) [Re: 3D_Train_Driver] #302733
12/21/09 18:13
12/21/09 18:13
Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
3D_Train_Driver Offline OP
Serious User
3D_Train_Driver  Offline OP
Serious User

Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
Jemand ne Lösung parat? Mir fehlt dazu etwas Erklärung im Manual, oder ich verstehe es einfach nicht. Die Animationszustände werden gesandt und die Spielfiguren animieren alle auf allen Klienten richtig.
Nur mit dem Bewegen will es einfach nicht klappen. Die Variable player.force_x wird versandt und die Entities bewegen sich nur auf dem Server. Auf den Klienten siehts dank dplay_entrate=8; wie eine Diashow aus.
Code:
function move_me(){
...
...
...
my.turnspeed=15;
my.speed=8;
while(1){
my.pan += my.force_x * my.turnspeed * time;
		my.dist_x = my.force_y * my.speed * time;
		my.dist_y = 0;
		my.dist_z = 0;
		c_move(my,my.dist_x,nullvector,glide + ignore_passable);
wait(1);}
}


function spieler_erstellen(){
player=ent_create(name_spielermodell,temp,move_me);
}

function keyboardinput(){
	while (1){
		if (player){
			force_x_old = player.force_x; //store old force values
			force_y_old = player.force_y;
			player.force_x = 0;
			player.force_y = 0;
				if ((key_w == 1)||(key_cuu == 1)){player.force_y = 1;}
				if ((key_a == 1)||(key_cul == 1)){player.force_x = 1;}
				if ((key_d == 1)||(key_cur == 1)){player.force_x = -1;}
				if ((key_s == 1)||(key_cud == 1)){player.force_y = -1;}
				if (key_shift == 1){player.force_y *= 1.5;player.force_x *= 1.5;}
				if(player.force_x != force_x_old || player.force_y != force_y_old){
						if(connection==2||connection==3){
							send_skill(player.force_x,SEND_VEC);
							}
						
					}
				}
	wait(1);
	}
}


Dann wohl doch mit Code. laugh

MfG

Re: Traffic (GER) [Re: 3D_Train_Driver] #302777
12/22/09 01:51
12/22/09 01:51
Joined: Nov 2002
Posts: 913
Berlin, Germany
S
SchokoKeks Offline
User
SchokoKeks  Offline
User
S

Joined: Nov 2002
Posts: 913
Berlin, Germany
das sieht für mich nach mehreren problemen aus:

1. move_me() wird durch das ent_create nur auf dem server ausgeführt. du müsstest es mit proc_local(...) noch auf den clients starten.

2. keyboardinput läuft zwar (vermutlich) auf den clienten und auf dem server, aber der input wird durch die if-abfrage mit connection == 2 oder 3 nur gesendet, wenn es auf dem sever läuft. das könnte natürlich auch absicht sein.
füge mal bei dem send_skill(..) noch SEND_ALL zu SEND_VEC hinzu,also:
Code:
send_skill(player.force_x,SEND_VEC | SEND_ALL);


dannach sollte schonmal der spieler vom server bei allen richtig laufen.

was die animationen angeht, die sehen zwar wohl momentan korrekt aus, aber früher oder später wirst du um traffic zu sparen NOSEND_FRAME für die entitys aktiviere müssen und die animationen auch lokal handhaben müssen.

Ich weiß nicht ob das bei dir überhaupt ein problem ist, da reicht der code nicht aus, aber trotzdem:
Was die steuerung der entitys der clienten angeht, so musst du deren force erst mit SEND_VEC zum server senden, der wiederum dann diese mit SEND_VEC | SEND_ALL zu den anderen clienten weitersendet, natürlich solltest du sie nur senden wenn sich die werte auch verändert haben.

wenn du noch fragen hast, einfach fragen.
-SchokoKeks

Re: Traffic (GER) [Re: SchokoKeks] #302833
12/22/09 16:18
12/22/09 16:18
Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
3D_Train_Driver Offline OP
Serious User
3D_Train_Driver  Offline OP
Serious User

Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
OK.
Das mit proc_local hatte ich in dem code beispiel übersprungen.
Ich habe natürlich eine lokale playerfunktion. die kümmert sich derzeit nur um die animation.

Re: Traffic (GER) [Re: 3D_Train_Driver] #302854
12/22/09 19:44
12/22/09 19:44
Joined: Nov 2002
Posts: 913
Berlin, Germany
S
SchokoKeks Offline
User
SchokoKeks  Offline
User
S

Joined: Nov 2002
Posts: 913
Berlin, Germany
hat es denn geholfen ein SEND_ALL hinzuzufügen?

Re: Traffic (GER) [Re: SchokoKeks] #303945
01/03/10 22:57
01/03/10 22:57
Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
3D_Train_Driver Offline OP
Serious User
3D_Train_Driver  Offline OP
Serious User

Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
Hi Schokokeks! Ein gesundes, neues Jahr 2010!
Nein, es hat nichts gebracht mit dem SEND_ALL.
Ich habe es zumindest hinbekommen, dass der Client selbst sich auf dem Clienten-PC bewegen kann. Nun "hüpfen" aber alle anderen Clienten alle halbe Sekunde weiter (dplay_entrate = 8;).
Hm....
Hatte eine Scriptvorlage genutzt. Doch dort ist dplay_entrate=0;.
Daher werden alle Clienten immerzu aktualisiert.

Kann doch jetzt nicht so schwer sein, denk ich mal.

Grüße

Re: Traffic (GER) [Re: 3D_Train_Driver] #304744
01/10/10 16:43
01/10/10 16:43
Joined: Aug 2000
Posts: 1,140
Baunatal, Germany
Tobias Offline

Moderator
Tobias  Offline

Moderator

Joined: Aug 2000
Posts: 1,140
Baunatal, Germany
Ich weiss nicht wie weit du schon bist, aber warum fängst du nicht einfach mit dem Tutorial an? Dann lernst du zumindest die Grundlagen.

Player flüssig bewegen mit wenig Traffic sollte doch wohl kein Problem sein. Schwieriger wirds erst bei Kämpfen und anderen Feinheiten.

Re: Traffic (GER) [Re: Tobias] #306775
01/24/10 20:32
01/24/10 20:32
Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
3D_Train_Driver Offline OP
Serious User
3D_Train_Driver  Offline OP
Serious User

Joined: Sep 2002
Posts: 1,065
Germany, Jena, Thüringen
Na, wenn es kein Problem ist, dann kann es mir ja sicher ein jeder erklären. Mehrere Projekte basieren bereits auf den mir bekannten Tutorials. Nur leider kommt in keinem mir bekannten Tutorial drin vor, dass man durch setzen von dplay_entrate=4 oder 8 oder eben größer als 1 eine Unmenge an Traffic einspart.
Mit dplay_entrate=1 haut ja auch alles supi hin. Nur nützen mir 7000 bps für 3 Spieler sehr wenig. Das Problem liegt eher darin, dass scheinbar trotz dplay_localfunction=2; und proc_local... offensichtlich immer nur die Figur des Klienten sich richtig verhält. Alle Figuren, die nicht zum Klienten gehören, werden von der Engine nur "geupdatet".
Noch Vorschläge?

Page 1 of 2 1 2

Moderated by  HeelX, Spirit 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1