[Java/KryoNet/LibGDX] Mutliplayer Packet Frage

GentleXD

Aktives Mitglied
Hallo liebe Community,

ich bin mir nicht ganz sicher ob die Frage nicht eher in die Multiplayer Programmierung gehört da es sich aber um ein Spiel handelt habe ich es einfach mal hier geschrieben.

Also es ist kein wirklich wichtiges Problem aber es nervt mich total. Ich programmiere gerade ein kleines Multiplayer Spiel mit Java Kryonet und LibGDX einfach nur für meine Freunde und mich.
Jetzt arbeite ich gerade daran das Movement der Spieler über das Netzwerk zu synchronisieren.
Jetzt habe ich aber für alles ein eigenes Packet. Meine Spieler können nach links und rechts laufen und gehen, springen etc.. Momentan habe ich für jede Aktion ein eigenes Packet also zum Springen ein JumpPacket was immer gesendet wird wenn der Spieler den Space Button drückt.
Jetzt hätte ich aber gerne nur ein Packet wenn das überhaupt nicht umständlich geht. Ich habe damit mometan folgendes Problem ich sende immer nur booleans für zum Beispiel Springen gehen laufe etc. wenn ich jetzt alle Booleans in ein Packet packen wurde müsste ich bei jeder Veränderung alle Booleans irgendwie mitschicken. Gibt es irgendwie eine bessere Lösung ?
 
Wo ist denn das Problem, einfach nur immer ein Byte zu schicken, was einfach eine Kodierung der möglichen Aktionen enthält (als eine Art Enum):
0 = stehen bleiben
1 = links laufen
2 = rechts laufen
3 = gehen (was auch immer das ist - also vorwärts oder wie?)
4 = springen
 
@httpdigest hat recht!
Mal abgesehen davon, dass man das erste Bit gar nicht benötigst, da man es mit !3 && !4 auch so rausbekommt (wenn der Spieler nicht läuft und nicht springt, dann wird er wohl stehen). 😛
Demzufolge sind es - falls es unabhängige Ereignisse sind - 4 Bits, die du versenden müsstest. Das wäre also gar kein Problem. 😀
 

Zurück
Oben