A.I.M. Jagged Alliance2

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
15.12.2019 в 12:02:48

Главная Главная Помощь Помощь Поиск Поиск Участники Участники Вход Вход Регистрация Регистрация
A.I.M. « New CTH system - Presentation »
   A.I.M.
   Обсуждаем игры
   JA2 V1.13 Mod
(Модераторы: iншы, KombaT, Seven)
   New CTH system - Presentation
« Предыдущая Тема | Следующая Тема »
  Тема:  New CTH system - Presentation             Страниц: 1 2 3 4 5 6 7 8 9 Прочитано 109402 раз
bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
New CTH system - Presentation
« от 30.09.2010 в 04:02:48 »

Поскольку на форуме стал часто возникать вопрос "что такое New CtH System?" я решил сделать ручной перевод статьи, размещённой на форуме Bear's Pit пользователем Headrock и заодно разобраться самому. Выкладываю 1 и 2 часть статьи. Продолжение последует за ними.
Оригинал статьи - New CTH system - Presentation.



Как некоторые из вас уже знают, я провёл прошлый месяц в попытках переосмыслить систему Расчета Шанса на Попадание (РШП) в JA2. Эта фича, которая будет основной в HAM 4, станет самым грандиозным изменением в геймплее JA2 до сей поры. Теоретически, новая система РШП повысит реализм и возможности моддинга для оружия, убрав и некоторые слишком вызывающе очевидные эксплоиты в существующей боевой системе.
 
Эта статья преследует своей целью объяснить несколько пунктов:

  • Как работает старая система РШП (вы будете удивлены!!)
  • Что не так со старой системой РШП
  • Как работает новая система РШП
  • Дополнительные выгоды от новой системы РШП

 
Статья будет включать и несколько изображений. Пожалуйста, учтите что картинки не выверены до миллиметра, и должны восприниматься как абстрактное представление системы
...
 
Как работает старая система РШП
 
До того как мы определим как новая система будет работать, важно понять как работает старая (существующая) система.
 
Я написал статью (размещенную в разделе 1.13 Guides)(аналогичная статья "Расчёт вероятности попадания" на русском языке - прим. моё) объясняющую как вычисляется РШП с учётом множества факторов. Если вы это читали, то уже знаете что формула запутана до нелепости и очень трудна для понимания. Но настоящая проблема это не то как РШП вычисляется, а то как результат этих вычислений используется в игре для определения куда уходят пули.
 
Одно из наиглубочайших заблуждений о Шансе Попадания это то что люди верят что он означает "Шанс поразить цель". На самом деле, он только лишь часть уравнения. Если вы выпустите пулю со 100% шансом попадания (с нетронутыми настройками ini-файла это не возможно) тогда да, вы будете попадать в цель каждый раз. Однако же, если ШП меньше 100%, тогда более точное описание будет выглядет совсем по-другому.
 
вот немного псевдо-кода чтобы объяснить логику использования ШП
Quote:

ШП = объёмное вычисление, учитывающее кучу факторов и дающее любой результат от 0 до 100.
Кость1 = случайное число от 0 до 100.
Если Кость1 меньше ШП тогда
      Это точное попадание. Пуля выпускается точно в центр цели
Иначе
      Это промах.
      Радиус = Кость1 - ШП
      Кость2 = случайное число от 0 до Радиус.
      Пуля выпускается в точку, которая находится в пределах радиуса Кость2 от центра цели.

 
Первая часть ("попадание") проста дял понимания: если бросок кости успешен, пуля летит прямёхонько в центр мишени. Если на пути не будет препятствий, пуля попадёт точно в ту часть тела, в которую целились. Следовательно, с 50% ШП, 50% пуль улетит точно в центр мишени.
 
Вторая часть это то о чём большинство игроков пребывают в блаженном неведении, она разбирается с пулями которые провалили бросок и проверку по ШП. В зависимости от того насколько бросок кости был меньше ШП, пуля может пролететь в пределах определённого радиуса от центра мишени. Учитывая что радиус довольно большой (низкий ШП), или дистанция довольно велика, пуля может разминуться с целью полностью. Однако, всегда есть шанс что пуля вылетит в точку, достаточно близкую к ценрту мишени, чтобы поразить его, и это всё при том что она была определена как "промах"! Более того, с тем фактором случайности, который используется в формуле, довольно таки возможно для пули "промаха" прилететь прямо в центр цели, словно это пуля "попадания".
 
Диаграмма, иллюстрирующая этот механизм:
anim-oldCTH.gif
 
Вы можете отчётливо видеть что даже с 0% ШП, некоторые пули всё равно поразят цель, особенно на очень близкой дистанции. Конечно, на близкой дистанции ШП будет и так высоким, но смысл остаётся тем же.
 
 
Что не так со старой системой РШП?
 
С времён оригинального JA2 ШП был выликой загадкой даже для тех, кто имел понятие о том как это работает. Были инструменты для рассчёта ШП, но большинство игроков стреляли "интуитивно", так внутриигрового индикатора ШП не было. Это удовлетворяло большинство игроков, особенно потому что дальность оружия и доступность аттачей к нему были относительно небольшими, и с оригинальной упрощённой формулой эти оружия вели себя так как и ожидалось от них в игровом окружении.
 
Настоящая проблема со старым РШП обнаружилась тогда, когда JA2 1.13 предоставил намного больший выбор оружия и аттачей к нему. Теперь у нас есть оружие, способное стрелять длинными очередями и что более важно, есть оружие, способное стрелять за дальностью видимости, и снайперские винтовки, которые могут поразить цель на другом конце сектора с помошью наводчика. Эти благословенные дополнения, которые продлили жизнь JA2 на много лет, вместе с тем фактом что ШП теперь отображается полоской над целью, выявили серьёзный недостаток старой системы: оружие просто стало слишком точным для такого рода механики ШП. Оружие достигшее 99% ШП реально гарантирует поражение цели и это сильно облегчает жизнь игрокам, которые достигают такого высокого ШП микроменеджментом. Это - то что иронично зовётся "Headshot Game" - вынос фрагов с дальних дистанций с мощной оптикой, без шанса на сопротивление с их стороны. Это то, что днём просто делало дневную стрельбу очередями бесполезной вот уже несколько лет (пока не появилось Подавление в HAM), а ночью превращало бесшумные снайперки и автоматическое оружие в игровой эксплоит.
 
"Ладно, а почему просто не сделать оружие менее точным?" скажете вы. Ну, всё не так просто. Во первых, существующее оружие уже покрывает практически весь спектр характеристик. Если же мы сделаем снайперки или оптику менее точными - они станут бесполезнее обычных винтовок. Если мы сделаем менее точным всё оружие, тогда пистолеты даже на близких дистанциях станут бесполезным хламом.
 
Другой вариант, конечно, отключить полоску с ШП, как в оригинальной Джа2. Однако, опять же, изобилие оружия и возможность большинства из них стрелять за дальность видимости превратит игру в гадание на кофейной гуще. Эффект будет достигнут обратный желаемому, скрывая данные о планируемом выстреле, в то время как очевидно что для нас важна хоть какая нибудь обратная связь от наших наёмников. Алсо, видим мы ШП или не видим, оружие наше с оптикой (а иногда и без) остаётся возмутительно точным.
 
Потому решение переделать РШП неизбежно. Нужна система, которая будет использовать все возможности Джа2 1.13.
 
 
Новый РШП: основные тезисы
 
Основным принципом при создании новой системы РШП было: убрать все эксплоиты без того чтобы сделать оружие и аттачи менее разнообразными, поддерживать разумный уровень обратной связи от наших наёмников, но без того чтобы говорить насколько успешно мы можем поразить цель.
 
К нашему удивлению, решение проблемы уже есть в старой системе ШП. Точнее, оно лежит в той части о которой большинство игроков даже не подозревало: в том как программа обрабатывает пули "промаха".
 
Резюмируем: когда выстрел объявляется "промахом", пуля выпускается под случайным углом. Она может отклониться от центра мишени на радиус, определяемый тем насколько велик был ШП. Пули в бОльшим ШП обычно проходят ближе к центру мишени даже если они "промах", в то время как пули с меньшим ШП могут отклоняться довольно далеко и обычно полностью расходятся с мишенью.
 
Новая система РШП берёт эту идею и преобразует всё, что вокруг неё. В процессе, полностью выбрасывается часть, в которой пуля "попадания" всегда летит в центр мишени - что и было причиной столь высокого ШП и почему игроки могли выгадывать их выстрелы настолько точно.
 
Так что вместо системы где ШП главным образом означает вероятность поражения цели, представьте систему где ШП просто определяет насколько далеко пуля может отклоняться от центра мишени. Чем выше ваш ШП - тем кучнее будут ваши попадания. Чем ниже будет ШП - тем большее будет их рассеивание. Когда эта идея будет расширена (как вскорости будет объяснено), мы сможем создать систему где ШП означает насколько хорошо наше оружие нацелено на мишень.
 
Результат двукратный: во-первых, с учётом дальности и некоторых других ограничений, будет очень трудно гарантировать поражение цели, даже с оптикой. Во-вторых, обратная связь с наёмником позволяет нам знать насколько хорошо он прицелился, но не знать наш шанс на поражение цели. Чтобы оценить его, мы должны учесть ещё и расстояние и оптику, оба значения, которые известны нам как игрокам, но не учтены в формуле показываемого ШП.
 
Последнее - это удаление одного из самых проблематичных эксплоитов последних нескольких лет, и в качестве бонуса, делает всю систему стрелбы более реалистичной.
 
 
Новый РШП: разбиение на части
 
Как было сказано в предыдущем разделе, новая система зиждется на разбиении на части старой системы. Один компонент - "радиус промаха", будет базисом новый системы. Другой компонент, "попадание в центр", будет полностью исключен.
 
Однако, новый РШП разделит нечто, бывшее долгое время единым и неделимым: разницу между тем насколько точно нацелено оружие и насколько точное оно само по себе.
 
В старой системе, различные завязанные на точности параметры оружия были включены в РШП. Использовалось это как тупо бонус к ШП, и большинство оружия имело очень низкое значение точности (у лучших стволов доходило до 15%). Это делало различие между разными стволами небольшим и не было реалистичным. В реальности же, не важно как хорошо прицелиться из пистолета, на определённых дальностях пули будут рассеиваться и отклоняться от цели в полёте. Чем дальше - тем больше. Происходит это из-за практически бесконечного числа факторов, влияющих на пулю, как скорость ветра или пыль в стволе, которые могут повлиять на её траекторию. Более длинные стволы и утяжелённые пули увеличивают стабильность траектории (тут он слегка исказил - прим. моё), обеспечивая то что даже на большой дистанции пуля пойдёт туда, куда нацеливалось оружие.
 
Чтобы симулировать это в игре, новая система РШП польностью отделяет Прицеливание и Работу с Оружием от стрелковых свойств оружия. Другими словами, когда готовится оружие к стрельбе, мы только учитываем факторы, которые влияют на наше прицеливание. Как только спуск выжат, дело за оружием - доставить пулю к цели. Даже с безупречным прицеливанием, короткоствольное оружие будет иметь определённое рассеивание пуль по цели, а не попадание всех пуль в одну точку. Длинноствольное оружие конечно же, будет иметь подобное рассеивание пуль только на большом расстоянии, но всегда есть дистанция, на которой никакое оружие не обеспечит безупречной точности.
 
В игровых терминах это называется "качание дула" и "отклонение пули". Качание дула представляет направление в котором дуло направлено. Если оружие как следует наведено и зафиксировано, качание дула ограничено центром мишени (или очень близко к нему). Прицеливанием и навешиванием Аттачей можно снизить Качание Дула. "Отклонение пули", однако же, не может быть изменено. Оно привязано к свойствам оружия и не улучшается при прицеливании ни коим образом. Если оружие достаточно точное на данной дистанции стрельбы, мы не должны почуствовать его влияния. Но на бОльшей дистанции, пуля может оказаться далеко от того места куда мы целили. Нет ничего что мог бы сделать игрок чтобы уменьшить Отклонение Пули, исключая переделку оружия... или использование другой модели.
 
Ещё одно важное "разбиение" для ШП, то как мы вычисляем безупречность наведения оружия на цель. Вместо того чтобы запихнуть все действующие факторы сразу и использовать то что вылезло с другой стороны, теперь мы делаем два шага:
"Базовый ШП", который определяет насколько точно оружие наведено в одно мгновение (без прицеливания), и "Прицельный ШП", который добавляется, когда тратятся дополнительные ОД на прицеливание. Оба обрабатываются раздельно и объединяются уже только будучи полностью вычисленными. Как вы скоро увидите, этот метод обеспечивает огромную разницу между прицельными и неприцельными выстрелами. И те и другие будут полезными, но при совершенно разных обстоятельствах, и будут дополнять друг-друга когда это необходимо.
 
В этом месте вы наверное запутались. Не стоит. Как вы скоро увидите, система довольно таки интуитивная, и хорошо читаема даже в исходных кодах. Конечно, частично есть цель и запутать игроков так чтобы они не могли определять минимум и максимум точности в стрельбе, но в течение статьи, я надеюсь, вы начнёте понимать что новая система круче старой и по геймплею и по реализму.
 
 
Новый РШП: глоссарий
 
Хотя этот раздел будет сопровождаться картинками, может быть важно понимать несколько ключевых концепций на которые будет ссылка. Не беспокойтесь, если вы не поймёте их прямо сейчас - они приведены ниже что бы можно было вернуться к ним при освоении дальнейшего текста.
 
Базовый ШП
Некоторое число очков ШП , которое даётся просто так на каждый выстрел, представляя насколько точно наведено дуло на цель, когда оружие специально не нацеливают. Базовый ШП может быть от 0 до 30, и базируется в основном на параметрах и текущем состоянии стрелка. Средний наёмника получает около 20% ШП.
 
Предел ШП
Максимальный ШП, который может быть достигнут стрелком. Базируется в основном на его параметрах. ШП никогда не может быть выше этого предела, при ЛЮБОМ выстреле, неважно каким тщательным было прицеливание. Средний наёмник имеет предел около 75%.
 
Прицельный ШП
Полное количество очков ШП, которое достигается в результате прицеливания. Каждый уровень прицеливания добавляет часть этого ШП, при этом каждый следующий уровень добавляет меньше чем предыдущий. Негативные или позитивные факторы как ранение или мораль могут увеличивать или уменьшать его.
 
Качание Дула
Это симуляция дула оружия, которое движется туда-сюда по цели. Максимальный радиус качания прямо зависит от ШП - чем больше у вас ШП, тем меньше радиус, что делает ваши выстрелы более точными.
 
Указание Дула (Точка Дула)
Это точка, куда указывает дуло при нажатии на спуск. Она определяется случайно, в момент выстрела, и всегда находится внутри радиуса Качания Дула.
 
Отклонение Пули
Максимальный радиус внутри которого пуля может отклоняться от Точки Дула. Высчитывается после того как пуля выпущена. Точность оружия и свойства пули играют крайне важную роль в нём. Игрок ничего не может поделать с отклонением пули, кроме как модификации самого оружия.
 
Номинальная Дальность Стрельбы
Это важный фактор для всей системы, он определяет расстояние на котором пройдет бой. В практических терминах, это наидальняя точка на которой механические прицельные приспособления оружия ещё 100% эффективны. После этой точки они начинают терять свою эффективность.
 
Увеличение Прицела
Оптика теперь уменьшает Качание Дула на определённую степень, на Степень Увеличения. 2х-кратный прицел, к примеру, уменьшает Качание Дула в два раза. Однако, происходит это только на определённой дистанции - номинальной дистанции прицела, которая базируется на Практической Дальности Стрельбы. До и после этой дистанции прицел уже не так эффективен (вплоть до того что становится ПОМЕХОЙ).
 
Степень проекции
Подобно оптике, проецирующие устройства, такие как лазеры и рефлексные прицелы также имеют степень уменьшения Качания Дула. Однако, они эффективны на всех дистанциях вплоть до номинальной, после которой эффективность снижается.
 
Отдача
Оружие больше не имеет "Штрафа за автоматическую стрельбу" или "Штрафа за стрельбу очередью", которые прямо нагладывались на ШП. Вместо этого, отдача уводит дуло на определённую дистанцию в определённом направлении с каждой пулей в очереди.
 
 
Новый РШП: Продвинутый глоссарий
 
Эти концепции ссылаются на внутренние механизмы новой системы. они немного более сложны для понимания и важны только если вы хотите понимать как работает система. Понимать их обычному игроку нет необходимости.
 
Громоздкость оружия
Значение, рассчитываемое из ОД на Изготовку для оружия. Оно даёт штрафы к ШП, делая большое и тяжелое оружие более трудным для точного прицеливания на любой дистанции. Сошки помогают уменьшить громоздкость, и большое оружие нуждается либо в интенсивном огне, либо в тщательном прицеливании, чтобы смягчить этот негативный эффект.
 
Сила противоотдачи
Наёмники, стреляющие очередями прикладывают силу, чтобы стабилизировать оружие во время очереди. Это уменьшает отдачу оружия. Умело прикладывая силу противоотдачи стрелок может совместить дуло стреляющего оружия с целью даже если первая пуля ушла мимо цели. Трассирующие пули сильно помогают в этом.
 
Частота силы противоотдачи
Это - как часто стрелок может прикладывать силу противоотдачи к оружию во время очереди. Чем меньше это число, тем чаще стрелок может подправлять дуло, делая очередь в целом более точной и кучной (я бы назвал это периодом - прим. моё).
 
Точность силы противоотдачи
Точность приложения этой силы. Если сила приложена точно - дуло оружия возвращается точно в центр мишени. Иначе, оно сместится от центра.
 
Максимум противоотдачи
Максимальное количество силы, которое может быть приложено для уменьшения отдачи оружия. Если у персонажа недостаточно Максимума Противоотдачи для оружия, которое он использует, то длинная очередь из него закончится очень далеко от цели.
 
Ведение цели
Движущиеся цели теперь заметно сложнее поразить. Стрелок должен точно "провести" цель, компенсируя движение выносом дула вперёд по направлению движения. Это проще если цель движется на большом удалении. Цели делающие короткие быстрые движения по несколько тайлов на каждом ходу может быть исключительно сложно поразить. Угол между направлением движения и направлением стрельбы также очень важен.
 
Компенсация падения пули
Стрельба по целям, выходящим за дальность оружия теперь возможна. Для этого стрелок поднимает дуло чтобы пули летели навесом, а не по прямой. Это очень сложно сделать корректно, но опытные стрелки могут увеличивать таким способом дальность своего оружия вплоть до +15%!
 
 
Новый РШП: Обзор
 
Перед тем как начать основну часть стаьи с примерами, мне хотелось бы пройтись по основам системы в теории.
 
Ниже приведёно представление в псевдо-коде о том как будет работать система, где более сложные части упрощены для более легкого понимания.
Quote:

Базовый ШП = величина, основанная на параметрах и состоянии стрелка, а т.ж. некоторых других факторах. Может быть от 0 до 30.
Прицельный ШП = величина, основанная на параметрах и состоянии стрелка, а т.ж. некоторых других факторах. Увеличивается при трате ОД на прицеливание.
Предел ШП - величина, основанная на меткости стрелка. Может быть от 0 до 100.
 
Качание Дула = Базовый ШП + Прицельный ШП, оба зависят от параметров и состояния стрелка, а т.ж. факторов окружающей среды.
   Качание Дула может быть от 0 до Предел ШП.
Отклонение Пули = величина, производная только от параметров оружия.
 
Случ_КачаниеДула = случайное число от 0 до (100-Качание Дула)
Случ_ОтклонениеПули = случайное число от 0 до Отклонение Пули
 
Точка Дула = случайная точка на расстоянии, не превышающем Случ_КачаниеДула от центра мишени
Точка попадания = случайная точка на расстоянии, не превышающем Случ_ОтклонениеПули от Точки Дула
 
Выпустить пулю прямо в Точку попадания

 
Очевидно, это очень упрощённо, но смысл должен быть понятен. Мы определяем как далеко дуло может отклониться от центра мишени, потом берем случайную точку дула внутри этого радиуса. Затем мы определяем как далеко пуля может отклониться от этой точки дула и выбираем случайную точку попадания внутри этого радиуса. Затем происходит выстрел и пуля летит в точку попадания.
 
Было бы довольно глупо продолжать объяснение без наглядного примера, вот почему следующий раздел будет именно таким.
 
 
Новый РШП: Объяснение
 
В этом разделе иы шаг за шагом пройдём по различным ситуациям и увидим как игра рассчитывает куда пойдёт пуля.
 
Максимальный увод
Начнём вот с такой загадочной картинки:
 
1-MaxDevLines.gif
Перевод: желтые линии показывают предельное абслоютное отклонение пули при любых возможных условиях. Этот угол - 45 градусов перед стрелком.
 
Основываясь на ограничениях Джа2, пули не могут отклоняться более чем на 22,5 градуса в каждую из сторон от цели. Если мы сделаем больше - выстрел будет выглядет странно, с пулей, вылетающей сбоку или что нибудь странное в том же роде.
 
Эти желтые линии будут использоваться как направляющие во всем разделе.
 
Учтите что цель в этом примере расположена в точке, называемой "Номинальная Дальность Стрельбы". Это крайне важная дистанция - это наидальняя точка где механические прицельные приспособления оружия еще 100% эффективны. Как вы скоро увидите, цели расположенные ближе этой точки легче поразить, а расположенные дальше - труднее. "Номинальная" дистанция так же используется как базис для умножения когда установлена оптика.
 
Ок, я немного забегаю вперёд, так что просто давайте поглядим на наш ШП, когда стреляем по этой цели.
 
Базовый ШП
 
2-BaseCTH.gif
Перевод: Большинство персонажей получают около 20% базового ШП сразу. Это ШП без прицеливания. 20% ШП означает что радиус выстрелов уменьшается на 20%. Это показано фиолетовой дугой.
Учтите, что площадь круга увеличилась почти на 40%. Наш статичтический шанс попадания значительно вырос, но всё ещё недостаточно чтобы обеспечить попадание без точного прицеливания.
 
Посмотрите на дуги нарисованные вокруг цели. Красная показывает максимально-возможное отклонение пули от цели на заданном расстоянии. Если мы имеем 0% ШП, тогда любая выпущенная пуля может пролететь где угодно внутри этого круга.
 
Фиолетовая дуга показывает насколько наш базовый ШП (который даётся на любой выстрел за так) уменьшает радиус разброса стрельбы. Средний наёмник в Джа2 должен получить около 20% базового ШП если нет особых штрафов. Радиус стрельбы уменьшен на 20%. Это на самом деле довольно много - площадь поверхности внутри этой дуги почти на 40% меньше чем у красной - значительный прирост точности.
 
Раненый солдат имел бы меньше базового ШП. Низкая мораль, усталось, вдыхание газов и прочие факторы так же уменьшают Базовый ШП, пропорционально увеличивая радиус дуги. Учтите снова, что 0% ШП, красная дуга - абсолютный предел разброса.
 
Так как пули случайным образом распространяются по всей площади внутри дуги, на этой дистанции вы видите что шанс поразить цель достаточно мал, примерно 1 из 10 выстрелов поразит цель. Конечно, это всего лишь базовый ШП, без прицеливания.
 
Прицеливание
 
Посмотрим что выйдет если прицелиться:
3-IronSightAiming.gif
 
Точное прицеливание может значительно увеличить наш ШП. На деле, без отрицательных модификаторов, вы можете увеличить ШП до 100% любым оружием, с оптикой или без. Однако, навыки персонажа, главным образом меткость, накладывает абсолютное ограничение на то как высоко ШП может вырасти. Средний наёмник будет иметь потолок в 75%. Даже с 8-ю дополнтельными уровнями прицеливания, этот наёмник не сможет достигнуть более чем 75% ШП в любое время.
 
Синий круг показывает как хорошо оружие наведено при достигнутом пределе ШП. Как вы видите, теперь шанс поразить цель где-то 90%. Это гораздо лучше чем неприцельный выстрел, но всё равно не гарантирует поражения цели. Запомните это на будущее.
« Изменён в : 02.04.2017 в 19:40:41 пользователем: Seven » Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #1 от 30.09.2010 в 04:04:20 »

Цели ближе номинальной дальности стрельбы
 
4-IronSightAiming-CloseRange.gif
 
Эта цель стоит ближе к нам. Будучи ближе номинальной дальности стрельбы, вы можете видеть что "максимальный"  разлёт стал много меньше. Он ужался настолько что стрелок может поразить цель несколько раз даже не целясь. Пистолет или ПП на такой дальности может нанести много урона, конечно же. Заметьте, даже ТЕПЕРЬ не гарантировано 100% поражение, несмотря на близкое расстояние - но всего один уровень прицеливания легко сожмёт круг до размера, достаточного для того чтобы поразить цель в голову.
 
А вот тут ещё ближе, для иллюстрации:
5-IronSightAiming-VeryCloseRange.gif
 
Цель дальше номинальной дальности стрельбы
 
Тепрь поглядим что случится если цель будет стоять подальше.
6-IronSightAiming-DoubleDistance.gif
 
Качание и Отклонение вычисляются на номинальной дистанции, если возможно (показано на первхы трёх картинках этого раздела). Следовательно, если цель находится дальше, они оба увеличиваются пропорционально. ШП в синем круге - 75%, максимум для данного персонажа. Это те же 75% что были на картинке №3, но теперь цель вдвое дальше, и круг пропорционально в 4 раза больше! Так что, несмотря на то что достигнут такой же ШП, теперь вероятность поразить цель НАМНОГО МЕНЬШЕ.
 
Чем дальше цель, тем сильнее этот эффект. Единственный способ поразить цель на такой дистанции это, конечно же, использовать оптику.
 
Прицелы
 
Без прицеливания, оптика не оказывает никакого эффекта. Оружие только "рудиментарно" наведено на цель, время на то чтобы убедиться что оно точно наведено не затрачивается. Если совершить выстрел на этом этапе, это будет расценено как стрельба без оптики. Поэтому:
7-ScopeNoAiming-DoubleDistance.gif
 
Как видите, мы не получили пользы от установленного прицела, потому что не использовали его. На такой дальности выстрел на вскидку практически бесполезен, и чем дальше, тем хуже. Даже если ваш персонаж получает базовый ШП 30%, это не сильно помогает при очень широком "красном" радиусе разлёта.
 
Чтобы использовать прицел, мы тратим как минимум одно очко на прицеливание. Вот тут случается особая уличная магия:
8-ScopeAiming-DoubleDistance.gif
 
Используя 2-кратный прицел на его оптимальной дальности (2х номинальной дальности стрельбы) мы уменьшили наш радиус стрельбы назад до нормального. В сущности, мы стреляем на 2х дальности с 2х-прицелом так же, как стреляли бы на номинальной дальности без прицела.
 
Это касается прицелов с любой кратностью. 4х прицел на дальности в 4 раза большей номинальной, 10х - на 10-кратной дальности, и т.д.
 
Функционально, это означает что значение существующих XML, используемое для прицелов и известное как "MinRangeForAimBonus", будет заменено простым значением "ScopeMagnification". Оно определяет дальность, на которой прицел позволяет нам иметь радиус рассеивания "обычного размера".
 
Прицелы, используемые на дальности больше рабочей
 
(сорри, нет картинки для этого случая...)
 
Если мы хотим узнать как прицелы ведут себя на дальностях, превышающих рабочие, просто посмотрим на картинку №6, на которой цель расположена за рабочей дальностью механических прицельных приспособлений оружия. Радиус стрельбы (красная дуга) определён для номинальной дистанции, так что сложность поражения цели растёт пропорционально превышению дальности над номинальной. Другими словами, если цель на 1,5х рабочей дальности прицела, её в 1,5 раза труднее поразить, чем цель на рабочей дальности.
 
Прицелы, используемые на дальности БЛИЖЕ рабочей
 
Возможно, это более интересный случай, потому что он прямо противопоставляется одной из наиболее явственных проблем в боевой системе Джа2. В Джа2, если оружие с оптикой используется ближе чем "MinRangeForAimingBonus" этого прицела, игра просто делает вид, что его нет. Другими словами, оружие при прицеливании использует механические прицельные приспособления.
 
В то же время, новый РШП налагает внушительные штрафы на использование оружия с оптикой на дистанции ближе рабочей.
 
10-ScopeAiming-NormalDistance.gif
 
Радиус стрельбы в этом случае определён положением цели, а не наличием оптики. Другими словами, в примере выше, наш 2х прицел ведёт себя как 1х прицел. Он не "двигает" красную дугу дальше от себя как раньше, даже с прицеливанием по полной. Можно суммировать так:
Quote:
Расстояние, на котором радиус стрельбы располагается = Рабочая Дальность Прицела ИЛИ Расстояние до Цели, что БЛИЖЕ

 
Вдобавок, как понятно из картинки, дополнительное ШП которое мы получаем за прицеливание ОПОЛОВИНЕНО из-за снижения "кратности" прицела с 2х до 1х. Этот прицел работает ВДВОЕ ХУЖЕ чем механические прицельные приспособления на этой дистанции. Для стрельбы на этой дистанции лучше было бы СНЯТЬ оптику.
 
Штраф на Прицельный ШП опять же пропорционален дальности:
 
Quote:
Штраф = Рабочая дальность прицела / Дальность до цели
Прицельный ШП делится на Штраф

 
Очевидно, выстрел с 10-кратной оптикой на таком расстоянии будет очень не точным - вполне может оказаться что дополнительное прицеливание вовсе не увеличивает ШП! Другими словами, выстрел будет в пределах Фиолетовой Дуги, определяемый только Базовым ШП.
 
Вдобавок, что на картинке выше не сказано, это то что Базовый ШП зависит от Громоздкости Оружия - значения, сильно зависящего от оружейного параметра ОД на Изготовку. Это означает что даже кружок Базового ШП (фиолетовый) будет заметно шире для длинного оружия, такого как снайперские и тяжелые штурмовые винтовки, возможно достигая даже 0% ШП (красный кружок), делая любой выстрел дико неаккуратным.
 
Это должно устранить серъёзную проблему которая есть в Джа2 в настоящее время. Снайперские винтовки (и другое длинноствольное оружие), которые должно было бы сложно использовать на коротких дистанциях, так точны что нет никакого штрафа на использование их на коротких дистанциях. Новый РШП заботится о том что такое оружие гораздо менее надёжно на коротких дистанциях, особенно с оптикой большой кратности.
 
Точка дула
 
Все эти забавные картинки - способ показать без использования формул что происходит в программе. В конце концов, программа остаётся с одним кружком, который показывает как сильно дуло МОЖЕТ качнуться. Это параметр Качание Дула.
 
Как только установлено Качание Дула, программа берёт совершенно СЛУЧАЙНУЮ точку внутри этого круга. Это точка дула. По-простому, это точка куда указывает дуло в момент нажатия на спуск.
 
Следовательно, прицеливание это по сути есть обеспечение гарантии что дуло будет наведено по меньшей мере близко к центру мишени когда будет спущен курок. Чем выше ваш ШП при нажатии на спуск, тем вероятнее что дуло будет указывать на цель этот в момент.
 
Как только выбрана Точка Дула, та часть формулы которая зависит от стрелка кончается. Дальше оружие само определяет попадёт ли пуля в Точку Дула или нет.
 
 
Отклонение Пули
 
После всех сделанных вычислений настала очередь оружия. Есть масса факторов, которые не может контролировать игрок и от которых зависит полетит ли пуля в точку дула или отклонится от неё на определённое расстояние.
 
9-BulletDev.gif
 
Отклонение пули всегда считается на номинальной дальности оружия. Если цель дальше, то и отклонение будет больше. Навесная оптика, которая уменьшает Качание Дула отдаляя радиус стрельбы соответственно свой кратности, никак не влияет на Отклонение Пули. На деле, единственное что может уменьшить отклонение пули это удлиннитель ствола или что-то типа более точных боеприпасов и ствола. А лучше будет подобрать другое, более точное оружие.
 
Отклонение пули главным образом определяется длинной ствола оружия (это заблуждение - прим. моё). В игровых терминах это будет параметр оружия "Accuracy", который сейчас малополезен.
 
Пистолеты, например, должны иметь низкую точность вроде 10-15. Это означает что пистолетные пули могут отклоняться на довольно большое расстояние от Точки Дула. На коротких дистанциях, подходящих для пистолета, это не имеет значения. Однако, как бы ни был хорош стрелок, на определённой дальности отклонение пули становится таким значительным, что попасть в цель становится практически невозможно.
 
Обратно, снайперская винтовка имеет высокую точность, вплоть до 90-95. Опять же, поскольку отклонение пули растёт с увеличением расстояния, этот параметр очень важен для успешного применения снайперской винтовки.
 
Вдобавок, взаимодействие Качания Дула и Отклонения Пули означает что для успешного поражения цели точной винтовкой и целиться нужно хорошо. Снайперская винтовка пошлёт пулю туда, куда будет наведена, так что будучи наведёной мимо цели, она гарантированно отправит пулю мимо, без шанса случайно задеть требуемую цель. В противоположность этому, неточное оружие может компенсировать неточное прицеливание, послав пулю не в точку наведения, а отклонив её в сторону требуемой цели.
 
Важно иметь в виду, что отклонение пули не может направить пулю наружу 45-градусного конуса (показанного желтыми линиями и красной дугой). Повторюсь, это из-за программных ограничений движка.
 
 
Резюме
 
Старая система РШП, которая была хороша для Джа2 1998 года, изжила себя. Созданная как монолит, имея мало общего с реализмом, она сломалась как только в 1.13 появилось больше проработанного и разнообразного оружия, что открыло серъёзные эксплоиты и выхолостило геймплей на года.
 
Новая система РШП разбивает монолит на части, учитывая различные сферы аспектов на отдельных стадиях вычислений, давая каждому аспекту своё место в механизме стрельбы, и через это уничтожает самые явные эксплоиты, поднимая планку достоверности в игре.
 
Я верю что эта система сделает геймплей более сбалансированным и даст моддерам улучшенное окружение для создания достоверно работающего оружия и аттачей, как в жизни.
 
И это ещё не всё, новая система открывает путь для множества "периферийных" улучшений других систем, сопутствующих РШП, которые ещё не были рассмотрены в этой статье. Эти улучшения будут рассмотрены в четвертом, финальном разделе этой статьи.
 
 
Упрощённая формула
 
Как я периодически повторял в этой статье, другая проблема со старой системой РШП это то как она выглядит в коде.  
Если вы читали руководство "Как это работает" про ШП вы возможно уже знаете что она немыслимо запутана и практически невозможно выяснить насколько весомое влияние может иметь каждый учитываемый фактор.
 
Вот одно из преимуществ новой системы РШП - она описана прямым и стандартизированным способом. Хотя масса факторов играет свою роль в определении размера каждого круга стрельбы, они упорядочены таким образом, что каждый фактор имеет известное и измеримое влияние  на каждый компонент системы.
 
Я не буду приводить здесь весь код, всё дело в том что это и не нужно. Простой набросок точно продемонстрирует как работает система:
Quote:

ПрактическийНавык = Усреднённая величина нескольких навыков (опыт, меткость, ловкость, мудрость), где ОПЫТ имеет троекратный вес в сравнении с остальными навыками.
 
БазовыйМодификатор = Сумма всех факторов, влияющих на Базовый ШП. Каждый фактор имеет известное и измеримое влияние.
 
БазовыйШП = (ПрактическийНавык*БазовыйМодификатор) / 100
 
ПрактическийНавык = Усреднённая величина нескольких навыков (опыт, меткость, ловкость, мудрость), где МЕТКОСТЬ имеет троекратный вес в сравнении с остальными навыками.
ПределШП = ПрактическийНавык
 
ПрицельныйМодификатор = Сумма всех факторов, влияющих на Прицельный ШП. Каждый фактор имеет известное и измеримое влияние.
 
ТочноПрицельныйШП = ((ПределШП - БазовыйШП) * ПрицельныйМодификатор) / 100
 
ПрицельныйШП = Часть ТочноПрицельногоШП. Насколько большая часть - зависить от того сколько ОД потрачено на прицеливание.
 
ИтоговыйШП = БазовыйШП + ПрицельныйШП.

 
Конечно, формула простовата, но учитывая что мне понадобилось несколько постов просто на объяснение как работает формула старой системы, тут видна выгода. "Сложная" часть это где факторы складываются, но это простое прибавление/вычитание, так что влияние каждого фактора измеримо и наглядно (и... НАСТРАИВАЕМО МОДДЕРАМИ!).
 
Затем мы выясняем как наш ШП уменьшил радиус стрельбы:
Quote:

Если ДальностьДоЦели >= НоминальнойДальности Тогда
 КрасныйРадиус = Максимальный радиус, возможный на НоминальнойДальности, под углом 45 градусов (базовая тригонометрия)
Иначе
 КрасныйРадиус = Максимальный радиус, возможный на ДальностиДоЦели, под углом 45 градусов.
 
ДействительныйРадиус = (КрасныйРадиус * ИтоговыйШП) / 100

 
С этого места, всё что осталось это 3D-математика: берёём случайную точку внутри радиуса стрельбы, и направляем пулю в эту точку. Все комплексные части формулы, как кратность прицела, падение пули и увод ствола низведены в эту часть. Она вычисляет центральную точку выстрела, случайно выбирает точку дула, выбирает точку попадания и выпускает пулю.
 
При стрельбе очередью, программа двигает центральную точку для следующей пули на определённое расстояние, диктуемое главным образом параметрами оружия вкупе с сошкой+силой+навыком стрелка.
 
 
Экстернализированные параметры
 
С самого начала, я выстраивал систему, которая моглы бы быть полностью экстернализирована (т.е. была бы полностью настраиваема из внешних конфигурационных файлов - прим. моё). Идея в том чтобы тестеры, которые бы обнаружили нелогично вычисляемый ШП, могли бы поправить влияние любого фактора на формулу, в которой они учитываются.
 
Это сделано при помощи обильного количества коэффициентов, каждый из которых влияет на использование конкретного фактора в формуле. Эти коэффициенты вынесены в отдельный ini-файл, специально созданный для системы РШП. Изменяя эти числа вы можете, к примеру, изменить влияние ранения на прицеливание или опыт влияет на Базовый ШП . А раз там всё просто вычисляется, то и результата в игре будет наглядным, и настраивая это всё через ini-файл вам (и мне) не понадобится перекомпилировать исходники, если какой-то фактор будет слишко сильно (или слишком слабо) влиять на формулу.
 
Количество коэффициентов сейчас довольно велико, и в будущем может перевалить за сотню. Однако, я уверен что большинство из них даже не потребуется трогать - только те, что нам не понравятся. Как только правильно сбалансированные значения будут найдены, можно будет внести их в исходники, или оставить их в ini, чтобы игроки по желанию могли поэкспериментировать.
 
Некоторые коэффициенты конечно довольно важные. Например, "Номинальная" дальность настраиваема, и должна изменять расстояние, на котором все прицелы работают. Будет возможным даже отрегулировать ограничивающий угол разлёта пуль, сделав его меньше 45 градусов, если понадобится чтобы всё оружие в целом стало более точным. К концу проекта мы обсудим должны ли какие-то из ниважнейших коэффициентов "переселиться" в JA2_Options.INI чтобы игроки могли управлять РШП мановением руки.
 
 
Изменения в XML
 
Одной из самых сложнейших задач будет решить как (и стоит ли) изменить XML-файлы под новую систему РШП. Как вы читали ранее, формула использует значения Дальность, Точность и разные бонусы на ШП совершенно другим образом. В конечном итоге, всё оружие придётся довольно сильно изменить под новую систему.
 
Например, Точность нужно будет адаптировать под диапазон 0..100, где самые точные винтовки занимают верхние значения. Это потому что точность больше не второстепенное значение и теперь определяет разброс пуль. Штраф для очереди/автоматической стрельбы нужно изменить на пару X/Y, которая определяет увод вверх и вправо (или вниз и влево при отрицательных значениях). Возможно в течение проекта всплывут и другие изменения.
 
Изменения будут конечно не только в Weapons.XML. Items.XML тоже должен быть изменён, прицелы и прочие аттачи теперь могут давать бонусы и штрафы. Прицелам нужна Кратность, которая определяет как уменьшается круг стрельбы. Сошкам нужно выставить значение от 0 до 100, чтобы определять насколько они стабилизируют оружие.
 
Также следует отметить что поскольку система сильно уменьшает вероятность попадания, урон оружия следует значительно повысить. Это ближе к реалистичной "смерти с одной-двух пуль". Конечно, понадобится ли это станет только после тестирования.
 
 
Опциональность системы
 
Помимо всех работ, которые потребуются, существует вопрос об отключаемости. Это крепкий орешек, в основном из-за всех изменений в XML. Иметь две копии Weapons и Items XML, один для старой и один для новой системы, будет кошмаром для моддеров.
 
Один путь обойти это - завести раздельные тэги для новой и старой системы. Однако это может окончиться путаницей для моддеров.
 
Я всё ещё в поиске решений этого вопроса. Конечно, пока система будет готова и полностью протестирована пройдёт много времени, так что в ближайшем будущем интеграции не ожидается. Но лучше заранее подумать над такими вещами. Отзывы будут очень желательны.
« Изменён в : 03.10.2010 в 11:56:23 пользователем: bugmonster » Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #2 от 30.09.2010 в 19:32:42 »

Ответвления и дополнительные фичи
 
Новая система РШП основана на 3D-математике, имитируя достоверное поведение оружия гораздо лучше чем старая. Избавившись от трюков и иллюзий, использовавшихся старой системой для поддержания геймплея, новая система открывает различные возможности, которые мы можем использовать воблаго.
 
Этот последний раздел перечисляет различные доработки, которые сопутствуют новой системе РШП, использующие присущие новой системе характеристики, либо использующие компоненты новой системы чтобы улучшить возможности других компонентов игры. Также в нём поднимаются вопросы о модостроении и AI, на которые нужно будет ответить когда проект войдёт в завершающую стадию.
 
 
Жонглируя пулями
 
Избавление от механизма точной пули-"попадания" даёт нам возможность подкрутить места попадания пули с разными целями. Это позволяет нам иметь по крайней мере две фичи, которые до сих пор были только в теории:
 

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

  • Б) Увод ствола
    • Разное оружие по разному реагирует на отдачу, вызываемую выстрелом. При стрельбе очередью это более всего выражено, так как отдача уводит ствол от цели и разбрасывает пули веером. С новой системой РШП это может быть смоделировано в игре очень реалистично.


 
 
Падение пули
 
Старая система РШП во многом опиралась на параметр оружия Дальность. Он имел два эффекта:
1) если оружие стреляло хотя бы на 1 тайл дальше своей Дальности, ШП обрезался вдвое (а может и больше).
2) Чем больше Дальность оружия, тем оно точнее на заданной дальности, ШП был пропорционален отношению Дальности оружия к Дальности до цели.
(а также максимальная дальность полёта пули и, следовательно, возможность прицеливания, определялась как 2,5х Дальность - прим. моё)
 
Наибольшая проблема с вышеуказанным это то что оба эффекта зависели от одного параметра.  Если вы хотите оружие, которое точно работает на определённой дистанции, то оно будет всегда самым точным на любой дальности от самой малой вплоть до этой. Это приводило к тому что длинноствольные и снайперские винтовки становились супер-оружием на ближней дистанции. Если урезать Дальность оружия, то прицелиться в удалённую цель было бы невозможно. Если увеличить Дальность оружия, оно становилось ещё более точным на коротких дистанциях. Очевидно, что эти два эффекта нужно было отделить друг от друга.
 
Вдобавок, этот принцип "вплоть до максимальной дальности и ни тайлом больше" приводил к очень тупому поведению оружия - различие в расстоянии на 1 тайл могло дать изменение ШП с 80% до 40%, что нелепо. Также, из-за случайной природы выстрелов-"промахов", пуля выпущенная с дальней дистанции могла просто не упасть на землю, а улететь в никуда под случайным углом.
 
В новой системе всё по-другому. Для начала, параметр оружия Дальность используется только чтобы определить расстояние, после которого пуля начинает стремиться к земле. При этом точность на всех дальностях не зависит от этого параметра - как мы видели ранее, она больше зависит от параметров и состояния стрелка, оптики и параметра оружия Точность. Следовательно, параметр Дальность стал ГОРАЗДО меньше влиять на стрельбу из оружия, будучи вытесненным Точностью.
 
Что касается самого падения пули, то это будет постепенное снижение в геометрической прогрессии, прикладываемое к пуле как только она достигнет максимальной дальности. Следовательно, если стреляете по цели вне доступной дальности, ваши пули скорее всего будут попадать в землю перед целью. Если они были выпущены немного выше цели (по случайно выбранной точке внутри круга стрельбы) то они долетят до цели, но это опять же просто воля случая. Цель на 1 тайл дальше максимальной дальности в новой системе поразить будет гораздо проще чем было в старой, хотя точное прицеливание все равно является решающим.
 
12-BulletDrop.gif
 
Пули с улучшенной баллистикой будут по прежнему давать оружию Бонус к Дальности, но теперь дальность отделена от ШП, так что они не сделают оружие более точным только потому что можно выстрелить дальше. Вдобавок, прицелы с поправками по дальности тоже могут дать оружию бонус к Дальности, делая оружие способным доставать более удалённые цели, но без непосредственного увеличения точности.
 
 
Увод ствола
 
Как мы занаем, большинство оружия имеет отдачу которая тянет ствол вверх и слегка вправо. Некоторое задирает ствол строго вверх, а другое тянет его строго вправо. Другое оружие имеет весьма малую отдачу и кладёт пули в очереди очень близко друг к другу  
 
С новым РШП, моддеры смогут ввести особые параметры отдачи чтобы сказать программе как сильно уводит ствол в каждом из направлений. Поэтому, после выпускания первой пули, Точка Дула будет автоматически смещена в указанном направлении на указанное (и немного случайное) расстояние, и в этой точке будет произведён следующий выстрел. Это будет повторено столько раз, сколько пуль в очереди.
 
Здесь маленький пример того как это работает:
 
11-MuzzleClimb1.gif
 
Это оружие имеет умеренную отдачу вверх-вправо. Белая точка показывает Точку Дула для первой пули в очереди, высчитанной по новому РШП  внутри радиуса стрельбы. С этого момента, часть стрелка кончается и далее уже оружие определяет куда уйдет Точка Дула, используя внутренние параметры отдачи оружия по X/Y. Как только следующая Точка Дула вычислена, происходит выстрел, и всё посторяется до окончания очереди.
 
В дополнение, вы можете видеть что отклонение пули ещё создаёт случайное влияние на каждую пулю в очереди, что показано зелёным кругом вокруг каждой точки. Это создаёт некую случайность в стрельбе очередью, гарантируя что одна очередь не будет иметь в точности такую же форму рассеивания пуль как другая.
 
Хочу заметить, что картинка показанная выше довольно общая и не демонстрирует некоторые новые идеи над которыми я сейчас работаю:
 
Для начала, стрелок должен быть способен несколько компенсировать отдачу. Другими словами, вместо того чтобы целить первую пулю в центр цели, опытный стрелок прицелился бы несколько ниже и левее. Отдача провела бы дуло оружия по цели, обеспечивая попадание следующих пуль в неё. Это повышает шанс поражения цели несколькими пулями очереди. Для этого, стрелок учитывает величину отдачи оружия и количество пуль, которые нужно выпустить, смещая точку прицеливания в соответствии с ними.
 
Ещё я работаю над компенсацией отдачи при стрельбе очередью оттягивания дула в сторону, противоположную отдаче. Сила и скилл Автоматическое Оружие помогают в этом вместе с фактором случайности. Warmsteel предложил метод вычисления, который может подойти для этой задачи. Конечный результат это то что оружие не заканчивает длинную очередь смотря в небо, потому что стрелок сопротивляется уводу и доворачивает оружие к цели. Сошки, естественно, в этом деле сильно помогают.
 
Это позволит нам смоделировать трассеры даже реалистичней чем в HAM - они добавят стрелку способности довернуть стреляющее оружие на цель. Конечный результат будет в том что огонь будет более кучным, чем показано на рисунке, делая стрельбу очередями на дистанции более фатальной.
 
 
Движущаяся цель
 
Помимо прочих проблем со старым РШП, стрельба по движущимся целям никогда не была затруднительной перспективой. Игра снимает по -1.5 ШП за каждый тайл, который пробежала цель за последний ход, что означает что цель, потратившая весь ход на перемещение, даёт только -30% к ШП, что можно легко скомпенсировать любым хорошим прицелом.
 
Пока я ещё не продумал все подробности (статья была выложена в Апреле - прим. моё), я пришёл к интересному пути симуляции ведения цели, используя систему с радиусом стрельбы.
 
Одним важным изменением должно быть слежение за исходной позицией - тайлом на котором цель стояла в начале последнего ходаю Сравнивая его с тайлом на котором цель находится В ДАННЫЙ МОМЕНТ, мы получаем вектор движения, так что мы может вычислить угол относительно стрелка, так:
 
13-MovementVectors.gif
 
Очевидно, что цель движущаяся на нас или от нас не изменит (или совсем немного) на ШП. Цель движущаяся перпендикулярно вектору стрельбы будет иметь самый высокий штраф на ШП.
 
Штраф на движение цели накладывается путем смещения кружка стрельбы в направлении, противоположном вектору движения. Другими словами, если цель движется справа налево, мы скорее всего выстрелим правее (позади неё). Вот иллюстрация:
 
14-MovingTarget.gif
 
На этой иллюстрации цель движется слева направо под углом 90 градусов. Полупрозрачная фигура показывает оригинальное положение цели.
 
Каждый круг стрельбы (красный, фиолетовый, синий) сдвинут на заданную дистанцию за цель, пропорционально тому насколько переместилась цель. Это учитывает и угол движения цели и навыки стрелка. Движение осуществляется простым смещением "центральной точки", точки, куда дуло было бы направлено при 100% ШП. Всё остальное в системе учитывается автоматически, сильно упрощая вычисления.
 
Каждый кружок стрельбы сдвинут на расстояние, пропорциональное его радиусу. Это означает что "точно нацеленный" круг (синий) не сдвинется так сильно как круг "Базовый ШП" (фиолетовый), который не сдвинется так сильно как круг "0% ШП" (красный). Это для того чтобы точное прицеливание и навык не теряли практическую пользу, что произошло бы двигай мы все круги вместе.
 
Быстрые и короткие перебежки полезнее продолжительного передвижения для сбивания стрелку прицела. Другими словами, если цель двигалась достаточно долго и непрерывно, будет легче определить куда она движется и с какой скоростью, чтобы взять поправку на упреждение. Это когда кружки смещаются назад к своим первоначальным позициям, хотя на деле они на них не вернутся.
 
Конечно же, навык стрелка определяет как сильно сдвинутся круги с цели и как быстро они начнут возвращаться обратно.
 
Вопрос о влиянии прицелов и расстояния на это пока не решён. Теоретически, я верю что сдвига кружков должно хватить, но может оказаться что и потребуется сдвигать круги стрельбы ближе к стрелку (подобно стрельбе по цели, которая слишком близко). Но это вряд ли понадобится.
 
Наконец, не забывайте что даже сильно сместив круги стрельбы, мы не заставим пули вылететь за пределы жёлтых линий. Просто дружеское напоминание, потому что как я говорил в начале статьи, они никогда этого не сделают.
 
 
Упрощённая формула
 
Как я периодически повторял в этой статье, другая проблема со старой системой РШП это то как она выглядит в коде.  
Если вы читали руководство "Как это работает" про ШП вы возможно уже знаете что она немыслимо запутана и практически невозможно выяснить насколько весомое влияние может иметь каждый учитываемый фактор.
 
Вот одно из преимуществ новой системы РШП - она описана прямым и стандартизированным способом. Хотя масса факторов играет свою роль в определении размера каждого круга стрельбы, они упорядочены таким образом, что каждый фактор имеет известное и измеримое влияние  на каждый компонент системы.
 
Я не буду приводить здесь весь код, всё дело в том что это и не нужно. Простой набросок точно продемонстрирует как работает система:
Quote:

ПрактическийНавык = Усреднённая величина нескольких навыков (опыт, меткость, ловкость, мудрость), где ОПЫТ имеет троекратный вес в сравнении с остальными навыками.
 
БазовыйМодификатор = Сумма всех факторов, влияющих на Базовый ШП. Каждый фактор имеет известное и измеримое влияние.
 
БазовыйШП = (ПрактическийНавык*БазовыйМодификатор) / 100
 
ПрактическийНавык = Усреднённая величина нескольких навыков (опыт, меткость, ловкость, мудрость), где МЕТКОСТЬ имеет троекратный вес в сравнении с остальными навыками.
ПределШП = ПрактическийНавык
 
ПрицельныйМодификатор = Сумма всех факторов, влияющих на Прицельный ШП. Каждый фактор имеет известное и измеримое влияние.
 
ТочноПрицельныйШП = ((ПределШП - БазовыйШП) * ПрицельныйМодификатор) / 100
 
ПрицельныйШП = Часть ТочноПрицельногоШП. Насколько большая часть - зависить от того сколько ОД потрачено на прицеливание.
 
ИтоговыйШП = БазовыйШП + ПрицельныйШП.

 
Конечно, формула простовата, но учитывая что мне понадобилось несколько постов просто на объяснение как работает формула старой системы, тут видна выгода. "Сложная" часть это где факторы складываются, но это простое прибавление/вычитание, так что влияние каждого фактора измеримо и наглядно (и... НАСТРАИВАЕМО МОДДЕРАМИ!).
 
Затем мы выясняем как наш ШП уменьшил радиус стрельбы:
Quote:

Если ДальностьДоЦели >= НоминальнойДальности Тогда
      КрасныйРадиус = Максимальный радиус, возможный на НоминальнойДальности, под углом 45 градусов (базовая тригонометрия)
Иначе
      КрасныйРадиус = Максимальный радиус, возможный на ДальностиДоЦели, под углом 45 градусов.
      
ДействительныйРадиус = (КрасныйРадиус * ИтоговыйШП) / 100

 
С этого места, всё что осталось это 3D-математика: берёём случайную точку внутри радиуса стрельбы, и направляем пулю в эту точку. Все комплексные части формулы, как кратность прицела, падение пули и увод ствола низведены в эту часть. Она вычисляет центральную точку выстрела, случайно выбирает точку дула, выбирает точку попадания и выпускает пулю.
 
При стрельбе очередью, программа двигает центральную точку для следующей пули на определённое расстояние, диктуемое главным образом параметрами оружия вкупе с сошкой+силой+навыком стрелка.
 
 
Экстернализированные параметры
 
С самого начала, я выстраивал систему, которая моглы бы быть полностью экстернализирована (т.е. была бы полностью настраиваема из внешних конфигурационных файлов - прим. моё). Идея в том чтобы тестеры, которые бы обнаружили нелогично вычисляемый ШП, могли бы поправить влияние любого фактора на формулу, в которой они учитываются.
 
Это сделано при помощи обильного количества коэффициентов, каждый из которых влияет на использование конкретного фактора в формуле. Эти коэффициенты вынесены в отдельный ini-файл, специально созданный для системы РШП. Изменяя эти числа вы можете, к примеру, изменить влияние ранения на прицеливание или опыт влияет на Базовый ШП . А раз там всё просто вычисляется, то и результата в игре будет наглядным, и настраивая это всё через ini-файл вам (и мне) не понадобится перекомпилировать исходники, если какой-то фактор будет слишко сильно (или слишком слабо) влиять на формулу.
 
Количество коэффициентов сейчас довольно велико, и в будущем может перевалить за сотню. Однако, я уверен что большинство из них даже не потребуется трогать - только те, что нам не понравятся. Как только правильно сбалансированные значения будут найдены, можно будет внести их в исходники, или оставить их в ini, чтобы игроки по желанию могли поэкспериментировать.
 
Некоторые коэффициенты конечно довольно важные. Например, "Номинальная" дальность настраиваема, и должна изменять расстояние, на котором все прицелы работают. Будет возможным даже отрегулировать ограничивающий угол разлёта пуль, сделав его меньше 45 градусов, если понадобится чтобы всё оружие в целом стало более точным. К концу проекта мы обсудим должны ли какие-то из ниважнейших коэффициентов "переселиться" в JA2_Options.INI чтобы игроки могли управлять РШП мановением руки.
 
 
Изменения в XML
 
Одной из самых сложнейших задач будет решить как (и стоит ли) изменить XML-файлы под новую систему РШП. Как вы читали ранее, формула использует значения Дальность, Точность и разные бонусы на ШП совершенно другим образом. В конечном итоге, всё оружие придётся довольно сильно изменить под новую систему.
 
Например, Точность нужно будет адаптировать под диапазон 0..100, где самые точные винтовки занимают верхние значения. Это потому что точность больше не второстепенное значение и теперь определяет разброс пуль. Штраф для очереди/автоматической стрельбы нужно изменить на пару X/Y, которая определяет увод вверх и вправо (или вниз и влево при отрицательных значениях). Возможно в течение проекта всплывут и другие изменения.
 
Изменения будут конечно не только в Weapons.XML. Items.XML тоже должен быть изменён, прицелы и прочие аттачи теперь могут давать бонусы и штрафы. Прицелам нужна Кратность, которая определяет как уменьшается круг стрельбы. Сошкам нужно выставить значение от 0 до 100, чтобы определять насколько они стабилизируют оружие.
 
Также следует отметить что поскольку система сильно уменьшает вероятность попадания, урон оружия следует значительно повысить. Это ближе к реалистичной "смерти с одной-двух пуль". Конечно, понадобится ли это станет только после тестирования.
 
 
Опциональность системы
 
Помимо всех работ, которые потребуются, существует вопрос об отключаемости. Это крепкий орешек, в основном из-за всех изменений в XML. Иметь две копии Weapons и Items XML, один для старой и один для новой системы, будет кошмаром для моддеров.
 
Один путь обойти это - завести раздельные тэги для новой и старой системы. Однако это может окончиться путаницей для моддеров.
 
Я всё ещё в поиске решений этого вопроса. Конечно, пока система будет готова и полностью протестирована пройдёт много времени, так что в ближайшем будущем интеграции не ожидается. Но лучше заранее подумать над такими вещами. Отзывы будут очень желательны.
« Изменён в : 03.10.2010 в 11:59:56 пользователем: bugmonster » Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #3 от 30.09.2010 в 22:47:49 »

Немного напрягает, что оптика совершенно бесплатно передвигает цель ближе. То есть, достаточно потратить ОД на прицеливание и мерк уже стреляет по цели, которая в Х раз ближе, но при этом, что-то я не найду поправок на больший радиус "качания дула".
Абстрактный пример: у одного мерка максимально возможный ШП 90%, у другого 10%. Даём первому винтовку с мехническим прицелом, другому с 10х прицелом. Оба стреляют на среднюю дистанцию (где оптика работает полностью). Тогда у меткого стрелка радиус качания на дистанции цели будет, естественно 100 - 90 = 10% от максимального. А у неуча (100 - 10)/10 = 9%. То есть, криворукий неуч с оптикой обставит чемпиона. Когда по идее, с его кривыми руками, он через прицел даже цель найти не сможет.
Наверно, я что-то неправильно понимаю. Ведь в описании чётко говорилось, что основная цель - избавиться от "headshot gamestyle". Но пока я это не вижу.
« Изменён в : 30.09.2010 в 22:53:04 пользователем: coolberg » Зарегистрирован

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #4 от 01.10.2010 в 01:24:59 »

2coolberg:   Quote:
А у неуча (100 - 10)/10 = 9%.

10х прицел не уменьшает радиус в 10 раз. Если ты пишешь что предел ШП у новичка - 10%, то это значит ни при каких условиях не добиться ему лучшего. Т.е. у меткого стрелка радиус стрельбы будет 10% от максимального, а у новичка - 90%. Следовательно, меткий заруливает косого с прицелом или без.
Ты вообще некорректную ситуацию привёл. У них обоих одинаковое оружие - если нет, то пример заранее некорректен. Если одинаковое - разбираем дальше:
Какая дистанция стрельбы? Где оптика работает полностью - это единственная дистанция, равная 10х Номинальной для оружия. Тайлом дальше/тайлом ближе - на оптику начинаются штрафы и прицел перестаёт быть 10х.
Стоить ли упоминать, что на 10х дистанции механический прицел становится абсолютно бесполезным?  
То есть на полной дистанции стрельбы для оптики новичок будет рулить, проблема в том что для этого Дальность оружия должны быть в 10 раз больше номинальной дальности стрельбы оружия, иначе новичок просто не сможет вести корректировку по дальности и не попадёт в меткого. Так что если у новичка мощная снайперка с 10х оптикой а на расстоянии в километр от него опытный стрелок с такой же но без оптики, т.о. шансы поразить друг-друга будут примерно равны (нулю).
На дистанциях между 10х и 1х эффективность механического прицела будет расти, а оптического - снижаться, и думаю, на той дистанции где шансы попадания сравняются - они всё равно будут малы из-за дальности.
На дистанциях от номинальной дистанции оружия и ближе меткий зарулит новичка, потому что прицел станет только мешать.
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #5 от 01.10.2010 в 01:35:18 »

о рандоме - почитав тот тред я думаю что он пока не задаётся такими вопросами как генерация качественного рандома, а вообще он писал что не сильно дружит с математикой.
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #6 от 01.10.2010 в 02:39:58 »

2bugmonster: Возможно я действительно ничего не понимаю. Но я рассуждаю по картинке выше, где мерк целится с 2х прицелом. Вот эта.
5254d52e3736.jpg
Смотри, пусть у мерка максимальный ШП вообще равен 0. То есть, без прицеливания все его пули летят в радиусе ближайшего к нему красного круга на картинке. Теперь он прицеливается, и по описанной системе ("maximum radius has shrunk in half") теперь его пули летят внутри дальнего красного круга. Я прав?
Но если так, то все его пули, выпущенные в дальний круг, будут пролетать во внутренней области первого красного круга, которая имеет в два раза меньший радиус. А раз так, то относительно нормальной дистанции (как раз этого самого первого круга) он вдруг приобрёл возможность держать оружие точно на 50%. Вот это меня и беспокоит.
Я не случайно заговорил о номальном распределении, вместо равномерного. Мне кажется тут уместнее будет не уменьшать максимальный радус попадания при прицеливании, а уменьшать лишь дисперсию этого самого попадания. То есть, мерк всё равно может выстрелить в пределах светло-розового кольца, но "в основном" его куча будет собираться в районе дальнего красного круга при прицеливании (речь идёт о гипотетическом мерке с болезнью Паркинсона, напомню :) )
« Изменён в : 01.10.2010 в 03:11:20 пользователем: coolberg » Зарегистрирован

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: [Перевод] New CTH system - Presentation
« Ответ #7 от 01.10.2010 в 03:23:53 »

Конечно, ты прав. Появляется новый, так называемый, эксплоит:  выноси точку прицеливания за спину мерка :)
Зарегистрирован

Kirill_OverK
[Kirill - over kill]
Прирожденный Джаец

Пёёёёсики на сНеГууу, розоВыеее на белом...


WWW

Пол:
Репутация: +3
Re: [Перевод] New CTH system - Presentation
« Ответ #8 от 01.10.2010 в 03:36:15 »

Про новые билды, систему стрельбы и пр. плюсы и минусы ... -
(замеченное по ходу игры и разных тестов)
 
 
некая проблема в том, что не каждое иное событие в бою влияет на то
как попадает очередь как было ранее, а даже новая загрузка ..
 
очередь - промах,
загрузка,
очередь - попала одна пуля из 3-ёх, -21
загрузка,
очередь - попали 2е пули из 3-ёх, -15 -51 урон = -66
 
почему так не понятно ..
 
так же, вывинчивал к минимуму шанс попадания у штурмовых винтовок,
беру загрузку, 1ин раз не попал в голову, 2й нет,
 
на 3ю загрузку попадание с критикалом ..
(растояние приличное, винтовка без оптики и пр. голая)
 
читерство какое-то ... - закрузился с 5-ть раз, и вот, хит в голову ...
 
раньше - сколь раз не перегружай сэйв, если например, кем-то в команде
не подействовать хоть прилечь или что не сделать - исход ОДИН -
 
промах например, хоть 100 раз бери загрузку,
 
а сейчас рэндомность полная и можно нужных резов добиться
загрузившись 5-8 раз ..
 
бред какой-то выходит ...  :(
Зарегистрирован

*** JA2 1.13 + AIMnas&Big maps r.7622 Russ.
от 24.11.2014 - качай или ПРОИГРАЕШЬ ! :D
https://yadi.sk/d/6SbUvmyNcubgo

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: [Перевод] New CTH system - Presentation
« Ответ #9 от 01.10.2010 в 03:36:23 »

Система имхо дюже сложная. Вместо одной громоздкой запутанной системы получаем другую, сложную и громоздкую. Потом, радикальность замысла, стремление сразу всё переделать нахрен имо может в дебри завести. Тобишь забабахают и будут долго с детскими болезнями бороться.  заборют наверное... раза с третьего или четвертого, ежли терпелки хватит.
Лучше б попробовать сначала подправить старое, упростить где-то, где-то добавить...
 
А впрочем неважно - старое-то всё одно никуда не денеться :)
Зарегистрирован

Kirill_OverK
[Kirill - over kill]
Прирожденный Джаец

Пёёёёсики на сНеГууу, розоВыеее на белом...


WWW

Пол:
Репутация: +3
Re: [Перевод] New CTH system - Presentation
« Ответ #10 от 01.10.2010 в 03:46:42 »

не знаю шанс на попадание сводил к нулю почти, всёравно эффекта нет ...
можно с 5-й загрузки сэйва попасть ..
 
или CTH работает только если начинать новую игру,
при загрузки с INI параметр не читается ... или читает ?
 
кто может достоверно сказать ?
 : rolleyes :
Зарегистрирован

*** JA2 1.13 + AIMnas&Big maps r.7622 Russ.
от 24.11.2014 - качай или ПРОИГРАЕШЬ ! :D
https://yadi.sk/d/6SbUvmyNcubgo

coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #11 от 01.10.2010 в 03:46:52 »

2MAn: нет, ну старую систему надо было переделывать, это факт. И первый шаг был очень нужным и черезвычайно простым - убрали разделение hit/miss при первоначальном кидании костей. А вот дальше, мне кажется, автор слишком глубился в проблемы подкидывания оружия и отдачи, забыв про основную цель всей заварухи - убрать эксплойт оптических прицелов.
 
2Kirill_OverK:  яесли я не ошибаюсь, то в самом движке шанс попадания снизу ограничивается не 0, а 1. То есть, малейший шанс на удачу есть всегда. Но может и ошибаюсь.
« Изменён в : 01.10.2010 в 03:49:13 пользователем: coolberg » Зарегистрирован

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #12 от 01.10.2010 в 05:28:10 »

2coolberg:  
Quote:
Смотри, пусть у мерка максимальный ШП вообще равен 0. То есть, без прицеливания все его пули летят в радиусе ближайшего к нему красного круга на картинке. Теперь он прицеливается, и по описанной системе ("maximum radius has shrunk in half") теперь его пули летят внутри дальнего красного круга. Я прав?

Да, ты прав, это эксплоит. Но есть нюансы:
1. Я этим эксплоитом пользовался и в оригинальной джаге, когда стрелял лежачим по лежачему и не мог попасть обычным образом из-за низкого ШП - стрелял по тайлу за ним. При этом пуля, пролетая тайл с мерком, имела константный шанс поразить его,если этот шанс оказывался выше шанса попасть при прицельном выстреле - я пользовался им. При этом, правда, такое попадание считается неприцельным (переменная sHitBy) из чего выводится низкий урон.
2. Если же фраг стоит, то для этого эксплоита нужен мерк, стоящий по линии ровно за целью и примерно на расстоянии дальности работы прицела. Иначе тебе придётся целиться в пустой тайл, и пули пройдут на всего лишь на уровне ног жертвы.
 
Тем не менее, это всё равно эксплоит, поэтому считаю что необходимо поставить этот вопрос Хедроку в треде на медведях (ссылка наверху этой темы).
 
  Quote:
яесли я не ошибаюсь, то в самом движке шанс попадания снизу ограничивается не 0, а 1. То есть, малейший шанс на удачу есть всегда. Но может и ошибаюсь.

 
в 1.13 в Ja2_Options.ini:
Quote:

;----------------------------------------------------------------------- -------------------------------------------------------
; Set the minimum and maximum possible "Chance-to-Hit" value for any attack.
;
; Maximum and minimum values go from 0 to 100.
; The "DIVISOR" only works when the minimum is set to 0.
; The divisor allows us to define a minimum CTH which is between 0 and 1. If we get 0 CTH, then the program rolls a random
; number between 1 and the value of the Divisor. If a 1 is rolled, we get a CTH of 1, otherwise the CTH is 0. So the divisor
; actually gives us a certain chance to have a chance (CTH 1). The larger the divisor, the slimmer that chance.
;
; The normal chance (Minimum CTH 1, Divisor irrelevant) gives a statistical minimum chance to hit of 1 bullet in every 100.
; With Divisor 1 (Minimum CTH 0, for the divisor to take effect), we also get a statistical minimum chance to hit of 1 bullet in every  
; 100.
; With Divisor 2, we get a 1/200 ratio.
; With Divisor 10, we get a 1/1000 ratio. And so on.
;----------------------------------------------------------------------- -------------------------------------------------------
 
MAXIMUM_POSSIBLE_CTH  = 99
MINIMUM_POSSIBLE_CTH  = 1
MINIMUM_CTH_DIVISOR  = 1
« Изменён в : 01.10.2010 в 05:35:36 пользователем: bugmonster » Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #13 от 01.10.2010 в 05:44:29 »

2Kirill_OverK:  
Насчёт рандомных попаданий после перезагрузки - в ванилле против этого была сделана система прерандома, т.е. массив случайных чисел генерировался заранее и сохранялся в сейвниках, откуда они выбирались по очереди. Это позволяло повторять ход с теми же итогами после перезагрузки. Однако, это привело к ещё более тяжелому эксплоиту - умышленная смена порядка действий комманды позволяла изменять "случайный" результат этих действий, такой как попадание/промах или величина урона. Когда тактическая ситуация загоняла в угол, то за несколько десятков квиклоадов можно было подобрать идеальную "волшебную" последовательность действий отряда, при которой команда игрока наносила бы за ход максимум урона, а получала минимум.
Т.е. к примеру, если сейчас ты можешь за несколько загрузок добиться одного критикал-хедшота одним мерком, то в старой системе за большее число загрузок можно было добиться трех критикалов тремя мерками, что при обычном рандоме было бы невероятно.
Видимо в 1.13 решили с этим побороться и убрали прерандом (частично или совсем).
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #14 от 01.10.2010 в 05:59:45 »

2bugmonster: ну я даже не задумывался про такие исхищрения  :) Я просто выразил свою обеспокоенность, что всё равно прицелы остаются слишком эффективными даже для отсталых наёмников.
Прежде чем заваривать всю эту кашу, на мой взгляд, нужно было чётко определиться, какой именно бонус даёт оптический прицел в реальной жизни и попробовать перенести это в игровую механику.
У меня, как и у каждого, есть свои мысли на этот счёт, но пока я не готов сформировать концепцию нормальной системы. Хедрок дейсвтительно проделал огромную работу. И я считаю, что простое введение ГСЧ с нормальным распределением и дисперсией, помогло бы вернуть баланс в нужную сторону.
 
 01.10.2010 в 05:44:29, bugmonster писал(a):
Т.е. к примеру, если сейчас ты можешь за несколько загрузок добиться одного критикал-хедшота одним мерком, то в старой системе за большее число загрузок можно было добиться трех критикалов тремя мерками, что при обычном рандоме было бы невероятно.
Видимо в 1.13 решили с этим побороться и убрали прерандом (частично или совсем).  

Нужно было убирать не прерандом, а убирать сохранения в пошаговке :)
« Изменён в : 01.10.2010 в 06:05:32 пользователем: coolberg » Зарегистрирован

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #15 от 01.10.2010 в 06:45:18 »

2coolberg: Мы пока сами не знаем что обсуждать, статья выложена в апреле, завтра - октябрь, но никто кроме закрытых тестеров экзешника ещё не видел. На вопросы в том треде Хедрок отвечал что в статье всё очень упрощено и не совсем так на самом деле, и что с тех пор он уже переделал некоторые вещи.
В целом, в статье есть правильные вещи, я сам над подобной системой задумывался, но пока "не дошёл ход" (с).
Мне нравится этот труд Хэдрока за его фундаментальность, на его основе можно сделать свои наработки, реализовать свои идеи. Так что я думаю имеет смысл приводить здесь свои рацпредложения и обсуждать. По итогам можно передать их Хедроку, а если откажется - запилить свой НАМ, с блекджеком и шлюхами, и назвать его, скажем, PORK ;D
 
Я подозреваю почему там долго нет открытой беты - с новой сисемой можно получить неслабые проблемы с AI, так как старый CtH использовался не только в стрельбе, но и в AI для рассчёта рационального поведения. Так как глобальным замыслом было отказаться от гарантированных попаданий, то стало невозможно заранее предсказать, насколько вероятно попадание, и стоит ли исходя из этого AI-боту стрелять.
Само определение попадания по цели тоже непонятно как реализовать. Это на картинке цель - человек с туловищем, конечностями и головой, а в jsd - это три кирпичика, поставленные друг на друга, так что все эти сходящиеся концентрические кольца на картинках пляшут вокруг тупо квадратного кирпича.
« Изменён в : 01.10.2010 в 06:56:36 пользователем: bugmonster » Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

Kirill_OverK
[Kirill - over kill]
Прирожденный Джаец

Пёёёёсики на сНеГууу, розоВыеее на белом...


WWW

Пол:
Репутация: +3
Re: [Перевод] New CTH system - Presentation
« Ответ #16 от 01.10.2010 в 08:46:14 »

да уж ... рыть AI и править под новую систему, явно самоубийство ...
 8)
Зарегистрирован

*** JA2 1.13 + AIMnas&Big maps r.7622 Russ.
от 24.11.2014 - качай или ПРОИГРАЕШЬ ! :D
https://yadi.sk/d/6SbUvmyNcubgo

Kirill_OverK
[Kirill - over kill]
Прирожденный Джаец

Пёёёёсики на сНеГууу, розоВыеее на белом...


WWW

Пол:
Репутация: +3
Re: [Перевод] New CTH system - Presentation
« Ответ #17 от 01.10.2010 в 09:09:48 »

01.10.2010 в 05:44:29, bugmonster писал(a):
Насчёт рандомных попаданий после перезагрузки - в ванилле против этого была сделана система прерандома, т.е. массив случайных чисел генерировался заранее и сохранялся в сейвниках, откуда они выбирались по очереди. Это позволяло повторять ход с теми же итогами после перезагрузки. Однако, это привело к ещё более тяжелому эксплоиту - умышленная смена порядка действий комманды позволяла изменять "случайный" результат этих действий, такой как попадание/промах или величина урона. Когда тактическая ситуация загоняла в угол, то за несколько десятков квиклоадов можно было подобрать идеальную "волшебную" последовательность действий отряда, при которой команда игрока наносила бы за ход максимум урона, а получала минимум.
Т.е. к примеру, если сейчас ты можешь за несколько загрузок добиться одного критикал-хедшота одним мерком, то в старой системе за большее число загрузок можно было добиться трех критикалов тремя мерками, что при обычном рандоме было бы невероятно.
Видимо в 1.13 решили с этим побороться и убрали прерандом (частично или совсем).  

 
подобрать иногда невозможно, а
вот с новой рэндемной системой, как раз очень даже можно,
если в случае 1 = число комбинаций ограничено,(и их нужно рыть да рыть и вертеть, да ещё и учитывать что
не попав в одного, пуля попасть в иного может и пр. варианты)
 
то в случае 2-а = хоть 900 раз перезагружайся пока не получишь нужный результат,
для каждого мерка ..
(да, и достаточно именно перегрузиться, а не  
как в случае 1ин, перебирать разные комбинации
что значительно усложняет подгон, в отличие от
случия 2 ...)
 
так что новая система мягко говоря читерство, а не реализм ...
 8)
 
во всяком случае, играть стало намного легче,
е получилось с 5й попытки в бошку попасть, с 55ой выйдет...
 
тогда как при фиксированных вероятностях,
скорее всего если %ент мал, то не при какой попытке не выйдет попасть, хоть бананы жуй ...
 
а тут ... выходит если загружаться сотни раз и при 20%
ночью в голову мухе можно попасть = что есть бред разумеется ...
« Изменён в : 01.10.2010 в 09:16:55 пользователем: Nikto, кто кто ? » Зарегистрирован

*** JA2 1.13 + AIMnas&Big maps r.7622 Russ.
от 24.11.2014 - качай или ПРОИГРАЕШЬ ! :D
https://yadi.sk/d/6SbUvmyNcubgo

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: [Перевод] New CTH system - Presentation
« Ответ #18 от 01.10.2010 в 18:57:07 »

01.10.2010 в 06:45:18, bugmonster писал(a):
Я подозреваю почему там долго нет открытой беты - с новой сисемой можно получить неслабые проблемы с AI, так как старый CtH использовался не только в стрельбе, но и в AI для рассчёта рационального поведения.  

Во-во.  С этим Терапевт сталкивался тоже, когда вмешивался в алгоритм - АИ просто отказывался атаковать или ещё что-н отрицательное.
 01.10.2010 в 06:45:18, bugmonster писал(a):
Само определение попадания по цели тоже непонятно как реализовать. Это на картинке цель -

А как происходит реализация попадания из-за разброса?
Ещё один серьезный недостаток старой системы в том, что  стреляешь в голову - попадаешь только в голову, в пузо - только в пузо...  
Но, бывает, что пуля, улетевшая в молоко, таки цепляет кого-н другого... как алгоритм в этом случае срабатывает?
Зарегистрирован

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #19 от 01.10.2010 в 19:32:19 »

Quote:
Ещё один серьезный недостаток старой системы в том, что  стреляешь в голову - попадаешь только в голову, в пузо - только в пузо...

Ну это же всё в статье описано, и почему так происходит. Особенно заметна косность системы при стрельбе в голову - т.к. она маленькая и на неё есть штрафы, то ШП оказывается ниже и потому при промахе пуля сильнее уходит в сторону, чем когда стреляешь в пузо.
Если же брать ситуацию с несколькими фрагами, то когда, например, стреляешь в стоящему фрагу в пузо, а перед ним сидит другой фраг, то тому вполне корректно прилетает в голову.
Quote:
Но, бывает, что пуля, улетевшая в молоко, таки цепляет кого-н другого... как алгоритм в этом случае срабатывает?

При пролёте пулей открытого тайла, на котором находится статический объект, кидается "100-гранная кость", и если рандом выдал то ли >60% то ли >40%, то пуля считается пролетевшей мимо, если же меньше - то тогда идёт просчёт траектории пролёта через с jsd, который и определяет пролетела ли пуля мимо или попала в объект и смогла ли его пробить.
Относительно "мягких целей" - там вероятность пролёта не фиксированная. Например, если вы стреляете наёмником через клетку где находится другой наёмник, то чем он ближе находится к стреляющему, тем меньше шанс задеть его ненароком. На фрагов тоже видимо плавающий шанс задевания, который скорее всего зависит от ситуации. Ну а если он считается "задетым", то дальше опять идёт просчёт по jsd, т.е. стреляя стоя трудно случайно зацепить лежачего.
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #20 от 02.10.2010 в 00:59:30 »

2MAn:  
Quote:
Система имхо дюже сложная. Вместо одной громоздкой запутанной системы получаем другую, сложную и громоздкую. Потом, радикальность замысла, стремление сразу всё переделать нахрен имо может в дебри завести. Тобишь забабахают и будут долго с детскими болезнями бороться.  заборют наверное... раза с третьего или четвертого, ежли терпелки хватит.  
Лучше б попробовать сначала подправить старое, упростить где-то, где-то добавить...

Хедрок именно этим и занимался ранее, предыдущие три версии ХАМа. То усилит подавляющий эффект стрельбы (хотя он и раньше был), то ограничит маленьким стволам количество AP на прицеливание. Чем больше менял, тем очевиднее становилось что это - смена покрышек у паровоза на полном ходу, что менять надо саму систему. Вот в 4-й версии ХАМа он и решил поменять.
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

MAn
[Человечище!!!]







Пол:
Репутация: +403
Re: [Перевод] New CTH system - Presentation
« Ответ #21 от 02.10.2010 в 02:42:58 »

02.10.2010 в 00:59:30, bugmonster писал(a):
То усилит подавляющий эффект стрельбы (хотя он и раньше был), то ограничит маленьким стволам количество AP на прицеливание.

ну, эти примеры не относятся к системе РШП
Зарегистрирован

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #22 от 02.10.2010 в 07:47:50 »

При описанном раскладе работы оптики особую актуальность обретают прицелы с переменной кратностью, скажем, 3х-9х, ибо позволят эффективно использовать снайперские винтовки на более широком диапазоне дистанций.  
Но реализация такого явления составляет отдельную трудность, вплоть до внедрения в интерфейс новой юстировочной кнопки или привязки ее функции, скажем, к существующей кнопке смены режима огня. Причем на снайперках это бы еще выглядело приемлемым - все равно у них эта кнопка бездействует, но ведь есть еще и широкий спектр прицелов для штурмового оружия, имеющих переменную кратность 1х(1,5х)-3.5х(4х)... //Да, в дефолтном предметном ряду их пока нет, но не сомневаюсь, что при внедрении NCtH потребность в них моментально проявится.
Зарегистрирован

Спасение утопающих - дело рук самих утопающих.
bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #23 от 02.10.2010 в 08:17:43 »

Quote:
ну, эти примеры не относятся к системе РШП  

Это была борьба с последствиями кривизны РПШ. Он лечил симптомы, а не болезнь. Первое - это от того что снайперки заруливали пулеметы совсем и т.о. он хотел поднять их полезность, второе - это релизация той же идеи что в новой РШП - разделить оружие на точное из которого можно и нужно долго целиться, и неточное из которого нужно побольше стрелять, а не целиться.
 
2Blount: Возможно я что-то недопонял, но на одной трети от дистанции 9x прицел сам будет менять свою кратность до 3х, так что специальной переключалки не понадобится (а если это не так, то в любом случае для цели всегда будет одна самая оптимальная кратность, которую игра и без подсказки сама могла бы выставить).
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #24 от 02.10.2010 в 08:27:46 »

2bugmonster:  
А в чем тогда ожидаемая проблематичность с эффективностью снайперки на близких дистанциях, вокруг которой немало толков? Количество прицельных кликов будет ограничено меньшим, соответствующим трехкратному увеличению? А почему - нельзя, что ли, дольше поцелиться? Или будет падать "энергетическая ценность" набираемых прицельных кликов?  
Получается, что многократная оптика по-прежнему будет стойко рулить на любых дистанциях, вплоть до столкновения нос к носу.
Зарегистрирован

Спасение утопающих - дело рук самих утопающих.
Kirill_OverK
[Kirill - over kill]
Прирожденный Джаец

Пёёёёсики на сНеГууу, розоВыеее на белом...


WWW

Пол:
Репутация: +3
Re: [Перевод] New CTH system - Presentation
« Ответ #25 от 02.10.2010 в 09:00:30 »

нужно увеличить штрав на поворот, в зависимости от оружия, 0левой можно для мини-автиков и пистолетов а вот снайперки, и пулемёты - по полной .. тк с ними вертеться в стороны и правда дольше ...  8)
Зарегистрирован

*** JA2 1.13 + AIMnas&Big maps r.7622 Russ.
от 24.11.2014 - качай или ПРОИГРАЕШЬ ! :D
https://yadi.sk/d/6SbUvmyNcubgo

coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #26 от 02.10.2010 в 09:02:11 »

2Blount: Если цель ближе оптимальной дистанции для прицела, то теперь он не будет игнорироваться, как раньше, а будет получать солидные штрафы. С некоторого расстояния он выобще окажется хуже механического прицела. Это всё здесь написано выше. А оптимальные расстояния теперь, чувствуется, солидно увеличат. То есть, польза от прицела будет проявляться постепенно с увеличением дистанции, а не сразу. Для панкратических прицелов, думаю, введут просто меньшее оптимальное расстояние.
Хотя мне всё равно эта система не нравится. Прицеливание на 100 метров с 10х кратным прицелом не должно быть эквивалентно стрельбе на 10 метров с без него. Сбалансировать же это даже в новом подходе можно только введением штрафов - но этот путь в никуда, то есть, обратно к эмпирике и "штрафам на штрафы"...
« Изменён в : 02.10.2010 в 09:03:34 пользователем: coolberg » Зарегистрирован

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #27 от 02.10.2010 в 09:14:04 »

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

Спасение утопающих - дело рук самих утопающих.
bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #28 от 02.10.2010 в 10:14:51 »

2Blount:  
Quote:
Или будет падать "энергетическая ценность" набираемых прицельных кликов?

Да. В статье написано что на половине рабочей дистанции бонус от прицеливания будет ополовиниваться. Значит панкратические действительно будут рулить, однако, если за смену кратности брать дополнительные AP (на смену, выстрел или прицеливание) то будет сбалансировано. А если таким прицелам вполне справедливо прописать увеличение Громоздкости Оружия то будет вообще по чесноку.
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #29 от 02.10.2010 в 10:26:07 »

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

Спасение утопающих - дело рук самих утопающих.
coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #30 от 02.10.2010 в 10:43:20 »

2Blount: для этого придётся перелопатить вообще всё. Начиная от инвентаря - прописать параметр "быстродоступность" для любого кармана на разгрузке, причём с модификаторами для разных положений (стоя, лёжа), кончая системой запоминания состояния мерка - очки за "манипуляции" должны накапливаться и сниматься только при определённых условиях. Например, если я положил предмет в руку чтобы узнать, сколько будет стоить его использование, а затем убрал обратно - то ничего не должно сниматься. А вот если я его положу в руку, а затем использую, то очки должны сняться и за использование и за его изъятие, но только уже в момент использования.
Зарегистрирован

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #31 от 02.10.2010 в 10:51:16 »

2coolberg:  
В НО, насколько я помню, базовую платность инвентаря реализовали давным-давно - то есть какая-то основа этой механики уже есть. А особенности доступности привязывать к типам предметов и карманов, безусловно, получится достаточно объемной работой, но чисто механической - ею я готов и сам заняться. Смена положений - да, отдельный шаг, но его не сделать, пока не введена база, а всякую дорогу осилит идущий.
Зарегистрирован

Спасение утопающих - дело рук самих утопающих.
coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #32 от 02.10.2010 в 23:20:44 »

Я вообще считаю, что что панкратическим прицелам в игре не место. Во время хода поменять кратность всё равно фантастика - на это должно уйти так много  ОД, что в реальности цель просто убежит. А в других ситуациях он бесполезен. Как штурмовой прицел - голографы рулят, как боевой - для этого есть прекрасные ACOG с широким диаметром выходого зрачка и прекрасной обзорностью. Так что, на мой взгляд, не стоит овчинка выделки..
 
2Blount: Нет, тут далеко не механическая работа по вписанию циферок. Тут именно задача создать совершенно новую для движка систему контроля расхода ОД.  В НО просто снимали ОД за каждое вкладывание предмета в руки, это не "платный инвентарь", это создание лишних проблем игроку. Новая система, например, должна запоминать предыдущие ОД потраченные не на манипуляции руками (например, если ты пробежал несколько клеток) и позволить игроку потом истратить эти "сохранённые" ОД на небольшие манипуляции с инвентарём, например на перезарядку (симуляция перезарядки во время бега). Это лишь единичный пример, коих я напридумал уже достаточное количество.
« Изменён в : 02.10.2010 в 23:22:05 пользователем: coolberg » Зарегистрирован

bugmonster
[Баги! Баги везде!]
Source

ПРОГРАММИРЫ НЕ УЧИТЫВАЛИ ЭТУ СИТУАЦИЮ




Пол:
Репутация: +1337
Re: [Перевод] New CTH system - Presentation
« Ответ #33 от 03.10.2010 в 03:43:04 »

Сделать "платный" переводчик огня, который не вычитает ОД за каждое нажатние на "B", а только при реальной смене режима, совсем несложно. Для этого достаточно в одном из неиспользуемых полей OBJECTTYPE для оружия хранить текущую позицию переводчика.
 
Quote:
Новая система, например, должна запоминать предыдущие ОД потраченные не  на манипуляции руками (например, если ты пробежал несколько клеток) и позволить игроку потом истратить эти "сохранённые" ОД на небольшие манипуляции с инвентарём, например на перезарядку (симуляция перезарядки во время бега).

Ересь, как есть. В основе игры лежит система, по которой передвижение и другие действия используют одну и ту же копилку ОД. Конечно, есть игры в которых на передвижение и действия используется раздельная система ОД, но JA2 не из их числа. Такое нововведение с лёгкостью похерит существующий балланс абсолютно всех параметров и откроет океан эксполоитов, которые потом ещё несколько лет фиксить придётся.
Зарегистрирован

Восславим же радость и мужество,
Труда и науки содружество
Восславим мудрую партию,
Помолимся за неё.

А Пентагон в свои руки поганые,
Пусть возьмёт свои доллары сраные
И в ж... себе затолкает

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #34 от 03.10.2010 в 04:04:09 »

03.10.2010 в 03:43:04, bugmonster писал(a):
Для этого достаточно в одном из неиспользуемых полей OBJECTTYPE для оружия хранить текущую позицию переводчика.  

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

Спасение утопающих - дело рук самих утопающих.
Sot
[СОТ 'Пригородный']
Прирожденный Джаец

:P


Ё-мэйл

Пол:
Репутация: +104
Re: [Перевод] New CTH system - Presentation
« Ответ #35 от 03.10.2010 в 04:32:36 »

Quote:
Сделать "платный" переводчик огня, который не вычитает ОД за каждое нажатние на "B", а только при реальной смене режима, совсем несложно. Для этого достаточно в одном из неиспользуемых полей OBJECTTYPE для оружия хранить текущую позицию переводчика.
хочу!!!
Зарегистрирован

Не откладывай на завтра то, что можно отложить на послезавтра. :P
coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #36 от 03.10.2010 в 05:06:47 »

2bugmonster: 03.10.2010 в 03:43:04, bugmonster писал(a):
Ересь, как есть. В основе игры лежит система, по которой передвижение и другие действия используют одну и ту же копилку ОД.

Зачем нам оглядываться на "основу" игры? Что такого сложного в дополнительной копилке, куда складываются потраченные из основной копилки ОД, при условии, что потрачены они были без использования рук? К тому же, этих условий не много: только при передвижении сидя и стоя. А как только игрок выполняет какую-либо манипуляцию, то они исчезают. А пользоваться ими можно только для небольшого количества действий. Но даже этого хватит, чтобы сохранить некоторое количество лишних нервных клеток :)
03.10.2010 в 03:43:04, bugmonster писал(a):
Такое нововведение с лёгкостью похерит существующий балланс абсолютно всех параметров и откроет океан эксполоитов, которые потом ещё несколько лет фиксить придётся.  

За историю модостроя в JA2 апокалипсис приходил уже не раз (на очереди следующий: NTCH). Но все живы пока что. Так что этим не запугать :)
« Изменён в : 03.10.2010 в 05:54:15 пользователем: coolberg » Зарегистрирован

Anthrax
[Сибирский Язв]
Прирожденный Джаец

Лимонадный Джо


WWW Ё-мэйл

Пол:
Репутация: +20
Re: [Перевод] New CTH system - Presentation
« Ответ #37 от 03.10.2010 в 05:34:23 »

По-моему, новая система СТН - заумная херня, от которой только проблем для игрока больше, причем большая часть из них просто на ровном месте.  
 
Вот народ ратует за реальзм! И при этом хочет баланса, чтоб "снайперки не заруливали пулеметы". Это бред. В такой пошаговой игре, как JA2, снайперка всегда будет заруливать пулемет. Всегда! Или, почему все затыкают свой реальзм в жопу, когда на режиме "инсане" я четырмя мерками выношу 30 вражин в А9-Омерте? Или когда теми же 4 мерками + 20 ментов выносится толпа около 150 драньковцев, половина из которых спецназ, пришедших отбивать шахту Драссена. Или в ночном бою выигрываю 1 против 10 врагов. Это игра. Цель игры - комфортное проведение времени игроком. Игроку, если он не конченный мазохист, не надо, чтобы враги вели себя "умно" и ныкались и кемперили по кустам, а надо, чтоб толпой ломились грудью на амбразуру. Во всяком случае основная масса должна именно ломиться. Задача фрага - красиво и героически умереть, дав положительные эмоции игроку от его убийства, а не приносить тому же игроку несметное число геммороя.
 
Касаемо системы прицеливания/попадания, вообще непонятно, чем программеры занимаются.
 
Y - вероятность попадания на нацеленого фрага.
 
0.01 <  Y < 1
 
Y = F(x) = F(ПАРАМЕТРЫ МЕРКА, ПАРАМЕТРЫ ОРУЖИЯ, ПАРАМЕТРЫ СТРЕЛЬБЫ, ПАРАМЕТРЫ ДАЛЬНОСТИ, ПАРАМЕРТЫ ПОГОДЫ, ПАРАМЕТРЫ ЕЩЕ ХРЕН ЗНАЕТ ЧЕГО, УДАЧА ИЛИ РАНДОМ)
 
Получили в итоге число, к примеру, 0.83, или вероятность попадания 83%, только теперь рисуем ту самую полуокружность на картинках вокруг вражьего фрага, 83% которой будут совпадать с телом фрага или с его какой-то частью (голова, пузо, ноги). И стреляем по этой окружности, по равномерному распределению естественно.
 
И все. Если мы жалуемся, что убогий мерк стреляет из снайперки, как заправский снайпер (читай, всегда имеет высокую вероятность попадания там, где иметь ее вроде бы не должен), значит у нас проблемы не в снайперке или в прицеле 10х, а В УЧИТЫВАНИИ ПАРАМЕТРОВ МЕРКА В РАСЧЕТЕ КОНЕЧНОЙ ВЕРОЯТНОСТИ ПОПАДАНИЯ. И не надо городить велосипедов. Нам нужно только одно число - вероятность попадания. А все все все остальное - это только то, из чего и будет выводиться эта вероятность. Кстати, если уж упоминается каким-то боком реальзма, настоящий снайпер с 90-95 и более очками меткости, он и должен выносить все и вся хедшотами на практически любых расстояниях, ограниченных прицельной дальностью снайперки.
Зарегистрирован

Будте реалистами - требуйте невозможного!
coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #38 от 03.10.2010 в 05:48:40 »

03.10.2010 в 05:34:23, Anthrax писал(a):
Игроку, если он не конченный мазохист, не надо, чтобы враги вели себя "умно" и ныкались и кемперили по кустам, а надо, чтоб толпой ломились грудью на амбразуру. Во всяком случае основная масса должна именно ломиться. Задача фрага - красиво и героически умереть

не согласен. Именно по этому принципу сейчас создаются такие игры, как Modern Warfare, и именно по этому принципу они являются редчайшим говном в шоколаде.  
 03.10.2010 в 05:34:23, Anthrax писал(a):
Y = F(x) = F(ПАРАМЕТРЫ МЕРКА, ПАРАМЕТРЫ ОРУЖИЯ, ПАРАМЕТРЫ СТРЕЛЬБЫ, ПАРАМЕТРЫ ДАЛЬНОСТИ, ПАРАМЕРТЫ ПОГОДЫ, ПАРАМЕТРЫ ЕЩЕ ХРЕН ЗНАЕТ ЧЕГО, УДАЧА ИЛИ РАНДОМ)  
 
Именно для сбалансированного учёта первых четырёх параметров в формуле и вводится NCTH.
« Изменён в : 03.10.2010 в 05:49:53 пользователем: coolberg » Зарегистрирован

Anthrax
[Сибирский Язв]
Прирожденный Джаец

Лимонадный Джо


WWW Ё-мэйл

Пол:
Репутация: +20
Re: [Перевод] New CTH system - Presentation
« Ответ #39 от 03.10.2010 в 06:09:50 »

03.10.2010 в 05:48:40, coolberg писал(a):
Именно для сбалансированного учёта первых четырёх параметров в формуле и вводится NCTH.  

А их не надо балансировать. Их надо просто грамотно учитывать. Например, ключевым параметров у мерка так или иначе будет его параметр "меткость". Все остальные параметры вторичны, на результат обработки всего блока параметров, связанных с мерком, повлиять могут, скажем, максимум в пределах +-20%. Т.е., к примеру, если мерк имеет меткость 60, больше 0.6 к конечному числу вероятности попадания он прибавить ну никак не может.
А все параметры оружия, скажем, больше 0.2 к конечному числу вероятности попадания тоже добавить не могут. Т.е. вероятность попадания у мерка с параметром меткости 60 не может быть больше 0.8 или 80%. Меткость мерка - она не равнозначна с параметрами оружия. И значимость расстояния до цели так же неравнозначна с параметром меткости мерка. В конце мы складываем результаты обработки всех параметров блоков "мерк", "оружие", "условия стрельбы", "дальность" и т.д. и получаем финальную вероятность. Тут же говорилось, что у косого стрелка наличие оптики мало что должно менять. Вот оно и будет мало что менять, т.к. значение косости имеет гораздо больший вес в определении итоговой вероятности попадания, чем значение наличия/отсутствия оптики. И такую систему и балансировать гораздо легче. Например, все параметры оружия могут дать максимум не +-20% к финальной вероятности, а +-15%, или +-50%, как мы посчитаем нужным. На наличие/отсутствие оптики вообще можно при желании и отдельный блок "ПАРАМЕТРЫ ОПТИКИ" создать, но я считаю, что он просто не нужен, блока "ПАРАМЕТРЫ ОРУЖИЯ" более чем достаточно.
 
Да, сравнивать Калл оф Дути с ДЖА - это сильно. Кстати, в Калл оф Дути пулеметы как раз очень даже рулят - там "реальная стрельба", т.е. непосредственно дергаем за гашетку, а у нас пошаговая тактика. Ну где в нашей пошаговой тактике реально могут быть применены пулеметы? Чем их применение будет лучше, а главное оправданее применения автоматов и тех же снайперок? Ничем. Да, извратиться можно, но изврат в данном случае должен состоять в правках не всего баланса оружия, а в праках значений для пулеметов, т.е. убирать у пулеметов всякие штрафы и вообще делать им малое число AP на ход/выстрел. Плевать, что это как бы не вписывается в "наш JA2 реализьм", зато их снова можно будет полноценно применять на поле боя, а не выкидывать их в пользу менее легких, да еще и с возможностью навесить хорошую оптику, штурмовым винтовок и, тем более, снайперок. И велосипедов страшных опять же, корежущих все и вся оружие изобретать не надо. Я, например, у себя так и делаю. Всем пистолетам вообще не больше 3 АР на выстрел прописываю, и пулеметам не больше 5 АР и все штрафы убираю. Зато все это оружие хоть как-то можно использовать в игре. Да и бои с участием ментов/вражин с увеличенной пальбой становятся куда интереснее.
« Изменён в : 03.10.2010 в 06:22:46 пользователем: Anthrax » Зарегистрирован

Будте реалистами - требуйте невозможного!
coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #40 от 03.10.2010 в 06:26:57 »

2Anthrax: всё это выглядит очень складно на словах, но, уверяю, когда ты возмёшься за имплементацию системы, чётко обрабатывающую все возможные ситуации в игре, у тебя в лучшем случае получится ужасающее нагромождение ввиде oldCTH. Штрафы на штрафах, коэфициенты от балды, дикая неустойчивость к введению новых фич и т.д.
Хедрок же, решил привести эту чушь к более менее нормальному виду, взяв за основу физическую модель стрелок-оружие-цель и перенеся её в термины игровой механики.
А про COD я упомянул только в плане отстрела фрагов - типичный шутер, где всё 100% заскриптовано. Реиграбельность нулевая. А потому что не интересно болванчиков отстреливать. Хочется, чтобы хотя бы раз такой же солдат, как и ты, взял и надрал тебе задницу. Чтобы почувствовать, что ты не всесилен, что ты должен думать. Пока среди шутеров таких игр практически не было. Ну может быть только первый FEAR, как ни странно. Особенно, если клавишу slowmotion разбиндить. Конечно же были ещё первые R6 и Ghost Recon, OFP, ArmA и т.д. Но это уже тактические шутеры.
« Изменён в : 03.10.2010 в 06:39:33 пользователем: coolberg » Зарегистрирован

Blount
[Блау пункт]
Небесный Всадник

Я люблю этот Форум!




Репутация: +119
Re: [Перевод] New CTH system - Presentation
« Ответ #41 от 03.10.2010 в 06:31:38 »

03.10.2010 в 06:09:50, Anthrax писал(a):
Ну где в нашей пошаговой тактике реально могут быть применены пулеметы? Чем их применение будет лучше, а главное оправданее применения автоматов и тех же снайперок? Ничем

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

Спасение утопающих - дело рук самих утопающих.
Anthrax
[Сибирский Язв]
Прирожденный Джаец

Лимонадный Джо


WWW Ё-мэйл

Пол:
Репутация: +20
Re: [Перевод] New CTH system - Presentation
« Ответ #42 от 03.10.2010 в 06:34:42 »

2coolberg:  
Ничего подобного! Такая система оптимальна для любой балансировки, сколь угодно расширяема (скажем, сделали мы в игре погоду, спокойно можно добавлять блок "ПАРАМЕТРЫ ПОГОДЫ" в общую схему) и легко тестируема. А те монстры, та же CHT - это пипец. Вот в ней-то как раз ты заколебешься все учитывать и балансировать. В чем проблема СНТ? Какой-нить штраф, вылезающий в каком-то специфическом случае (косой стрелок с наикрутейшей  снайперкой стреляет по фрагу, стоящему на другом конце карты) для нас вдруг оказывается самой важной частью вычислений и балансировки и гробит всю систему расчета и баланса для всего остального.  
 
upd по поводу шутеров.
Quote:
Хочется, чтобы хотя бы раз такой же солдат, как и ты, взял и надрал тебе задницу. Чтобы почувствовать, что ты не всесилен, что ты должен думать. Пока среди шутеров таких игр практически не было. Ну может быть только первый FEAR, как ни странно. Особенно, если клавишу slowmotion разбиндить. А всё остальное - это уже были тактические шутеры - первые R6 и Ghost Recon, OFP, ArmA...

Это лично тебе хочется, таких как ты 1-2%. А остальным хочется именно шутера и отстрела фрагов. Или в СоД что, разве убить тебя не могут? Да запросто - попрешь грудью на амбразуру на сложном уровне - угрохают как нефик делать.
 
То, что Хедрок решил привести систему к чему-то хорошему - это хорошо. Но методы и принципы, которыми и изходя из которых он решил все менять, они, по моему глубокому мнению, в корне неверны. Почему, уже объяснил. Нам не надо реализь. Нам надо ИМИТИЦИЯ реализьма. Считаю, что "моя" система и с этой задачей справиться гораздо лучше.
« Изменён в : 03.10.2010 в 06:46:07 пользователем: Anthrax » Зарегистрирован

Будте реалистами - требуйте невозможного!
Anthrax
[Сибирский Язв]
Прирожденный Джаец

Лимонадный Джо


WWW Ё-мэйл

Пол:
Репутация: +20
Re: [Перевод] New CTH system - Presentation
« Ответ #43 от 03.10.2010 в 06:39:19 »

2Blount:  
 03.10.2010 в 06:31:38, Blount писал(a):
Три-четыре коротких очереди из пулемета или один залп на полкороба лично у меня обычно оказывается куда эффективнее одиночного прицельного выстрела из снайперки.  

Это все твой стиль игры, особенности твоего стиля прохождения. А если брать картину в целом, из 4 мерков выгоднее всех 4 снабдить снайперками, чем одного из них пулеметом. Опять же, что значит огонь на подавление? Его можно вести из штурмовой винтовки? Если да, пулемет опять в пролете. Опять же, пулемет - он что, только для огневого подавления?
Зарегистрирован

Будте реалистами - требуйте невозможного!
stariy_voyack
[оловянный солдатик]
Прирожденный Джаец






Пол:
Репутация: +28
Re: [Перевод] New CTH system - Presentation
« Ответ #44 от 03.10.2010 в 06:41:13 »

03.10.2010 в 06:39:19, Anthrax писал(a):
из 4 мерков выгоднее всех 4 снабдить снайперками, чем одного из них пулеметом

 
 Ну, это если только против 10 врагов.
Зарегистрирован

coolberg
[Ядрён Батон!]
Прирожденный Джаец






Пол:
Репутация: +138
Re: [Перевод] New CTH system - Presentation
« Ответ #45 от 03.10.2010 в 06:46:12 »

2Anthrax: ну если у тебя всё так просто, тогда помоги нам решить такую проблему: как в общей формуле учитываются следующие параметры: а) меткость, б) кратность прицела, в) оптимальная дистанция прицела, г) дальнобойность оружия и д) дистанция до цели. Потом не забудь прибавить бонусы от ОД на прицеливание.
У меня пока ничего яснее того, что преложил Хедрок в NCTH, не получается.
« Изменён в : 03.10.2010 в 06:50:58 пользователем: coolberg » Зарегистрирован

stariy_voyack
[оловянный солдатик]
Прирожденный Джаец






Пол:
Репутация: +28
Re: [Перевод] New CTH system - Presentation
« Ответ #46 от 03.10.2010 в 06:46:16 »

Штурмовая винтовка абсолютно не то по сравнению с пулеметом. У того же М249 миними бешеная скорострельность и емкость "магазина- короба". За единицу времени Бешенный умудрялся таки "половину короба" расстрелять в припадке. И да, пулеметы в основном используются для подавления, когда враги уже близко и становися веселее.
Зарегистрирован

Anthrax
[Сибирский Язв]
Прирожденный Джаец

Лимонадный Джо


WWW Ё-мэйл

Пол:
Репутация: +20
Re: [Перевод] New CTH system - Presentation
« Ответ #47 от 03.10.2010 в 06:55:53 »

03.10.2010 в 06:41:13, stariy_voyack писал(a):
Ну, это если только против 10 врагов.  

Да сколько бы ни было врагов. Когда врагов много, самое главное в ДЖА - это при стрельбе постоянно и желательно более-менее гарантированно попадать. Что толку от оружия, пусть тратящего меньше АР на выстрел, но при этом не попадающего? Да, есть сложность в ближнем бою, для него есть всякие микроузи и прочее. Из снайперки я практически всегда с близкого расстояния так или иначе попадаю в голову, что практически = смерти фрага. Стреляя по нему из штурмовой винтовки, я во первых намеренно должне подпустить врага поближе (а враг-то в отличии от меня попадает в меня практически с любого расстояния, особенно если палит очередями даже из того же микроузи с запредельными дистанциями) и стрелять в него или два раза в голову (при меньших параметрах точности и дамаджа), или выпускать в него очередь. При прочих равных преобладание снайперками в отряде рулит. Например при дикой атаке Драссена в последний раз у меня у 6 бойцов было 5 снайперок и у одного калаш. Вражин было около 80. Тот, который с калашом в итоге в середине боя вынужден был раненым уползти в жопу и там просидеть до конца боя, хотя его калашу я даже специально уменьшил АР и чуть увеличил дамадж, а остальные 5 мерков просто вынесли всех врагов еще на подходе к зданию, на котором сидели.
« Изменён в : 03.10.2010 в 06:57:45 пользователем: Anthrax » Зарегистрирован

Будте реалистами - требуйте невозможного!
stariy_voyack
[оловянный солдатик]
Прирожденный Джаец






Пол:
Репутация: +28
Re: [Перевод] New CTH system - Presentation
« Ответ #48 от 03.10.2010 в 07:05:19 »

03.10.2010 в 06:55:53, Anthrax писал(a):
Да сколько бы ни было врагов.

 
 Посмотрел бы я, как ты против тех же 80 рыл ночью в поле 5 снайперами воевал. Просто недавно был такой экспириенс, вот уж не не знаю что бы делал без пулеметчика и 2х штурмрвиков. В отряде 3 снайпера с ночными прицелами. Окружили и таки начали уже доставать вазелин. Снайперские винтовки это не панацея.
Зарегистрирован

stariy_voyack
[оловянный солдатик]
Прирожденный Джаец






Пол:
Репутация: +28
Re: [Перевод] New CTH system - Presentation
« Ответ #49 от 03.10.2010 в 07:19:01 »

Плюс к тому же карты валдфайра обильно заросли всяким бурьяном. И вот где- где но в траве по пояс, эти снайпера очень будут нуждаться в чем- то похожим на пистолет- пулемет или штурмовую винтовку. А вообще"...лучче - пулімьот чи танк..."  ;D
Зарегистрирован

Страниц: 1 2 3 4 5 6 7 8 9  Послать Тему Послать Тему Печатать Печатать

« Предыдущая Тема | Следующая Тема »

Статистика. Размер данных: 243374 GZip: off
A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.