2D topdown shooter netzwerk denkfrage
Übersicht

da_pollerBetreff: 2D topdown shooter netzwerk denkfrage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group