Went
> управление большими отрядами, состоящими из набора обычных РТС-юнитов, управляемых ИИ, выглядит хорошо только в теории
Так никто не предлагает вообще отказаться от прямого управления. Если мы говорим о массовых rts (totala/spring/supreme), то для начала бы неплохо отказаться от технической рутины - пополнение групп, сбор ресурсов из мусора, распределение заказов по заводам.
Вот, например, примитивнейшая фича:
Shift-click на юнит - и ближайший свободный завод строит этот же юнит для этого отряда.
Игрок разом избавляется от:
1. найти завод,
2. сделать заказ,
3. поставить точку сбора,
4. добавить юнит в отряд,
5. переназначить приказы.
> На практике мастерство игры сведётся к абьюзу багов и недоделок в нём.
На практике весь компетитив - это абуз. И явных багов, и плохого баланса.
Hrum
Погоди, я не о инструментах, облегчающих управление игроку в обычных РТС, это, конечно, однозначно хорошо. Мы обсуждаем тут "медленную РТС без микроконтроля в принципе" и пути реализации этого на практике. Как одно из предложений, как я понял, прозвучало объединять юниты в отряды, получающие макро-приказы, а потом, уже ИИ реализует этот приказ, обеспечивая микроконтроль для каждого конкретного юнита. То есть без возможности микроконтролить каждого юнита напрямую в принципе.
Как это выглядит в идеале. 2-3 отряда с каждой стороны сошлись в схватке, в каждом определенный набор юнитов, реализующий определенную функцию отряда - засадный, штурмовой, поддержка, разведка, удержание и т.п. Я могу давать приказы на реорганизацию, и тогда юниты сами приходят, если не хватает и уходят в резерв, если лишние. Можно "клонировать" отряды, говоря "дай мне еще один такой же отряд вот здесь", и промышленность сама его тебе комплектует. Могут быть командиры, бафающие свой отряд и даже влияющие на интеллект микроконтроля. И вот я даю комплексный приказ: "штурмовой отряд выходит вперед, агрит на себя врагов, поддержка кроет врага с миномётов, подавляя его стрелков, но через минуту штурмовики оттягиваются назад в лес, где в засаде сидят бойцы ближнего боя, которые в решающий момент выскакивают и режут преследующих юнитов врага". Мои посыльные побежали, отдали приказы, и я с замиранием сердца смотрю, что получится, сработает ли план. Это в идеале.
Как это будет в реале. У меня есть отряд, в котором 5 миномётчиков и 10 автоматчиков. У врага отряд в 10 миномётчиков и 5 автоматчиков. Я говорю "атакуйте". На какую дистанцию должен подойти мой отряд, как решит ИИ? Вроде должен штурмовать, так как преимущество в ближнем бою у меня. Но, вдруг, между нами болото, и пока мои автоматчики дойдут на дистанцию огня, их всех переложат миномётчики врага? А вдруг на моей стороне укрытие, и нужно было просто чуть выдвинуть туда миномётчиков, прикрыть их автоматчиками от контратаки и невозбранно расстрелять из выгодной позиции всех врагов, стоящих на равнине? А, кстати, по кому должны стрелять миномётчики? Крыть миномётчиков врага или его автоматчиков? Ведь, устранив последних, мы сможем просто зарашить его 10 миномётчиков моими 10 автоматчиками в упор. И сколько бы не будем изгаляться с интеллектом и точностью приказов, мы или придём к классической РТС или в тупик, признав, что это "не играбельно".
Скажете, это всё теория, на практике не так? Помните такую игру, как Казаки (первые)? Там можно было ставить юнитов в строй, а можно было атаковать толпой. Классно были сделаны строи, каре всякие, линии, квадраты, барабанщики, офицеры. Можно было поставить гаубицу в середину каре, все как по-настоящему. И вот сходятся два таких отряда копейщиков, такие красивые шеренги, выставили копья, идут друг на друга под грохот барабанов. И тут один более умный внезапно распускает строй, собирается в очень плотную, ощетинившуюся сотней копий точку и просто "прогрызает" красивый строй противника как масло. Потому что на один удар он отвечает сотней. Что делать второму? Только то же самое - распускать строй и превращаться в такую же точку. И это происходит до тех пор, пока в одну из точек не прилетает ядро гаубицы. Конец кину. К чему это я? К тому, что и строй, и толпа элементарно абьюзились. Не абьюзился только микроменеджмент отдельных юнитов. Особенно на базах и при захвате орудий.
Went
> Мы обсуждаем тут "медленную РТС без микроконтроля в принципе" и пути реализации этого на практике
Да, размышления именно в эту сторону.
> У меня есть отряд, в котором 5 миномётчиков и 10 автоматчиков. У врага отряд в 10 миномётчиков и 5 автоматчиков. Я говорю "атакуйте". На какую дистанцию должен подойти мой отряд, как решит ИИ? Вроде должен штурмовать, так как преимущество в ближнем бою у меня. Но, вдруг, между нами болото, и пока мои автоматчики дойдут на дистанцию огня, их всех переложат миномётчики врага? А вдруг на моей стороне укрытие, и нужно было просто чуть выдвинуть туда миномётчиков, прикрыть их автоматчиками от контратаки и невозбранно расстрелять из выгодной позиции всех врагов, стоящих на равнине? А, кстати, по кому должны стрелять миномётчики? Крыть миномётчиков врага или его автоматчиков? Ведь, устранив последних, мы сможем просто зарашить его 10 миномётчиков моими 10 автоматчиками в упор.
А вот это уже измышеления на тему микро. Схватка 15 на 15 рыл за избушку лесника - это вообще уже не стратегия, это тактика, от которой бы вообще стоит отказаться. Но решением можно предложить выставление приоритетов (нанесение максимального урона, уничтожение максимально опасного урона, сохранение живой силы, и т.д.) - как для всего отряда, так и разнородных юнитов. Но даже это, кстати, тоже шаг к повышению качества стратегии.
> И вот я даю комплексный приказ: "штурмовой отряд выходит вперед, агрит на себя врагов, поддержка кроет врага с миномётов, подавляя его стрелков, но через минуту штурмовики оттягиваются назад в лес, где в засаде сидят бойцы ближнего боя, которые в решающий момент выскакивают и режут преследующих юнитов врага
Мне кажется, что даже в реальном бою такие маневры невозможны)
>поддержка кроет врага с миномётов, подавляя его стрелков
Вот это тоже классный момент, который еще ждет своей реализации. В реальности ведь можно и целый взвод одной миной положить, и безрезультатно утюжить окопы тяжелой артой - а играх доступный максимум это бонусы от укрытий в Company of Heroes/Dawn of war.
> Казаки (первые)? Там можно было ставить юнитов в строй, а можно было атаковать толпой. Классно были сделаны строи, каре всякие, линии, квадраты, барабанщики, офицеры. Можно было поставить гаубицу в середину каре, все как по-настоящему
Кстати, классно ведь было, жаль почти больше нигде не использовалось. Эти отряды, которые сами пополнялись около казарм. Эти офицеры, барабанщики, пушки. По сути ведь - шажок в правильном направлении.
> И тут один более умный внезапно распускает строй, собирается в очень плотную, ощетинившуюся сотней копий точку
А вот это легко вылечить простым средством - потерей контроля и бафов. Пока у тебя шеренга, и офицеры с барабащиками - у тебя отряд, как только опустили знамя и всё, толпа. Может она и дойдет до каре, но скорее спрячется в ближайшем лесу от картечи. Всё как по-настоящему
Hrum
> А вот это легко вылечить простым средством - потерей контроля и бафов.
Дык именно так и было. Построение давало баф на защиту, если не ошибаюсь. Но по сравнению с сотней копий в одно место он не канал. Обычные пушки могли стрелять картечью, что также усложняло жизнь "толпе". Да я не и говорю, что толпы волокли в казаках. Я говорю, что ничто, к чему подталкивали игрока, чтобы он ощутил себя "генералом 18 века", не вывозило реальные катки профиков. Только аццкая микра, только ресурсы, правильная вкачка и т.п. При правильной игре одного и зевке второго, небольшой отряд гусар, прорвавшийся на базу делал gg вне зависимости от положения на поле боя. Все - рабочих забрали, del-нули, шахты забрали - del-нули, пушки забрали - del-нули, и дальше второму просто собирать войска в кучу и безнадежный раш на базу первого. То есть шажок в правильном направлении они сделали, но по сути ничего не изменили.
Повторюсь - суть моего утверждения: "автоматизация микры через тактический ИИ сконцентрирует игру вокруг абьюза его багов, а не вокруг стратегических измышлений".
Moreover, ящитаю, что медленная РТС без микроконтроля должна быть максимально предсказуема, как в отработке приказов игрока, так и вопросах наносимого урона, защиты, короче всей боевой математики. Какие-то неожиданные выверты вроде: "сказал идти сюда, а он пошел в обход, а за новый приказ - штраф" недопустимы. Почему это важно:
1. В обычной РТС любая ошибка ИИ юнитов легко исправляется следующим, более точным приказом от игрока, то есть буквально за секунду. В игре без микры это невозможно и может привести к быстрому и обидному поражению "на ровном месте".
2. Для чего РТС вообще медленная? Чтобы дать игроку относительно спокойно оценить складывающуюся ситуацию на поле и принять какие-то меры, если она развивается в негативном ключе. В обычной РТС, когда пошла рубка, уже "поздно пить брожоми", вряд ли сможешь без критических потерь отступить и переиграть. А в медленной, именно во время боя принимаются все важные решения: видишь, что твой фланг выгребает, а враг уже погнал туда конницу - принимаешь решение к отступлению на более удобные позиции и нивелируешь угрозу разгрома с этого фланга. Враг видит твою контру и посылает коннице отмену атаки, но выдвигает стрелков, чтобы закрепиться на отвоёванных позициях, тогда ты снимаешь пушки, которые до этого били куда-то по окопанным врагам и перенаправляешь на эту позицию, чтобы врагу закрепляться было грустно. А если отряды будут "солянкой", да еще и "себе на уме", просчитать исход локальной схватки будет на порядок сложнее. Вот повел на меня враг отряд - а с какой дистанции он будет стрелять? а какие цели выберет? а как будут отвечать мои? ХЗ. И как отвечать тоже ХЗ. Поэтому все будут ждать когда ИИ отрядов "скажет своё слово", а потом уже решать - "стоим или отступаем". Это уже совсем другая игра с совсем другим уровнем стратегичности.
Went
> Может оказаться, что нужно делать один мега отряд, так как оперативное
> управление ИИ лучше, чем медленное игроком. А может, наоборот, будут дробить на
> мелкие, потому что ИИ тупит.
Первого не будет. Потому что будет некая линия фронта или же несколько участков фронта.
А желание разбить на слишком мелкие отряды можно ограничивать. Дорого стоит создать новый отряд, лимит на кол-во отрядов, платный приказ отряду, другие варианты.
Went
>ИИ может плохо работать с определенными видами юнитов или на определенных территориях, что будет >обесценивать объективно хорошие юниты и ломать баланс.
ИИ может хуже работать с какими-то юнитами. Но это будет у обоих команд. Для баланса можно поднять характеристики этим юнитам, компенсируя плохое управление ими.
Went
> Для реализации ИИ может потребоваться дать ему какие то данные, которых не
> имеет игрок, и это тоже начнут абьюзить.
Значит ИИ отряда должен быть сделан так, чтобы не использовать какие-то баги и дыры в игровой модели.
Но это уже мелочи, которые пилят напильником в конце.
Went
> А вдруг на моей стороне укрытие, и нужно было просто чуть выдвинуть туда
> миномётчиков,
ИИ отряда должен уметь использовать укрытия в зоне своего контроля, если стоит в обороне. Но игроку придется подвести отряд близко к укрытию, чтобы оно попало в зону контроля и ИИ им воспользовался.
Went
>но через минуту штурмовики оттягиваются назад в лес, где в засаде сидят бойцы ближнего боя, >которые в решающий момент выскакивают и режут преследующих юнитов врага
Это уже в ручную. Крупные атаки и отступления отрядов , крупные засады делает сам игрок. А мелкие микро-засады просто не происходят в такой игре. Hrum правильно написал. Это игра не тактического, а оперативного уровня.
Went
>И тут один более умный внезапно распускает строй, собирается в очень плотную, ощетинившуюся >сотней копий точку и просто "прогрызает" красивый строй противника как масло.
У меня сеттинг - вторая мировая или дальше. Плотная масса погибнет от артиллерии и ударов авиации. Видимо, мы просто любили разные сеттиги rts. В игре по ранним эпохам вообще нет необходимости делать игру оперативного уровня, какую я описал.
Went
> Went
Went прав в том, что ИИ может сделать стычки юнитов в отрядах слишком случайными со случайным исходом партии.
Фактически, моя идя распадается на два варианта. Первый вариант - стараться делать как можно более аккуратный ИИ и смириться со случайностями, ведь это похоже на реальную войну.
Второй вариант более радикальный. Юниты двигаются и стреляют. Но урон зависит на 70% не от атак юнитов друг по другу, а от силы отрядов, их структуры, взаимного расположения и статусов (окружение, уровень снабжения , усталость, мораль...) - как в пошаговых варгеймах или же как в битвах Total War. В Total War никто не просрочивает атаки каждого человечка, это просто визуализация того, что происходит в игровой модели, где вообще нет человечков.
Но можно менее радикально - сделать расчет взаимных атак юнитов влияющим на их урон не на 0% (, как в Total War) а ,скажем 30%.
PolariusBear
> Это уже в ручную. Крупные атаки и отступления отрядов , крупные засады делает
> сам игрок. А мелкие микро-засады просто не происходят в такой игре. Hrum
> правильно написал. Это игра не тактического, а оперативного уровня.
Да, я это как раз и имел в виду. Я иллюстрировал разницу между тем, как хочется (игрок придумывает хитрые тактические схемы и отдаёт буквально пару приказов на их исполнение) и тем, что получится (игрок нервничает от того, что не знает, как поведёт себя ИИ сборного отряда).
> У меня сеттинг - вторая мировая или дальше. Плотная масса погибнет от
> артиллерии и ударов авиации. Видимо, мы просто любили разные сеттиги rts. В
> игре по ранним эпохам вообще нет необходимости делать игру оперативного уровня,
> какую я описал.
Ну, просто в сеттингах 20го века и дальше трудно представить какие-то проблемы с передачей приказа целому отряду, чтобы это не выглядело притянуто. А так, да, сеттинг не принципиален.
> Но можно менее радикально - сделать расчет взаимных атак юнитов влияющим на их
> урон не на 0% (, как в Total War) а ,скажем 30%.
Или не делать юнитов составными, а классически: "артиллерия, танк, пехота". В этом случае происходящее будет более прогнозируемо. Банально? Да. Но как гласит старая геймдизайнерская мудрость - не тули все новые идеи в одну игру. Есть идея "медленность, стратегичность, редкие приказы", а есть идея "составные юниты, получающие макро-приказы". В принципе, это перпендикулярные концепции, поэтому первое вполне можно реализовать без второго и наоборот.
// ---
Новые кнопки, в пульт сквада..
Разделить одну кнопку приора поведения на несколько..
= стрелять или не стрелять
= бросать или не бросать // гранаты и подобные абилки.
= прыгать или не прыгать // рокет-джамп, мини-телепорт.
= патруль или не патруль
// назначил 2-4 точки, управлял отрядом сам,
// а затем - вернул отряд на маршрут патрулирования.
= на бегу: быстро, средне, зачистка.
// Быстро - не стреляем, даж если можно стрелять, на ходу.
// Средне - не стреляем, если выстрел, через кастинг.
// Если зачистка, и встретили врага - стой-сражайся.
= бег: стандарт-кольцо, колона, линия, разброд.
= позиция: стд-кольцо, колона, линия, разброд.
= удержание: стоять, отбегать, преследовать.
// отбегать - в сторону союзного ближнего здания, или штаба.
// Преследовать - попытка далеко бежать за врагом,
// но потеряв цель, или убив - попытка возврата.
= укрытие: сидеть, вылезать, преследовать.
// вылезать, если бункер под обстрелом, а никто
// не достаёт врага изнутри бункера - пробануть
// выбежать навстречу. Если урон вышэ порога,
// то возврат в бункер, и выставить стд-откат,
// чтобы не выбегать слишком часто.
// Преследовать - вариант вылезания, но если
// порог урона не получен. а враг пытается бежать,
// то преследовать его, и попытка возврата в бункер.
= диверсанты: стоять, отбегать, обнаружать.
// Иногда, отряд атакуют из невидимости.
// Вариант отбегания, как пункт удержания точки.
// Вариант обнаружэния, если у отряда есть абилки,
// либо заказ дэтэкторов - отряд применит.
= штыковая: всегда навязывать, отвечать, избегать.
// Ближний бой связывает обычных стрельцов.
// Можно выбрать навязывание, если твой сквад быстро
// бегает-прыгает, чтобы подавлять стрельбу врага.
// Умолчанка на среднем варианте _отвечать.
// Избегать - сквад сигналит соседям, и если есть
// союзный сквад с приоритетом навязывания, и если
// он не занят, то метнётся махать кулаками, вместо
// хилых стрельцов, которые побегут навстречу кулакам.
// Вобшем, два сквада стрельцов, и между ними - некие
// тарановые дубины - на стрельцов напали, и они
// сигналят, авто-выяснили, что среагировал лиш
// один отряд помошников - значит бежым навстречу
// этим помошникам, и как-только те начали бой,
// то помогаем им стрельбой, либо вручную.
// После этого, оба отряда пытаются вернуться.
обстрел: ближния цель, точка, авто-супорт.
// В точку - игнорировать обстановку, и пулять
// по указаной точке. Но у сквада должна быть
// абилка, или пасивка такой стрельбы.
// Авто-супорт - помогать фокусировать огонь, если
// можно сдвинуться, и не покинуть пороговый радиус,
// чтобы доставать до цели, по которой бьют союзники.
// Применять абилки мас-урона, если отмечено _бросать.
// ---
Сквад (squad): мини-отряд, который нельзя разделить,
но есть возможность туда внедрить разные зап-части.
1. кнопка пополнения рядового участника сквада.
Рядовые участники могут быть задуманы, как базис,
на который можно добавлять специфику - гибкость.
2. кнопка пополнения сержанта - локальный апгрэйд,
и жырнота, чтобы отряд, без присмотра, пожыл подольшэ.
3. кнопка выдачи одного из орудий, в руки рядового,
чтобы поменять-усилить специфику урона
(по пехоте, по танкам, по летунам, по зданиям).
4. всему скваду принадлежат абилки, которые могли
проявиться, в пульте, от появления сержанта, либо
от появления спец-орудия, в руках рядового.
// Либо от очередного кастинга штабных технологий.
Помимо норм-отката, абилку можно лимитировать Стаминой,
либо личной Маной отряда (либо откат + штабной ресурс).
Есть версия командирский сквад - жырные участники,
которые добавляют на пульт управления сильные абилки.
Есть возможность, приклеить одинокого командира,
внутрь обычного сквада, чтобы повысить выжываемость
командира - снизить целевой урон. Ведь указав целью
атаки этот сквад - нет гарантий, что урон прилетит
по кликнутому солдатику. Но если кликнутый солдатик
будет единственой целью, до которой достреливает наш
атакер, с приором _стой_на_месте, тогда наш атакер
будет стрелять по кликнутому.
Обычно, сержант или командир-приклейка, геометрически
ставятся в середину сквада, чтобы рядовые солдаты были,
как тело-хранители.
Урон по области - каждый участник сквада сам-по-себе.
PolariusBear
> Игру "среднего" оперативного уровня. Не тактического, как Steel Division, но и
> не стратегического, как HOI.
Так завуалировано описал уровень командования. Все же проще. Есть уровень условно взводный, ротный и полковой уровень. Условно взводный это «В тылу врага». Полковой - это ХОИ. Для ротного есть «вторая мировая», но замороченно.
В зависимости от уровня формируется детализация карты. В полковом не будет прописано каждое дерево, а во взводным не будет глобальной карты.
Панзер генерал - это уровень дивизии, не меньше, так что ХОИ более детальная чем версия ПГ
Went
> Есть идея "медленность, стратегичность, редкие приказы", а есть идея "составные
> юниты, получающие макро-приказы". В принципе, это перпендикулярные концепции,
> поэтому первое вполне можно реализовать без второго и наоборот.
Согласен, что можно пробовать реализовать эти подходы отдельно. Но также можно и пытаться совместить. Практика - критерий истины. Пока не будет прототипов того и другого сложно понять как лучше. Тем более, что и разные запросы у разных игроков. Кому то важны более крупные отряды (без играть напряга), кому-то важнее предсказуемость и тонки маневры.
slatazan
> Новые кнопки, в пульт сквада..
Описанное ниже - это очень тактическая игра, у меня же оперативно-стратегическая. Так тоже можно пытаться сделать. Но у меня оперативный уровень. То есть у меня танчик - это как бы обозначение, в реальности это танковый взвод.
Ren
> Условно взводный это «В тылу врага». Полковой - это ХОИ. Для ротного есть
> «вторая мировая», но замороченно. Панзер генерал - это уровень дивизии, не меньше, так что ХОИ более детальная чем версия ПГ
По моей задумке это что-то вроде Курской дуги и управление уровня дивизии. То есть крупные комбинированные отряды. Но поскольку всё это надо красиво показать, то один танчик или человечек - вместо танкового или пехотного батальона. И деревья будут и домики. Но это всё как бы условность, а расчет урона частично идет по правилам варгеймов.
Я нашел для себя то, как очень примерно графически это может выглядеть на примере одной старой игры:
https://www.youtube.com/watch?v=rCQ58KcUFds
(понятно, механики должны быть другие. Графически - должен быть zoom out, чтобы видеть хотя бы 1/6 всей карты на экране со значками. А юниты должны не так сильно кучковаться, немного перебор. И разбитые части не дохнут, а медленно отступают. То есть противник ни столько уничтожается, сколько выдавливается (как в HOI). А чтобы уничтожить, обычно хотя бы частично окружить.).
Кстати, сейчас какой-то китаец как-то допиливает этот движок (Axis & Allies (2004). Но я еще не знаю, насколько у него есть исходники и вообще какие перспективы.
При отдалении карты вместо юнитов должны появляться иконки. Как-то так, видимо https://youtu.be/MD4yt21yUts?t=3002
Но нужно, чтобы игрок был всё равно вынужден смотреть вблизи на перестрелку красивых юнитов, не увлекался глобальной картой.
клики за бабло - это будет новое слово в маркетинге
Я думаю, принципиальная разница между медленной и обычной РТС проходит по отношению к роли манёвра на поле боя. В подавляющем большинстве RTS манёвр абсолютно "бесплатен", максимум, чем ты платишь за перемещение - в этот момент ты не стреляешь (а при правильной микре это пенальти вообще нивелируется). То есть управление сводится к непрерывному поиску лучшей позиции для атаки. Выстрелил плюху - и бегом на новое место, где соотношение огня будет в твою пользу. Мало того, движущийся юнит зачастую имеет неуязвимость к артиллерийским атакам, по нему промахиваются касты спецударов и даже "долгие" ближние атаки. Медленная РТС по моему мнению, напротив, должна плясать от того, что чем дольше юнит занимает своё место, чем дольше он занимается одним делом, тем лучше он это делает:
1. Любой юнит со временем "вкапывается" в землю, значительно улучшая свою защиту. Любая смена позиции сразу обнуляет её. Поэтому, закопался - страдаешь, но выживаешь, побежал - труп (ну или пол трупа).
2. Любой юнит со временем "пристреливается" к определенным позициям или секторам. Первые выстрелы всегда "в молоко", но потом идут всё точнее и точнее.
Юнит, который долго стоит на месте "осваивает" позицию, пристреливается, закапывается. То есть менять позицию и даже цель обстрела должна быть действительно веская причина. При этом атака не должна автоматически приводить к движению за противником. Одно дело, я занимаю позицию, другое - выбираю по кому концентрировать огонь (или fire at will, на усмотрение отряда). Да, издалека, может быть, стрелять не так эффективно, как в упор, но позицию зачастую менять хуже, чем вести огонь низкой эффективности. Вот это как раз и приведёт к тому, что давать частные приказы будет просто бессмысленно, постоянно "бегающие" юниты будут слишком лёгкими мишенями, а постоянно меняющие свою цель будут постоянно мазать.