Barotrauma

Barotrauma

35 ratings
[Устарело] Создание сервера в Barotrauma
By Nevol
Руководство, вероятнее всего, устарело. Примите это за должное.
Рассмотрим варианты с хостом сервера на Вашем собственном компуктатере, а также немного про VPS и SteamCMD.
Я буду проводить все операции на VPS с ОС Windows Server 2016.
2
   
Award
Favorite
Favorited
Unfavorite
Создание сервера на своём ПК
Я сразу перейду к делу.
Что понадобится для хоста?
1. Компуктатер/ноутбук;
2. Открытые порты;
3. Настройка конфигурации сервера.
Казалось бы, что всё довольно просто, да и делать практически нечего, но не тут-то было.

Открываем порты в брандмауэре
Чуть ниже я сделал коротенькое видео, чтобы лишних вопросов не было.
1. Откройте Брандмауэр. Если у Вас Windows 7, то найти его можно через панель управления в разделе "Сеть и безопасность" (точно не помню, ибо давно уже не использую семёрку).
2. Выберите пункт "правила для входящих подключений" (находится в левой колонке) и создайте новое правило (в правой колонке)
3.Выбираем "Для порта". Далее выбираем "Протокол UDP" (рекомендуется и по TCP сделать, но мне хватило и UDP), и вводим туда нужные порты. В нашем случае это "27015, 27016" или "27015-27016". Далее просто нажимаете "Далее", а под конец выбираете любое название. Описание необязательно. Готово.

Открываем порты на своём роутере
Так как я всегда использовал прямое подключение (то есть роутера не имею, раздаю Wi-Fi с ноута), то про роутеры я сам написать мало чего могу. Позже поищу инфу и более-менее актуальные руководства сюда закину.
Попробуйте сначала использовать UPnP в самой игре. Его выбрать можно при создании сервера.

Установка SteamCMD и запуск сервера.
Ниже я, как всегда, сделал коротенькое видео, если у Вас, вдруг, возникли проблемы.

1. Создаём на на своём компуктере папку "SteamCMD" (всем рекомендую делать её прямо на диске, а не на том же рабочем столе. К примеру: диск D).

2. Скачиваем SteamCMD (~800 кб.): Скачать SteamCMD.

3. Из архива, который Вы скачали, нужно скопировать всё его содержимое, и закинуть в созданную Вами папку (первый пункт).

4. Запускаем "steamcmd.exe". И ожидаем пока он обновит сам себя.

5. Как понять, что всё закончилось? В самом низу Вы сможете лицезреть надпись "Steam>"

6. Далее у Вас есть выбор: Залогиниться под анонимом, или же использовать существующий аккаунт стим (ВНИМАНИЕ! Не используйте свой основной аккаунт, так как это довольно опасно). Лично я всегда выбираю первый способ, так как данная игра не требуется лицензии на аккаунте для запуска выделенного сервера через "SteamCMD".
Прописываем: login anonymous

7. После авторизации нужно выбрать ту самую папку, которую Вы создали.
Прописываем: force_install_dir C:/Server
У Вас будет другой путь, я оставил свой для примера.

8.Теперь необходимо установить выделенный сервер.
Прописываем: app_update 1026340 validate.
validate - проверка файлов после установки. Позволяет устранить тот мизерный шанс, что у Вас могут криво скачаться файлы.

9. Теперь используйте команду: app_run 1026340.
Это запустит выделенный сервер. Все консольные команды, конфигурацию сервера и тому подобное можно найти ниже или же спросить у меня - помогу.

Конфигурация сервера
Раздел немного неправильно назван, но кому есть дело до этого?

В корневой папке с игрой найдите файл "serversettings.xml" и откройте его. Советую установить "Notepad++" для работы с подобными файлами, а я пока что обойдусь стандартным блокнотиком.
Я просто напишу что и за что отвечает.

tickrate="20" - В КС:ГО много кто играл, наверное. Копирую с сайта:
Originally posted by JULIA98:
Тикрейт — это временной промежуток, во время которого сервер синхронизирует полученные пакеты данных от клиента с сервером и наоборот. Точнее сказать, единица измерения.
Если уж на русском объяснять, то чем больше тикрейт, тем чётче будет игра на сервере. Если уж поставить 128, то игра в мультиплеере будет как в одиночке, но это требует немалых ресурсов. У меня на сервере стоит 64.

randomizeseed="True" - Отвечает за рандомизацию SEED'а уровня. Трогать её вообще не нужно, какой прикол кататься по одному и тому же уровню?

userespawnshuttle="True" - Это у нас спавн шаттла. Если отключить, то его не будет. То есть экипажу никто на помощь не придёт, в случае чего.
respawninterval="305" - Через сколько будет отправлен шаттл. Время в секундах.
maxtransporttime="600" - Время жизни шаттла. Если "0", то бесконечно.
minrespawnratio="0.5" - При скольки наблюдателях (мёртвые тоже в их числе) будет включаться таймер отправки шаттла. В моём случае это 50%.

autorestartinterval="53.5" - Авторестарт раунда. У меня это 53 с половиной секунды. (Я просто авторестарт не использую, скоро поймёте почему)
startwhenclientsready="True" - Начинать раунд, когда игроки готовы.
startwhenclientsreadyratio="0.7" - Сколько готовых игроков необходимо, чтобы раунд начался. В моём случае это 70%. Поэтому я и не использую авторестарт, игроки сами знают когда им начинать.

allowspectating="True" - Наблюдение на сервере.

voipenabled="True" - Голосовой чат. (Команда заменена другой командой. О ней чуть ниже)

endroundatlevelend="True" - Автоматически заканчивать раунд, когда субмарина достигла конечной точки.

saveserverlogs="True" - Сохранять журнал сервера или нет. Никогда не отключайте!

allowragdollbutton="True" - Использование кнопки "Тряпичная кукла" (пробел)

allowfiletransfers="True" - Передача файлов. Позволяет игрокам загружать субмарины и шаттлы с сервера.

voicechatenabled="False" - Голосовой чат.

allowvotekick="True" - Голосование за кик. Чуть ниже можно выставить время бана.
allowendvoting="True" - Голосование за окончание раунда.
allowrespawn="True" - Респавн игроков.

botcount="0" - Количество ботов.
maxbotcount="5" - Максимальное количество ботов.

allowdisguises="True" - Маскировка. Если отключить, то ники игроков не будут скрываться, если они без ID карты в маске или гидрокостюме.

subselectionmode="Vote" - Как происходит выбор субмарины. Vote - голосование. Manual - вручную (выбирает хост или админы). Random - субмарина выбирается случайным образом.
modeselectionmode="Manual" - Как происходит выбор режима. Всё как в команде выше, но я не рекомендую ставить голосование.

endvoterequiredratio="0.6" - Необходимое количество голосов, чтобы раунд закончился.
kickvoterequiredratio="0.6" - Необходимое количество голосов, чтобы кикнуть игрока.

killdisconnectedtime="90" - Убивать отключившихся через X секунд. У меня стоит 90 секунд, чтобы игроки имели возможность переподключиться.
kickafktime="120" - Кикать АФК. Это распространяется только на живых персонажей. Наблюдатели могут сидеть АФК совершенно спокойно.

traitoruseratio="True" - Использовать Предателей в зависимости от их количества.
traitorratio="0.199" - 20% от игроков станут Предателями (Сообщник и Предатель).

karmaenabled="False" - Карма. О ней можно много писать, то если вкратце, то вот пример:
Игрок ломает субмарину, проводку, убивает просто так - его карма снижается и со временем он сможет играть только за ассистента. На Предателя карма не работает, он может спокойно нести свою миссию.

gamemodeidentifier="mission" - Не трогайте, если не понимаете что делаете.
missiontype="Random" - Тип заданий. Лучше оставлять Random. Можете выбрать что-то одно, если вам требуется Random,Salvage,Monster,Cargo,Combat

autobantime="288" - Автобан игрока, которого кикнули голосованием.
maxautobantime="1440" - Максимальное время автобана. Эти две настройки можно изменять в настройках сервера, находясь в лобби. Разберётесь.

name="[RP]Russian Public." - Название сервера.
public="true" - Публичный сервер. Если отключено, то подключиться можно только по IP.

port="27015" - Не трогайте.
queryport="27016" - Не трогайте.

maxplayers="10" - Количество слотов.

enableupnp="false" - Требуется для тех, кто использует роутер.

autorestart="false" - Авторестарт на сервере.

SubSelection="Vote" - Выбор субмарины. Vote - голосование. Manual - вручную (выбирает хост или админы). Random - субмарина выбирается случайным образом (Не знаю для чего тут две одинаковые команды).

ModeSelection="Manual" - Какой режим стоит по умолчанию. Sandbox, mission или campaign.

LevelDifficulty="50" - Сложность уровня. От 0 до 100.

TraitorsEnabled="Maybe" - Предатели. Yes - они есть всегда. Maybe - 50 на 50. No - Предатели отключены.

BotSpawnMode="Fill" - Заполнение ботов. Normal - Обычное. Fill - Боты буду появляться в зависимости от игроков. Если ботов спавниться трое и на сервере два игрока, то появится только один бот.

AllowedRandomMissionTypes="Random,Salvage,Monster,Cargo,Combat" - Какие задания могут выпасть при случайном выпадении.

AllowedClientNameChars="32-33,38-46,48-57,65-90,91-91,93-93,95-122,192-255,384-591,1024-1279" - Разрешённые символы в нике. если хотите, чтобы подключались игроки только с русскими никами, то вставьте туда это: 32-33,1024-1279

ServerMessage="Описание сервера" /> - Ну тут уже понятно.
Запуск сервера и консольные команды.
Запускайте сервер через саму игру или "DedicatedServer" в корневой папке игры.
Консольные команды для сервера можно найти тут:
https://steamcommunity.com/sharedfiles/filedetails/?id=1765015367
103 Comments
Commander Jul 31, 2024 @ 8:37am 
Вопрос: а как добавить моды на выделенный сервер?
AsKa Jan 30, 2024 @ 4:03am 
Вопрос есть, у моего друга стоит свой хостинг что то типо компа , комплектацию не помню но там 4 гига оперативы и какой то xeon и короче сервер пингует жестко , у людей пинга нет но там даже ходить невозможно тепает назад смотрю нагружен ли сервер а там вообще он на легке работает , не знаешь как сделать чтобы сервер нормально себя чувствовал и там можно было нормально играть?
Djabka Oct 24, 2023 @ 3:15am 
У меня пишет если зайду в свой аккаунт failed to install app '1026340' (No subscription)
Nevol  [author] Mar 25, 2023 @ 9:43am 
Либо в папке с сервером находи что-то вроде "DedicatedServer".
Nevol  [author] Mar 25, 2023 @ 9:42am 
Если всё правильно установил, то заходи в SteamCMD и вводи поэтапно:
1. login anonymous
2. app_run 1026340
Lieutenant Жижа Mar 25, 2023 @ 3:26am 
а после создания в брандмауэре, как запустить сервер?
Lieutenant Жижа Mar 25, 2023 @ 3:18am 
спасибо
Nevol  [author] Mar 25, 2023 @ 12:01am 
Если ничего не поменялось за пару лет, то это также 27015-27016
Lieutenant Жижа Mar 24, 2023 @ 12:25pm 
а как узнать нужный порт для брандмауэра?
Nevol  [author] Mar 30, 2022 @ 10:34am 
Лично я не имел желания заморачиваться с этим, ибо когда-то пробовал так сэкономить бабосов. Своей цели я достиг, но времени про-бал знатно. Если вопрос обстоит о том, что лучше для Пользователя, то это только с графикой. Если вопрос в том, что лучше для деняг, то какой-нибудь OpenVZ с Ubuntu.

Сомневаешься в решении? Есть сайты которые бесплатно предоставляют тест машины с твоей конфигурацией на 1-3 дня. Попробуй оба варианта, но раз ты вообще спросил об этом, то не сомневаюсь, что это будет с графоном.