Node.js + websocket - идентификаторы игровых объектов с низкой пропускной способностью - PullRequest
0 голосов
/ 06 июля 2018

Я работал над игрой в течение последних нескольких дней, и в настоящее время я работаю над оптимизацией данных фрейма веб-сокета . Я изменил тип данных с простого JSON на массив буферов , и эта часть работает нормально. Данные объекта, такие как позиция и вращение, отправляются и принимаются без проблем .

Проблема ID. В настоящее время клиент отслеживает каждую сущность по ее ID, чтобы сохранить последнюю позицию для плавного движения, и , таким образом, она будет оставаться.

Каждый объект на сервере в настоящее время имеет UUID (например, f2e9f5e2-a810-416e-a1ce-a300a0b7a088). Это 16 байт . Я не отправляю это!

А теперь к моему вопросу. Как они это делают в больших играх? Есть ли способ обойти это, или способ генерировать уникальный 2-байтный или какой-то другой низкочастотный с UID?

UPDATE

Мне нужно больше 256 ID с, что означает, что 1 байт явно не будет работать. 2 байта дают мне 65535 ID с, что, вероятно, достаточно. Я также знаю, что повторение цикла до тех пор, пока вы не найдете следующий свободный идентификатор, является опцией, но, возможно, это слишком «дорого».

...