Сборка и запуск локального сервера
У официальных разработчиков так же есть англоязычный гайд по сборке проекта.
Подготовка
Для сборки потребуется скачать и установить:
- Git - https://git-scm.com
- Python 3.7 или новее - https://www.python.org - качать именно с оф. сайта а не с Windows Store иначе могут возникнуть проблемы со скриптом
- .NET 9 SDK x64 - https://dotnet.microsoft.com/en-us/download
Клонирование кода
После установки всего вышеперечисленного теперь нужно скачать код проекта через Git.
- Для этого сначала нужно получить ссылку на репозиторий, оканчивающуюся на
.git
. Для этого нужно зайти на страницу репозитория на GitHub и нажать справа сверху на кнопку "Code". Скопируйте ссылку из выпавшего окна (вам нужна ссылка по HTTPS).
Для билда SS220 вы можете просто скопировать вот эту ссылку:https://github.com/SerbiaStrong-220/space-station-14.git
- После этого вам нужно открыть командную строку вашей системы (в Windows 10 - Win+R и введите cmd) и перейти в папку, куда вы будете клонировать.
В cmd и PowerShell (Windows) для этого используется команда cd, напримерcd C:\Users\VasyaPupkin\Desktop
. Вы можете копировать путь прямо из проводника.
Если папка находится на диске, отличном от C то сначала переключитесь на этот диск введя<буква диска>:
НапримерE:
Учитывайте то, что в процессе клонирования Git сам создаст подпапку для кода проекта.
Убедитесь что у вас достаточно места! Билд после сборки может весить больше 4ГБ. - Теперь введите git clone <ссылка из шага 1>. Для билда SS220 команда будет выглядеть так:
git clone https://github.com/SerbiaStrong-220/space-station-14.git
- Дождитесь конца клонирования. Проверьте результат, по указанному вами пути будет подпапка "space-station-14" с кодом проекта.
Сборка
- Откройте командную строку и перейдите через cd в папку проекта (space-station-14). Введите
py -3 .\RUN_THIS.py
. Дождитесь окончания. - Введите
dotnet build -c Release
. Дождитесь окончания. В консоли жёлтым цветом может показаться очень много предупреждений, игнорируйте их. Ошибки будут показаны красным цветом. После окончания сборки у вас должно быть 0 ошибкок как на скриншоте:
Теперь у вас есть релизная сборка. Она отличается от дебаг-сборки тем, что имеет автосохранение карт во время маппинга и реже крашится (дебаг-сборку крашат ассерты, специально добавленные оффами). Так же релиз-сборка не имеет искуственной задержки (высокого пинга). Именно её рекомендуется использовать для маппинга.
Теперь у нас имеется релизная сборка. Она выполняет роль версии, в которой исполняются все обыденные для нас ивенты из обычных раундов. На ней лучше всего проверять завершённость какой-либо работы, будто маппинг или разработка новой фичи.
Если вы маппер, то для вас лушчим образом подойдёт сборка Tools
. Она также, как и Release
не имеет искуственной задержки, но помимо этого, в ней удалены лишнии станции, а игровые события не инициируются, из-за чего лучше всего для продолжительной мапперской работы. Собирать её нужно при помощи команды: dotnet build -c Tools
Если вам вдруг потребуется дебаг-сборка, то введите просто dotnet build
(без -c Release
). Её для маппинга использовать не рекомендуется, но рекомендуется использовать для тестирования добавляемого контента. Лучше всего подходит для разработчиков, но является самой нестабильной сборкой, так как остро реагирует на те ошибки, на которые не обращают внимания Release
и Tools
Запуск
Сервер запускается с помощью runserver.bat в папке билда, а клиент с помощью runclient.bat
Сервер можно настраивать в файле конфигурации server_config.toml
в папке bin\Content.Server
, однако для маппинга или тестирования это не требуется.
Обновление
Расписано для тех, кто не использует Git для коммита своих обновлений в основной репозиторий или делает это через других людей.
- Сохраните нужные вам файлы (вашу карту и прототип) в отдельной папке. Все лишние файлы в папке игры будут удалены, как и изменения в существующих файлах. Исключением будет конфигурация сервера и файлы в data.
Выключите сервер и клиент. - Откройте консоль и сделайте cd в главную папку билда. Введите
git clean -fd
Это удалит все лишние файлы (файлы которые не существовали изначально или которых нет в .gitignore). - Введите
git reset --hard
Это откатит изменения в тех файлах, которые не были удалены в предыдущем шаге - Это было сделано чтобы не было конфликтов с загружаемым обновлением. Теперь введите
git pull
- Если обновление загрузилось успешно, переходите к сборке (
dotnet build
илиdotnet build --configuration Release
)