2D topdown shooter netzwerk denkfrage

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

da_poller

Betreff: 2D topdown shooter netzwerk denkfrage

BeitragDo, Aug 13, 2009 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
als bsp.. 2d topdown shooter.. jeder spieler hat 3 positions werte(x,y, winkel)

bei bewegung(keydown/mousemove) jedes mal die neue position an alle spieler senden schient mir persönlich nciht so sehr die super idee zu sein.. denn so kämen bei 8 spielern und 60 fps pro sekunde bis zu

4byte mal 3 werte
12 mal 7 andere spieler
84 mal 60 frames

gibt pro sekunde 5040bytes(4,9kb)

dazu später noch mehr wie neue spieler/chat etc...

oder, welche idee wäre noch für den anwendungsfall passend?

ToeB

BeitragDo, Aug 13, 2009 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal prüfen (bei sich) ob sich der winkel geändert hat. wenn ja wird der neue winkel geschickt. Dann wird (wenn die Taste gedrückt wurde) übermittelt, welche taste gedrückt worden ist (einfach 1,2,3 oder 4). Aber nicht ständig sondern nur einzeln , also z.b. befehle wie "Key_down_1" heißt dann, taste 1 wird gedrückt, und "Key_Up_1" heißt, Taste 1 wird losgelassen. Und dann wird die Figur wie der eigene Spieler bewegt.

Eine andere möglichkeit wäre, einfach die position zu senden (wie du es jetzt machst) aber zusätzlich noch einen x / Y Speed, also in welche richtung sich der spieler bewegt. Heißt also, wenn mal 1 - 2 Frames mal keine nachricht kommt, wird der trotzdem um die x/y speed varaiblen bewegt.

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

DAK

BeitragFr, Aug 14, 2009 2:32
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn man sendet "key_down_1" oder so, dann hilft das nicht zur reduktion der übertragungsmenge. dieses gsatzerl würd dann glatt mal 10 byte verschwenden. sinnvoller wärs für jede taste, die gesendet wird, nur ein byte zu schicken. üblicherweise braucht ma für ein spiel ja nicht die gesamte tastatur, vllt grad mal so 10-20 tasten, also sollt sichs in einem byte ausgehen, für jede verwendete taste 2 codes zu haben (einen für down, einen für up).

so zb: taste_1_down = 1
taste_1_up = 127+1


sry, falls das keinen sinn macht, es is 2:30 in der früh
Gewinner der 6. und der 68. BlitzCodeCompo
 

Kruemelator

BeitragSo, Aug 16, 2009 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
@DAK
Man kann auch die Kompletten Tasten in einem oder zwei Byte abspeichern, solange es nicht zuviele sind.
Wenn Taste1 gedrückt dann 1 sonst 0.
Wenn Taste2 gedrückt dann 2 sonst 0.
Wenn Taste3 gedrückt dann 4 sonst 0.
....
Das dann addieren, dann kommt man z.B. bei zwei Byte auf 16 Tasten.

Gruß Kruemelator

Tankbuster

BeitragSo, Aug 16, 2009 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Es macht aber absolut keinen Sinn, nur zwei Bytes zu versenden. Der UDP-Header besteht ja schon aus 64Bytes, der IP Header aus ~20 und dann kommt noch der Ethernet Header.

Das heißt, das im Ehternet-Packet (ohne Header) 84 Bytes stehen. Und dort können 1500 rein. Das heißt, ob man jetzt noch 5 oder 10 Bytes dazuschreibt..... einen großen Unterschied macht das nicht, da diese ganzen Protokolle den meisten Platz verbrauchen. Außerdem wird die Anzahl der gesendeten Ethernet Pakete auch nicht größer, was den Treffic nicht wahnsinnig beeinflusst.
Twitter
Download Jewel Snake!
Windows|Android

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group