Если вы видите в документации Unity упоминание Windows dedicated server build support, речь идёт о возможности собрать серверную часть вашего многопользовательского проекта под Windows как выделенный сервер. Это не клиентская версия игры, а отдельный экземпляр, который обрабатывает логику игры для всех подключённых игроков — без графики, только расчёты, синхронизация и управление сессиями.
Такой подход актуален для проектов на Unity Netcode for GameObjects (UNET), Mirror или Fish-Net, где сервер и клиенты работают на разных машинах. Далее разберём, чем выделенный сервер отличается от пиринговой модели, как его собрать в Unity, какие требования к железу и ПО, а также где лучше разворачивать — на своём ПК, в облаке или на выделенном сервере.
Чем выделенный сервер лучше пиринговой модели
В пиринговой архитектуре (P2P) один из игроков становится хостом — его машина обрабатывает логику для всех остальных. Это проще в реализации, но чревато проблемами:
- Зависимость от хоста: если у него слабый ПК или нестабильный интернет, лагают все;
- Читерство: хост может подменять данные (например, в шутерах — менять урон или позицию игроков);
- Ограниченное количество игроков: обычно не больше 8–16, иначе нагрузка на хост становится критической.
Выделенный сервер решает эти проблемы: он работает на отдельной машине (физической или виртуальной), обрабатывает логику независимо от клиентов и гарантирует честность игры. Минус один — нужно платить за хостинг или содержать свой сервер.
Если ваш проект рассчитан на 20+ игроков или это соревнования с рейтингом, выделенный сервер — обязательное условие. Для локальных тестов или кооператива на 2–4 человека хватит и P2P
| Способ | Плюсы | Минусы | Стоимость |
|---|---|---|---|
| Локальный ПК | Бесплатно, полный контроль, удобно для тестов | Нужно держать ПК включённым, ограниченная пропускная способность | 0 ₽ (если ПК уже есть) |
| Виртуальный сервер (VPS) | Низкая цена, масштабируемость, удалённый доступ | Ограниченные ресурсы, возможны лаги при высокой нагрузке | От 300 ₽/мес |
| Выделенный сервер | Максимальная производительность, полный контроль над железом | Дорого, сложно администрировать | От 5 000 ₽/мес |
| Облачный хостинг (AWS, Azure) | Гибкость, оплата по факту использования, интеграция с другими сервисами | Сложная настройка, высокая цена при большой нагрузке | От 1 000 ₽/мес |
Сравнение способов развёртывания сервера для Unity
Вы можете запустить Windows dedicated server для Unity несколькими способами. Каждый вариант имеет свои плюсы, минусы и ограничения по цене, производительности и сложности настройки.
Требования к серверу для Unity-проектов
Минимальные и рекомендуемые требования зависят от сложности игры и количества игроков. Для тестов хватит и слабого железа, но для коммерческого проекта с 50+ игроками нужен серьёзный сервер.
Основные параметры, на которые стоит обратить внимание:
- Процессор (CPU): чем больше ядер, тем лучше — серверная логика часто многопоточная. Для 20–30 игроков хватит 4–6 ядер (например, Intel Xeon E5-2620 или AMD Ryzen 7). Для 100+ игроков — от 8 ядер;
- Оперативная память (RAM): минимум 4 ГБ для тестов, 8–16 ГБ для средних проектов, 32 ГБ и больше — для крупных серверов;
- Жёсткий диск (HDD/SSD): SSD обязателен для быстрой загрузки карт и уменьшения лагов. Объём — от 50 ГБ (для самой ОС и серверных файлов), но если игра использует много ассетов, берите 200–500 ГБ;
- Пропускная способность сети: минимум 100 Мбит/с для 20–30 игроков, 1 Гбит/с — для 100+. Важно, чтобы хостинг-провайдер гарантировал низкий пинг;
- Операционная система: Windows Server 2019/2022 или Windows 10/11 Pro (для тестов). Для производственной среды лучше использовать серверные версии ОС.
Если вы только начинаете разрабатывать многопользовательскую игру, начните с локального сервера на своём ПК. Когда проект вырастет, переходите на или выделенный сервер.
Как собрать dedicated server build в Unity
Чтобы создать серверную сборку для Windows в Unity, нужно выполнить несколько шагов. Процесс может отличаться в зависимости от используемого сетевого фреймворка (UNET, Mirror, Fish-Net и др.), но общая схема одинаковая.
- Настройте проект для серверной сборки:
Откройте
Player Settings(Edit → Project Settings → Player). В разделеOther Settingsнайдите опциюScripting Define Symbolsи добавьтеUNITY_SERVER(или другой символ, который использует ваш фреймворк для серверной логики). Это позволит отключить ненужные клиентские компоненты (например, рендеринг) в серверной сборке. - Отключите графику:
В серверной сборке не нужна графика, поэтому в
Player SettingsустановитеGraphics APIвNoneили удалите все API. Также отключитеRun In BackgroundиResizable Window. - Соберите серверную версию:
В меню выберите
File → Build Settings. Убедитесь, что выбрана платформа Windows (x64 или x86 — зависит от вашей ОС). НажмитеBuildи укажите папку для выходного файла. В результате получится.exe, который можно запускать на сервере. - Запустите сервер:
Скопируйте собранный
.exeна сервер, откройте порт в файрволе (по умолчанию часто используется7777для Mirror или UNET) и запустите файл. Для автоматизации можно использовать.bat-скрипты или сервисы вроде PM2 для Node.js.
⚠️ Внимание: Не запускайте серверную сборку на той же машине, где работает клиентская версия игры. Это может привести к конфликтам портов и нестобильной работе.
Сравнение сетевых фреймворков для Unity
Выбор фреймворка для многопользовательской игры определяет, как будет работать ваш Windows dedicated server. Каждый инструмент имеет свои особенности, плюсы и минусы.
| Фреймворк | Простота настройки | Производительность | Поддержка серверных сборок | Активность разработки |
|---|---|---|---|---|
| UNET (Unity Netcode) | Высокая | Средняя | Да (встроено) | Официально поддерживается Unity, но медленно развивается |
| Mirror | Средняя | Высокая | Да | Активная сообществом, часто обновляется |
| Fish-Net | Низкая | Очень высокая | Да | Платный, но с открытым исходным кодом, оптимизирован для большого количества игроков |
| Photon Unity Networking (PUN) | Высокая | Средняя | Нет (использует облачные серверы Photon) | Активная, но требует подключения к облаку |
| LiteNetLib | Низкая | Высокая | Да (нужно дорабатывать вручную) | Лёгкий, но требует больше кода |
Mirror — самый популярный выбор для начинающих: он бесплатный, открытый, хорошо документирован и поддерживает выделенные серверы из коробки. Fish-Net подойдёт для крупных проектов, где важна производительность и масштабируемость. UNET удобен, если вы хотите остаться в экосистеме Unity, но его функционал ограничен.
Для большинства инди-проектов на Unity оптимальный выбор — Mirror или Fish-Net. UNET подойдёт для простых игр, а PUN — если вы не хотите возиться с хостингом
Где развернуть Windows dedicated server для Unity
Выбор хостинга зависит от бюджета, количества игроков и ваших технических навыков. Рассмотрим основные варианты подробнее.
Как выбрать хостинг для Unity-сервера
Сначала оцените нагрузку: сколько игроков будет одновременно, насколько сложная логика игры. Для тестов хватит локального ПК или дешёвого VPS. Для коммерческого проекта с 50+ игроками берите выделенный сервер или облако. Если не хотите возиться с настройкой, выбирайте хостинг с готовыми шаблонами для Unity (например, Hostman или Pterodactyl Panel).
Пошаговая инструкция: развёртывание сервера на VPS
Разберём процесс на примере Mirror и на Windows Server 2019. Этот способ подойдёт для большинства небольших и средних проектов.