Инициатива/очередность хода в бою: мой велосипед
По мотивам поста
Уже двенадцатый год я использую в своих играх схему, которую называю «Бочка Либиха».
Никакого отношения к агротехнологиям эта схема не имеет, она вдохновлена иллюстрацией к статье в википедии (на самом деле все началось с отличной книги Бориса Алмазова «Наш хлеб», полезной любому Мастеру).
Условия применения:
У каждого персонажа есть action points, их количество зависит в основном от ловкости [1..18]. Используется d6 кубик. Каждое действие (движение, выстрел, удар) требует определенное количество AP, высокое значение навыка стоимость действия уменьшает.
Инициативы персонажей в раунде это суммы action points и бросков кубика «на инициативу»:
action points + d6
Всегда действует тот, чья инициатива максимальна. Действия уменьшают текущее значение action points (они же — инициатива) на заранее известную величину.
Разберу работу схемы на примере столкновения десантников Добрыни Никитича и Анастаса Блэка с оборотнем.
Начинается все с броска на инициативу:
Анастас: базовых AP 13, бросок 6, сумма: 19
Добрыня: базовых AP 9, бросок 3, сумма: 12
Оборотень: базовых AP 14, бросок 1, сумма: 15
Получается, наш раунд длится 19 квантов времени.
- 19: Текущая инициатива Анастаса максимальна. Он стреляет из лазерного пистолета «Сильф» в оборотня. Стоимость атаки 4 ap (но в обойме всего 6 патронов) и съезжает по шкале инициативы до 15;
- 15: Одинаковая инициатива и у оборотня, и у Анастаса. Оба начинают действовать одновременно: Анастас стреляет, оборотень прыгает на Анастаса (рассчитывая повалить его на землю). Пока их действия длятся, таймер инициативы тикает «вниз», к нулю;
- 12: Дело доходит до витязя Добрыни. Он стреляет в оборотня из штурмовой винтовки «Нагльфар», короткая очередь стоит 6 ap.1. К концу его действия оборотень получит ему причитающееся.
- 11: Анастас заканчивает выстрел и замечает, что оборотень прыгает к нему. И отскакивает в сторону, тратя 2 ap.
- 10: Полностью уклониться от атаки Анастасу не удается — он закончит отпрыгивать позже, чем оборотень приземлится на него 2. Оборотень атакует Анастаса лапой. Это больно, но у нашего товарища Блэка отличный бронежилет.3
- 9: Анастас закончил отпрыгивать и стреляет в оборотня из «сильфа».
- 7: Оборотень снова бьет Анастаса.
- 6: Оборотень ловит все шесть пуль «Нагльфара» и чувствует себя очень неуютно.
- 5: Анастас начинает свой последний выстрел в этом раунде — прицеливается и нажимает на курок.
- 4: Оборотень наносит из последних сил наносит удары лапами.
- 1: Анастас делает последний выстрел в раунде. Оборотень наносит последний удар в раунде.
- 0: Вторая очередь Добрыни практически разрывает оборотня в клочья. Раунд заканчивается.
В следующем раунде мы бы опять кидали d6, определяли очередность действий — с учетом эффектов из предыдущего раунда — и продолжили бы бой4.
Но оборотень получил ужасающие штрафы на инициативу (его базовая инициатива стала много меньше базовой инициативы других игроков). Подробная детализация не требуется — персонажи однозначно выигрывают инициативу и добивают монстра. Мы даже кубики на to hit не кидаем, только патроны списываем.
На самом деле все немного хитрее :)
Бой слишком скоротечен, чтобы в нем можно было принимать осознанные решения. 19-20 action points укладываются в полторы-две секунды. Персонажи действуют инстинктивно, а последовательность заявок выглядит так:
— Кидайте инициативу.… Ага, первый Анастас, потом оборотень, потом Добрыня.
— Стреляю в оборотня из «Сильфа».
— Даю в оборотня короткую очередь.
— Ага… так, Анастас, оборотень прыгает на тебя.
— Отскакиваю и продолжаю стрелять.
— Ага. Оборотень пытается приземлиться на тебя, уворачивайся… увернулся. Добрыня?
— Стреляю, стреляю. Я думаю, две короткие очереди я выпустить успею, а там посмотрим.
…
— Ага. За этот раунд произошло следующее: ....
Фактически, реальные результаты своих действий игроки узнают в конце раунда.
Что интересно, эта схема отлично работает как для чисто магических боёвок, так и для боёвок смешанных — один кастует, другой бьет мечом. Просто триггерные заклинания (запускаемые по триггеру, к примеру, щелчком пальцев) требуют мало AP, а кастуемые (создаваемые) непосредственно в процессе боя — десятки AP (до сотен AP, то есть волшебник стоит и колдует, а остальные его прикрывают).5
На первый взгляд, система выглядит сложной, но после 3-4 боёвок очередность действий считается очень быстро и «на глазок».
(1) На самом деле в каждый из 6 тайм-тиков винтовка выпускает по одной пуле, но мы упростим задачу и скажем, что все 6 пуль покинули винтовку и попали в цель одновременно. А вычисление эффективности попадания вообще оставим за кадром.
(2) Здесь происходит проверка боевой механики (атака против пассивного уворота), но детали я оставляю за кадром. Скажу лишь, что Анастас, благодаря своей высокой ловкости, увернулся успешно. Да и дальнейшие атаки оборотня попали не все:
(3) Опять проверки игромеханики: атака волка против сложности. В любом случае, Анастаса спасает отличный бронежилет, поглощающий большую часть урона. Но несколько синяков десантник получит.
(4) Непотраченные action points не переносятся в следующий раунд, хотя есть специальные приёмы типа «прицеливание» (трачу все AP в этом раунде, чтобы прицелиться из снайперки и получить +3 на эффективность).
(5) На этом этапе игроки рвутся «оптимизировать» систему: как же так, я же волшебник, у меня инициатива не по ловкости определяется, а по интеллекту!. Пару раз сломав моск на пересчетах типа «а как быть, если он сначала кастует, а потом бьет кинжалом — как тут считать инициативу?» я мастерской волей запретил смешанные раунды — или кастуешь или рубишься. Иначе игра превращается в жонглирование цифирями, а это немного не то.
Как вы думаете, какие в этой схеме есть дыры, которые я упустил или не описал?
43 комментария
Если маг хочет быстренько бросить заготовленный во вражину огнешар, а на попытку оппонента сократить дистанцию делает заявку «пыряю его острой железкой», а смешанные раунды запрещены Именем Его, то что будет? Магу стоять, кастовать, пока его режут остаток раунда, или позорно бегать, когда можно завершить противостояние одним выпадом?
Алсо, вопрос. Что происходит, если человек говорит «отпрыгиваю» [да что угодно помимо прыганий], но у него не хватает 1 AP на завершение действия? Он не может сделать ничего? Он начинает движение в этот раунд и заканчивает в следующем?
Мне кажется, зря. Иногда жизненно-важная разница — успел прибить гада до того, как он до тебя добежал\ударил\etc, или не успел.
Но в играх практически происходит второе —
… то есть в следующем раунде его инициатива будет модифицирована этим действием.
Ну пускай кидает в него огнешар :)
На самом деле это приводит к ситуации, когда маг с высоким интеллектом выигрывает инициативу, скажем, получив 25 AP. Кидает огнешар, потратив, скажем, 5 AP и имеет 20 AP, которые теперь хочет потратить на тыканье кинжалом.
Но — наш маг — грузный толстяк с низкой ловкостью. Его AP для физических действий находятся где-нибудь в пределах 4+к6 (5..10). Да еще и кинжалом он плохо владеет. А собирается тратить ментальные action points на физические действия.
Собственно остальные файтера были очень даже против такого перекоса, заявив, что это еще более недостоверная ситуация, чем невозможность в одном раунде и кастовать, и рубить мечом.
А для мага можно вот что попробовать. Кол-во физических АП у него считается как у всех прочих. Если он хочет делать ментальное и физическое — считаем, сколько физических АП он потратит на ментальное действие: делим кол-во ментальных на кол-во физических.
Да, и так мы тоже делали. :) Смотри пятое примечание — после третьего за одну боевку пересчета ментальных раундов в физические и обратно…
В общем, эту дыру в механике я знаю и игроки её тоже знают. По молчаливому согласию мы её обходим.
Кроме того, как правило, боёвки по этой схеме длятся 1.5 — 2.5 раунда (полраунда на добивание). Позиционные бои используют совсем другую схему (а точнее никакой не используют).
Т.е. ты спрашиваешь про дыры, но делать с ними ничего не хочется? оО Ну на нет и суда нет.
Других дыр мне не видать, если эту закрыли соц.договором — то и чёрт с ней.
Спасибо за фидбэк.
Позорно бегать :) Потому что маг, допустивший такое… уже потенциально мертвый маг.
Честно говоря, схема не решает проблем в случае «боевых магов» или «блейдсингеров» (кастующих файтеров), но что с этим можно сделать, я не знаю.
Фишка в том, Никита, что если сначала бьем кулаком, потом кастуем, потом опять бьем кулаком — такое преобразование нужно делать дважды.
Хотя есть вариант: — не делить, а умножать :)
Я, наверное, сейчас глючу (поутру то, ага!), но мы можем
И из полученного числа вычитать:
Бред?
А если это маг с интеллектом 13 и ловкостью 7 — более распространенный случай.
Или маг с интеллектом14 и ловкостью 9?
К сожалению, это мои проблемы. Потому что считать то мне, а не игроку.
Попросту говоря — уже так пробовали. С калькулятором все получается просто. А на коленке, с ручкой и бумажкой простая боёвка превращается в жонглирование цифирью.
Эээ. А вторая заявка куда денется?
На начало игры это потребует калькулятора, но один раз. Можно программку написать.)) А во время игры это будет «глянуть в табличку», очень быстро.
Да, как вариант. Когда у меня снова заведутся маги — я обязательно воспользуюсь этим советом :)
Да, 4 строчки: MP->AP и AP->MP.
А ведь еще могут завестись псионики, у которых экшен поинты могут считаться по воле %)
Ещё две строчки добавить.))
Но на самом деле я осознал, что это бесполезно! :(
Ведь у нас инициатива зависит от ежераундового броска +d6. И это мы еще упростим ситуацию, считая, что один бросок d6 одинаково модифицирует и ментальную инициативу, и ловкостную.
Поэтому выручит нас только калькулятор… или js-скрипт :)
А excel разве не справится?
По оси абсцисс — AP 1..20
По оси ординат — MP 1..20
По оси аппликат — 1..20 — интересующее нас преобразуемое значение.
Тогда результат преобразования будет находиться по координатам {X, Y, Z}
При этом каждый элемент плоскости {XY} равен отношению (алгебраическому) своих координат, т.е.
{XY}[ x, y ] = y/x
Тогда ячейка с координатами (x,y,z) будет содержать значение
Ферштейн? На плоскости координат {x,y} мы выясняем соотношение каждой возможной AP-инициативы с каждой возможной MP-инициативой, а по оси аппликат получаем нужное значение преобразования.
По моему это проще на JS закодить: два селекта с текущими значениями AP и MP и рядом динамически обновляемая табличка с соответствующим результатом перемножения :)
P.S. Геометр, прости меня за очень вольное обращение с математическими обозначениями!
jsfiddle.net/Arris/hqtnx1bs/
В текущем варианте непрерывные серии действий получаются разделены паузами (типа «замешкался»), которые разной длины у разных персонажей, в зависимости от инициативы, но при этом у всех персонажей синхронизированы (приходятся на начало раунда) и никак не зависят от характера совершаемых ими действий. Например, если в 1-м раунде герой делает три одиночных выстрела, а во 2-м ещё раз стреляет в ту же цель, после чего кидает гранату и бежит к следующему укрытию, то шанс замешкаться у него появляется между 3-м и 4-м выстрелами, а не перед броском гранаты или срыванием с места, что как-то нелогично.
Проблема возникает, если действуют персонажи которые значительно быстрее других.
Допустим, у десантников инициатива 10, у оборотня 20. Получается что сначала оборотень делает 2-3 атаки, от которых десантники не могут уклониться (их тики еще не пришли), потом враги бьются на равных, а в следующем раунде оборотень снова получает «неуклоняемые» атаки.
Получается, будто из каждого 2-х (например) секундного раунда десантники одну секунду не делают ничего.
Атака оборотня идет как:
сложность определяется на основе ловкости персонажа и каких-то штрафов/бонусов.
А эффективность атаки оборотня… ну у него есть свой навык «Оборотень: когти», который он «прокачал» за свою жизнь до какого-то уровня. Молодой оборотень, к примеру, атакует на уровне basic, матёрый — на уровне master.
На такие атаки десантники не успевают адекватно реагировать.
Опять же — возможны внезапные атаки, атаки из засады — когда стрелы в тебя влетают раньше, чем ты соображаешь, откуда стреляют.
На самом деле эта схема пытается в перевести относительное время десантников и оборотня я в абсолютное, которое проще считать (допустим, раунд длится 2 секунды).
Фактически, если у оборотня 20 AP, то его 1 AP длится 0.1 секунды.
Если у десантника 10 AP, его AP длится 0.2 секунды.
На самом деле, заявив действия, они все действуют одновременно или практически одновременно, просто реагируют в разные моменты времени — десантники позже, оборотень раньше.
Да, мы конечно же думали об этом. :)
Фактически, это переход к линейке инициативы как в HMM4.
Да, вижу.
Я вижу решение этой проблемы, но оно уводит нас от рисования линейки инициативы на коленке — уводит в сторону программной модели.
Есть и другой вариант — раунд длится строго определенное время, но 1 экшен поинт у разных персонажей длится разное время (равное длине раунда / кол-во AP в раунде). То есть относительное время разное. Но эта идея пригодна скорее для компьютерной игры, на коленке я такое быстро не посчитаю — чтобы у одного экшенпоинт длился на 17% меньше, чем у другого.
Вообще по моим наблюдениям, d6 кубик самый популярный… и самый простой в изготовлении.
Базовая инициатива зависит (в рамках этой системы) от физической подвижности (ловкости). Но в «начале» каждого раунда кто-то может слегка прослоупочить и начать действовать позже.
Ферштейн?
А почему одни люди, переходя дорогу, осматриваются 10 секунд, а другие — 20?
«каждое действие громоздкое, легко и быстро обсчитываются» vs «мелкие атомарные дествия, обсчитывать долго».
Хорошая годная техника для системы, в которой с каждой стороны мало противников, бой длится 1-2 (реже 3) раундов.
Как уже писали выше — следующий шаг:
— отказаться от циклических раундов вообще, оставив временную шкалу в time-points
— назначить каждому действию число затрачиваемых time-points,. Персонаж начинает действовать в следующем time-point после того, когда он закончил предыдущее.
— одновременно начинающиеся\заканчивающиеся действия резолвятся одновременно и независимо (одновременно стартующие персонажи не знают, какое действие начинает другой персонаж).
— поскольку во время действия персонаж не реагирует (или частично реагирует) на чужие, то за «долгие» действия надо давать прогрессивный бонус. Скажем 1 выстрел — 1time-point. Выстрел очередью 10 патронов — 5time-points.
Либо за полтора-два раунда сражающиеся разобрались и бой перешел в добивание, либо бой перешел в позиционный, когда шансы поразить друг друга невысоки (все сидят по укрытиям, выставив наружу стволы и постреливают наугад / создавая заградительный огонь), а преимущество достигается применением каких-то тактических приёмов (кинуть дымовую гранату и перескочить в более удобное укрытие, выпить бутылку хасты и закрутить мельницу итп)
За остальные советы — спасибо.
Да, табличку инициативы игроки как правило не видят и заявляют действия с подачи мастера: