🔥 Продолжаю работу над мультиплеером!
Всем привет! В прошлом посте рассказывал про архитектуру Universe/Place и стриминг чанков. С тех пор добавил много нового функционала и теперь уже можно вместе с кем то побегать по миру
✔️ Профиль игрока
При подключении клиент отправляет на сервер свои профиль — никнейм, скин и радиус видимости. Сервер прокидывает всё это на сущность игрока для дальнейшей синхронизации. Теперь все игроки видят текущий ник и скин других игроков.
👀 Камера и вид отображения игроков
Разделил режимы камеры: для своего персонажа мы можем переключать вид от первого или третьего лица, но чужие игроки всегда будут отображаться в третьем лице. Сделать это было не так сложно, так как у меня уже была заложена система переключения вида для игрока
✔️ Синхронизация анимаций
Так как система анимаций у меня кастомная (без юнити аниматора), то было несколько вариантов как реализовать синхронизацию. Пока что остановился на параметрах сущности (Velocity, IsCrouch и т.д). Аниматор просто подвязывается к ним и работает как обычно, вызывая нужные стейты в зависимости от параметров. Возможно в будущем оптимизирую за счет синхронизации самих стейтов анимации, а не параметров, но пока что сойдет и такой вариант.
✔️ Физика на уровне Place
Вынес работу с физикой (различные касты) из глобальной обработки в Place. Каждый плейс теперь работает со своей физической сценой Unity — физика одного места не влияет на другое. Без этого физика в мультисценах нормально работать не будут, так что штука важная.
😏 В целом мультиплеер уже работает — можно зайти на сервер, увидеть других игроков и побегать вместе. Дальше на очереди синхронизация взаимодействия с блоками и инвентарем, после чего можно уже попробовать запустить тест с выделенным серваком.
Post #846
1.42K
