Köntest du den Playerstate nicht einfach als Text übertragen? also z.B. dezimal mit Leerzeichen getrennt:
1273 -73674 25062 -7246284
Das kan man dann einfach trennen und einzeln zuweisen - oder kommt es sehr auf Geschwindigkeit an?
Edit: Alternativ kannst du ja auch sowas machen:
id = arr[0] + arr[1] << 8;
x = arr[2] + arr[3] << 8 + ...
Ein kleines bisschen Schreibarbeit, aber schneller als Strings