пятница, 28 марта 2014 г.

Обсудим перспективы боёвки

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


1) Реалистичная система повреждений. Что-то в стиле DwarfFortress, но не столь замороченное на физические свойства материалов и слои. Т.е. никаких хит-пойнтов, если по существу попадает атака, определяется какой конкретно вред нанесен. Синяки, раны оставляющие потом шрамы, отрубленные конечности и сотрясения мозга инклюдед.
2) Не превращать сражения в гринд, как это бывает очень часто. Бой с одной стороны должен быть достаточно интересным и требовать включения мозга - не просто прокликиваться на автомате. С другой стороны бой должен быть пусть не исключительным, но важным событием.
3) В то же время не переусложнять систему. Прошлую боёвку от MasterSet похоже вообще мало кто вкурил (хотя лично мне она понравилась). Но тут надо сказать что если будет интересно, то можно ради этого и посложнее - с интересными вещами люди склонны копаться и разбираться.
4) Ощущения от боя должны быть... как бы это сказать. В воображении должна возникать реальная картинка сражения в которую ты готов поверить. Чтобы было видно когда человеку больно и страшно, что он превозмогает. Сама система должна способствовать пониманию того что там конкретно происходит в игре - что кто то уклоняется, делает стремительный выпад или издаёт устрашающий рык... Не очень хочется игры в циферки. Хочется игры в ощущения, образы и впечатления. Цифры пусть компьютер считает.
5) Хочется поддерживать несколько участников боя с каждой стороны, но не превращать бой в столкновение двух армий. Возможно двое в партии игрока - герой и помощник. Может трое: герой, помощник и питомец. При этом сделать так чтобы был какой-то смысл ходить и в одиночку, а не обязательно "фуллпати". Вариант: делать толстых монстров такими, чтобы они били сразу по всем союзникам. Но нужны ещё механизмы.
6) В идеале хотелось бы чтобы бой решался не просто раскачкой персонажа, а именно умением игрока использовать свои ресурсы. Т.е. во-первых чтобы важен был выбор оружия и снаряжения перед боем. Во-вторых тактика боя должна во многом решать его исход.
7) И противники и союзники должны подчиняться одним и тем же базовым правилам. Я хочу чтобы и герой игры и последний встреченный им случайно в катакомбах скелет были для программы взаимозаменяемыми объектами расписанными по одной и той же схеме. При этом с другой стороны мы упираемся в то, что если боёвка тактически сложная, написать соответствующий ей AI может оказаться слишком сложно. Поэтому враги могут действовать более просто и баланс надо изначально под это затачивать. Но база персонажа у врага и у героя должны быть одна.
8) Так как спектр применяемого снаряжения очень широк, да ещё и магия задействована, то система должна быть очень универсальна. Нам надо обсчитывать и скручивание голой девушки борцовскими приёмами, и рубку на двуручниках в рыцарских доспехах и перестрелку из бластеров. Причём все не обязательно будет симметрично. Вообще я хотел даже запилить ОБЧРов, но может для них надо будет делать отдельную систему.
9) И ещё хотелось бы поменьше полагаться на рандом. Я не против того чтобы условия боя возникали случайным образом, но принятые игроком решения должны вести к предсказуемому результату. Например: какую защиту или атаку выберет гоблин? (рандом - ок). Попадешь ты или промажешь по нему своим ударом в текущих условиях? (рандом - плохо).

Как видите требования довольно обширные, не тривиальные и местами даже противоречивые. Возможно чем-то придётся пожертвовать, но хотелось бы сохранить концепцию по максимуму. Адекватную систему повреждений написать будет непросто, но там хотя бы понятно куда двигаться и как всё это строить. А вот с остальным у меня пока не вырисовывается.
Была еще идея сделать динамический расчёт порядка действий. Обычно ведь как бывает в пошаговой боёвке (а мы вряд ли захотим делать текстовый рил тайм): есть раунды, ходы и инициатива. И все действуют по очереди, сравнительно фиксированной. Это удобно для настольной игры, но когда к вашим услугам вычислительная мощь компьютера, зачем себя ограничивать?
Например у данного персонажа тычок кинжалом занимает 0.7 секунды. Принимаем от него заявку на тычок и ставим в очередь на исполнение. Другой машет мечем за 1,5 секунды. Ставим в очередь и его. Через 0,7 секунды резолвим атаку кинжала и принимаем следующую заявку на действие. При этом мы знаем что именно делает противник - он в данный конкретный момент машет мечем. И кстати ещё не факт что даже смертельная рана кинжала остановит этот удар идущий через 0,8 секунды. Поэтому тот тип что с кинжалом возможно положит дальше в стек уклонение и если успеет то вывернется из под атаки.
Получается что-то вроде сражения на "активной паузе", только в текстовом виде.

Но хотя такой подход представляется достаточно реалистичным, на практике у меня из него не выходит пока создать стройную систему которую можно скормить программе. Очень важными оказываются перемещения и взаимное расположение бойцов в пространстве а с реализацией этого момента все не просто.
Сейчас думаю о всяких извращениях типа покерной или пазловой боёвки, но это сильно уводит нас от впечатлений самого боя и заставляет концентрироваться на довольно абстрактной мини игре.
У кого есть идеи? Может быть примеры интересных реализаций боя близких по духу тому чего я хочу? Или может я просто откусил больше чем смогу прожевать и надо сделать простую и немудренную рубилку?


71 комментарий:

  1. 5) Хочется поддерживать несколько участников боя с каждой стороны, но не превращать бой в столкновение двух армий. Возможно двое в партии игрока - герой и помощник. Может трое: герой, помощник и питомец. При этом сделать так чтобы был какой-то смысл ходить и в одиночку, а не обязательно "фуллпати". Вариант: делать толстых монстров такими, чтобы они били сразу по всем союзникам. Но нужны ещё механизмы.

    ИХМО Лудше это регулировать экономическими и социальными составляющими а не только боевкой. Как пример сложностью сбора партии или заведения питомца, чем больше партия тем больше нужно денег на ее поддержания (способов масса , питание лечение ремонт снаряжения и тд.) и траты на экипировку но в замен получает социальную составляющую . Идеально задействовать случайные события , допустим вы идете по опасному участку и слышите приближающийся шум:
    1) вы один: прячетесь в укрытие а когда противник проходит мимо вас вы на него нападаете чем добиваетесь преимущества.
    2) вы с напарником : места для того что-бы укрыться двоим нет и дальнейшие действия зависят от напарника и его умений.
    3) вы и питомец : услышав шум питомец падает голос что-бы вас предупредить (хорошо что-бы его действия зависели от его прокачиности и чем дальше тем полезней он становился) и на этот шум приходят еще противники. Либо вы ведите питомца с чем-то в зубах и кого то его преследующего , присмотревшись вы понимаете что это одноногий скелет а в зубах питомца нога этого скелета.
    4)"фуллпати" : Вот тут чем больше народа тем больше случайных событий в начале игры больше отрицательных к концу положительных.
    Тогда будет более интересно "фуллпати" - в начале игры больше геморроя к концу гораздо проще. Одному игроку проще в начале игры но чем ближе к концу тем сложней.

    ОтветитьУдалить
    Ответы
    1. Я сейчас говорю о регуляции именно в рамках боевой системы.
      Насчёт стоимости содержания и снижения скрытности я думал, это будет конечно. Но надо понимать, что пауэр-плеер наберет достаточно ресурсов чтобы нарастить количество людей в группе, если это даст ему приемущество.
      Я не хочу насильно ограничивать игрока и теоретически планирую механизмы даже для сбора армий. Просто это будут разные системы боя. Если у тебя группа до трех человек, то там идёт индивидуальный бой (то о чем мы сейчас говорим) если больше - это уже тактический уровень где вопрос победы и потерь решается на уровне менеджмента ресурсов.
      Вопрос в другом. Вот если у нас максимальный размер партии скажем трое. То игрок всегда захочет ходить втроём, потому что трое явно сильнее чем один. И балансировать энкаунтеры придётся на троих. Но тогда в случае если игрок оказался один, эти энкаунтеры будут его раскатывать в лепешку. А возможность действовать самостоятельно, без помощников мне кажется критичной.
      Внешние факторы такие как простота содержания, улучшение скрытности и исходящие из неё возможности атаковать неожиданно в спину автокилом или начать бой со снайперской фазы это хорошо. Но надо подумать над дополнительными механизмами. Хочется чтобы у игрока был не просто формальный выбор вариантов, один из которых must have, а реально сбалансированный и дающий разные но равноправные стили геймплея.

      Удалить
    2. То игрок всегда захочет ходить втроём, потому что трое явно сильнее чем один.

      Единственное что приходит на ум это маневренность на поле боя. Чем больше людей тем лудше держать строй (я понимаю строй из 3 человек смешно но как то-то так) боец держит оборону а дистанционного наносит урон но двигаться противопоказано иначе будут мешать друг другу. А вот одиночка может двигаться зайти сбоку и работать по уязвимым местам. Но вот как это реализовать даже не знаю.

      Удалить
    3. А по принципу дьяблы нельзя?
      чем больше пати, тем звернее любые мобы, но больше плюшки и награда. Да и социалка кочается, типа общения, спасения жизни и прочих радостей типа "постоять на стреме пока кореш справляед нужду, чтоб никто лишний его за что-нить не тяпнул"

      Удалить
    4. Ну в дьябле эта пати живые игроки. А тут мобы под твоим управлением. Так что всю выходящую социалку надо делать на скриптах и особого богатства общения там не предвидится )

      Мне не очень нравится идея балансировать игру так чтобы монстры становились сильнее и многочисленнее при росте силы и численности группы. Это сводит на нет смысл увеличения своей силы. Если монстр тебе равен, то к чему быть сильнее?

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

      Удалить
    6. По-моему переусложнение. И попахивает jRPG стилем.
      Я не против синергии нескольких действий, но именно комбо в стиле смешай фаербол с гаст оф винд и получи огненный шторм мне как то не очень по вкусу.

      Удалить
  2. Если в бою должно учитываться положение персонажей в пространстве, то мне видится только трёхмерная сетка. Не обязательно делать её кликабельной, достаточно контуров персонажей, их оружия и препятствий типа стен, мебели и т.д. Расположить её можно, как вариант, отдельным окошком, а в основном окне картинки обозначающие собственно бой, ранение, отсечение конечности, убийство.
    А управлять этим можно так как ты и предложил:
    Укол кинжалом в правой руке в шею противника №1 (0,7 секунд) (смертельная рана)
    Противник №1 наносит удар двуручным мечем справа-вниз (относительно себя)(1,5 секунд)
    Уклонение влево-назад (0,8 секунд) (неудача, отсечение кисти с кинжалом)

    И всё это обозначать на схеме.

    ОтветитьУдалить
    Ответы
    1. Слишком сложно. Я хочу текстовый вывод. Картинка тоже может быть но сугубо флейворная.

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

      Удалить
    3. Да, действительно сложно описать взаимное расположение текстом. И ещё сложнее понять. Вот почему я не буду так описывать.
      Но это не упрощает вывода в виде графической карты. Поэтому так я тоже делать не буду.
      Нужно что-то более простое или я убьюсь на такой боевке.

      Удалить
    4. Тогда лудше отказаться от тактической составляющей , представить текстовые шахматы выше моего понимания. И тогда чем больше народу в партии тем ты сильней.
      По поводу брони и отказа от хп , тогда можно ввести ранения. То есть обычные попадания повреждают выносливость (живучесть) и броню ,в случае если персонаж получает много повреждений он теряет сознание (от потери или просто обессилив). И критические наносят раны которые наносят серьезный вред здоровью (сломать руку молотом и тд.) которые ухудшают характеристики или смерть от нескольких серьезных ран (даже если ты полон сил). Браня помимо уменьшения урона выносливости (живучесть) уменьшает шанс получения серьезных ран. Порезы и ушибы лечить на месте а серьезные (критические) только у врача. Соответственно оружие делится на то которое наносит больше урона выносливости (живучесть) и броне и то что имеет более высокий шанс нанести серьезное ранение. Мечем наносится больше вреда броне и выносливости (живучесть) (так как погнет или прорубит броню и оставляет на теле ушиб и порез). Рапира наоборот практически не повредит доспехи но попав в стык брони нанести серьезное ранение (например повредив локоть и тем самым лишит противника руки).

      Удалить
    5. Про систему ранений я писал же - да она и будет. Только не с "живучестью и броней", а реалистичная. Получил кулаком в глаз - синяк под глазом. Получил топором по шее - прощайся с головой.
      Проблема тут не в системе повреждений. Проблема в тактике боя.

      Удалить
  3. Можно ввести стихии и резисты. Цена вопроса - 10 параметров у каждого объекта. Либо два массива. Зато как расширяется геймплей) Заточил меч на огонь, встретил моба с огненным имьюном (immune) и обосрался) (Эх, Дьябла,Дьябла...)
    Если говорить про структуру , то имхо бой лучше вынести в отдельный модуль который будет управлять параметрами переданных ему объектов (читай : пати) и сделать пошаговым дабы не обрести большой геморрой и не забить в дальнейшем на всё. Удары выстроить в очередь в зависимости от времени - у кого меньше параметр тот и бьет первым. Расчлененка затруднительно..
    Вообще если посмотреть в общем виде то любой удар или умение сводится к сумме которую надо вычесть из ХП кого нибудь..
    Ели подумать , то можно ввести базовые классы. Какие нибудь танк,хил , дд (стелс,хеви). В общем то это ведь всего лишь ращличие в параметрах и наборах умений.
    ХЗ, может еще у кого то будут мысли..

    ОтветитьУдалить
    Ответы
    1. Система ХП меня изрядно вымораживает. Я за много лет что занимаюсь ролевыми играми так и не смог сформулировать непротиворечивой и хотя бы условно реалистичной системы на хитах. Приходится делать такие надстройки, что хиты потом можно просто убирать )
      Разделение на классы имеет серьёзный смысл именно в рамках группового взаимодействия. При партии их троих где один - собака, это не слишком осмысленно. Могут быть разные стили игры, и разные билды персонажа - да. Но классы имхо тут не нужны.

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

    ОтветитьУдалить
    Ответы
    1. Думаю: надо ввести такое понятие как "мастерство владения" каким либо оружием или использовать какие-либо приёмы, характерные для этого оружия.То есть допустим, что тот с ножом может уклониться от шпаги и просто после подойти на удобное расстояния для удара или же нож можно метнуть.

      Удалить
    2. Ну так рич он и в Африке рич. DnD на это отвечает просто: у кого короче - тот получает оппортунити. Можно разбавить реакцией и различными защитными стойками, но последнее опасно перегруженностью уже.

      Удалить
    3. 2Денис
      мастерство владнния оружием конечно будет. Но это не решает проблемы. Как и отдельные приёмы. Это всё бантики, а мне нужна концептуальная основа.

      2One
      В африке он может и рич, но у нас тут не африка. С каких это пор в D&D считается что шпага это оружием с ричем? И в какой редакции рич даёт опорты??? Третью и ниже я уже подзабыл, пятерку видел только в раннем виде, но в четверке такого точно нету, разве что извратиться с treatening reach, но это редкий случай.
      Не говоря уже о том, что в рамках концепции где каждый удар рассчитывается до долей секунды, трудно реализовать ОО. Это что получается - посреди своего замаха топором по левому гоблину, ты быстро пропишешь этим же самым топором не прерывая размаха левому гоблину который на тебя с кинжалом лезет?
      Опорты это всё-таки абстракция, а тут нужно совмещать действия, так чтобы встречная атака шла вовремя и надвигающийся противник с коротким оружием на неё напарывался. Сложно.
      Что значит "разбавить реакцией и защитными стойками".

      Удалить
  5. Как и в реальной жизни , шанс ударить зависит от ловкости)

    ОтветитьУдалить
    Ответы
    1. Ингвар, маловероятно)))) А от выстрела кремневого пистоля, например?

      Удалить
    2. Ну стрельба и противодействие попаданию по себе от ловкости тоже безусловно зависит. Я про другое. При чем тут это вообще?
      Капитан очевидность в треде? Что это утверждение даёт в решении поставленных вопросов?

      Удалить
    3. Завести параметры бойца. Сила, ловкость , реакция , удача.
      Если мы говорим о какой то более менее серьезной боевке , то без них никуда имхо.

      Если ловкость у тебя ни к черту , то нож тебе только для красоты нужен. Если же ловкость нормальная + реакция , то ты можешь отклонить или избежать удар , сблизиться и ударить сам.

      Удалить
    4. Ингвар, я тебе про Федота а ты мне про Емелю.
      При чём тут атрибуты? Нет проблемы ввести ловкость или силу. Проблема в том как построить боёвку на концептуальном уровне!

      Удалить
  6. Одним из вариантов решения проблемы hp является разделение живучести персонажа. Т.е. у него есть некая защита, которая выглядит так же как эти самые hp - сколько то очков. Пока они у него есть, удары отнимают эти очки снижая зашиту. А вот если защиты не осталось, удар уже реально достигает цели и имеет шанс нанести повреждения.
    Но сразу возникает вопрос. Сколько защиты должно снимать какое оружие? От тяжелого топора вроде легче увернуться, чем от стремительного копья. Но с другой стороны топор и так ограничен из-за малого количества атак в единицу времени, а тут мы ещё и его потенциал пробития защиты снижаем. Опять начинают рулить легкие виды оружия.
    Опять же, критерии снижения защиты должны быть иными чем критерии тяжести повреждений при попадании. Заводить разные показатели для вреда по защите и по тушке? Возникают дополнительные сложности. Опять же как всё это балансировать?
    Чем больше я думаю над всеми этими вопросами тем больше хочется делать боёвку на более абстрактном и условном, но постом принципе. ((

    ОтветитьУдалить
    Ответы
    1. Логически: меч должен снимать средне броню, кинжалы вообще её игнорировать(+ высокий шанс крита), боевые молоты - много.

      Удалить
    2. А какую-нить физическую усталость прикрутить нельзя? Что топорм, что ножиком без долгого умения долго не помашешь, напрашивается оружейная специализация, да и материалы и сплавы тоже(попалось слово бластер). Тут уже может появиться имба-топор легкий, прочный и требующий меньше времени на взмах(которое может стать меньше от привычки махать этим типом железа). Возвращаясь к выносливости-усталости-бодрости ее же уменьшают пропущенные тычки от противника (хотя и косорукий кореш тоже задеть может(а может это предательство и заговор О_О)), что приводет к усложнению выполнения действий. Если армор и хп, то чтонить с высокой проникающей способностью или большой массой коцает и броню и хп, а все остальное не коцает хп, пока не съест армор (а тут и магический может быть, пока его не проковыряешь - соси лапу) или коцающий тушку тем больше, чем меньше на нем броника.

      Удалить
    3. Я думаю что оружие должно повреждать броню и при этом наносить некий урон: например у топора урон 10, а у противника 20 НР и 8 брони, то удар нанесет 2 урона по противнику и и какое то количество урона брони. После удара останется 18 НР и 7 брони.
      А если бить кинжалом то у кинжала скажем урон 5 и высокий шанс крита, но он не может нанести урона броне. Соответственно пока другим оружием не вскроешь бронь, кинжалом по броне бить бесполезно

      Удалить
    4. Нет, броня это другое. Под защитой я имел в виду уклонение, блоки, прикрытие объектами на местности. А броня считается уже при успешном попадании - спасла или не спасла от прошедшего удара.
      Сюда же хочется вписать попадания по разным частям тела прикрытым разной броней.
      Сверхлегкий топор теряет значительную часть своей эффективности. Да ты машешь им быстрее, но энергия удара от массы растет значительно быстрее чем от скорости. Плюс скорость там возникает больше за счет длинны рычага и вынесенного вперед веса, чем легкости оружия. А физиологические параметры собственной мускулатуры по скорости ты не проеодолеешь.

      Удалить
    5. Да здравствует заточка лазером до толщины одного микрона!!! Ну или черепа для трона черепов и цепное оружие в студию))))
      Согласен - с топором лоханулся)))

      Удалить
    6. В играх этого автора достаточно интересная боевка,идея с зашитой вместо хп есть в этой игре,пока не пробьют защиту шанс попасть по противнику очень низок. Правда все на лунном,но достаточно быстро к боевке привыкаешь.

      http://pornolab.net/forum/viewtopic.php?t=1797183

      Удалить
    7. Мои мысли один-в-один.
      Моё решение: Да, разные показатели у оружия. Базируются на поражающей способности и угрозе.
      Поражающая способность - это то, насколько легко оружием ткнуть во врага.
      Угроза - то, насколько тяжёлым для врага будет этот тычок.
      И нет, ничего критичного ни с лёгким оружием, ни с количеством показателей (один дополнительный) тут нет.
      Тут другая проблема, в двух ипостасях.
      1. Использование оружия с высокой поражающей способностью, чтобы снять защиту, и добивание оружием с высокой угрозой.
      2. Необходимость (при наличии такой возможности) постоянного выбора между тем чтобы уклоняться от удара (тратить защиту/хп), или принять удар, чтобы уклониться от более опасного оружия. И этот выбор придётся делать часто и постоянно, что очень неудобно.
      ---
      Значимость тяжёлому оружию может придать возможность нанесения критических повреждений в обход ХП.
      Хочется уйти от этой возможности, как от непрогнозируемой, но это сведёт на нет значение тяжёлого оружия.
      Вариантом может послужить нанесение повреждений в корреляции с оставшимися ХП.

      Удалить
    8. Для чего в бою служит топор? Прежде всего - это рубящее оружие, рассчитанное на пробивание брони среднего типа. И лёгкий топор не особо теряет в эффективности, по сравнению со своим болим собратом - им просто проще бить в ближнем бою и плотном строю. А его большой собрат подходит для короткого боя на более дальней дистанции, но в ближнем бою теряет эффективность.
      Для чего служит копьё? Опять же, прежде всего - это древковое оружие, рассчитанное на строй, в основном, и для удержания вражеской конницы/пехоты на определённом расстоянии от своей пехоты.

      Ваша проблема с боёвкой, г-н Охотник, в том, что вы хотите противоречивых вещей. Невозможно одновременно запихать реалистичную модель поведения оружия и то, что система будет воспринимать всех врагов/союзников одинаково. На том же скелете - что ему сделает нож или копьё? А что они же сделают с человеком? Клевец так же бесполезен против скелета, будь он хоть в сверхтяжёлом доспехе, но для человека опасен, а вот булава опасна для обоих.

      Удалить
    9. 2AlvurElf
      Что значит "воспринимать одинаково"? Они должны писаться по одному шаблону, чтобы любое действие можно было обсчитать в отношении любого существа. Но это не значит что результаты обсчёта будут одинаковыми. Иначе бы разные существа не были разными, верно?
      Например тот же скелет может наткнуться на суккуба который будет его соблазнять. И программа не должна в этом случае выдать ошибку. Она должна выдать результат что у скелета не растёт возбуждение, потому что у него например параметр self.arousible == False. И трахнуться они не смогут, потому что у него self.dick = None.
      Но какие то переменные там быть должны. И программа должна понимать что с ними делать и как реагировать.

      Так же и с вредом. Надо уметь обсчитать удар топором и по человеку, и по скелету, и по желе, и по призраку бестелесному. Каждому со своим результатом, но в рамках единого подхода.
      Вот что я имел в виду.

      Удалить
    10. Если бы проблема была в этом (((

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

    ОтветитьУдалить
    Ответы
    1. От рандома сложнее всего отойти для огнестрельного оружия, хотя тоже можно. Но видимо все-таки придется его вводить.
      Я то имел в виду ситуацию когда в зависимости от условий ты точно можешь просчитать попадет данная атака или нет и какие вообще будут последствия. Без "броска кубиков" так сказать.

      Удалить
    2. От рандома не уйти полностью, потому что даже в реальном мире он вездесущ. Даже ученик способен победить мастера, если тот внезапно заболел, чихнул или просто подвернул ногу о попавшийся камень. Но даже если перейти на ситуации с полным исключением случайности - в определённых стиуациях, допустим, когда твои ловкость и сила всего на 1 меньше требуемого - твой враг становится абсолютно сверхнеуязвимым, а это неправильно.

      Удалить
    3. Ну вот шахматы - игра без рандома. И никто не говорит что скучно. Офигенная игруля. Да мат иногда можно увидеть за два хода до собственно мата. В этом есть даже свой цимес, не страшно.
      Система без рандома строится и способов куча. Масса таких игр настольных и ролевых имеется. Вопрос что делать в моём конкретном случае?

      Удалить
    4. В шахматы элемент рандома вносит сам играющий. Потому что из 18 возможных первых шагов он всегда выберет один.
      В вашем же случае от рандома уйти будет... Сложно. Потому что если будут статы, типа той же ловкости - должны быть и криты, шансы попадания, шансы уворота. Это не сама функция рандома, как таковая, но тем не менее.

      Лично я бы посоветовал сначала определиться со статами и всеми барами - будет ли у вас ХП бар, или только прочность брони, бар маны, какие статы для чего нужны и, как следствие, на что влияют, а уже потом думать - будет ли человек с силой и ловкостью 10 убивать орков с силой и ловкостью 15.

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

      Удалить
    6. А вот это вопрос к системе повреждений. А если быть совсем точным, то к тому, как система посчитает твой удар. То есть, если ты бил в лицо, а попал в горло - ясен пень убил. Это приводит вас к боёвке, как в старых браузерных играх(типа арены или кровавого мира), только ещё более замудрённой. Нужно ли оно?
      И вообще, сколько на человеке смертельно опасных точек? Исключив общеизвестные сердце, шею, живот, мозг, остаются артерии на ногах в паховой области, ибо фиг там их чем прижмёшь, позвоночник, лёгкие... И все не применимы к определённым монстрам. К тем же скелетам, у них единственно опасное место для них - позвоночник, а так, чтобы пришибить такого врага - надо размолоть его в труху.

      Удалить
    7. Система повреждений не проблема. Проблема в системе попаданий. Но я решил всё-таки забить на тактику и делать на рандоме. Иначе слишком сложно выходит ((

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

      Удалить
    9. Это на питоне придется делать. В виде классов (объектов).
      А вот что мне на RenPy пригодилось бы, так это помощь в освоении screen language.
      Например ты можешь воспроизвести интерфейс экран дома ВП на RenPy?

      Удалить
    10. Нет, я не работал на RenPy или питоне... Ну точнее код не писал, только переводил заинтересовавший меня проект. Так что с кодом я не смогу помочь, только с текстовыми описаниями, увы.

      Удалить
    11. Хотя, если подумать и порыться, то наверное смог бы, потому что та ВН в основном состояла из подобных экранов...

      Удалить
  8. Возможно, вам подойдет система S.P.E.C.I.A.L(сами знаете откуда)?

    ОтветитьУдалить
    Ответы
    1. Ни разу. Там нужна тактическая карта. Кроме того идея очков действия не менее порочна чем идея хит-пойнтов. Не говоря уже о том что тамошняя расписка персонажа никак не увяжется с тем что мне нужно.
      Фол хорошая игра, но игромеханика там ни к черту.

      Удалить
  9. Можно сделать в виде карточной битвы. Приходят в руку карты с действиями, и их можно разыгрывать. В конце раунда рука добирается до максимума. Битвы будут разные из-за разных начальных карт у игрока и оппонента. При одних раскачанных навыках приходят карты одного вида, при других - другого. Одни карты можно играть на ближней дистанции, другие - на дальней. Ранили - эффект карт слабеет. Упала мораль - падает максимально количество карт в руке, сужаются варианты действий. Всё можно проработать при желании.

    ОтветитьУдалить
    Ответы
    1. Можно то можно. Только это очень удаляет нас от ощущения того что конкретно происходит в мире игры.
      Игрок думает уже не о драматичных сценах битвы, а о том какую карточку выбрать. Я писал что хотелось бы этого избежать по возможности.

      Удалить
  10. 5-й и 7-й пункты
    При одинаковой модели для для противников и союзников это затруднительно. Единственное что мне пришло в голову это искусственное ослабление глав. героя в случае если у него есть компаньоны.
    К примеру: если у нас все завязано на время, то мы можем тратить его на приказы спутникам, а сами они пусть будут тупые) Или тратить магию на голема, фамилиара итп

    9-й пункт
    А чем так плох рандом? Без него возникает проблема: если ты мажешь всеми своими ударами по гоблину, то при всем желании даже не поцарапаешь его, а если и он тоже мажет то вообще deadlock получается)

    Динамический расчёт порядка действий звучит интересно. Только в условиях битвы 3 на 3 и исключительно текстового вывода учёт взаимного расположения ломает мой мозг даже в теории. Нужно либо пренебречь взаимным расположением либо вводить сетку(ИМХО конечно)

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

    «Под защитой я имел в виду уклонение, блоки, прикрытие объектами на местности. А броня считается уже при успешном попадании - спасла или не спасла от прошедшего удара.»
    А почему так? Разве не логичней сначала считать уклонение и блоки, а при успешном попадании ломать броню и калечить персонажа. В этом случае прочность брони будет аналогом ХП и все будет реалистично.

    ОтветитьУдалить
    Ответы
    1. 9. Это зависит от построения системы. Не надо делать её способной на дедлоки, вот и всё. Рандом плох тем, что вместо игры в стратегию и умение ты играешь в кости - повезет/не повезет.

      В том то и дело что со взаимным расположением сложно. Хотелось бы без него обойтись.

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

      Ну будут хиты у брони, а не у персонажа. Это поменять шило на мыло. Хиты не подходят. Они не отображают реальной картины. Броня с одной маленькой дырочкой может отлично защищать от дальнейшей рубки мечем. Только вот внутри брони будет уже проткнутый труп.
      Я не против идеи повреждения и выхода из строя брони и оружия, это опять же бантики, не имеющие отношения к ключевому вопросу.

      Удалить
  11. По поводу боя в пати, возможно имеет смысл не прямое управление всеми персонажами, а отдача приказов? Вначале просто говорить что делать, затем по мере прокачки использовать условные обозначения, жесты, телепатию наконец. Но при этом сопартийцы должна сами быть под управлением ИИ, а противники противодействовать услышав твой приказ (перехватив телепатическую волну).

    ОтветитьУдалить
    Ответы
    1. Djadavin, реализуй это, если это не сложно будет, а мы заценим....
      Тут надо учитывать:
      1) инициативу сопартийца(в каком порядке будет идти бойня)
      2) фактор агра, при котором сопартийцу будет наплевать на приказ и будет идти на вынужденную атаку.
      3) "телепатию" логичнее заменить на "премию"? (А то прям Люди-Х получается с Профессором Ксавье) То есть типо назначаем цену за голову неугодного противника, и тогда твои товарищи решают: атаковать его или нет)))))
      4) жесты можно реализовать... но как, просто "показать пальцем на него" или же сделать полноценную систему жестов, вплоть до того как должны изгибаться пальцы, что б показать правильный знак?

      Удалить
    2. Совсем необязательно их подробно расписывать. Достаточно трёх навыков:
      1). Голосовые команды - на низком уровне говоришь прямым текстом что делать, на высоком используешь условные команды на разных языках (расписывать команды необязательно, это просто сравнение навыков: твоего - отдать команду максимально ёмко и непонятно для противника, и противника - расшифровать этот бред)
      2). Незаметно подать заранее условленный знак - чем выше навык, тем незаметнее для противника
      3). Отдать мысленный приказ - если среди противников есть маг, то он может его перехватить. Чем выше навык, тем сложнее ему это сделать.
      Пример 1: рубятся две пати, распределение попарно, один противник против одного союзника.
      Отдать команду - союзник 1 - жестом - атакуй противника 1 в голову
      Провести атаку в корпус

      Проверка умения против противников 1 и 2 (противник 1 - успех, противник 2 - неудача)

      Союзник 1 отпрыгивает от противника 2 к противнику 1 и наносит удар в голову (успех)
      Игрок наносит удар в корпус (успех) + бонус отвлечения
      Противник 2 разгадывает манёвр и наносит союзнику 1 удар в корпус (успех) + бонус отвлечения

      Пример 2. У противника есть маг
      Перехват телепатического сигнала: По команде отступите ко мне.
      Отдать приказ: По команде собраться вокруг меня (отрядного мага) - произнести заклинание защиты (приказать магу)
      Отдать приказ: не дать противнику разорвать дистанцию (есть вероятность что маг противника атакует не смотря на риск зацепить своих)

      Удалить
    3. Сложно. Это скорее запутывает боёвку чем даёт возможность достичь желаемого.

      Удалить
  12. Здравствуйте охотник)
    Тут у меня появились некоторые мысли и идеи....
    1)Честно скажу, не играл, но раз написано "реалистичная система повреждений", то можно глянуть и посмотреть, что да как.(Хотя как то больше напоминает это на письмо Кирилла про то где "можно грабить корованы", было кстати упоминания про отрубание конечностей)
    2)Сложновато: что б игрок думал, нужно ввести стихийную экипировку на 5 стихий(вдвое больше повреждений следующему элементу, и втрое меньше - предыдущему) по крайней мере это заставит тщательно подобрать экипу перед боем....(минус - сложно реализовать)
    3)То , что было в последнем "Вальте"? Чудно, чудесно, но всё же надо немного упростить. И наверное надо бы подумать о вариантах поражений в битве(убит - game over, вырублен - плен)
    4) Хм...
    5) Тоже вариант, у меня есть 2 предложения
    а) Участвовать в битве самому, но время от времени вызывать ассистента для нанесения какого либо мощного приёма
    б) Как в "Мече и Магии": ход первого участника, второго, третьего, четвёртого... и далее ход врага(врагов)
    6)Замечательно кстати: вместо опыта получить редкий материал из которого можно сделать, например, оружие получше, я "ЗА" такую идею)
    7)Тут пожалуйста поподробнее, что то я не понял... Как правило, все враги и персонажи должны быть гуманоидными, правильно понимаю?
    8) Магия дело интересное(Магию я пытался реализовать в КО, помните?), допустим вспомнить "медвежий захват" Варвара или "Сети" охотника чем плохи? Можно попробовать их адаптировать.
    9) Если рендом плох, можно использовать AI, комбо-приёмы для противников и экстра ходы... я не прав?

    ОтветитьУдалить
    Ответы
    1. 1) Конечно реалистичность всегда относительна, но в DF эта штука на высоте. Там реально считается по слоям вся броня, одежда, кожа, мышцы под кожей, органы, кости. Все по физике считается, в зависимости от веса, плотности и прочих параметров столкнувшихся материалов. И повреждения получаются в результате всех этих обсчетов хоть синяк, хоть выбитый зуб (указывается какой изменно зубы вылетел даже), хоть отбитая почка, хоть кровотечение из проткнутой бедренной артерии.
      2) Нет, реализовать "элементы" проще пареной репы. Но на одном этом банальном и избитом трюке строить систему экипировки нельзя.
      3) Варианты после поражения - дело десятое. Это не сложно. Меня сама боевка волнует.
      а) не реалистично, выбивает из атмосферы.
      б) и как это решает вопрос? Это стандартная схема инициативы, куда более примитивная чем описанный мной динамический стек действий.
      7) Нет. Они могут быть любыми. Но любое существо должно с точки зрения скрипта иметь возможность провзаимодействовать с любой задачей и выдать не ошибку а некий имеющий для скрипта смысл ответ.
      9) АI, комбо и экстра ходы с рандомом никак не связаны

      Удалить
  13. Над этим уже давно бъется куча народу. Будешь пытаться сам придумать велосипед - ухнешь на это все время, которое стоило потратить на то, то у тебя действительно получается лучше других (моделирование психологии, например), и результат получится средней паршивости.

    Так что, лучше взять что-то готовое (Riddle of Steel, например), по крайней мере за основу.

    ОтветитьУдалить
    Ответы
    1. Если бы я не любил изобретать велосипеды, вы бы сейчас вместо в Вальта так и играли в SlaveMaker )
      А идея брать для компьютерной игры игромеханику настольной - порочна. Есть большая разница между киданием кубиков и передвижением минек по полю вместе с друзьями из школы и игрой с компьютером который общается с тобой только текстом но зато может в доли секунды рассчитывать число пи до сотого знака после запятой.
      Я очень много лет занимаюсь настольными играми, повидал массу систем, но не могу назвать ни одной которая подходила бы для указанных мой задач.

      Удалить
  14. Тоже этим занимаюсь, у меня получилась система основанная на крови. Сила удара, вероятность уклонения и тп зависят от состояния и физической развитости частей тела, участвующих в движении. При этом в обычном ударе участвует не только рука но и в какой то степени ноги, спина плечи и тд. Пропущенные удары в зависимости от силы и типа оставляют порезы, кровотечения и тд. От потери крови и ран состояние отдельных частей тела снижаются и в результате удары, уклонения и блоки становятся менее эффективными. Бой завершается при смертельном ударе, превышении болевого порога или потери критического кол-ва крови. Противники в зависимости от подготовки будут использовать разную тактику. Воины например будут тщательнее защищать свою голову и жизненно важные органы, и с большей вероятностью будут атаковать эти точки. Если один противник будет превосходить физически второго, то он(1) с легкостью сможет наносить серьезные раны второму и успешно уклоняться от его ударов. По идее бои должны получится быстрыми и жесткими, важно будет учитывать тип оружия и тактику противника, вместе с тем система позволяет нанести пару серьезных кровоточащих ран и уйти в глухую оборону, ожидая пока враг ослабнет.

    ОтветитьУдалить
    Ответы
    1. А если ты дерешься со скелетом, стальным големом, огненным элементалем или желатиновым кубом?

      Удалить
    2. Да... Представляю такую картину маслом: голем склеил ласты от обильной кровопотери, скелет сбежал с поля боя со страху и т.д.
      Это собственно вынуждает на противников вешать доп-атрибуты типа как: "нежить", "голем","элементаль" и прочее и адаптировать приёмы под эти атрибуты.

      Удалить
    3. Ну это не страшно. Вполне решаемый вопрос. Только надо систему изначально строить более универсально, а не концентрировать отдельно на такой особенности как кровепотеря.

      Удалить
  15. Сам бьюсь над "реалистичной" системой.
    И, по опыту, с каждым шагом жертвуется всё больше "релистичности" в пользу даже не эффективности, а возможности реализации.
    ---
    1. Моё решение ХП и повреждений (может быть, будет полезно):
    ХП отражают некую сверхусловную тактическую характеристику бойца - запас возможностей избегать повреждений любым из способов.
    Ранения - это уже серьёзные дела - поражают основные характеристики - подвижность, силу, выносливость, влияющие уже на течение боя. По сути, получение ранения - шаг к поражению.
    В связи с этим у оружия, как и у брони, есть разные характеристики.
    ---
    2 -3. Реализуется уже после самой системы. Есть много приёмов. Элементы/сопротивления, статусы, тактика, кармашки с боеприпасами, обманные манёвры. Тысячи их!
    ---
    4. Пусть считает. Задача, как я понимаю, в том, чтобы прикрутить текстовый процессор к базе.
    ---
    5. Ну, во первых - зачем ходить в одиночку? Ты сам пошёл бы в Подземелье Семи Проклятий в Горах Безмолвного Ужаса в одиночку?
    Если надо - то выгода хождения в одиночку, - прежде всего, скрытность. И иные различные навыки, доступные лишь одному персонажу. Битва в одиночку - это (почти) всегда невыгодно.
    Про "почти": можно вспомнить гастов и бехолдеров, использующих лучи смерти, паралича, и окаменения, только в определённом угловом секторе. Чем больше жертв его окружает, тем больше он сможет вывести из боя. Ещё вариант - это честь. Поединки с вызовом, перчатками и правилами.
    У меня в бою участвуют не больше трёх персонажей с каждой стороны с возможностью отступить в резерв или быть призванными из резерва. (Это, кстати, одна из вещей, вызывающих много головной боли.) Есть вариант, что резерв обеспечивает некоторый тактический бонус сражающимся. (Есть ещё более ужасный вариант, в котором резерв может создать рядом ещё одно поле боя, но у меня даже от упоминания этого начинают болеть зубы).
    ---
    6. Тут всё решает чистая элементалка. Если ты идёшь охотиться на элементалей огня - не бери огненный меч, и бери защиту от огня.
    Сделать противников, обладающих НА САМОМ ДЕЛЕ смертельными способностями, противостоять которым можно только с правильной экипировкой. Это позволит добавить такой (лично мною любимый) элемент, как предварительные исследования и сбор информации. Можно даже менеджмент экспедиции сделать, если надо.
    ---
    8. Вот это самое интересное. Это и есть базис системы.
    Многие системы решают подобную вещь предварительным описанием каждого приёма, включающим используемые против него виды защиты. И, надо отметить, именно такие и работают. Прочие, "реалистичные", существуют лишь в мечтах их авторов.
    Поделюсь своим вариантом, опять же, только в виде того, что может подтолкнуть к хорошим мыслям:
    Каждое конкретное действие на поле боя - это заранее созданный в отдельном модуле приём. Приём состоит из базового движения, с навешанными на него базовыми действиями (произнесением заклинаний, захватами, использованием предметов, и ударами). "Движения" и "действия" имеют пререквизиты в виде экипировки или статуса. Таким образом, перечень приёмов практически бесконечен.
    ---
    9. Рандом нужен. ИМХО. Без него скучно. И, если говорить про реалистичность, неверно.
    Решения принимаются далеко не случайно, и твои наработки по моделированию поведения тут могут оказаться как нельзя кстати.
    А вот в боевой обстановке попадание в цель - вещь часто не поддающаяся никакому предсказанию.
    Для реализации нужно просто поиграть с формулой и вывести ту, которая нужна именно тебе. Простой d20 хорош на столе, но не в КИ. Ничто не мешает использовать для расчёта (d20+3d6)/d4, или, вовсе, создать свои кубики с нужными числами.
    Вариант два - ввести количество неслучайных параметров, неподдающееся простому анализу. В таком случае будет и воспроизводимость, и рандом. Но это немного извращённый подход.

    ОтветитьУдалить
    Ответы
    1. 8) Так блин. Вопрос не в том чтобы описать каждый приём, а в том чтобы понять КАК в рамках одной базы описать столь разные приёмы. Нужно создать именно базовую игромеханику, в рамках которой можно реализовывать эти разные приёмы. Именно тут и возникает проблема!
      9. Я же писал, рандом рандому рознь. Пусть рандом задаёт диспозицию, но не результат действия! Это как в bejeveled. У тебя каждый раз новая раскидка камешков по полю, она случайна. И ты не знаешь что выпадет на следующий ход. Но уже до того как сдвинуть камушек ты можешь посчитать сколько из них взорвётся и какие места освободятся. Какие из видимых камней куда встанут. А вот если бы все решалось броском кубика а не твоим умом какой камень и куда двинуть, bj стал бы скучен как игра в орлянку.
      И отвыкать надо думать в парадигме d20 или других кубиков. Библиотека рандома в питоне вполне позволяет сразу задать гаусово или нормальное распределение в произвольном диапазоне.

      Удалить
  16. Как основу можно "Загадку стали" (The riddle of steel) взять. Там и бесхитовость, и негриндовые бои, и всякие штуки вроде разной длины оружия обыграны. Недостаток один - она целиком на приёмах, т.е. надо ИИ прикручивать, который бы толково эти приёмы выбирал)

    ОтветитьУдалить
  17. Охотник если ты пытаешься сделать реалистичным бой то по идее нож никогда не выстоит против меча так как ты с ножом не успеешь подойти к врагу из-за разницы длинны оружия. Тоже самое и с полуторником против двуручного. Другой вопрос что двуручник тяжелый и нужна большая мощь чтобы им долго махать. Про Топоры я вообще молчу для боя один на один они в принципе не подходят т к ими не возможно блокировать удары. Уворачиватся в принципе конечно можно в бою на средневековом оружие но малоэфективно, в основном удары блокируются либо оружием либо щитом. Короткое оружие всегда выступало либо как вспомогательное либо в концепции тактики в которой оно использовалось, например легионеры прикрывались замкнутым строем огромных щитов, а когда подходили на близкое растояние наносили колющий удар. В концепции боя толпы на толпу это было эффективно т к враг не мог отойти назад изза товарищей напирающих взади, но в бою один на один против полуторного или двуручного меча легионер был беззащитен. Если сделать просто разницу в скорости удара, и убрать ХП, то конечно нож будет рулить т. к. удар ножом также смертелен как и удар мечом но ножом орудовать быстрее. Тут два выбора либо сделать ХП и стандартную систему, либо выдумать что то сверхнеординарное и сложное. В принципе можно придумать зону действия оружия условно разбив на пример на длинное, среднее и короткое и при бое среднего против длинного ты тратишь один ход на то чтобы подойти со средним оружием к длинному и можешь только блокировать удар, а после дерешься на равных, правда как к этой системе прикрутить время удара тут нужно подумать но можно попытатся действовать в этом направлении.

    ОтветитьУдалить
    Ответы
    1. Никогда это слишком сильное слово. Если ты взял двуручник посмотреть, а у тебя за спиной матёрый убийца с ножом подкрался то ты никогда... кхм мало у тебя шансов с двуручником против ножа.
      Я утрирую конечно, но тем не менее.
      Но в бою в чистом поле и на свету при равных противниках и прочем, конечно более тяжелое оружие имеет реальное преимущество. И это хочется отобразить. И да, я сейчас думаю что без ранжирования по расстояниям тут не обойтись.
      И надо понимать. Я не стремлюсь сделать реалистичную игру как таковую. Реализм это просто инструмент который провоцирует игрока сильнее проникнуться игровыми событиями, сопереживать. И в данном случае не столько важна фактическая достоверность, сколько ощущение того что именно так по твоим представлениям и могло бы быть. Чтобы было похоже на правду, при условии что большая часть картинки достраивается уже твоим собственным воображением.

      Удалить