Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Управляй роботом-мутантом чтобы исследовать загадочный мир, находи классное оружие и сражайся с различными врагами, чтобы выжить!

Зомботрон Перезагрузка

Экшены, Платформеры, Шутер

Играть

Топ прошлой недели

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 46 постов
  • AlexKud AlexKud 33 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
632
VIRUS78
VIRUS78
9 лет назад

Вот как у нас на работе⁠⁠

Вот как у нас на работе
[моё] Маршрутка Объявление Монтировка Предупреждение
11
162
Stalus
Stalus
9 лет назад
GNU/Linux

Запускаем сервер Half-Life на Linux c хедкрабами и ботами!⁠⁠

Привет вам, красноглазые братья и сестры! 

В этой "маленькой" статье я расскажу как поднять свой сервер легендарной игры Half-Life на Linux. Для тех, кто в танке:

Если верить Steam :

Боевик, приключения и удостоенная наград технология создания потрясающе реалистичного мира, в котором игрок должен думать, чтобы выживать — всё это обладатель звания «Игра года» от более чем 50 изданий, дебютная игра от Valve — Half-Life.

Ладно, закончим с прелюдией, приступим к делу.


-----------------------------------------------

Глава 0. Подготовительная.

-----------------------------------------------

По умолчанию предполагается, что:

- каталог с играми - /mnt/video/games

- компьюер соответ. минимальным требованиям игры. Для клиента это (согласно Steam):

> OS: Linux

> Процессор: Dual-core from Intel or AMD at 2.8 GHz

> Память: 1GB

> Видеокарта: nVidia GeForce 8600/9600GT, ATI/AMD Radeaon HD2600/3600

> Граф. драйвер: nVidia 310, AMD 12.11, OpenGL 2.1

> Место на ЖД: 4GB Hard Drive Space

> Звуковая карта: OpenAL Compatible Sound Card

Имхо, требования завышены.

- широкополосный доступ в интернет


Тестовая система выглядит так:

OS: ArchLinux x86_64 c ядром 4.5.4-1-ARCH

Процессор: Intel Pentium 4 3.00GHz

Память: 3.2 Gb

Видеокарта: Ati Radeon HD 4670 c откраытым драйвером версии 1.7.7.0

Место на ЖД: подсчитаем в конце статьи.


--------------------------------------------------------------

Глава 1. Прибытие в Чёрную Консоль.

--------------------------------------------------------------

Для начала создадим папку, в которую будем устанавливать сервер. Напоминаю, у меня папка с играми /mnt/video/games/, у вас своя.

mkdir /mnt/video/games/hlds && cd /mnt/video/games/hlds

Теперь обновим пакеты и установим необходимые библиотеки для 64-битных ОС.

Для debian-производных систем (танкистам - Ubuntu и Mint относятся к ним): 

sudo apt-get update

sudo apt-get install lib32gcc1

Для ArchLinux (предварительно раскомментируйте multilib репозиторий. Подробнее читайте в wiki ArchLinux)

pacman -Syy lib32-gcc-libs


-------------------------------------------------------------------------------------------

Глава 2. Аномальные материалы или косяки SteamCMD

--------------------------------------------------------------------------------------------

Установим SteamCMD. Чтобы подчистить потом мусор, давайте создадим отдельную папку.

mkdir steamcmd && cd steamcmd

Начнем магию. Качаем, распаковываем. Внимание! Ссылку пикабу выводит в сокращенном виде, поэтому копируйте внимательно (правой кнопкой мыши -> Копировать ссылку)

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_li...

tar -xf steamcmd_linux.tar.gz

Запускаем и ждем приглашения Steam:

./steamcmd.sh

Теперь надо ввести логин. Можно ввести свой steam-аккаунт, но оно нам надо? Анонимно!

login anonymous

Укажем каталог для установки сервера. В данном случае выбран родительский каталог

force_install_dir ../

И самое интересное. Непосредственно, скачавание и установка сервера. Интересно тут то, что закачка постоянно обрывается, независисо от вашего интернет-подключения. Выводится ошибка:

Error! App '90' state is 0x402 after update job.

В этом случае повторяйте команду заново, пока она не докачает до конца и не скажет, что все OK. Например, когда я писал эту статью, команду пришлось запустить 50 раз. 50 РАЗ, КАРЛ!!!

app_update 90 -beta beta validate

Все ОК будет, когда появится надпись:

Success! App '90' fully installed.

Сервер установлен. Выходим из SteamCMD

quit

----------------------------------------------------------------

Глава 3. Непредвиденные последствия

----------------------------------------------------------------

Уже сейчас вы можете запустить сервер и, если у вас есть Steam-версия Half-life, подключиться и играть. Но мы ведь старые пираты. Йо-хо-хо, и бутылка рома! Просто так мы подключится не сможем, получим ошибку.

Нам нужен dproto.

Double Protocol (dproto) - плагин для Metamod'а, решающий проблему мультипротокола и эмулирующий SteamID для NoSteam-клиентов.

Читаем внимательно.

плагин для Metamod'а,

Ага, значит нам еще нужен Metamod. Это некая прослойка между плагинами и игрой.

Я решил собрать metamod, dproto и ботов в один архив и залить его на облако, чтобы не мучались со скачиванием и с версиями. Мы в папке /mnt/video/games/hlds/steamcmd/, если вы помните. Перейдем на папку выше.

cd ..

И удалим папку steamcmd. Она нам больше не нужна.

rm -r steamcmd

Качаем архив и распаковываем. Сокращенные ссылки пикабу не пропускает, а длинную обрезает, поэтому скачайте папку с мыльного облака и положите в папку с сервером. У меня это /mnt/video/games/hlds/. Распакуем

tar -xf valve.tar.xz

Теперь у нас есть папка addons и конфиг для dproto. Переместим её в нужное место. А ненужный уже архив удалим.

mv addons valve/

mv dproto.cfg valve/

rm valve.tar.xz

Отредактируем файл liblist.gam в папке valve.

nano valve/liblist.gam

Заменяем строку

gamedll_linux "dlls/hl.so"

на эту

для 64-битных:

gamedll_linux "addons/metamod/dlls/metamod_amd64.so"

для 32-битных:

gamedll_linux "addons/metamod/dlls/metamod_i386.so"

Как это сделать, думаю, пояснять не надо.

-------------------------------------------------

Глава 4. Серверный комплект

-------------------------------------------------


Теперь у нас есть сервер и мы даже можем его запустить.

./hlds_run -game valve +maxplayers 8 +map crossfire +exec server.cfg

здесь:

-game valve - запустить халфу;

+maxplayers 8 - количество игроков';

+map crossfire - карта;

+exec server.cfg - выполнить команды, прописанные в server.cfg. Это файл находится в каталоге valve и туда можно, например, прописать разделение на две команды "mp_teamplay 1" (без кавычек).

Ботов мало? Боты тупые? Нет проблем! Редактируем файл valve/addons/jk_botti/jk_botti.cfg

min_bots 4

max_bots 4

botskill 2

Тут все просто и понятно.

Казалось бы, можно уже закончить статью, но как же клиент?


---------------------------------------------------------------------------------

Глава 5. Мы встретили пиратскую версию Халфы.

---------------------------------------------------------------------------------

... и прошли мимо. Мы ведь не качаем пиратские игры, правда? Для интересующихся, первая ссылка по запросу "half-life linux" в гугле. Скачиваем, распаковываем, запускаем, играем. (Скачивание не показано)

mkdir /mnt/video/games/half-life && cd /mnt/video/games/half-life

В эту же папку кидаем архив с игрой.

tar -xf Half-Life.tar.gz

./hl.sh

Порубиться с ботами или с другими игроками? Не вопрос. Запусти в одной консоли сервер. В другой клиент. В клиенте нажми тильду "~" и введи команду на соединение:

connect 127.0.0.1

Вместо 127.0.0.1 можно набрать адрес какого-нибудь другоего сервера.

Ну теперь уж точно все? Ан нет.


------------------------------------------------------

Глава 6. Отводные псевдонимы.

------------------------------------------------------

Набирать такие команды долго, я считаю. Если вы согласны со мной, то предлагаю добавить в ~/.bashrc пару псевдонимов. Папки, разумеется, ставьте свои!

echo "alias starthlds='cd /mnt/video/games/hlds; ./hlds_run -game valve +maxplayers 4 +map crossfire +exec server.cfg'" >>~/.bashrc


echo "alias starthlclient='cd /mnt/video/games/half-life; ./hl.sh'" >>~/.bashrc

И перечитаем файл.

source ~/.bashrc

Что это дало? А то, что теперь для запуска сервера достаточно набрать starthlds, а для запуска клиента starthlclient.

Ну вот теперь все?! Достал уже!

Нет, еще штрих. Необязательный.


--------------------------------------------------------------------

Глава 7. Подача разделенных терминалов

--------------------------------------------------------------------

Мой основной эмулятор терминала terminator. Мне нравится, что можно вертикально разбить окно: слева запустить сервер, справа запустить клиент. Удобно? Удобно. Быстро? Нет. Надо исправлять. Для начала создадим отдельный шаблон для запуска игр. Не буду утомлять, просто приведу ссылку на свой файл ~/.config/terminator/config - тык.

Если копируете, заменяйте папки на свои! В файле записан layout с названием hlds. Запустив терминал с этим layout-ом, мы получим вертикальное разбиение окна c одновременным запуском сервера/клиента.

terminator -l hlds --new-tab

Опять много писать ... Лига лени негодует. А давайте прописшем псевдоним, как в шестой главе.

echo "alias hl='terminator -l ramahg --new-tab'" >>~/.bashrc

Снова перечитает файл.

source ~/.bashrc

И все, теперь для запуска игры (сервера и клиента) нужно набрать всего лишь:

hl

Команда запустит отдельный экземляр эмулятора терминала, разделит окно вертикально, слева запустит сервер, справа клиент... Правда вы этого уже не увидите. Почему? Красная монтировка не может ждать!


Спасибо за внимание.

ps. ах да, чуть не забыл! В начале же я обещал привести объем занимаемое места на жд. Исправляемся.

сервер = 776,6 МиБ

клиент = 906,8 МиБ

Можно их, конечно соединить (мне так кажется), но пока

и так сойдет(с).

Показать полностью 4
Linux Half-life Монтировка Инструкция Valve Длиннопост
34
52
Luxoren
Luxoren
9 лет назад

Мы стали забывать как действительно выглядит ключ от всех дверей⁠⁠

Мы стали забывать как действительно выглядит ключ от всех дверей
The Elder Scrolls V: Skyrim Монтировка
7
23
kaldorey
9 лет назад

Вкалывать как папа Карла⁠⁠

Вкалывать как папа Карла
Ходячие мертвецы Сериалы Пиноккио Топор Японцы Монтировка
10
konoos
9 лет назад

В поддержку пятничного тега * Моё *⁠⁠

нашел эту красоту когда спускался по лестнице
В поддержку пятничного тега * Моё *
[моё] Half-life Монтировка Хедкраб Гордон Фримен
23
5
1984cbl
9 лет назад

Парень выиграл деньги в автоматы!⁠⁠

парень выиграл у автомата, а он не отдал денег. Пришлось достать самостоятельно.
Парни Автомат Деньги Монтировка Видео
11
12
TigerSmile
TigerSmile
9 лет назад

Садись, подвезу!⁠⁠

Так получилось, что машину (ВАЗ-2106) я купил чуть раньше, чем получил права. Я уже учился в автошколе, ездить умел, но общественные дороги не выезжал. А ездить-то хочется! Аж в жопе зудит же! )
Благо, папа, заядлый рыбак, не против был практически каждый вечер выезжать по трассе до реки, там - за удочки, а я - кататься по окрестным деревням. Счастья - полные штаны! )
Катаюсь я один из разов по полям, по долам. Зацепил защитой кочку какую-то основательно, аж защиту к поддону картера прижал.
Проехал до ближайшего пригорка на дороге между двумя деревнями, встал так, чтобы морда машины задрана была, достал монтировку из багажника, подлез, отогнул обратно.
А тут девушка какая-то по дороге идёт из деревни в другую. А у меня настроение хоро-о-о-о-ошее - хоть прикуривай от меня, так свечусь. )
Ну я по доброте душевной и предложил - "Девушка, а давайте я Вас подвезу!" ) Без единой задней и передней мысли. Просто настроение хорошее и добрый я.
А девушка посмотрела как-то странно округлившимися глазами и молча дальше, чуть ли не бегом.
"Ну нет, так нет" - подумал я.
И только потом, даже не в тот же день, просто как-то вспоминая, представил себе эту ситуацию глазами девушки. Идешь себе по лесной дороге. Никого нет. Тут машина. Из-за машины мужик (ну парень, не суть важно) вылезает с монтировкой, фокусируется на тебе и довольно предлагает "А давайте я Вас подвезу!" )
Я бы, наверное, тоже убежал. ))))
А ведь ничего плохого не хотел... )))
[моё] Ситуация Воспоминания Авто Монтировка Текст
5
54
LjubluPivo
10 лет назад

из малоизученных глубин интернета⁠⁠

из малоизученных глубин интернета
Гордон Фримен Half-life Неведомая хрень Монтировка Гифка
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии