Gamedev Олег Чимде
9 645

Секреты идеального баланса: колонка геймдизайнера компании Pixonic

Ведущий геймдизайнер компании Pixonic Артур Мостовой, один из авторов популярной мобильной игры War Robots, на конкретных примерах объясняет, как нужно выстраивать грамотный баланс в онлайн-играх.

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

В закладки

Начну с очевидного — ничего идеального нет. Так что тогда имеется в виду под идеальным балансом? Можно сказать, что идеально сбалансированная система базируется преимущественно на двух вещах — приближении и равенстве. Перед тем, как перейти непосредственно к примерам, давайте взглянем на эти два термина поближе.

Приближение

В контексте этой статьи приближение (или аппроксимация) — это процесс упрощения сложных сущностей для сведения их к числам, которые можно использовать в уравнении. Хотя в тексте будут рассматриваться несколько частных случаев использования приближения, в реальной жизни, разум геймдизайнера ничем не ограничен, когда речь идет о разработке новых фичей и механик. И описанный подход или образ мышления можно в целом применять практически для всего.

При попытке осмыслить сущность непосредственно из игры можно столкнуться со сложностями. Как вообще можно рассчитать, например, мощность гигантской космической улитки, которая воет как гиена, регенерирует как Росомаха и периодически стреляет зелеными разрывными паладинами? Казалось бы, это невозможно. Но суть в том, чтобы абстрагироваться от образов (даже самых экстраординарных) и думать абстракциями, которые легко разбить на более мелкие части и применить к ним математику.

Равенство

Что такое в действительности баланс? Разные сущности обычно называются сбалансированными, если их можно считать условно равными друг другу в рамках геймплея. Баланс особенно важен в онлайн-играх. Если в одиночной игре по какой-то причине баланс не идеален, обычно это не критично. Там есть вещи, на которые игроки обращают больше внимания — персонажи, сюжет, игровой процесс и так далее.

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

А вот в онлайне люди постоянно сражаются за места в рейтингах, оттачивают мастерство десятки часов каждый день и рассчитывают на честное соревнование. Если какой-то игрок получает преимущество в бою, это сразу же берется на заметку остальными участниками, и суть этого преимущества начинает использоваться все чаще, становясь новой «метой» (в данном случае, лучшей стратегией). Это в свою очередь ведет к тому, что все больше и больше людей будут пользоваться этим «хаком», который чуть более эффективен, чем другие. Зачем пробовать что-то еще, если он работает лучше всего? Поэтому дисбаланс лишает игру сложности и разнообразия, он каннибалистичен по отношению ко всему остальному контенту игры.

Теперь представим, что мы создали онлайновую PvP-игру, и нам нужно несколько видов оружия, которые игроки будут использовать в боях. Допустим, нужно разработать три вида, и наша цель — сделать их отличными друг от друга, чтобы обеспечить разнообразный и интересный геймплей, но при этом сохранить баланс. Помимо базовых различий, мы также добавим уникальную механику для каждого из них.

Как сделать их равными в рамках игры? Для достижения такого эффекта понадобился бы один интегральный параметр, который описывал бы каждое оружие одной конкретной цифрой и при этом учитывал все их особенности. Так как речь об оружии, а оно по определению наносит урон, назовем этот интегральный параметр еDPS (эффективный урон в секунду) — он будет описывать урон каждого нашего оружия в секунду с учетом всех остальных его боевых параметров одним числом.

К делу

При создании игры, выбранные числа характеристик зависят от многих вещей — лора, игровой динамики, субъективного восприятия игроков и многого другого. В целях демонстрации, числа в этой статье мы для простоты возьмем из головы. Пусть у нас будет три вида оружия: назовем их А, B и C, соответственно.

Предположим, что оружие A наносит 1000 урона каждую секунду, B наносит 500 каждые 0,5 секунды и C — 250 урона каждые 0,3 секунды. Каким будет DPS (урон в секунду)?

● DPS оружия = урон за атаку/интервал атаки

● Оружие A: урон 1000/1 секунда = 1000 DPS

● Оружие B: урон 500/0,5 секунды = 1000 DPS

● Оружие C: урон 250/0,3 секунды = 833,3 DPS

Сейчас DPS видов оружия равен их еDPS, потому что у нас еще нет специальных механик или модификаторов, которые учитывались бы в еDPS.

Как видно, оружие A и B имеют одинаковый еDPS, а C примерно на 20% слабее. Чтобы уравнять его с двумя другими, нужно либо порезать (ослабить) A и B, либо бафнуть (усилить) C. Второй вариант в общем случае предпочтительнее, так как он требует меньше изменений (представьте выбор в духе «порезать одно оружие или бафнуть 49» — результат очевиден, хотя исключения бывают). Также у A и B eDPS представлен более круглым и удобным для восприятия числом.

Бафнуть DPS у C можно либо уменьшив интервал атаки, либо увеличив урон. По A и B видно, что есть пропорция вида 2-к-1 между интервалами атаки.

Для простоты восприятия пойдем тем же путем и изменим интервал атаки оружия C:

● Интервал атаки = урон за атаку/DPS

● Новый интервал атаки оружия C = 250/1000 = 0,25 секунды

Отлично, теперь показатели eDPS у всех равны. Это не значит, что и оружие теперь одинаковое: оружие A более предпочтительно для нанесения сильного мгновенного (burst) урона с более длительным откатом, в то время как C больше подходит для беспрерывных (sustained) атак, ведь оно наносит меньше урона, но чаще.

Добавим что-нибудь, чтобы стало интереснее — например, дистанцию атаки. Теперь у A дальность поражения 1 м, у B — 10 м, а вот C поражает цель на расстоянии до 25 м. Отсюда видно, что максимальная дистанция, на которой может начаться сражение, составляет 25 метров. В целях аппроксимации предположим, что игроки, использующие наше оружие, будут двигаться навстречу друг другу и начнут атаковать, как только выйдут на нужную для начала атаки дистанцию (что логично).

Имея это в виду можно перейти к цифрам. Визуализируем новые условия — оружие C эффективно на 100% на расстоянии до 25 м, B эффективно на 100% расстоянии до 10 метров и совершеннобесполезно (эффективно на 0%) в диапазоне от 10 метров и выше.

● Эффективность оружия B на дистанции до 25 м = (10 м/25 м) * 100% + (15 м / 25 м) * 0% = 40%

Аналогично можно подсчитать эффективность A:

● Эффективность оружия A на дистанции до 25 м = (1 м/25 м) * 100% + (24 м/25 м) * 0% = 4%

Вводя новый параметр — дистанцию атаки, мы добились того, что B теперь реализует лишь 40% своей мощности, а оружие A — всего 4%.

● eDPS оружия = DPS * дистанционная эффективность

● Оружие A: 1000 DPS * 4% = 40 eDPS

● Оружие B: 1000 DPS * 40% = 400 eDPS

● Оружие C: 1000 DPS * 100% = 1000 eDPS

Чтобы сделать систему сбалансированной, поменяем несколько параметров отстающего оружия. Можно просто бафнуть только урон оружия A на условные плюс-сто-пятьсот, и технически это даже даст нужный нам эффект. Но это не лучший вариант, и вот почему — игрок с оружием A, скорее всего, уничтожит любого врага одним ударом (когда и если до него доберется). Обычно это нежелательно с точки зрения дизайна, хотя бывают исключения. Менее резким скачком было бы распределить усиление этого оружия между разными параметрами, и чем больше их — тем лучше, тогда переход будет более гладким.

Попробуем комбинацию из нескольких изменений, чтобы достичь 1000 eDPS для всех видов оружия — увеличение дистанции атаки A, уменьшение дистанции атаки C и увеличение урона A и B. Для простоты не будем трогать интервал атаки, только урон.

Первое по порядку изменение не имеет особого значения, начнем с дистанции атаки, которая для A теперь составляет два метра, а для C — 20 метров. Я не выбирал эти числа по каким-то определенным причинам, просто 2 м видятся все еще реальными для оружия ближнего боя, хотя технически это 100% баф (но при этом в абсолютных величинах это увеличение всего на метр). Что касается оружия C, здесь изменение небольшое — нерф на 20%.

● Новая эффективность оружия A до 20 м = (2 м/20 м) * 100% + (18 м/20 м) * 0% = 10%

● Новая эффективность оружия B до 20 м = (10 м/20 м) * 100% + (10 м/20 м) * 0% = 50%

Изменив эффективность, отрегулируем урон, чтобы достичь 1000 eDPS для двух отстающих видов оружия —A теперь наносит 10000 урона, а B — 1000 урона, что дает 10000 DPS и 2000 DPS соответственно.

● Новый eDPS оружия A = 10000 DPS * 10% = 1000 eDPS

● Новый eDPS оружия B = 2000 DPS * 50% = 1000 eDPS

Неплохо. А ведь мы всего лишь ввели такие базовые параметры, как DPS и дистанция атаки. Подольем немного масла в огонь: оружие A наносит дополнительный урон по площади (АоЕ) — 30% от первоначального повреждения в радиусе двух метров от точки удара, у B есть шанс крита (20% на х1,5 урон), а C иногда стреляет мимо (15% шанс промахнуться).

Начнем с простого — оружие C. При возможности промаха, равной 15%, мы наносим 100% урона 85% времени и 0% урона 15% времени. У него появляется следующий модификатор атаки для его eDPS:

● Модификатор оружия C = 100% * 85% + 0% * 15% = 85%

С оружием B не намного сложнее. С 20% критом на х1,5 урона мы наносим 100% урона 80% времени и 150% урона 20% времени.

А вот С оружием A есть сложности. Ранее мы рассматривали в расчетах прямую линию огня, а теперь появился урон по площади, который покрывает круг радиусом 2 м вокруг точки удара. В целях аппроксимации и упрощения мы можем предположить, что до сих пор оцениваем ситуацию 1v1, и пренебречь уроном за пределами прямой линии, и вот почему — мы точно не знаем, как сражаются игроки, и нам неизвестны другие параметры, которые могут сделать расчет более точным.

АоЕ и дистанция теперь составляют по два метра, значит прямая (эффективная) зона поражения получается равной четырём метрам, и оружие A тогда наносит 130% урона на дистанции до двух метров и 30% урона на дистанции от двух до четырёх метров.

Зная это, мы можем пересчитать дистанционную эффективность C, а не вводить новый модификатор атаки, как мы это делали для A и B.

Визуализация eDPS оружия A с AoE

Формула теперь выглядит так:

● Дистанционная эффективность оружия C = (2 м/20 м) * 130% + (2 м/20 м) * 30% + (16 м/20 м) * 0% = 16%

Посмотрим, что получилось:

Новый eDPS оружия = DPS * дистанционная эффективность * модификатор атаки

● Оружие A: 10000 DPS * 16% = 1600 eDPS

● Оружие B: 2000 DPS * 50% * 110% = 1100 eDPS

● Оружие C: 1000 DPS * 100% * 80% = 800 eDPS

Дальше как обычно. Скорректируем DPS через урон, чтобы получить 1000 еDPS для каждого оружия с учетом всех параметров. Оружие A теперь наносит 6250, B — 909, а C — 312,5 урона. И тогда:

● Оружие A: 6250 DPS * 16% = 1000 eDPS

● Оружие B: 1818 DPS * 50% * 110% = 1000 eDPS

● Оружие C: 1250 DPS * 80% = 1000 eDPS

На закуску

Так можно продолжать бесконечно, добавляя все больше и больше различных параметров и механик, но суть уже должна быть ясна. Аппроксимировать можно так или иначе что угодно, и таким образом вывести один универсальный параметр, который эффективно описывает игровой объект.

Важно помнить, что аппроксимируя все больше элементов в уравнении, дисперсия конечной величины также растет, потому что основывается на все большем числе предположений и абстракций. Хотя такой подход и позволил нам зайти настолько далеко, он неидеален. Он не может предсказать все ситуации во время боя и эффективно принять в расчет некоторые метаэлементы геймплея, которые влияют на исход боя — дизайн уровней, командная игра, тактика и прочее.

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

После деплоя контента, который был сбалансирован расчетами, нужно отслеживать все важные средние и пиковые показатели, чтобы понимать, каков контент в реальной игре. Например, отслеживать средний урон от различного оружия, K/D в зависимости от оружия, число спавнов и другие параметры, а затем вносить дальнейшие коррективы по мере необходимости. Например, еще один способ оценки вклада АoЕ-оружия — можно собрать статистику: сколько противников в среднем игрок с оружием A задевает уроном по площади в бою и учесть это в расчете.

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

#геймдизайн

{ "author_name": "Олег Чимде", "author_type": "editor", "tags": ["\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 31, "likes": 18, "favorites": 11, "is_advertisement": false, "subsite_label": "gamedev", "id": 1642, "is_wide": false }
{ "id": 1642, "author_id": 3009, "diff_limit": 1000, "urls": {"diff":"\/comments\/1642\/get","add":"\/comments\/1642\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/1642"}, "attach_limit": 2, "max_comment_text_length": 5000 }

31 комментарий 31 комм.

Популярные

По порядку

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

Serj Nilov

7

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

В частности в учёте дальности стрельбы решает архитектура уровня. Если в ней много коридоров и поворотов, то дальность начинает играть гораздо меньшую роль, потому что 80% врагов появляются в 5 метрах от игрока.

Или взять, например, баланс Овервотч. 20 героев, у которых каждая способность уникальна. И оружие. И тактика игры. Аппроксимировать, конечно, можно, но числовой результат будет далёк от балансного. Если балансер не гений-гений или не подтасовывает.

По опыту могу сказать, что аппроксимация хороша только в тех случаях, когда нужно подготовить черновой баланс до тестов, потому что 90% этого баланса будет переработано, но нужно уже иметь играбельную версию.

Или я не прав?

Ответить

Arthur Mostovoy

Serj
1

Абсолютно правы. А статью внимательно и до конца прочитали?)

Ответить

Serj Nilov

Arthur
0

Дочитал. И тем не менее на первый взгляд польза аппроксимации в статье немножко преувеличена, что может сбить с толку новичков)

Ответить

Arthur Mostovoy

Serj
2

Это так, потому что фокус в статье взят именно на этот метод. Тем не менее, я делаю оговорки об определенных сложностях и о непосредственно статистическом методе. Стоит писать вторую часть по этому поводу, видимо)

Ответить

Serj Nilov

Arthur
1

Буду ждать с нетерпением)))

Ответить

Evgeniy Gatsalov

Serj
0

Кроме всего прочего, наличие мат. модели, как правило, уменьшает количество итераций тест-фикс-тест. Не говоря уже о большей осмысленности фиксов и контроля баланс-багов.

Ответить

Serj Nilov

Evgeniy
1

Потому что аппроксимация, ты что, не можешь высчитать?

Ответить

Serj Nilov

Evgeniy
0

Просто есть опыт того, что продюсер ожидает финального баланса когда ещё рабочего билда нет.

Ответить

Arthur Mostovoy

Serj
0

Это уже вопрос компетенции)

Ответить

Alexey Totmyanin

Serj
1

Абсолютно согласен. Матмодель для стартового баланса и куча плейтестов с аналитикой для корректировки. Да и eDPS не панацея.

Ответить

Dmitry Lazarev

4

Фух, зря напугали неподготовленных читателей, математика элементарная, формул и спец.терминов не замечено! Или это еДПС и АоЕ страшат?

Ответить

Arthur Mostovoy

Dmitry
1

В целом солидарен, хотя некоторые читатели отмечали головную боль от формул после прочтения. Forewarned, forearmed.

Ответить

Nikolay Kuznetsov

1

Было бы интересно услышать, кто как балансирует юнитов учитывая урон вместе с ХП? (именно в плане голой математики, без подкручивания после тестов)
Казалось бы, юнит1 (ХП:100 ДПС:10) равен по силе юниту2 (ХП:50 ДПС:20) поскольку обоим нужно по 5 "ударов", чтобы уничтожить друг друга. Тогда в балансе боев один на один можно использовать число ХП*ДПС
Но как только юнитов в бою больше 2ух вылазят проблемы, например: юнит с ДПС=0 перестает быть бесполезным (тем, что может забирать на себя часть урона).

Ответить

Arthur Mostovoy

Nikolay
2

В общем случае действительно обычно считают некую "мощность", которая определяется, как HP x DPS.

В вашем конкретном случае (бою 2 vs 1, где один юнит на перевешивающей количественно стороне просто исполняет роль танка), например, можно юнита с DPS = 0 не считать отдельной сущностью вовсе. Все, что он делает, это является щитом для юнита-союзника. Тогда можно просто учесть его в "мощности" юнита-союзника по формуле DPS * (HP1 + HP2).

Это как вариант. Я думаю, что без "подкручивания после тестов" не обойтись никак, только если у вас действительно не игра 1х1 с прозрачной математической моделью нанесения урона и простыми критериями победы. Поэтому все, что в наших силах — это прикинуть. Можно, в принципе, и на глаз (хоть формально это будет и ненаучно), если понимание игры в целом очень хорошее — т.е. зайти с позиции игрока. А можно попробовать аппроксимациями — в зависимости от конкретной игры, ее особенностей и кейса.

Ответить

Serj Nilov

Nikolay
0

Отличные вопросы! Присоединяюсь и жду автора.

Ответить

Stanislav Kotrutsa

1

Полезный материал, пишите еще!)
Интересно как вы рассчитываете баланс развития игрока. А именно, как смягчаете проблему "средней температуры по больнице", когда развитие рассчитано на среднестатистического игрока, но хардорщики проходят путь в ТОП в несколько раз быстрее прогнозов, а казуалы медленне.

Ответить

Arthur Mostovoy

Stanislav
0

Недавно общался с одним видным дизайнером, который вел разработку The Witcher 3. Он высказал мнение, с которым я в целом согласен — что игра изначально должна дизайниться под казуального игрока, чтоб он уж точно "смог" и ему хватило всего — и условий, и контента.

Если казуал выест 30% игры, то хардкорщик легко проглотит 100% и потребует добавки. И хотя он говорил с позиции дизайнера синглового проекта, основная идея здесь, на мой взгляд, такая же. Игра должна быть посильной для казуала, но не должна иметь жестких абузов для хардкорщика — т.е. или не иметь в целом, или контролировать их.

Как в общем случае задизайнить игру без каких-либо абузов, сказать не смогу — в каждом случае решение свое в зависимости от прогрессии. Но вот контролировать эти абузы можно разными способами и большинство из них в той или иной мере представляют из себя дизайнерские костыли — например, введение потолка, выше которого не нафармить и т.д.

Ответить

Yaroslav Kravtsov

1

Хотелось бы дополнить про плюсы такого подхода:

1) Простые математические модели позволяют отслеживать не только сбалансированность оружия, но и его разнообразие. Иначе есть риск получить ситуацию, когда пушек много, а разницы между ними нет. Куда круче, когда разница не только есть, но ещё и прямым образом влияет на геймплей. Например, приведенный вариант с дистанцией атак в одном случае будет форсить сближение с целью, а в другом случае - сохранение дистанции.

2) Уже на таком уровне можно проверять модель на прочность. Например, в случае с пушкой C возможны случаи, когда игрок наносит урон противникам, а они не могут нанести ему урон из-за расстояния. Возможность безнаказанно наносить урон - мечта любого игрока. Конечно, все может свестись к тому, что все будут бегать с пушкой С и система самосбалансируется, но пропадет разнообразие. Значит, нужны будут механики, которые нивелируют преимущество расстояния: преграды на уровнях, абилки быстрого сокращения дистанции, медленный задний ход, чтобы нельзя было долго сохранять дистанцию).

3) В целом, когда имеется на руках такая система, проще добавлять новые пушки, абилки и прочее. Потому что есть общая логика и видны свободные ниши. Если же всё делать наглазок и по наитию, сводя баланс долгими плейтестами, то каждая попытка масштабирования будет приводить к очередным долгим итерациям балансировки всей системы.

Ответить

Дмитрий Литий

Yaroslav
0

Значит, нужны будут механики, которые нивелируют преимущество расстояния

Напрашивается шанс замедления стрелка из пушки С на х секунд после выстрела.
Ну или наоборот, что мне лично больше нравится, при получении урона от пушки С, игрок получает шанс ускорения на некоторое время, чтоб догнать обидчика.

Ответить

Павел Ораев

1

Осталось забацать статью про то как на коленке проектировать мету и сгрупировать в Gamedesigner Start Guide. Возможно, будет полезно для свежей крови и тем, кому не удавалось на практике пощупать подобные проекты.
Найдете силы, пишите, у вас получается просто о сложном ;)

Ответить

Сергей Пуговкин

0

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

Ответить

Arthur Mostovoy

Сергей
0

Да, вы правы, спасибо.

Ответить

Sergey Schukin

0

Артур, как дела со второй частью статьи?

Ответить

Arthur Mostovoy

Sergey
0

Мне, к сожалению, не приходят уведомления о новых комментариях, т.к. постил материал не я со своего аккаунта, а редакция. Но по поводу вашего вопроса - как раз недавно опубликовали немного моих мыслей на тему: https://pixonic.com/ru/posts/332

Ответить

Андрей Ланнистер

0

Вы хорошо подметили, что если после распределения дистанций тупо апнуть оружие А по урону, то оно формально будет сбалансированным, а по факту будет создавать нелепый геймплей: игрок с таким оружием будет редко до кого-то добегать, а потом ваншотить.

Мне кажется, статья была бы немного полезнее, если бы вы уделили внимание и другим факторам, которые нужно вычищать из баланса, даже если чисто математически он верный.

Например, будет очевидно неудачным решением вводить в игру оружие с большой дистанцией стрельбы и уроном, но и с большим временем перезарядки. Потому, что после каждого выстрела такого оружия, кто-то будет сильно фрустрирован. Либо жертва, которую ваншотнули с большой дистанции, либо стрелок, который промазал, и теперь вынужден очень долго ждать до следующей попытки.

Или вот еще пример: оружие, которое по чуть-чуть поражает много целей. Если в игре часто бывают свалки, в которые можно палить из такого оружия, то формально оно имеет смысл, а по факту игрок не будет счастлив. Реально он редко получит фраг. Разве что можно задобрить его детально проработанной системой наград, которая отметит именно факт нанесения большого урона, пусть и без убийств.

Ответить

Arthur Mostovoy

Андрей
0

Я бы, скорее, отнес это к разряду успешных практик непосредственно дизайна игры и тут можно отдельную статью написать на эту тему, я об этом упоминал больше вскользь (почему лучше делать так, а не иначе), а больше говорил про цифры и подход к осознанию разных сущностей и сведению их к числам.

Примеры в вакууме неплохие, но все сильно зависит от дизайна. Под ваш второй пример хорошо подходит Winston из Overwatch (хотя мы уже уходим от игры, где есть только оружие, игрок и Deathmatch, ведь в Overwatch есть и абилки, и обджективы на карте).

Ответить

Андрей Ланнистер

Arthur
0

Но как раз в Overwatch и сделано то, о чем я говорю: если игрок нанес урон, и враг погиб, ему засчитывают фраг и сообщают о убийстве, только подмечают, что был нанесен такой-то процент урона.

Ответить

Sergey Schukin

Андрей
0

Вы даже не представляете, насколько забавен ваш комментарий)))

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

Например, "оружие с большой дистанцией стрельбы и уроном, но и с большим временем перезарядки" называется Trebuchet – заряжается полностью аж 20 секунд, зато уж если долбанёт – то половину хп у мелкого робота сносит напрочь.. Для "торопыг" – можно выстрелить не через 20, а через 3 секунды, но урон будет значительно меньше.

Второй ваш пример "оружие, которое по чуть-чуть поражает много целей" тоже существует! Называется Noricum – это типа многоствольной миномётной установки штука. Делает как раз то, что вы описали, да ещё и ограничение на расстояние стоит – ближе 400 метров оно не стреляет.. Если следовать вашей логике – игроки должны были уже весь саппорт Пиксоникам вынести на тему того, какое это плохое оружие... Однако..

Однако, оно тоже активно используется – навесной огонь по площадям позволяет выгонять противника из укрытий, добивать уже покоцанных роботов, накрывать группы противника и в целом – нервирует..

Так что, соглашусь с Евгением Гатсаловым – вы, мягко говоря, совсем не правы..

Ответить

Evgeniy Gatsalov

Андрей
–1

Колоссальное количество примеров с низким RoF&high burst dmg (даже) в PvP играх говорит о том, что вы мягко говоря не совсем правы.

Ответить

Андрей Ланнистер

Evgeniy
0

Вы просто не поняли, о каком масштабе я говорю.

Ответить

Константин Бардаков

–1

"Поэтому все, что в наших силах — это прикинуть." - в принципе, этой фразой можно было бы и ограничиться))

Ответить
0

Прямой эфир

Подписаться на push-уведомления
[ { "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" } } } ]