Запуск локального сервера
Судя по тому, что вы сюда попали, то вы хотите запустить локальный сервер. Неожиданно
Запуск готовой сборки
Это самый простой и быстрый способ запустить локальную версию игры со всеми админ привилегиями, скорее всего именно это вам и нужно. Сборка нашего сервера происходит автоматически ежедневно при наличии изменений и так же автоматически публикуется в общий доступ.
Скачать готовую сборку под вашу ОС вы можете по этим ссылкам:
К сожалению, сборки под Linux ARM64 и OSX не поддерживаются нашим проектом.
- Скачайте сборку под вашу ОС
- Разархивируйте все файлы в любом удобное вам место
- Запустите
Robust.Server.exe
(илиRobust.Server
) - Не закрывайте окно с консолью, это ваш запущенный сервер!
- Запустите лаунчер
- На вкладке
Home
нажмитеDirect Connect To Server...
- Укажите адрес сервера -
localhost
и нажмитеConnect
- Profit. Вы на вашем локальном сервере с правами хоста.
У меня открывается черное окно (или на долю секунды мелькает иконка сервера) и сразу пропадает, что делать?
Скорее всего у вас устаревшая версия .NET, попробуйте установить 8-ю версию.
Самостоятельная сборка
Сборка
На данный момент репозиторий с сборкой проекта Exodus является приватным и недоступен.
Дополнительное
Дополнительная информация, которая вам наверное, да и поможет
=> Как открыть консоль?
На кнопку ~
=> Как перейти в лобби?
golobby
команда в консоль
=> Где настройки сервера?
Файл в папке сервера - server_config.toml
=> Как просмотреть все команды?
list
в консоль
help <команда>
для подробностей о команде
Учебное пособие по размещению серверов
Это руководство о том, как настроить сервер SS14. Это руководство охватит все, что вам нужно, от приватных серверов для игр с друзьями до производственных серверов для подходящих хостов серверов.
Вы можете использовать два метода. "Голый" сервер, который просто запускает игровой сервер напрямую, или SS14.Watchdog который обрабатывает обновления и запускает игровой сервер для вас. Мы рекомендуем последнее для более правильного развертывания, а также если вы хотите быть в списке на хабе в лаунчере.
Для таких сервисов как SS14.Watchdog, вам ТАКЖЕ понадобится среда выполнения ASP .NET Core 7 (входит в .NET 7 SDK).
1.Базовая Настройка
- Загрузите последнюю версию сервера с нашей страницы сборки для вашей операционной системы: Windows x64, Linux x64
- Извлеките в любое место
- Запустите Robust.Server.exe (или Robust.Server через терминал на macOS / Linux)
- Перенаправление портов 1212/ TCP и 1212/UDP:
- Самый простой способ сделать это - включить UPnP на сервере. Отредактируйте server_config.toml и удалите # перед upnp = true в блоке [net]. Это заставит сервер автоматически пытаться перенаправить порт на ваш маршрутизатор. Это должно работать на большинстве современных маршрутизаторов.
- Если UPnP у вас не работает, вам придется сделать это вручную. Инструкции зависят от вашего маршрутизатора, поэтому мы оставляем поиск в браузере на ваше усмотрение.
- Дайте своим друзьям и себе свой IP-адрес и попросите их вставить его в диалоговое окно "прямое подключение" в лаунчере.
Это, конечно, не будет обрабатывать автоматические перезапуски (в случае сбоя) или обновления, как это сделал бы watchdog. Это также не приведет к публичному размещению вашего сервера на хабе, поскольку реклама по умолчанию отключена. Если вы хотите, чтобы ваш сервер был указан в хабе, пожалуйста, читайте ниже.
Простая конфигурация сервера
Вы можете настроить параметры на сервере, отредактировав конфигурационный файл, server_config.toml
Настройки имеют один ключ, под который они подпадают, а затем имя. Итак, если я скажу game.lobbyenabled, что это идет под [game] заголовком следующим образом:
[game]
lobbyenabled = true
Некоторые значения по умолчанию, которые вы, возможно, захотите установить для своего сервера, если вы действительно собираетесь разместить это должным образом:
[net]
Тикрейт вашего сервера.
tickrate = 30
[game] Ниже указываете имя вашего сервера. hostname = "Мой сервер" При запуске сервера включает лобби. lobbyenabled = true
[auth] mode = 1
[hub] Показывать ли ваш сервер в хабе лаунчера. true - да false - нет. Пожалуйста, смотрите правила размещения серверов advertise = false
Универсальные знания
Права администратора
По умолчанию права администратора не установлены. Соединения, сделанные с localhost, автоматически становятся полноправными администраторами и обходят любые требования к аутентификации. Конечно, это не очень полезно для реальных серверов, размещенных на выделенном сервере, поэтому у вас проблема.
Вы можете использовать команду promotehost (например promotehost PJB) в консоли сервера, чтобы временно предоставить подключенному клиенту полные права хоста. Это позволит им настраивать дополнительные права администратора (и устанавливать свои собственные постоянные) с помощью панели разрешений администратора в игре (permissions команда). Привилегии теряются при завершении работы сервера. Рекомендуется предоставить себе все разрешения, чтобы вы могли предоставить их администраторам позже или правильно администрировать, если хостинг один. (За исключением +HOST случаев, когда вы не умеете им пользоваться! Если вы не знаете, что он делает, не давайте +HOST)
+HOST предоставлять привилегии крайне опасно, и их следует предоставлять только тем, у кого уже есть доступ к вашему компьютеру или серверу.
Предоставление кому +HOST - либо позволяет им полностью завладеть вашим сервером и / или компьютером.
Настройки производительности
Вот некоторые настройки, которые вы, вероятно, захотите включить на своем сервере для повышения производительности:
Переменная среды для включения полного динамического PGO, что значительно повышает производительность за счет незначительно большего времени запуска:
DOTNET_TieredPGO: 1
DOTNET_TC_QuickJitForLoops: 1
DOTNET_ReadyToRun: 0
Переменная среды для включения операций AVX в базе кода. В зависимости от вашего процессора это может снизить производительность, а не улучшить ее, в противном случае это может повысить производительность atmos.
ROBUST_NUMERICS_AVX: true
Дополнительно - SS14.Watchdog и / или пользовательские кодовые базы
https://github.com/space-wizards/SS14.Watchdog/
SS14.Watchdog (кодовое имя Ian) - это оболочка для хостинга серверов, похожая на TGS для BYOND (но на данный момент намного проще). Он обрабатывает автоматические обновления, мониторинг, автоматические перезапуски и администрирование.
Чтобы настроить его, загрузите код (ссылка выше) и опубликуйте его для своей платформы (dotnet publish -c Release -r linux-x64 --no-self-contained), поскольку в настоящее время мы сами не предоставляем никаких публикаций. Обратите внимание, что вам необходимо иметь ASP.NET Установленую как основная среда выполнения. Затем скопируйте SS14.Watchdog/bin/Release/net8.0/linux-x64/publish в каталог на вашем сервере или что-то в этом роде.
Вы захотите отредактировать appsettings.yml, чтобы добавить сервер и настроить некоторые вещи. Пример с официальных серверов (очевидно, отредактированные токены):
Serilog:
Using: [ "Serilog.Sinks.Console", "Serilog.Sinks.Loki" ] MinimumLevel: Default: Information Override: SS14: Information Microsoft: "Warning" Microsoft.Hosting.Lifetime: "Information" Microsoft.AspNetCore: Warning
WriteTo: - Name: Console Args: OutputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3} {SourceContext}] {Message:lj}{NewLine}{Exception}"
Enrich: [ "FromLogContext" ]
# Uncomment to have watchdog log to Loki #Loki: # Address: "Шаблон:Loki addr" # Name: "Шаблон:Server id" # Username: "Шаблон:Loki user" # password: "Шаблон:Loki pass"
AllowedHosts: "*"
# API URL that your watchdog is accessible from. # This HAS to be set so the game servers can communicate with the watchdog. # If you don't want the watchdog to be publically accessible, do `http://localhost:5000/` here. BaseUrl: https://builds.spacestation14.io/watchdog/
Servers:
Instances: # ID of your server. wizards_den: # Name of the server - Note that this is NOT the name of the server on the hub, that is set for each server under game.hostname in their respective config.toml files. Name: "Wizard's Den" ApiToken: "foobar" # API token to control this instance remotely like run updates, restart server. This should be confidential ApiPort: 1212 # API port OF THE GAME SERVER. This has to match the 1212 HTTP status API (described below). Otherwise the watchdog can't contact the game server for stuff.
# Auto update configuration. This can be left out if you do not need auto updates. Example is for our officially hosted builds. # See below for alternatives. UpdateType: "Manifest" Updates: ManifestUrl: "https://central.spacestation14.io/builds/wizards/manifest.json"
# Any environment variables you may want to specify. EnvironmentVariables: Foo: bar wizards_den_two: # Name of the second server Name: "Wizard's Den 2" etc...
Общее устранение неполадок
SS14.Watchdog
Сервер продолжает перезагружаться каждые 30 секунд Это означает, что сервер неправильно взаимодействует со SS14.Watchdog, и SS14.Watchdog вынужден предположить, что сервер заблокирован или что-то подобное. Это происходит, если BaseUrl конфигурация SS14.Watchdog установлена неправильно или иным образом недоступна игровому серверу.
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Posix.NETStandard, Version=1.0.0.0, Culture=neutral (...) Текущая рабочая теория заключается в том, что это вызвано неправильными dotnet publish настройками. Приведенный ниже набор результатов тестов должен помочь объяснить.
dotnet publish -c Release -r linux-x64 --no-self-contained SS14.Watchdog -o test
RESULT: Mono.Posix.NETStandard.dll included, System.dll not included (as expected)
dotnet publish -c Release -r linux-x64 SS14.Watchdog -o test
RESULT: Mono.Posix.NETStandard.dll included, System.dll included
dotnet publish -c Release SS14.Watchdog -o test
RESULT: Mono.Posix.NETStandard.dll not included, System.dll not included
Поскольку Watchdog используется Mono.Posix.NETStandard.dll для маркировки исполняемых файлов как исполняемых в Linux и Mac OS X, важно иметь его в этих ОС.
Запуск сервера на Linux
Откройте терминал в распакованном каталоге сборки Введите./Robust.Server, затем нажмите enter. Если вы видите кучу вещей, которые выводятся на экран, и на нем не написано ошибка, значит, сервер запущен.