Carride v.01_02 | Godot multiplayer test
Тем временем сделал апгрейд проекта с машинками для игры по локальной сети.
Во-первых, самое элементарное, что не успел добавить в первую сборку - машинки теперь не являются призраками для прочих участников сети и могут сталкиваться.
Игрок, который становится сервером, теперь может выбрать другую модельку машины, кроме базовой. Каждый подключившийся участник получит машинку выбранного типа. До того, чтобы каждый игрок мог выбирать модель самостоятельно, дело пока не дошло - тут, похоже, потребуется перерабатывать структуру подключения.
Синхронизировать уже присутствующие на сцене объекты в Godot 4 оказалось совсем просто - достаточно добавить в префаб узел-синхронайзер и настроить его на передачу позиции и поворота объекта. Так что теперь машинки не только сталкиваются друг с другом, но и все толкаемые ими цилиндры меняют своё состояние в сетевой игре.
Для того, чтобы лучше разобраться с сетевой структурой я решил добавить сетевой чат и в этот проект, как уже делал с прототипом на Godot 3. В целом, разобраться тоже было делом не слишком сложным, благодаря прошлому опыту, правда тут был нюанс в увеличившемся количестве игроков, а прошлую реализацию я затачивал для двух. Одна из кнопок интерфейса теперь скрывает/показывает окно чата (заодно сбрасывает фокус ввода).
Из мелочей поправлен кэш материалов - те же выстреливаемые светлячки теперь не вызывают мини-задержку на первом выстреле.
Такие объекты как выстрелы или открывание дверей - пока по сети не синхронизированы, но как минимум что-то выстреливаемое будет синхронизироваться, впоследствии.
Тестовые билды для windows и linux можно скачать здесь:
Но это ещё не все. Сетевой прототип иного жанра, на Godot 3, для двух играющих тоже получил некоторые новые функции, обновившись до 4 версии.
Здесь я хотел, чтобы сервер через чат понимал, кто к нему обращается и что-то с этим делал. Для начала я добавил отправку пользователями своих условных идентификаторов - 0 для сервера, 1 для клиента. Теперь на каждом сообщении дописывается идентификатор (правда отправляющий не видит этой цифры). Кроме того, каждый факт выстрела теперь тоже пишется в общий чат, как в некую консоль или лог (здесь уже id стреляющего отображается у всех игроков).
И раз уж из чата стала вырисовываться некая консоль, то я добавил пару консольных команд - show и hide. Если прописать команду в чат, то моделька игрока соответственно будет показана, или будет скрыта в игре у всех игроков.
Скачать тестовые билды можно тут:
За мультиплеер лайк. Такого бы как ты да в юнити…)
В Unity я уже был и благополучно оставил его несколько лет назад.
Это сиквел Rock n' Roll Racing?
Приквел :)
Планируете выкладывать исходники? Очень помогло бы godot комьюнити
Вот есть исходники простого проекта: https://thenonsense.itch.io/opendungeon