Языки программирования
Как создать сервер CS 1.6
Сервер CS 1.6 обычно запускают через HLDS: Half-Life Dedicated Server. Для домашней тренировки можно поднять сервер на своем компьютере, а для постоянной игры с друзьями удобнее VPS или игровой хостинг. Главные задачи: установить серверные файлы, настроить карту, порт, server.cfg, админку и проверить подключение
Если вы делаете сервер впервые, начните с чистой установки без большого набора плагинов. Когда сервер стабильно запускается и игроки подключаются, добавляйте AMX Mod X, карты и дополнительные настройки
Что понадобится
- Windows или Linux машина
- стабильный интернет
- открытый порт
27015/udp - SteamCMD для загрузки серверных файлов
- отдельная папка для сервера
- базовое понимание конфигов
Для публичного сервера лучше использовать VPS. Домашний сервер может упираться в роутер, динамический адрес и ограничения провайдера
Установка через SteamCMD
Создайте папку сервера и загрузите файлы. На Linux общий принцип такой
mkdir -p ~/cs16-server
cd ~/steamcmd
./steamcmd.sh +login anonymous +force_install_dir ~/cs16-server +app_update 90 validate +quit
Если SteamCMD просит повторить команду для app 90, запустите ее еще раз. У старых серверных пакетов такое иногда встречается
Пример запуска
Перейдите в папку сервера и запустите HLDS
cd ~/cs16-server
./hlds_run -game cstrike +map de_dust2 +maxplayers 12 -port 27015
Для проверки локально достаточно увидеть в консоли, что сервер поднялся без ошибок. Для подключения друзей понадобится открытый порт и внешний адрес сервера
Пример server.cfg
Создайте или отредактируйте файл cstrike/server.cfg
hostname "My CS 1.6 Server"
rcon_password "change_this_password"
sv_password ""
mp_timelimit 25
mp_roundtime 2
mp_freezetime 3
mp_autoteambalance 1
sv_lan 0
Не оставляйте слабый rcon_password. Если пароль утечет, сервером смогут управлять посторонние
Карты и mapcycle
Список карт задается в mapcycle.txt. Для первой версии оставьте несколько стабильных карт
de_dust2
de_inferno
de_nuke
cs_office
Не загружайте десятки карт сразу. Сначала проверьте, что сервер запускается, карты меняются, игроки не вылетают при смене карты
Админы и AMX Mod X
AMX Mod X нужен для админки, меню, банов, голосований и плагинов. Но ставьте его после того, как чистый сервер уже работает
Безопасная последовательность:
- запустить чистый сервер
- подключиться самому
- настроить
server.cfg - сделать backup папки
- поставить AMX Mod X
- добавить администратора
- проверить меню и права
Если после установки плагина сервер падает, отключите последний добавленный плагин и смотрите логи
По этой теме полезно отдельно посмотреть Как я создал безопасные Firebase Cloud Functions с правами администратора и ограничением частоты запросов, чтобы расширить контекст и сравнить подходы
По этой теме полезно отдельно посмотреть Go и Rust: что выбрать для проекта, чтобы расширить контекст и сравнить подходы
Firewall и подключение друзей
Для стандартного порта откройте UDP
sudo ufw allow 27015/udp
В облачном провайдере проверьте security group или firewall в панели. Если сервер дома, настройте проброс порта на роутере
Проверяйте подключение так:
connect YOUR_SERVER_IP:27015
Команду можно ввести в консоли CS 1.6
Безопасность
- используйте отдельного пользователя для сервера
- не запускайте сервер от root без необходимости
- храните backup конфигов
- не ставьте неизвестные плагины пачкой
- меняйте rcon-пароль при подозрении на утечку
Чек-лист готового сервера
- сервер запускается без ошибок
- порт открыт
- карта загружается
- игроки подключаются
server.cfgприменился- rcon-пароль не пустой и не простой
- есть backup перед установкой плагинов
Запуск на Windows
На Windows логика похожая: скачайте SteamCMD, создайте папку сервера, выполните загрузку app 90 и запустите hlds.exe или командный запуск с параметрами карты и количества игроков
Пример идеи запуска:
hlds.exe -game cstrike +map de_dust2 +maxplayers 12 -port 27015
Для постоянного сервера удобнее сделать отдельный .bat файл, чтобы не вводить параметры каждый раз. Если сервер должен работать без вашего компьютера, лучше перенести его на VPS или игровой хостинг
Логи и поиск ошибок
Если сервер не запускается, смотрите консоль и логи. Типовые проблемы:
- не скачались все файлы
- занятый порт
- ошибка в
server.cfg - конфликт плагина
- карта отсутствует в папке
- firewall блокирует подключение
После каждого изменения перезапускайте сервер и проверяйте только одну гипотезу. Если поставить сразу 20 плагинов и 30 карт, найти ошибку будет намного сложнее
Минимальная структура папок
В папке cstrike обычно важны:
server.cfgдля основных настроекmapcycle.txtдля списка карт- папка
mapsдля карт - папка
addonsдля AMX Mod X и плагинов - логи сервера, если они включены
Перед установкой админки сделайте копию чистой папки. Тогда при ошибке можно быстро вернуться к рабочей версии
Что проверить с игроком
Попросите друга подключиться снаружи, а не с того же компьютера. Так вы проверите реальный внешний доступ. Пусть он зайдет на карту, сменит команду, напишет в чат и дождется смены раунда. Это простая проверка, но она ловит больше проблем, чем один локальный запуск
Базовые настройки игрового процесса
Перед первой игрой настройте несколько параметров, чтобы сервер не выглядел случайным
mp_startmoney 800
mp_buytime 0.25
mp_c4timer 35
mp_friendlyfire 0
mp_limitteams 2
mp_autoteambalance 1
Не копируйте огромный конфиг из интернета без понимания. Лучше начать с короткого файла и добавлять параметры по мере необходимости
Как не сломать сервер плагинами
AMX Mod X и плагины дают много возможностей, но именно они часто ломают старые серверы. Ставьте плагины по одному, проверяйте запуск и подключение после каждого. Если сервер перестал работать, отключите последний плагин и посмотрите лог
Для первой версии достаточно админки, базовых команд и пары понятных улучшений. Красивые статистики, меню, звуки и нестандартные режимы можно добавить позже
Что отправить игрокам
Сделайте короткое сообщение:
CS 1.6 сервер: YOUR_SERVER_IP:27015
Карта: de_dust2
Пароль: нет
Если не заходит, проверьте версию клиента и консольную команду connect
Чем понятнее инструкция, тем меньше времени уйдет на поддержку перед первой игрой
Регулярное обслуживание
После запуска сервера сохраните рабочий server.cfg, список карт и папку addons. Перед добавлением нового плагина делайте копию этих файлов. Если игроки жалуются на лаги, сначала проверьте нагрузку сервера, количество плагинов и тяжелые карты, а уже потом меняйте хостинг
Для маленького сервера лучше стабильная простая сборка, чем десятки эффектов и случайных модулей. Игроки быстрее простят простой внешний вид, чем вылеты при смене карты и постоянные ошибки подключения