SCRAP[b] {devlog}
24 subscribers
50 photos
14 videos
SCRAP Brigade | Web-based online game | Development blog
Download Telegram
С получением игровых локаций разобрались. Здесь важен каждый пакет, потому TCP-природа WebSocket приходится кстати.

Но TCP также несет определенный оверхед, который может быть вреден для получения данных перемещения NPC и других игроков.

Нам нет смысла дожидаться каждого пакета — ведь через долю секунды придет следующий, а значит нам важнее быстрее получать свежие данные чем гарантия доставки каждой крупицы информации.

С «голым» UDP работать сложновато, слишком много всего нужно реализовывать самому, начиная с формата данных, заканчивая handshake и прочими системными сообщениями. Есть готовые open-source-протоколы которые можно использовать.

Я обратил внимание на KCP. Он также умеет работать в режиме гарантии доставки (как TCP), что может пригодится для важных игровых событий вроде обновления статуса игровых объектов, применения поверапов или «попадания в цель».

К сожалению, unmanaged-реализации KCP под юнити я не нашел, но это не беда — я написал свою.
В качестве формата данных я взял FlatBuffers. Он поддерживает delta-сообщения а значит мы можем атомарно обновлять конкретные значения и не гонять по сети весь статус целиком.

В итоге любые изменения состояния шлются быстрыми короткими delta-пакетами, а раз в несколько секунд проводится полная синхронизация.
Мы получили молниеносный и стабильный способ синхронизации состояния с бэкендом, но к сожалению потеряли http-удобняшки вроде роутинга и oauth. Придется с этим как-то жить )
#devblog
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Farewell, Unity…
Подробности позже

#kitchensink
🙈2
Наполнение биомов через детерменированный рандом используя принципы гильдий

Цикл приемки через визуальный анализ

На скриншотах LightForest

4 итерации, последнюю оставляем и переходим к следующему биому

#kitchensink
🔥3👻1
Media is too big
VIEW IN TELEGRAM
Quest VR Native Demo
2👍1🔥1