Battle Royale в CS:GO!

Всем привет! Это моя первая попытка написания подобного материала, прошу учесть при критике. История о том, как создавался первый Русский Battle Royale сервер в CS:GO.

В закладки

Наверное почти каждый из вас уже слышал о игровом режиме «Королевская битва» (PUBG, HiZi, Fortnite, Rising of survival и т.д.).

PUBG (Скрин. взят с сайта www.dualshockers.com)

Королевская битва (англ. Battle Royale) — один из жанров массовых многопользовательских онлайн-игр, совмещающий в себе элементы симулятора выживания с режимом last man standing. «Королевская битва» сталкивает большое количество управляемых игроками персонажей с минимальным набором снаряжения на ограниченной карте; игроки должны искать на карте оружие и уничтожать противников, пока в игре не останется только один. Характерной особенностью «королевской битвы» является уменьшающаяся по мере игры «безопасная зона»: чем дольше длится матч, тем меньшая часть карты остается доступной для игроков.

Компьютер не потянет =(

Я, как и многие другие, я познакомился с этим режимом благодаря PUGB, но я столкнулся с проблемой производительности ПК, и даже вложив в обновление (А компьютер и так был «нормальный») более 20 тысяч рублей я не получил желаемого результата. Но тем не менее я очень хотел играть в этот режим. Тут меня и посетила мысль — «А есть ли этот режим в CS:GO?».В тот момент единственным представителем данного мода в CS:GO был проект GO4THEKILL, но мне он не понравился поскольку это уже не наша любимая CS. Тогда я понял, что нужно исправить это недоразумение.

Первые шаги и поиск помощников.

Первое, как мне показалось на тот момент, что для этого необходимо — карта, на которой свободно смогут играть много людей и не убить друг друга в первые несколько секунд. В этом плане было все не так сложно, поскольку я уже делал карты до этого, но я понимал, что большая карта займет большое кол-во времени, а играть хотелось уже сейчас. Было принято решение взять за основу карту для мода «Голодные игры», выбор сразу пал на hg_urban_city_day, я связался с создателем этой карты, он был не против, что бы мы использовали ее и даже сделал нам метро (Его нет на основной карте). Мне пришлось изменить ее под наш мод, на это ушло около недели неторопливой работы. На этом все не закончилось, движок source «умирал» от количества объектов на карте, fps скакал от 20 до 100, нам была нужна оптимизация. К счастью, ранее, жизнь свела меня с «Костей Хролом». Костя — отличный «маппер» и много знает об оптимизации, он проделал огромную работу над картой, я сейчас не смогу описать его задачи, вот наглядная разница:

Синие стенки ограждают прорисовку геометрии. Fps повысился до 60-200.

Следующая проблема была в реализации задуманного режима, ведь не все можно сделать через карту. Настало время искать человека, который сможет написать нам плагины для реализации таких задумок как Спуск на парашютах, рандомный спавн оружия, и самое главное — игровая зона. Было решено отправиться на HLmod за поисками кодера. Я разместил на форуме информацию о том, что ищу человека для помощи в новом проекте, что произошло дальше — одно из самых лучших событий, которое могло произойти с проектом. На мой запрос отозвался участник форума под никнеймом Diller, он очень крутой кодер.

В следующий месяц он сделал:

  • Рандомный спавн оружия с случайным количеством патронов
  • Рандомно сужающуюся игровую зону
  • Спуск игроков на парашютах
  • Зону ожидания для погибших игроков
  • Систему команд игроков (Живые за CT, мертвые за T в зоне ожидания)

Если бы не он — возможно весь проект остался бы моими мечтами, он сделал все бесплатно и очень качественно. Я безумно благодарен ему за вклад в развитие проекта.

Остановка развития проекта.

Одним утром я встал на работу, и увидел на своем телефоне оповещение от «Диллера» о том, что он не может продолжать проект и вынужден отсутствовать целый год. Не объяснив причин он скинул мне все наработки по проекту и «ушел в оффлайн», и больше не появлялся ни в стиме ни на форуме. Сколько бы я не пытался выйти с ним на связь — у меня не получалось, пришлось искать замену.

Как оказалось — его код был очень сложным, и другие коддеры просто не понимали как исправить баги, которые не успел исправить он. Часть проблем смог решать еще один мой знакомый, один из администраторов проекта strikearena — Kailo. Плагины заработали, но осталось несколько не решенных моментов, которые пришлось отложить в «долгий ящик».

Текущее состояние и планы на будущее.

На данный момент сервер функционирует, он находится в открытом тестировании, и вы можете зайти на него. Если вам интересно - оставляйте комментарий, а отправлю вам данные сервера.

Сужение игровой зоны

Игровой процесс в текущем состоянии сервера:

  • Для игры нужно минимум двое игроков.
  • При входе вас забросит за Террористов, они не являются игроками и не могут покинуть игровую зону (knife arena).
  • Для игры вам (2 минимум) нужно перейти за Контр-Террористов, но не все так просто. Один из багов, которые пока не удалось решить — переход за CT, его нужно осуществить два раза подряд! Т.е. вы нажимаете «M» и выбираете CT, но вас перебросит обратно, нужно сразу же повторить действие (нажимаем «M» и выбираем CT). Только после этого вы сможете сменить команду.
  • Сервер, каждые 30 секунд, проверяет кол-во игроков за КТ. Как только их станет двое и больше — он телепортирует всех CT на основную часть карты, где и будет проходить «Королевская битва». А вот Террористы (Которые видимо не успели сменить команду) останутся на карте 35hp и будут ждать окончания битвы.
  • После смерти вас перебрасывает за Террористов и вы можете биться на ножах, но спектраторов никто не отменял, вы можете посмотреть как идет ход боя.
  • Еще один баг является ограничением движка source, игровая зона (круги) не отображаются 24/7, иногда они пропадают. НО! Если зона начала движение то их видно всегда, т.е. они пропадают только когда статичны.

Планы.

Сервер сейчас находится на нашем старом хостинге и у него всего 10 слотов, а из-за незнания бага о переходе за CT на нем никто не играет. Чтоя планирую сделать:

  • Найти кодера, для исправления багов в плагинах.
  • Исправить баг со сменой команды, всех будет перекидывть за CT автоматически перед телепортацией на основную карту.
  • Перенести сервер на новый хостинг. Все наши сервера были переведены на новый хост еще в начале декабря, это сильно повысило онлайн серверов.
  • Увеличить слоты. Слоты будут увеличены до 30-50, в зависимости от комфорта игры.
  • Уменьшить время сужения зон. Сейчас раунды немного затянуты, мы это справим)
  • Увеличить вероятность спавна оружия. Сейчас за кольт и «муху» можно душу продать, хотелось бы больше комфорта.
  • Увеличить количество патрон в запасе оружия. С этим сейчас дефицит)
  • Набрать админов для «присмотра за сервером».
  • Увеличить размер карты.

Немного скриншотов с сервера:

{ "items": [{"title":"\u0417\u043e\u043d\u0430 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f","image":{"type":"image","data":{"uuid":"b43c3f06-514b-3941-3b0f-e2360a640e80","width":1280,"height":720,"size":226116,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"438bc657-d1d3-38d8-2bef-5e7670f4ca97","width":1280,"height":720,"size":247345,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"bffa37fe-862b-a993-b2cb-01a5c7bbc181","width":1280,"height":720,"size":264609,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"233217ca-4c86-76ce-a9fb-6fbbf82e5b36","width":1280,"height":720,"size":226728,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"0f254af2-e2e3-b763-1f61-4b0b28f02613","width":1280,"height":720,"size":245310,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"369542c2-7edb-508b-57f5-9bd7d9bbb292","width":1280,"height":720,"size":135155,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"2be55da9-c4c0-79a3-60df-c852adb6c47c","width":1280,"height":720,"size":202038,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"a8a90f6f-ee40-2cab-7ddc-55182bbace25","width":1280,"height":720,"size":142752,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"a0c196cc-ce38-c21d-7a49-6a657092c497","width":1280,"height":720,"size":235681,"type":"jpg","color":"","external_service":[]}}},{"title":"\u0422\u043e \u0441\u0430\u043c\u043e\u0435 \u043c\u0435\u0442\u0440\u043e","image":{"type":"image","data":{"uuid":"69ba06e8-71a7-ad3c-c756-3aa11330fecd","width":1280,"height":720,"size":127669,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"f64c7645-4243-87a0-6f0e-85b16355d9a4","width":1280,"height":720,"size":216552,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"41287811-a948-acea-e3d7-18f9a187b948","width":1280,"height":720,"size":204098,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"625e3ca2-34b5-e4bd-db0e-ecef5f477b75","width":1280,"height":720,"size":193410,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"0ff6dc80-3648-e9cc-f34b-8732f8fd66f4","width":1280,"height":720,"size":146887,"type":"jpg","color":"","external_service":[]}}},{"title":"\u0418\u0433\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441 \"\u0444\u0430\u0440\u043c\u0433\u0430\u043d\u0430\u043c\u0438\"","image":{"type":"image","data":{"uuid":"fbdce648-bcd6-4f93-dc86-ba1134bb4a47","width":1280,"height":720,"size":205352,"type":"jpg","color":"","external_service":[]}}}] }

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Роман Крашенинников", "author_type": "self", "tags": [], "comments": 43, "likes": 32, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 15393, "is_wide": false, "is_ugc": true, "date": "Tue, 30 Jan 2018 13:37:00 +0300" }
{ "id": 15393, "author_id": 48459, "diff_limit": 1000, "urls": {"diff":"\/comments\/15393\/get","add":"\/comments\/15393\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/15393"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64955 }

43 комментария 43 комм.

Популярные

По порядку

Написать комментарий...
11

- 2018 год
- Кто-то до сих пор рекламирует свои сервера по Counter-Strike

Ответить
0

Тут нет рекламы. Ни названия сервера, ни его ip =)

Ответить
3

Ну конечно, ведь ты его уже подтер.

Ответить
3

Пацаны, выбираем пятеручку на следующую мапу.

Ответить
1

Не буду спорить, статью копировал с другого своего ресурса. Подтер до твоего комментария. У меня не было цели сделать рекламу)

Ответить
–3

-2018 год
-Кто-то до сих пор использует такой стиль сообщения "-".
Уебище, скройся.

Ответить
9

Я прочитал статью, но назвал бы ее по-другому: "Российский призыв как враг моддерского сообщества". Такую главную мысль я вынес из написанного.

Ответить
7

Это моя первая попытка написания подобного материала, прошу учесть при критике)

Ок, учитываю. Перед отправкой текста нужно обязательно хотя бы поверхностно проверять его. Кинь текст в ворд и проверь всё что он подчеркнет тебе красненьким.
А еще скобочки в тексте это такое.

Ответить
0

Про ворд - согласен, поторопился. А вот про скобки - первый раз такое замечание слышу.
Спасибо за комментарий, учту.

Ответить
0

Можно практически любой текст на этом сайте открыть и убедиться в их отсутствии.

Ответить
1

Ты имеешь в виду скобки как смайлы? А то как будто ты вообще скобконенавистник

Ответить
0

Скобочки в тексте — это не есть плохо. А вот злоупотребление скобочками — плохо.

)))))))

Ответить
1

я столкнулся с проблемой производительности ПК, и даже вложив в обновление (А компьютер и так был «нормальный») более 20 тысяч рублей я не получил желаемого результата

Расскажи, пожалуйста, как ты этого добился или что есть «нормальный» компьютер?
Из моих предположений ты установил себе водяное охлаждение и купил SSD на фигпойми сколько? Или весь корпус красиво-модно подсветил?
Ну или ты просто хочешь играть на максималках в ПУБГ, но не понятно зачем.
PS я играю с другом который год назад собрал пекарню (не считаем моник) за ~30к (1050 + ryzen 3 + 8г оператос) и в пубг он играет с комфортом. Ну а я на своём ~5 летнем играю с проседаниями до ~40 fps и мне в принципе нормально.

Ответить
5

Я сидел на core 2 quad и мне хватало его на все нужды. Сейчас пересел на FX 6300 + докупил видеокарту rx460 и еще 8 гигов оперативы. Вот и вышло около 22-23

Ответить
1

Тогда это не очень нормальный комп был. Но это совсем имхо
Вам бы ещё проц махнуть и будет норм)

Ответить
1

ну как имхо. Такой комп относится к лоу сегменту, скорее даже к офисному.

Ответить
0

Согласен, я думаю сразу на седьмой Ryzen прыгнуть, но там минимум 30 надо, если учитывать смену оперативной памяти.

Ответить
1

Надо ли оно вам?
Седьмой то сразу, пятый нормальный. У меня вон i5 4 или 5 поколения ( не помню точно) и я сейчас даже не думаю его менять, хотя видяху уже давно надо бы.
Седьмой как-то сильно с запасом будет и не понятно куда вы его мощность применять будете. Если только для работы вам это надо.

Ответить
0

Мне для компиляции карт не помешает, там и видеокарта не важна. Да и разница у них не особо большая, раз уж решился брать.

Ответить
0

Раз надо тогда смысл есть)
Удачи вам с сервером, задумка не плохая)

Ответить
0

Большое спасибо)

Ответить
2

Господи, зачем...

Ответить
1

Он же написал, зачем.

Ответить
3

Ну тогда:
«Господи, за что?»

Ответить
1

Вернётся ваш диллер из армии там глядишь и допилите.

Ответить
1

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

Follow the whiter

Ответить
0

Боевой рояль в CS GO - это как седло на корове.

Ответить
0

Еще один баг является ограничением движка source, игровая зона (круги) не отображаются 24/7, иногда они пропадают. НО! Если зона начала движение то их видно всегда, т.е. они пропадают только когда статичны.

А что если те статичные круги делать немного динамическими? Движение на полпункта не заметит глаз, но для программы может быть решением

Ответить
1

В таком случае многократно увеличится нагрузка на сервер.

Ответить
0

псс киньте явки пароли, как можно попробовать поиграть / найти в будущем

Ответить

Комментарий удален

0

"Я, как и многие другие, я познакомился с этим режимом благодаря PUGB"

Двойное я, дальше читать не стал.

Ответить
0

Я, еще раз я и мой друг Diller

Ответить
0

лол, если ПАБГ не тянет, то есть китайский аналог, который потянет даже микроволновка - Knives Out -_-

Ответить
0

Это мобильная игра

Ответить
0

на пк есть клиент

Ответить
0

Все какое-то плоское, никаких перепадов высот, нет травки, нет кустиков.
Что с катерами и другим транспортом ? Что за PUBG без мотоциклов ?

Ответить
0

Высоты, перепады и кустики есть. На общем фото карты выключены модели (деревья/кусты и прочее), а на скриншотах с сервера не видно и половины карты.
Про мотоциклы - да, их нет. Но там они лишние.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Хидео Кодзима оказался алгоритмом
машинного обучения
Подписаться на push-уведомления