TGViewer
Kozlov Dev - Разработка игр Kozlov Dev - Разработка игр @kozlovdev · 4.1K subscribers
Post #839 1.38K
🔥 Мультиплеер!

Не стал долго тянуть с этой темой и решил сразу внедрить его в новую часть (ранее планировал добавлять позже, уже после релиза).

👍 Решил делать всё сразу, так как архитектура игры поменялась на систему вселенных, из-за чего приходится переписывать большую часть кода. Поэтому проще на этом этапе внедрить работу с сетью, чем переписывать код ещё раз в будущем.

Сетевые решения
Для мультиплеера выбрал PurrNet — у него есть всё, что мне нужно. Среди других решений (FishNet, Mirror, Netcode) у него лучшая производительность.
Из минусов — пока очень мало документации, но спасает то, что я уже работал с FishNet и база у меня есть, так что разобраться несложно.

Также интегрировал VContainer в PurrNet, чтобы при создании сетевых объектов в них автоматически внедрялись зависимости.

Режимы работы
Планирую сделать 3 режима:

✔️ Локальный (по сути режим хоста с local transport) — для одиночной игры

✔️ Онлайн с хостом — вытекает из локального режима. Игрок может выступать сервером и дать возможность друзьям подключаться к нему, чтобы вместе бегать по своему миру

✔️ Онлайн с выделенным сервером — игрок подключается к заранее созданному серверу разработчика и может играть с любыми другими игроками

Архитектура
Так как есть 3 режима работы, из них вытекают 2 версии приложения:

✔️ Клиент + сервер — для запуска хост- и клиентского режимов

✔️ Сервер — для режима выделенного сервера

Для этого я сделал 2 входные сцены: Client Bootstrap и Server Bootstrap, а также кастомный инструмент сборки.

В первом варианте собирается билд клиента (WebGL, Android и т.д.) со стартовой сценой Client Bootstrap,
во втором — билд для Dedicated Linux Server со стартовой сценой Server Bootstrap.

⚡️ Это даёт полный контроль над флоу: что нужно загружать, а что нет. Например, на выделенном сервере не нужны клиентские зависимости (меню, аналитика, SDK площадок и т.д.).
При старте выделенного сервера сразу создаётся нужная вселенная, после чего запускается сцена с ней — и далее клиенты могут к ней подключаться.

P.S.
💭 Пишите в комментариях, интересна ли вам тема мультиплеера и стоит ли подробнее рассказывать про архитектуру и подходы, которые я использую при разработке
  • 🔥 37
  • ❤ 4
  • 🥰 2
  • 👍 1
More from @kozlovdev
  1. Sep 23, 2026Новости по Сloud. 👨‍💻 Так как мы работаем с тестировщиками, у них появляются потребности…
  2. Sep 19, 2026😎 Стартуем эвент SCREENSHOT SATURDAY! ❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делит…
  3. Sep 16, 2026На прошлой недели созванивались с тестерами по поводу аналитики в Cloud. 👀 Кто не в курсе…
  4. Sep 12, 2026😎 Стартуем эвент SCREENSHOT SATURDAY! ❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делит…
  5. Sep 9, 2026Post #1052
  6. Sep 5, 2026😎 Стартуем эвент SCREENSHOT SATURDAY! ❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делит…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →