A.I.M.(http://forum.ja2.su/cgi-bin/yabb/YaBB.pl)
Обсуждаем игры >> Night Ops >> Наука и религия в исходниках НО.
(Message started by: Bonarienz на 14.11.2010 в 02:18:41)

Заголовок: Наука и религия в исходниках НО.
Прислано пользователем Bonarienz на 14.11.2010 в 02:18:41
Вот, картинка возможных точек поражения в центрах оснований "кубиков" жсд в ДжА и НО.

(Шарики из пластика - потому и блики на них. А теней нет - выключены)

Желтый шар - голова врага, в которую нацелен пулемет.
Ниже "земли" - тоже есть шарики, но их не видно. Да, вот!

Полагаю, в таком клуче реально формировать любой эллипс рассеяния, для любого оружия, хоть "летающего кинжала"!

Если добавить еще два таких массива - перед и после показанного, то получаемое 3-х-мерное, дискретное пространство вполне заменит реальный эллипсоид(!) рассеяния.

[attach]

А физика в движке довольно серьезно расписана...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 14.11.2010 в 02:30:37

on 1289693921, Bonarienz wrote:
Полагаю, в таком клуче реально формировать любой эллипс рассеяния, для любого оружия, хоть "летающего кинжала"!  

Продолжайте. ))) Я просто мысль не ловлю. Ну вывел, допустим, у нас есть формула этого эллипса. В каком виде она нужна? В виде формулы эксцентриситета + одного из поперечников? В виде формул двух поперечников? Ну допустим, у нас они есть F1(N) и F2(N). дальше что?

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем aazmav на 14.11.2010 в 02:39:33
Мне кажется, что в этом случае конус более уместен, чем эллипс

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Luficer на 14.11.2010 в 02:41:37

on 1289693921, Bonarienz wrote:
Если добавить еще два таких массива - перед и после показанного, то получаемое 3-х-мерное, дискретное пространство вполне заменит реальный эллипсоид(!) рассеяния.  


3 раза прочитал - не вкурил.

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

"3-х-мерное, дискретное пространство" о котором ты говоришь даст ту же визуальную картину.

Зачем изобретается велосипед?
- для изменения картины попадания - нет, те же яйца.
- для приближения к жизни в расчете точности попадания  - проще добавить каждому оружию в рассеивание что-то вроде RND/х, где х - субъективная "точность" ствола в интервале 0.01-1, при этом 1 - самая навороченная снайперская винтовка, к примеру.  

::)

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 14.11.2010 в 02:46:10

on 1289695297, Luficer wrote:
Зачем изобретается велосипед?  

Вот-вот. Как я понимаю, хочется построить реалистичную модель очереди. Но я хоть убей не пойму, зачем выводить "эллипс", когда в конце концов вычисление шанса все равно сведется к функции от тех же переменных с теми же параметрами, так не все ли равно какая она будет? Если очень хочется, можно просчитать модель ОДИН РАЗ, построить кривую вероятностей, а потом подобрать похожую функцию, да блин хоть полином Чебышева с 2мя членами. И всё. Вводить просчет эллипсов в движок игры - излишество. Имхр.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Bonarienz на 14.11.2010 в 02:55:11
2Dirk_Diggler:

Ты это, не ругайся - за такое  
on 1289695570, Dirk_Diggler wrote:
да блин хоть полином Чебышева с 2мя членами
могут и это... Диплом отнять...

Этот   T_2(x) = 2x^2 - 1,  или этот   T_3(x) = 4x^3 - 3x ? Или они же, но второго рода?

И куда его? И зачем?!


Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:01:59
Его - как функцию, интерполирующую штраф к попаданию на отрезке от 0 до 1. Например. да необязательно чебышевскими, можно любым другим. Суть - просто интерполировать некую "реальную" зависимость.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:02:27
Так в чем суть предложения считать эллипс?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 20:15:32
Никто не замечал, что меткость очередей падает с выстрелами просто катастрофически? Я тут формулу посмотрел...
Стрелять стоя и даже сидя очередями длинней чем 2-3 выстрела из большинства оружия просто нет смысла. Последние же выстрелы из очереди в 10 патронов почти 100% уйдут в молоко - падение точности линейное. Может, сделать падение точности хотя бы по квадратному корню?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем jz на 13.11.2010 в 20:45:06
2Dirk_Diggler: Обычно в выходные здесь разработчики не появляются.

Вот надергал из Weapons.c по поводу очереди. Предлагаю править прямо в коде, так Богам проще потом смотреть.


Code:
     // If in burst mode, deduct points for change to hit for each shot after the first
     if ( pSoldier->bDoBurst )
     {
           //***17.10.2007*** Смещённый импульс отдачи, пулемёты и техника
           if( (Weapon[usInHand].ubWeaponType == GUN_LMG && ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight == ANIM_PRONE || gAnimControl[ pSoldier->usAnimState ].ubEndHeight == ANIM_CROUCH && FindSupport(pSoldier) ))
                 || TANK(pSoldier) || AM_A_ROBOT(pSoldier) )
                 iPenalty = pSoldier->bDoBurst - WeaponExt[usInHand].ubBurstHitStart;
           else
                 iPenalty = Weapon[usInHand].ubBurstPenalty * (pSoldier->bDoBurst - WeaponExt[usInHand].ubBurstHitStart);
           
           if(iPenalty > 0)
           {
                 if ( HAS_SKILL_TRAIT( pSoldier, AUTO_WEAPS ) )
                 {
                       iPenalty /= 2 * NUM_SKILL_TRAITS( pSoldier, AUTO_WEAPS );
                 }
                 iChance -= iPenalty;
           }
     }

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем jz на 13.11.2010 в 21:04:11

Quote:
BurstPenalty - штраф на каждый выстрел в очереди.
BurstHitStart - выстрел в очереди, после которого начинает влиять BurstPenalty

Для техники, пулеметчиков лежа/сидя с опорой bDoBurst - BurstHitStart
Остальные BurstPenalty * (bDoBurst - BurstHitStart)
Как видно из отрывка, от выстрелов меняется величина bDoBurst. Остальные - постоянны.

Теперь ищем, как меняется bDoBurst:

Code:
     if ( pSoldier->bDoBurst )
     {
           // done, if bursting, increment
           pSoldier->bDoBurst++;
     }
Если я правильно понял, то это просто счетчик с шагом 1 (считает пули).

Расчёт для АК-74:
BurstPenalty = 7
BurstHitStart = 1
1: 7 * (1 - 1) = 0
2: 7 * (2 - 1) = 7
3: 7 * (3 - 1) = 14
4: 7 * (4 - 1) = 21
5: 7 * (5 - 1) = 28
6: 7 * (6 - 1) = 35
7: 7 * (7 - 1) = 42
8: 7 * (8 - 1) = 49
9: 7 * (9 - 1) = 56
10: 7 * (10 - 1) = 63

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 21:34:12
во-во. Не стрелял из АК, но думается мне, что там даже со 2-3го патрона вероятность попадания одинаковая примерно. а тут разница между 3 и 10м - заоблачная.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Терапевт на 13.11.2010 в 21:37:52

on 1289676852, Dirk_Diggler wrote:
Не стрелял из АК, но думается мне, что там даже со 2-3го патрона вероятность попадания одинаковая примерно

При стрельбе из неустойчивых положений - да, для попадания в щит 2 на 2 метра со 100 метров.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 21:43:17

on 1289677072, Терапевт wrote:
При стрельбе из неустойчивых положений - да, для попадания в щит 2 на 2 метра со 100 метров.  

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

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 21:52:04
вот и предлагаю, сделать, скажем, по корню.
2: 7 * sqrt(2 - 1) = 7
3: 7 * sqrt (3 - 1) = 9

5: 7 * sqrt (5 - 1) = 14

10: 7 * sqrt (10 - 1) = 21

Т.е. стандартное отклонение для всех выстрелы со штрафом - будет меньше. Если штраф кажется маленьким - увеличить BurstPenalty.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 22:00:22
2Dirk_Diggler:

АК - да, без привычки к правильному удержанию - ствол идет вверх-влево... Уже вторая пуля - в молоко. У АКМ - есть компенсатор, увод вверх заметно меньше, но все равно есть. Кучности, особенно вертикальной - никакой, если не привыкнуть.

У АН - совершенно иная схема, и кучность чуть ли не на порядок выше. Его практически "не ведет", все зависит от стрелка...

Модель поведения ствола в руках стрелка - весьма непроста, и ее лучше вообще не трогать.

По идее, для игры следует просто визуально оценивать "эллипс рассеивания" по  макс. углу между пулями в очереди. Так, на десяти клетках рассеивание в три (3) фигуры - дост. реально. Это даст 5 фигур на 20 тайлах, 7 - на 30, и 9 - на 40. Вполне похоже. Такая аппроксимация допустима из допущения о малости углов.

Видимо, тут просятся коэффициенты для типа патрона, дальности стрельбы ствола, и т.п.

Т.е., если сейчас веер рассеивания в НО сузить раза в два, то будет песня!!!

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:01:18
и еще одно предложение. т.к. параметры стрельбы очередями у стволов очень разные, и в игре они не показываются, и лазить в TTX.TXT нет никакого желания/удовольствия, то: в случае очереди показывать у курсора вероятность попадания лишь первой пули(а показывается именно она) - нелогично. имхо, логично показывать там математическое ожидание кол-ва попаданий или вероятность попадания хотя бы одной пули. По вероятности только первой пули сложно принять решение о длине очереди...  ::)

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:02:34

on 1289678422, Bonarienz wrote:
По идее, для игры следует просто визуально оценивать "эллипс рассеивания" по  макс. углу между пулями в очереди. Так, на десяти клетках рассеивание в три (3) фигуры - дост. реально. Это даст 5 фигур на 20 тайлах, 7 - на 30, и 9 - на 40.

в формуле не участвуют тайлы, только длина очереди. вообще, завязка на тайлы выглядит более логичной, но ЗНАЧИТЕЛЬНО сложнее реализуемой. поэтому я об этом даже и не заикаюсь.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:07:46

on 1289678422, Bonarienz wrote:
АК - да, без привычки к правильному удержанию - ствол идет вверх-влево... Уже вторая пуля - в молоко. У АКМ - есть компенсатор, увод вверх заметно меньше, но все равно есть. Кучности, особенно вертикальной - никакой, если не привыкнуть.

У АН - совершенно иная схема, и кучность чуть ли не на порядок выше. Его практически "не ведет", все зависит от стрелка...  

в случае нелинейной зависимости(логарифмич. или по корню) - все эти проблемы прекрасно решаются разным BurstPenalty.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 22:19:01
2Dirk_Diggler:

В движке везде есть привязка к системе координат, хотя она часто - неявная.

О тайлах и фигурах говорится в смысле углов рассеивания. Вышеприведенные цифры соответствуют стволам класса ПП и АКСУ.
Можно прикинуть и углы, и тангенсы этих углов именно по "прикидке к местности".

Как вариант, считать рассеивание по основанию в три фигуры, НО с высотой, равной дальнобойности ствола,  с учетом влияния параметра Deadlyness. Типа, чем круче, тем точнее.

Так, размер тайла - 1 игровой метр, фигура - 50...60 см шириной. Фигуры стоят в центрах тайлов. Имеем равносторонний треугольник с высотой 10 метров, и 2 полустороны в основании длиной 1м (расст. между центрами тайлов) + 30 см (полуширина фигуры). Вот, имеем тангенс полуугла рассеивания, равный 13/100.
Имеем угол рассеивания (мелкодрянь куркулятырь) atan (13/100) * 2 = 14,8 град. им. алидады... Вполне разумная, похожая на правду цифра...

Так что - возможно все, было бы время, желание, знания...

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 22:29:05
2Dirk_Diggler:

Математика стрельбы весьма сложна. Там не зря эллипс рассеивания! Не стоит в это лезть, особенно по корням логарифмов  :P. В ТФКП тангенс - тот же логарифм.

Просчет любой "чистой" функции в игре - бессмысл. трата времени и ресурсов. Все надо делать линейными операциями, да еще и с целыми числами, в идеале.
Cf. atan (4/7) соответствует 30 град. с точностью до 4-ого знака.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:33:30
Ну допустим у нас будет эллипс. Что дальше? А дальше просто - оценка вероятности попадания. Соот-но, если эллипс - есть функция от переменных а1,...,aN, то вероятность попадания - аналогично будет функцией от них же. опять таки, задача сведется к её интерполированию. Ну либо точному выводу, для тру-фанов реализма )))
Просто, я веду к тому, что линейное приближение - имеет смысл заменить на более точное нелинейное.

Я не понял, ты ратуешь за более точное приближение или за то, чтобы не трогать линейную зависимость?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:37:12

on 1289680145, Bonarienz wrote:
трата времени и ресурсов. Все надо делать линейными операциями, да еще и с целыми числами, в идеале.  

Для корней и логарифмов - можно просчитать матрицу, скажем, 255х255, при старте игры, и брать значения оттуда. Вам же не жалко 254 кбайта ОЗУ?  ;) ;D

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 22:40:27
2Dirk_Diggler:

Я ратую за тангенс, приявязанный к системе координат игры!!! И оптимум из реалистичности и простоты-скорости обсчета.

А тангенс - сугубо нелинейная функция...

Если привязать точки попадания к дискретам жсд в тайле, или разбить тайл еще к.-л. сеткой(!), то можно тупо и линейно считать рассеивание по линии, перепендикулярной директрисе. Сразу же появляется твоя жаждаемая нелинейность для стрелка!

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:45:52
Вот, тут пишут:
http://bratishka.ru/archiv/2010/2/2010_2_8.php

Quote:
При определении вероятности поражения целей автоматическим огнем по формуле, указанной выше, получаются завышенные результаты (на 3–7%).

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

Делать вероятностные выкладки(невооруженным глазом видно, что при линейной зависимости разница будет ГОРАЗДО больше 7%) или по этому вопросу позиция принципиальная, и обсуждать смысла нет?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:48:21

on 1289680827, Bonarienz wrote:
2Dirk_Diggler:  

Я ратую за тангенс, приявязанный к системе координат игры!!! И оптимум из реалистичности и простоты-скорости обсчета.

А тангенс - сугубо нелинейная функция...  

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

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 22:55:48
2Dirk_Diggler:

"Ф этай стате - многа букаф, а моск - малиньки! Ниасилил!"

Просто учился по учебникам гр-ки Вентцель, непререкаемого авторитета в области теории стрельб. Поэтому - лень читать популяризаторофф.

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

В нашем случае можно сделать т.н. призматическое - треуг. с ненулевым основан.), или более сложное, но ломаное из прямых. Тогда таблица коэфф. займет не 256 кБайт, а 11...64 слова.

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

Пришел этот - он тоже по Вентцель учился - и нас понесло... Раскрыв угла рассеивания определяется опытом стрелка, начальный угол ошибки прицеливания (!) - меткостью и (меньше) ловкостью. Ну, и далее опять расписывается модель с 20-ю нелинейными параметрами... :beer:

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 23:03:50
2Dirk_Diggler:

Не замыкайся на эллипсе! Ну не стОит вводить непр. функции в чисто дискретное пр-во!

Вот смотри - берем базовым "куском" вертикальную плоскость, с длиной основания в 3 тайла, и проходящую через центры этих тайлов. Высота плоскости - 2 верт. тайла.

Если считать в дискретах жсд, то плоскость имеет 15 гориз. и 8 верт. дискретов (4 + 4). Для полноты счастья убираем сверху 1 дискрет.

Получаем 15х7 дискретов, причем центр нашей сетки - точка прицеливания. Вот и раздавай вероятности...

В таком виде новобранец, стреляющий в голову врага, стоящего на земле, может попасть в торс другого, стоящего на крыше!

Ужели мало?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 23:14:31

on 1289681748, Bonarienz wrote:
Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может).  

Однако. И это повод оставить линейную зависимость? :o

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 23:16:09

on 1289682230, Bonarienz wrote:
Ужели мало?  

Вот именно. Зачем эллипс-то приплетать? Достаточно-то одной нелинейной функции.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 23:17:18

on 1289681748, Bonarienz wrote:
Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может).

Чего???

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 23:22:32
2Dirk_Diggler:

Ну, эллипс-та, эта, линейнай, канешна, да!

Нравится нелинейная - вставляй! Только как и куда? А главное - зачем?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 23:23:30

on 1289683038, Dirk_Diggler wrote:
Чего???


Того, того!!!

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 13.11.2010 в 23:37:34

on 1289683352, Bonarienz wrote:
Нравится нелинейная - вставляй! Только как и куда? А главное - зачем?  

Чтобы а) сделать очередь вещью более логичной. б) чтобы её имело смысл использовать. Сделали же возможность выпускать 12 патронов за раз, "а главное - зачем?" (ц) если после 4-6 патрона всё летит в молоко?


on 1289683410, Bonarienz wrote:

Того, того!!!  

Чего "того"? что значит "Любое классическое распределение в дискретных пространствах легко аппроксимируется прямыми (а кривыми - и не может). "
Точки отрезочками соединил - это типа "аппроксимация в дискретном пространстве" ? Я теорию стрельбы не изучал, но с мат. аппаратом у меня всё в порядке. Чего это кривыми не может? Приближение кривыми оно завсегда точнее.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 13.11.2010 в 23:47:19
2Dirk_Diggler:

У меня тож с МАТ-аппаратом все намана! Так обложу, этажей в 7, с падежными окончаниями!!!

Эт распр. ошибка -  
on 1289684254, Dirk_Diggler wrote:
Чего это кривыми не может? Приближение кривыми оно завсегда точнее.  
- а если пр-во всего из 3 или 5 точек состоит!?

Задача не в том, у кого, что и насколько куда! Задача - в конкретной, простой, быстро считающейся и ЖИВОПИСНОЙ на экране ДжА автоматической стрельбе! Вот!

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Legend на 14.11.2010 в 00:14:08
2Dirk_Diggler: 2Bonarienz: Ппц, флудеры-оверпостеры, у меня от вас мозг кипит! :o :insane: Шли бы вы.. к некромантам =) А то ща весь народ распугаете, кто осмелится про клюшки Дейдраны спросить?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 00:30:13

on 1289684839, Bonarienz wrote:
а если пр-во всего из 3 или 5 точек состоит!?  

Пространство не может состоять из 3(и даже 5) точек ))))

В любом случае, аппроксимацию полиномами затем и придумали, что отрезки не удовлетворяют по точности. Опять же, отрезки соединяют точки некоторые точки, и приближение - есть набор отрезков. В нашем же случае - кривая ОДНА на все случаи жизни.


on 1289684839, Bonarienz wrote:
Задача - в конкретной, простой, быстро считающейся и ЖИВОПИСНОЙ на экране ДжА автоматической стрельбе! Вот!

Не вижу, чем нелинейная зависимость не удовлетворяет этому критерию. )


on 1289686448, Legend wrote:
2Dirk_Diggler: 2Bonarienz: Ппц, флудеры-оверпостеры, у меня от вас мозг кипит! :o : insane : Шли бы вы.. к некромантам =)  

А ты вот выскажись, ты за линейное возрастание штрафа с каждым выстрелом в очереди, или за нелинейное? )

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Legend на 14.11.2010 в 00:36:46
2Dirk_Diggler: Я за реалистичное возрастание штрафа с каждым выстрелом. Т.е. если один ствол кучнее другого, это должно быть смоделировано, причём как можно точно, а не "ну, скажем, здесь пусть два очка будет, а здесь пять, он же не очень кучный". Понимаю, сложно, но мне плевать, ибо здесь я хомячёк-конечный-потребитель ;D

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 00:41:23

on 1289687806, Legend wrote:
Я за реалистичное возрастание штрафа с каждым выстрелом. Т.е. если один ствол кучнее другого, это должно быть смоделировано, причём как можно точно

Вооот! Возвращаемся-таки к нелинейной модели. )

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 00:58:22
2Dirk_Diggler:
Вообще-то это полу-дойч прав... Такие темы надо в "копателях" разбирать... А здесь - все "потереть"... Пока Белорусы с ножницами моторизованными не пришли...

Открывай ветку в "копателях"!

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Legend на 14.11.2010 в 01:08:24
2Bonarienz: Достаточно туда перенести ;) Что модераторы наверняка и сделают :D :pray:

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 02:20:37

on 1289687806, Legend wrote:
это должно быть смоделировано, причём как можно точно, а не "ну, скажем, здесь пусть два очка будет, а здесь пять, он же не очень кучный".

А как ты точность определишь, ты же не стрелял из всей этой ботвы?

А вообще, меня вот еще расстраивает бедность описания стволов, где минусы/плюсы. Там бы еще писать "кучный", "большая отдача", "громкий" и т.п. ))))

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 02:23:53
2Dirk_Diggler:

Ветку открыл, прямо тут, в НО... А по описаниям - напиши или отредактируй! Либо ПМ вставит в игру, либо самого тебя обучим.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 02:26:10
не люблю напрягаться впустую. Пока молчание мне ответом. так что только намечаю цели ) Будет одобрение/поддержка оццов-аснавателей - глядишь, и сделаю )

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 02:29:22
2Dirk_Diggler:

Перетоптать новые описания может Сам - Терапевт, может Сам - ПМ... Ну, и еще пяток товарищей...

Так что кидай предложения, но с конкретными текстами - и усё...

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 02:35:32

on 1289694562, Bonarienz wrote:
Перетоптать новые описания может Сам - Терапевт, может Сам - ПМ... Ну, и еще пяток товарищей...

Так что кидай предложения, но с конкретными текстами - и усё...

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

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 02:47:13
2Dirk_Diggler:

Кажися, все влазит (так!). Там хитрость есть. Тексты спроворь, а кому воткнуть - найдутся.

Если что - на русский с падежами переведем - на 30...50% короче будет.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 03:17:44


2Dirk_Diggler:  
Мы имеем четкое понимание того, как летят пули из ствола, с учетом параметров как оружия, так и стрелка!

Строим индексированный массив, размеры которого как раз и определяются этой парой наборов параметров.

Получаем N вариантов попадания, запускаем "рэндом", стреляем. С учетом конкретного ствола корректируем положение "желтого шарика", пускаем "рэндом", стреляем...  

И кто скажет, что это не эллипсоид - в дискретном пространстве?
     

Напугался - а это наш треп перенесли! спасибо, Великие!

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:20:23

on 1289697464, Bonarienz wrote:
Строим индексированный массив

Какой массив? ЧТо он будет содержать, и какие индексы использоваться?


on 1289697464, Bonarienz wrote:
С учетом конкретного ствола корректируем положение "желтого шарика", пускаем "рэндом", стреляем...    

Т.е. к 4-5 выстрелу можем и за спину себе выстрелить? Я ведь правильно понял, что после коррекции положения, эллипсоид надо выстроить еще раз вокруг желтого шарика и опять рандомом выстрелить в него?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:22:29

on 1289697464, Bonarienz wrote:
С учетом конкретного ствола корректируем положение "желтого шарика", пускаем "рэндом", стреляем...    

В этом случае проще использовать Байесовскую вероятность. Ствол хотя бы ОЧЕНЬ далеко не будет выносить от цели, а то мы так попадем хз вообще куда. Имхо. А вообще, я уже накопил возражения. Щаз, проясню неясные места в "Эллипсоидной модели" - и выложу.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 12.11.2010 в 22:01:37
2jz:

Вообще-то, Dirk_Diggler - отчасти - прав! После захвата наемниками секторов, в которых формируются каратели, кол-во последних должно бы снижаться, и увеличиваться срок подготовки - с ростом, тсз, квалификации карателей. Т.е. вместо 4 мест с "дебитом в 20 зеленых" оставшиеся, напр., 2 выдают по 10 "очень злых" серых...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 12.11.2010 в 22:57:34

on 1289592097, Bonarienz wrote:
Т.е. вместо 4 мест с "дебитом в 20 зеленых" оставшиеся, напр., 2 выдают по 10 "очень злых" серых...  

Хе-хе... Значит, не один я так думаю. Да, меньшее количество боев, но более сложных - было бы в плюс. Сейчас же просто приходится устраивать тир и мясо, используя слабые места AI, и мотаться из сектора в сектор "змейкой". Ибо (на текущий момент) подвиг по ночной зачистке сектора, в котором 50 фрагов, что я провел недавно, например, почти не имеет смысла - их очень скоро станет столько же. Что и надоедает...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем jz на 13.11.2010 в 00:04:14

on 1289595454, Dirk_Diggler wrote:
Да, меньшее количество боев, но более сложных - было бы в плюс.
:up:

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 00:09:52

on 1289388708, Legend wrote:
2Dirk_Diggler: Достаточно давно уже есть эта фишка. Очень порадовала. Ещё фраги любят ложиться после промаха.  

Это вот этот отрезок работает, со строки 2114, в процедуре DecideActionRed из DecideAction.c:


Code:
                  ////////////////////////////////////////////////////////////////////////////
                  // UNDER FIRE, DON'T WANNA/CAN'T RUN AWAY, SO CROUCH
                  ////////////////////////////////////////////////////////////////////////////


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

Тогда выбор действия идет так:
0) обработка нескольких редких ситуаций
1) Если в газе
1.1) Если не в противогазе, то его одеть
1.2) Утечь из зоны загазовки
2) Если уровень опасности не "черный"(врага не видно), и фраг не считает себя под атакой - перевязать раны
3) Если фраг ночью в освещенном месте, и нет приказа стоять на месте, и если фрага там видят мерки - утечь из освещенного места.
4) Если есть наводка по радио(если мерков видят другие фраги) - стрельнуть туда из дальнобойного оружия
5) Если энергии меньше 25, фраг не плывет и не под огнем - присесть отдохнуть
6) Если у фрага маленькая мораль - убегать подальше от всех мерков
7) Если у фрага AP хватает на вызов по рации, и есть другие фраги в секторе:
7.1) Если случайное число меньше вычисленного параметра и фраг не плывет - передать по рации красный сигнал тревоги
8) Если это гражданский или фраг под огнем, не робот:
8.1) Если величина шока >0 или это гражданский - выбираем точку подальше от мерков, и если она отличается от текущей позиции - утекаем к ней
8.2) Если не гражданский
8.2.1) Если стоим в полный рост и можно присесть, и хватает AP - приседаем.
8.2.2) Если не лежим, то можем и лечь(шанс 1 из 3х).

9) Если еще есть AP(больше резерва) и это фраг,
9.1).... в зависимости от морали, приказов и характера самого фрага меняются параметры поведения - помогать, искать врага или прятаться. Причем в реалтайме фраги никогда не прячутся.
и т.д.
....
10)

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

Непонятно, почему фраг не утекает, когда подстрелен, на шаге 8.1. Похоже, это величина шока =0. Пуля выбила мало здоровья или вообще не выбила. Дальше округление вниз. В строке 6859 файла Soldier Control.c:

Code:
ubCombinedLoss = (UINT8) sLifeDeduct / 10 + sBreathLoss / 2000;

     // Add shock
     if ( !AM_A_ROBOT( pSoldier ) )
     {
           pSoldier->bShock += ubCombinedLoss;
     }


Может, поменять её мальца? Чтобы при ненулевом ubCombinedLoss получался ненулевой шок. Ну не может быть, чтобы пуля попала, но вообще никакого влияния не оказала. Да будь ты в тройном бронике.
Иои проверку на шок убрать - ведь тикать из под огня надо даже если в тебя еще не попали. Или вместо участка, где предписывается лечь, вставить участок с пометкой
Code:
//***12.11.2009*** AI уход из под наблюдения игрока




Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 03:56:08
Вообще, если это кому-то надо, могу при свободном времени помогать алгоритмами для AI. Писать на сях я не умею, плюс надо точно помнить всю структуру переменных, а вот алгоритмы - могу накидывать. Достаточно подробные.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 14:20:38

on 1289599454, jz wrote:
12.11.2010 в 13:57:34, Dirk_Diggler писал(a):
Да, меньшее количество боев, но более сложных - было бы в плюс.
: up :


Да, тут с AI надо работать. Могу предложить посильную помощь )))) Если Терапевту и команде интересно, конечно.

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

Предлагаю.

Сделать генерацию отрядов - платной для Дейдраны. Оценить каждый вид солдатов(а в идеале - и их амуницию) - в какую-то денежку. Элиту дороже, зеленых - дешевле. При генерации - деньги отнимать из казны. Казну пополнять из шахт по тому же алгоритму - Дейдрана получает бабло в день, равное сумме доходов со всех шахт. Доход дейдраны с шахты равен полному доходу от шахты минус доход игрока. Т.е. если шахта альмы не захвачена игроком - 100% дохода в казну. Если захвачена и лояльность 73%, то Дейдрана будет получать с неё 27%. Чем дальше, тем делать элиту дешевле по чуть-чуть, а салабонов - дороже. Так генерируемые отряды будут более сильными.
Естественно, ей надо оставить какой-то минимальный гарантированный доход, чтобы она совсем без войск не осталась )

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 13.11.2010 в 21:27:35

on 1289650838, Dirk_Diggler wrote:
Если захвачена и лояльность 73%, то Дейдрана будет получать с неё 27%.
А денюжку Дейдрана почтовым переводом получать будет? Врядли в освобожденном городе будут рады инкассаторам. ;)

Но идея интересная. Дейдрана же говорит при захвате последней шахты, дескать, как она будет без денег сохранять власть. Значит вот это правильно:
on 1289650838, Dirk_Diggler wrote:
При генерации - деньги отнимать из казны. Казну пополнять из шахт по тому же алгоритму - Дейдрана получает бабло в день, равное сумме доходов со всех [захваченных ей] шахт.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Терапевт на 13.11.2010 в 21:29:19

on 1289613368, Dirk_Diggler wrote:
могу при свободном времени помогать алгоритмами для AI

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

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 21:30:48

on 1289676455, Airbus wrote:
А денюжку Дейдрана почтовым переводом получать будет? Врядли в освобожденном городе будут рады инкассаторам. ;)  

Нелогично, согласен, но так игрок будет более заинтересован в лояльности, плюс - не будет такого существенного облегчения игрового процесса. а то драньке не хватит бабосов, и ога.

Вообще, там по стратегическому AI -  поле непаханное. С удовольствием бы помог. Излил посильно (ц) дмб ))))

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 21:38:27

on 1289676559, Терапевт wrote:
Алгоритмы ИИ (и прочие советы по модификации кода) интересны только тогда, когда основаны на проверенных фактах, а не на предположениях, сформировавшихся только лишь при разглядывании кода.  

практическая проверка чревата тем, что я вместо работы с алгоритмами все время трачу на проверку. То бишь играю ))))))
Есть такая мысль.
Я бы компилил экзешники для желающих потестить мои предложения ) и выкладывал бы здесь. надо всего 2 вещи.
а) добро разработчиков мода
б) желающие потестить  ;)
А потом бы отсылал удачные находки разработчикам.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 13.11.2010 в 21:40:51
2Airbus:

Инкассаторам - рады не будут, а вот за обещание не трогать самих и семьи при восстановлении власти Дейдранны - сами будут возить! Иначе - найдут способ подстраховаться, сиречь - и рыбку съесть, и на ... сесть...

Homo homeni lupus est.

А по существу - так и надо бы сделать. Но это - непросто...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 21:45:16

on 1289677251, Bonarienz wrote:
А по существу - так и надо бы сделать. Но это - непросто...  

Не берусь утверждать, но рискну предположить. Это - таки несложно. но если такое внедрить, сейвы полетят ) Зато можно без риска для сейвов сделать генерацию отрядов зависимой от дохода Драньки. ) Назначить постоянную цену одному солдату(любому). И всё.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем jz на 13.11.2010 в 22:04:29

on 1289676559, Терапевт wrote:
Прежде чем озвучивать свои предположения по работе фрагментов кода, попробуй их проверять с помощью отладчика

Есть такой тип тестирования, не помню как называется - берут человека из коридора фирмы/с улицы и включают ему программу. И он часто находит те ошибки, которые не видят "штатные" тестировщики. Просто мы так долго варимся в JA2-мире, что уже сформировали свое мнение какая джага должна быть.  А Dirk_Diggler: смотрит "незамыленным" взглядом, например проверено, что после середины игры все игроки НО бросают игру. И вот он один заметил, что в это время нужно менять динамику боев.

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

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 13.11.2010 в 22:11:30

on 1289678669, jz wrote:
AI никуда не годится
я такого не говорил. и не думал такого. Если от моих первых мессаг такое впечатление - так то не специально. в таком случае, я понимаю его реакцию. Стиль общения такой, пардоньте. ::) На самом деле, NO - реально второе дыхание для JA2.

Да и собсно, тут все понимают, что AI писал не он, 90% это для JA2 родной AI. от целой команды разработчиков. А его доработки - великолепны. Я видел(благодаря глюку с полем зрения), как в реалтайме фраги заходят в тыл, это же праздник какой-то ))) Да и многое-многое другое, реально радует.

Я ж говорю, именно поэтому и энтузиазм проснулся. Когда видно, что это не косметика, а реально меняется сам процесс игры. Ну как не поучаствовать. )

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем jz на 13.11.2010 в 22:32:21

on 1289679090, Dirk_Diggler wrote:
Я ж говорю, именно поэтому и энтузиазм проснулся. Когда видно, что это не косметика, а реально меняется сам процесс игры. Ну как не поучаствовать. )  

:pivo:

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 13.11.2010 в 23:41:34
2Dirk_Diggler:

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

Если ты в Москве, можно и попробовать...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 00:31:00

on 1289684494, Bonarienz wrote:
Обсуждать те вопросы, что ты поднимаешь, надо не в огр. "кнопками" пр-ве форума, а с карандашом и бумагой - даже без нетбука.

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


on 1289684494, Bonarienz wrote:
Если ты в Москве,

Я в Китае.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Legend на 14.11.2010 в 00:37:37
2Dirk_Diggler:
Quote:
Я в Китае.
Ты это серьёзно?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 00:38:23
2Dirk_Diggler:
Ну вот те раз! Ниньхао!

Еще раз почитали - вопросик-то - сложный, параметров много. Таблицы 3-хмерные нужны...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 00:42:09

on 1289687857, Legend wrote:
Ты это серьёзно?  

Абсолютно.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 00:47:08
2Dirk_Diggler:

Тогда можно абсолютно серьезно! Так!

Попробую картинко спроворить...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Legend на 14.11.2010 в 01:09:05
2Dirk_Diggler: Понятно.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 02:11:48

on 1289687903, Bonarienz wrote:
Еще раз почитали - вопросик-то - сложный, параметров много. Таблицы 3-хмерные нужны...  

Параметров, которые есть у ствола на это дело - всего два. Код переписывать, добавляя параметры - мало удовольствия, так что будем исходить из того, что функция P вероятности попадания на выстреле номер N, есть функция P( N ) одной переменной N с двумя параметрами BurstPenalty , BurstHitStart.

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

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

в) воспринимать BurstHitStart как номер выстрела, когда вероятность промаха больше всего(скажем, у Калашникова - 2, у Никонова 3 или 4), а BurstPenalty - как некую абстрактную "кучность" ствола. Тогда, P( N ) при 0< N < BurstHitStart должен быть очень близок к P (0), в P (BurstHitStart) достигать своего минимум Pmin, а потом мееедленно возрастать. Соот-но, в этой модели BurstPenalty служит для определения собственно Pmin, а также скорости возрастания. Чем боьше BurstPenalty, тем меньше Pmin, и медленней растет точность.
Например. Калаш, пляшет в руках начиная уже со второго выстрела. Соот-но, будет получаться такая примерно картина. Мерк, после всех вычислений, первый выстрел делает с точностью 70%. Далее, т.к. BurstPenalty большой, то точность падает сразу до 20%
P(1) = 70%
P(2) = 20%
P(3) = 21%
P(4) = 21%
P(5) = 22%
...
P(12) = 29%


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

P(1) = 70%
P(2) = 68%
P(3) = 30%
P(4) = 31%
P(5) = 32%
...
P(12) = 41%


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 02:27:15
2Dirk_Diggler:

Давай в НОвую ветку - тут плохо! Заругают, до штрафа!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Zed на 14.11.2010 в 03:29:55
Во нафлудили то... ни на секунду отойти нельзя. :moderator:

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 03:32:20
2Dirk_Diggler:
Абсолютно точно подмечено - просто ратую за истинно дискретный обсчет всего, в идеале при помощи таблиц и таблиц коэффициентов поправок к таблицам!

Вероятность того, что автомат в руках 13-летней тюти 5-ый выстрел сделает в зенит - велика. Бывает, девушки его ваще бросают, или он сам из рук рвется...

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 14.11.2010 в 03:33:11
2Zed:
Огромное спасибо, Товарищ Председатель! вы спасли нас от порицания!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 14.11.2010 в 03:35:36

on 1289697623, Dirk_Diggler wrote:
Т.е. к 4-5 выстрелу можем и за спину себе выстрелить?
А по моему, такое развитие событий возможно. Только не у бойца, а у... меня например. ;D Т.е. человека, ни разу не стрелявшего очередью боевыми патронами, и далеко с не спортивным телосложением. Ну и от кучности ствола зависит - с XM1014 или CAWS'а у меня второй выстрел за голову будет, а со Штайра AUG Para - может и удержу.

UPD: Bonarienz о том же написал, только быстрее. :)

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 03:38:10
2Airbus:

АУГ - удержишь, а вот Пара - вряд-ли! Затвор тяжелее... Только если за "муде" под стволом держать...

АН-94 - точно удержишь! Баланс моментов... Особенно - лежа, и с упора!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:38:45

on 1289698536, Airbus wrote:
такое развитие событий возможно

Несомненно. Но тогда - где в этой модели сознательное удержание ствола бойцом?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:41:24
 
on 1289698340, Bonarienz wrote:
Абсолютно точно подмечено - просто ратую за истинно дискретный обсчет всего,
Дык какова предлагаема модель просчета-то? Что за массив надо получить в результате???
Т.к. предыдущее сообщение вот к этому:

Quote:
Т.е. к 4-5 выстрелу можем и за спину себе выстрелить? Я ведь правильно понял, что после коррекции положения, эллипсоид надо выстроить еще раз вокруг желтого шарика и опять рандомом выстрелить в него?
, отпишусь здесь же. Просчет "эллипса" - не имеет смысла в начатом разрезе разговора. Я изначально(и посейчас) имею в виду только просчет шанса попадания. Для него эллипс - излишество. В нем появляется какой-то смысл, если в рассмотрение еще включить последующий полет пули, чтобы сразу ей прописывать куда лететь. Но это уже отдельный разговор, и в коде это реализовано отдельно - сперва просчитывается шанс попал/не попал, а потом все остальное. Я тоже пока говорю о штрафе к шансу попал/не попал. Т.е. я правильно понимаю, Вы предлагаете - переделать алгоритм, увязав просчет шанса сразу же к вылету пули?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 03:41:26
2Dirk_Diggler:
Опыт, сила, ловкость...

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

Вот, скажу как лох! Хочу, чтобы веер рассеивания у Ивана 10-ого уровня до 10-й пули в очереди укладывался в 1,2...1,4 торса. Т.е. из 10 пуль на расст. 20 тайлов, из АК-74 как минимум 7 попадали в цель. И чтобы у Айры АКСУ выпадал из рук после 6-ого выстрела в очереди. А предыдущие шли влево-вверх с углом град. 30 - типа, пыталась удержать...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:43:55

on 1289698886, Bonarienz wrote:
Опыт, сила, ловкость...  

А конкретней?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 14.11.2010 в 03:43:57
2Bonarienz: Хм... Всегда думал, что от 9мм Парабеллума отдача будет слабее, чем от 5.56. Ошибался?

2Dirk_Diggler: Если по приведенной выше схеме (с желтой головой и красными точками) - то можно ввести возврат к первоначальному положению "головы" на N точек, в зависимости от силы бойца, опыта, прицеливания (если есть прицельная очередь. Я в оригинал ща играю, не знаю про моды)... "муде под стволом"...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:48:07

on 1289699037, Airbus wrote:
2Dirk_Diggler: Если по приведенной выше схеме (с желтой головой и красными точками) - то можно ввести возврат к первоначальному положению "головы" на N точек, в зависимости от силы бойца, опыта, прицеливания (если есть прицельная очередь. Я в оригинал ща играю, не знаю про моды)... "муде под стволом"...  

Вот, это уже да. Ок. остался один вопрос. что за массив-то такой предлагается получить?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 03:51:06
2Dirk_Diggler:
А вот это - постановка задачи. Ща мы ее и будем в общем виде решать...


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:51:18

on 1289698886, Bonarienz wrote:
Вот, скажу как лох! Хочу, чтобы веер рассеивания у Ивана 10-ого уровня до 10-й пули в очереди укладывался в 1,2...1,4 торса. Т.е. из 10 пуль на расст. 20 тайлов, из АК-74 как минимум 7 попадали в цель. И чтобы у Айры АКСУ выпадал из рук после 6-ого выстрела в очереди. А предыдущие шли влево-вверх с углом град. 30 - типа, пыталась удержать...  

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

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 14.11.2010 в 03:51:23
2Dirk_Diggler: Если б было время, расписал бы, как я это понимаю. Но - вы с Bonarienz'ом слишком быстро разговариваете. :) Да и я сейчас гулять ухожу. Вернусь - гляну что еще написали, и попробую изложить.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:53:16

on 1289699466, Bonarienz wrote:
А вот это - постановка задачи. Ща мы ее и будем в общем виде решать...  

Это пока просто вопрос. )

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 03:55:18
2Airbus:

Имелась в виду рукоять под стволом... А вообще - буллпап - это дословно - бычьи муде или бычья мошонка... Юмор такой, технико-зоологический...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 03:58:45

on 1289699483, Airbus wrote:
2Dirk_Diggler: Если б было время, расписал бы, как я это понимаю.

Как я понимаю, вы это понимаете так, что там половина weapons.c под переделку попадёт )

Блин, с такой мелочи как коррекция штрафа с линейного на нелинейный добраться до таких дебрей.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:05:21
2Dirk_Diggler:

Получается, что в данном "куске" вычисляется мгновенная директриса? А собственно попадание-промах-обсчет и рендер трассы пули считаются потом?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:06:31
2Dirk_Diggler:

В этом форуме - всегда так! Типа, привыкай! Рот всегда больше пирожного...

В данном ключе, наверное, пойдут Чебышёв, 3, 5 или даже 7-ого. Или - видимо, даже правильней - аппрокс. Лежандром прямая.

Т.е. имеем 1 выстрел точно, 1...3 след. не контролируем - тормозим и корректируем, 5-ый - та же точность, 6-ой - перерег., 7-ой - опять точно...

Для Лежандра будет вероятность более точного н-ного выстрела, нежели первый...

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

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:08:59

on 1289700321, Bonarienz wrote:
Получается, что в данном "куске" вычисляется мгновенная директриса? А собственно попадание-промах-обсчет и рендер трассы пули считаются потом?
     

Там сперва вычисляется шанс попадания в процентах. Функция CalcChanceToHitGun сперва возвращает шанс, потом берется рандом до 100 и смотрится разница - попал-не попал, и если не попал, то вот потом уже вокруг этой разницы(т.е. всего лишь одного числа) и начинаются пляски - насколько и куда пулю отклонить и т.п. Тоже всё рандомом. Просто шанс попадания - кое-где ещё маячит. Скажем, около курсора выводится. и AI его использует(у него  AICalcChanceToHitGun).

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:14:52

on 1289700391, Bonarienz wrote:
В данном ключе, наверное, пойдут Чебышёв, 3, 5 или даже 7-ого. Или - видимо, даже правильней - аппрокс. Лежандром прямая.  

Напоминаю - в текущий момент у нас всего 2 параметра у ствола. Так что ни 3го, ни 7го пока не получится )

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:16:32

on 1289700391, Bonarienz wrote:
Т.е. имеем 1 выстрел точно, 1...3 след. не контролируем - тормозим и корректируем, 5-ый - та же точность, 6-ой - перерег., 7-ой - опять точно...  

вообще не понял ничего ) Что значит "не контролируем - тормозим и корректируем" и всё остальное?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:18:47
В принципе, если эти 2 параметра порезать на куски по 4 бита, можно получить 4 параметра, но маленькие )

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:19:20
2Dirk_Diggler:
Полагаю, что номер выстрела у нас тоже есть? Если нет - напрасны наши совершенства...


on 1289700992, Dirk_Diggler wrote:
Что значит "не контролируем - тормозим и корректируем" и всё остальное?  


Это поведение собственно стрелка, не оружия. Поведение влияет на наведение! О!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:20:28

on 1289701160, Bonarienz wrote:
Полагаю, что номер выстрела у нас тоже есть? Если нет - напрасны наши совершенства...  

Есть. Он в переменной солдата хранится.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:22:39
4 бита на направление отдачи
4 бита на эксцентриситет эллипса

4 бита на силу отдачи /условно
4 бита на кучность. /условно

Получаем 2 байта ) Вот из этого уже можно слепить нечто ) Но опять же, это же абзац как переписывать всё стрельбу )



on 1289701160, Bonarienz wrote:
Это поведение собственно стрелка, не оружия. Поведение влияет на наведение! О!  

все равно не понял

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:23:47
2Dirk_Diggler:

Ну, где пополам, там и пополамки - тож пополам! Котельников-Найквист - наше всё!

Если у нас есть эти два параметра, плюс номер выстрела - то уже можно думать. А если при этом легко добраться до параметров стрелка, то все устаканивается, вроде...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:25:25

on 1289701427, Bonarienz wrote:
Если у нас есть эти два параметра, плюс номер выстрела - то уже можно думать. А если при этом легко добраться до параметров стрелка, то все устаканивается, вроде...  

Да нет же, в том-то и прикол. Мы не знаем, куда ушел предыдущий выстрел! Соот-но, вся затея с уводом очереди в какое-то направление - в такой концепции нереализуема. Либо менять структуру солдата, добавлять поле - это потащит за собой сейвы и проч. хвосты.
Я поэтому и предлагаю вносить изменения только в CalcChanceToHit
Да, реализма добавит мало. Но добавит.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:30:13
2Dirk_Diggler: Не, погоди... Еще раз!

Вот берем 4 точки из Чебышева 3-его порядка.  Аппроксимируем точность попадания - по У - точность, по Х - номер пули.

Имеем - 1-ый - 100%, 2-ой - 70,7%, 3-ий - 100%, 4-ый - 70,7%, 5-ый - ~45% и т.п.

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

Соответственно, точность приближения зависит от опыта - т.е. там, где у 4-ого уровня 70%, у 9-ого будет 90%...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:31:50

on 1289701813, Bonarienz wrote:
Вот берем 4 точки  

что значит берем? как берем - это и есть главный вопрос.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:34:25
2Dirk_Diggler:
Ждал вопрос, поправил пред. сообщ.

Т.е. Сиры не хранят инфу о предш. событиях? Мы вообще без памяти-родства?

Но хоть номер выстрела - точно доступен?

Как раз под точками имел в виду номера выстрелов!!!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:35:56
Вообще, то, что мы на момент просчета шанса попадания ничего не знаем про предыдущий выстрел - имеет свои плюсы.
В такой ситуации событие "выстрел" - есть событие независимое, а потому можно использовать вероятностные формулы по схеме независимых испытаний Бернулли. А говоря более просто, то - мы можем легко и быстро вычислить
а) Вероятность попадания хотя бы одной пули из очереди ДО собсно начала стрельбы. О чем можем известить игрока, выведя эту вероятность у курсора
б) главное - математическое ожидание количетсва пуль, попавших в цель - аналогично. Мне лично крайне интересно, а сколько я примерно попаду пуль?
Сейчас показывается у курсора - вероятность попадания первой пули. Т.е. информативность этого близка к нулю.
Ну и переписывать ничего не надо, так, добавить пару строк. Кстати, никто не мешает в формулу подсчета штрафа ввести силу и опыт.

Введение же "эллипсоидной модели" -сделает очередь более реалистичной, но - прощай просчет вероятности, ведь выстрелы станут зависимыми событиями. Останется только стрелять наудачу.



Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:37:47

on 1289702065, Bonarienz wrote:
2Dirk_Diggler:  
Ждал вопрос, поправил пред. сообщ.  


Ответа все равно на нашел.
"Аппроксимируем точность попадания". Аппроксимировать - дело десятое. Надо же сперва иметь ЧТО аппроксимировать.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:38:51

on 1289702065, Bonarienz wrote:
Т.е. Сиры не хранят инфу о предш. событиях? Мы вообще без памяти-родства?  

Какую-то хранят.
А какую надо? Точку, куда улетела прошлая пуля? Это нет, не хранят. Гарантии не дам, во всяком случае, я не нашел.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:39:11
2Dirk_Diggler:
"Вы ее вожделили!" (Велюров)

Нда! Гребаные канаки... Никакого системного подхода...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 04:45:07
2Dirk_Diggler:

Вот смотри... Если принять модель с Чебышёвым (ось бросания пули вертится и качается вокруг точной директрисы), то вес функции от номера пули даст коэфф. для вероятности.

Т.е. при точном прицеливании из очереди в 5 пуль как минимум две попадут в торс, а при дост. опыте другие две ранят в руки или ноги-голову.

Хотелось бы предыдущ. вероятность иметь...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 04:49:52

on 1289702707, Bonarienz wrote:
Хотелось бы предыдущ. вероятность иметь...  

негде хранить.  глобальную переменную заводить, что ли?...


on 1289702707, Bonarienz wrote:
Если принять модель с Чебышёвым  

Да что за модель-то? Как полином получать, на каких данных?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:00:24
2Dirk_Diggler:

Мы аппроксимируем полиномом вероятность поражения цели!
|
1*  *
|    
.7*   *      
|       *    
1_2_3_4_5_*___

Видимо, надо иначе нормировать - чтобы колебался вокруг 1 на + и на -. Но идея, надеюсь, понятна...

Блин, гадский шрифт...
   






Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 05:08:54

on 1289703624, Bonarienz wrote:
Но идея, надеюсь, понятна...  

Нет, непонятна. Что аппроксимируем - понятно.
Непонятно - ЧТО аппроксимируем. Для аппроксимации нужны данные. Где их будем брать?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:14:27
2Dirk_Diggler:
Движок высчитал вероятность - она "модифицируется" с помощью полинома - увеличивается или уменьшается.
А значения функции загнаны в таблицу, выбор из которой - согласно номеру выстрела!


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:18:49
2Dirk_Diggler:
Справ. по спец. функциям есть ли под руками? Напр. Янке и Эмде? Наиболее точно и ЖИВОПИСНО было бы взять интеграл Френеля, комплексный, с зависимыми параметрами у Si(z) b Ci(z). Тогда спираль станет эллипсоидной.

Cf. Траектория полета зенитной ракеты, российской, не Патриота...

Т.е. ствол крутится вокруг директрисы первого выстрела, а плюс и минус к вероятности, даже с учетом неточности стрелка - дает полином.

Берем, к примеру, Лежандра 5-ого порядка, нормируем первый выстрел под 1, тогда, по мере нарастания номера, поправка к вероятности и ее знак осциллируют вокруг 1, но амплитуда колебаний нарастает. Тогда, дажет при первонач. вер-ти 0,35 есть шанс попасть...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 05:19:11

on 1289704467, Bonarienz wrote:
2Dirk_Diggler:  
Движок высчитал вероятность - она "модифицируется" с помощью полинома - увеличивается или уменьшается.  

Да что ж такое-то. ))
Полином, полином мы откуда берем? Можно по шагам(сам алгоритм получения полиномов не надо) ?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 05:24:26

on 1289704729, Bonarienz wrote:
2Dirk_Diggler:  
Справ. по спец. функциям есть ли под руками? Напр. Янке и Эмде? Наиболее точно и ЖИВОПИСНО было бы взять интеграл Френеля, комплексный, с зависимыми параметрами у Si(z) b Ci(z).
:o ЗАЧЕМ????

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:29:01
2Dirk_Diggler: 2Dirk_Diggler:

Ответ на оба вопроса! Из полинома получаем таблицу поправок вероятности. Число из таблицы "вывешиваем" согласно опыту и пр. Полученное число прибавляем со знаком к вероятности, высчитанной движком.

Иначе говоря - таблица строится нелинейным квантованием как аргумента функции, так и ее значений.

Методом Монте-Негро произвольной вариации средне-потолочных значений! Но так, чтобы красивая очередь была!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 05:31:41

on 1289705341, Bonarienz wrote:
Ответ на оба вопроса! Из полинома получаем таблицу поправок вероятности.  

:facepalm:   ;)
А полином - на каких данных получаем?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 05:33:28

on 1289705341, Bonarienz wrote:
Методом Монте-Негро  

Монте-Карло ))))))

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:36:29
А вот из размышлений - первый выстрел - согласно прицелу и вероятности, второй - неожиданно, третий - с поправкой на второй, четвертый - перебдели, пятый - ствол нагрелся-обожглись-пули вверх... И т.п.

Потому и Лежандр - его осцилляции разбегаются по мере роста аргумента. А Чебышёв равноколеблется, наименее уклоняясь...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 05:38:14

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

Гм. Т.е. мы имеем набор значений a1...aN (N-максимальное кол-во выстрелов в очереди) - из размышлений?. Принято. Вопрос возникает, будет ли он универсальным, или для каждого ствола свой, но не важно. Допустим, у нас такой набор есть. А накой бок нам его тогда аппроксимировать, если мы его уже имеем? Брать прям значения из этого набора, и дело с концом.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:41:40
Чтобы совсем понятно было, почему помянут Френелев интеграл комплексный - если взять модуль от FI(1-z), то получим гладкую расходящуюся спираль, улетающую в ноль или бесконечность в "конце очереди"...

Зенитные ракеты знаешь? Они стартуют резко вверх, а потом с упреждением, по сходящейся спирали, упрямо летят в сопло или центр ЭПР. Америкосам такого никада не сделать...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:43:21
2Dirk_Diggler:

Метод Монте-Карло - научный, а вот Монте-Негро (Черногория) - наш, родной...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:49:09
2Dirk_Diggler:


on 1289705894, Dirk_Diggler wrote:
Брать прям значения из этого набора, и дело с концом.


Ну! Зачем я шарики в рендер пулемета вписывал (это из POVray картинко)?

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


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 14.11.2010 в 05:54:07
2Dirk_Diggler:
Глянь в Википедии интеграл Френеля, приставь ствол к "кончику спирали", по Х и У отложи номера выстрелов - получишь 3-х-мерную спираль, описываемую потоком свинца, с вырывом пушки из рук в районе нуля - макс. кол-ва пуль в очереди.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 13:17:55

on 1289706201, Bonarienz wrote:
Метод Монте-Карло - научный, а вот Монте-Негро (Черногория) - наш, родной...  

Вот интересно, почему эту таблицу методом тыка - можно составлять, а тупо подобрать нелинейную функцию для штрафа - нет?


on 1289706847, Bonarienz wrote:
Глянь в Википедии интеграл Френеля, приставь ствол к "кончику спирали", по Х и У отложи номера выстрелов - получишь 3-х-мерную спираль, описываемую потоком свинца, с вырывом пушки из рук в районе нуля - макс. кол-ва пуль в очереди.  


Я таких сентенций не понимаю. интегралов френеля - два, разных, каждый из них есть функция одной переменной. Так что куда там что откладывать - и как из функции одной переменной получить 3хмерную спираль, и откуда там вообще спираль? Если имеется в в иду клотоида, так она не сходится вообще.

Если имеется в виду, что взять плоскость, перпендикулярную оси мерк-его цель, в начало координат ортогонально к ней "приставить" ствол, и откладывать координаты X=S(N), Y=C(N), где N - номер выстрела, полученную точку уже обрабатывать как отдачу, например, высчитать расстояние до начала координат(т.е. ствола), взвесить это число с применением силы/опыта и т.п., и вычесть из шанса как штраф? Возникает вопрос - а кто сказал, что интегралы Френеля вообще дают такое соответствие? И - где в этой модели параметры ствола-то? Или сперва берем эту точку, а потом её взвешиваем по параметрам ствола? Так это неправильно однозначно.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 14.11.2010 в 18:41:45

on 1289699718, Bonarienz wrote:
Имелась в виду рукоять под стволом...
Да понял, понял. :) АУГовскую рукоятку я помню.

Нда... Прочитал 39 постов с момента последнего посещения... Злые вы, уйду я от вас. ;D

Математик из меня никакой, так что вот так я это вижу: Допустим, у нас есть очередь в... 10 патронов с М4А1. Прицеливаемся в "голову", зажимаем курок. Первый патрон уйдет в голову (имеем перса с меткостью 90-100), второй - чуток выше и правее (не ожидал, не смог рассчитать увод ствола), и третий - выше первого, но без уклона по горизонтали (узнал по второму увод ствола, скорректировал, но вертикально все же ушло). Это - очередь с отсечкой, на М4 она есть, наверное потому что более-менее точная.
Далее - четвертый патрон. Имеем еще больший увод по вертикали вверх (можно завязать на Силу), а по горизонтали - в зависимости от Меткости/Опыта. Пятый также уводится вверх, и, как подметил Bonarienz, плечо устает, патрон уходит вправо.
И тут мы понимаем, что стреляем мы уже не совсем (совсем не) в голову. Резко возвращаем ствол на первую точку, и шестой-седьмой идут в голову (70-80%) или даже левее торса (перебор, завязать на опыт/силу/ловкость). С восьмого, допустим, начинается перегрев ствола. Так как мы уже полностью "в очереди", компенсируем отдачу почти полностью, но из-за ствола получается очень большой рандом траектории полета пули.
... С какого патрона у Иришки выбьет плечо и нанесется урон в 5HP, не знаю. :)

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 22:56:22

on 1289752905, Airbus wrote:
Математик из меня никакой, так что вот так я это вижу: Допустим, у нас есть очередь в... 10 патронов с М4А1. Прицеливаемся в "голову", зажимаем курок. Первый патрон уйдет в голову (имеем перса с меткостью 90-100), второй - чуток выше и правее (не ожидал, не смог рассчитать увод ствола), и третий - выше первого, но без уклона по горизонтали (узнал по второму увод ствола, скорректировал, но вертикально все же ушло). Это - очередь с отсечкой, на М4 она есть, наверное потому что более-менее точная.


Итого, для моделирования очереди нам нужны следующие параметры:
1) длина отсечки
2) преимущественное направления отвода ствола


Quote:
Далее - четвертый патрон. Имеем еще больший увод по вертикали вверх (можно завязать на Силу), а по горизонтали - в зависимости от Меткости/Опыта.

3) силу отдачи
4) параметры стрелка


Quote:
Пятый также уводится вверх, и, как подметил Bonarienz, плечо устает, патрон уходит вправо.

Это, допустим, можно зашить в движок


Quote:
И тут мы понимаем, что стреляем мы уже не совсем (совсем не) в голову. Резко возвращаем ствол на первую точку, и шестой-седьмой идут в голову (70-80%)

Опять параметры солдата


Quote:
начинается перегрев ствола.

5) теплоемкость(в текущей модели она учитывается, емнип)


Quote:
компенсируем отдачу почти полностью, но из-за ствола получается очень большой рандом траектории полета пули.  

тут не понял. почему?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 14.11.2010 в 23:38:13
Но все равно, возникают вопросы.

Первый - не смущает, что нельзя оценить точность очереди(и, соот-но, сознательно подогнать её длину)?

Второй - сейчас шанс попадания и просчет траектории пули - несвязанные друг с другом вещи. Как я понимаю, предлагается связать. Однако, это переделает иодиночную стрельбу. Я бы еще 10 раз подумал бы...

Третий. - такая модель в общем лишает вообще каких либо шансов на попадание очередью, только с первой пули. Ствол ведет сразу и у всех.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 01:58:44
2Dirk_Diggler:
Вот! Пока трезв - постараюсь быть четче.
Про Френеля - Три проекции Спирали Френеля в компл. пр-ве. как раз и будут СИ, КИ и клотоида (вот же имя-то).

Совсем не обязательно брать именно эту кривую, и эти коэфф-ты.

Именно эта кривая - В ОБЩЕМ, качественно - показывает то движение, которое совершает стреляющий ствол! Не важно, в руках ли стрелка, или зажатый в пристрелочный станок.

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

Кста - при перегреве ствол искривляется, образуя сложную дугу, в первом приближении похожую на цепную линию, если нет точки крепления ближе к срезу ствола, либо эллипс-овоид, если ствол укреплен в двух точках.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 02:07:45

on 1289768182, Dirk_Diggler wrote:
тут не понял. почему?  
Компенсация отдачи - перед 8 было еще семь выстрелов, уже знаком увод ствола - человек старается предупредить черезмерный увод. А рандом разброса - ствол расширяется при нагреве.


on 1289770693, Dirk_Diggler wrote:
Первый - не смущает, что нельзя оценить точность очереди
Я уже давно длину очереди на глаз определяю. У АК - три патрона на 15 тайлов, два - на 25, один (два для Совы) - 25+. У 5.56-ых стволов - четыре на 10 тайлов, три на 20, два на 30-, и остальное одиночками. А на 1-6 тайлов - по количеству АП перса и здоровью цели.


on 1289770693, Dirk_Diggler wrote:
Второй - сейчас шанс попадания и просчет траектории пули - несвязанные друг с другом вещи. Как я понимаю, предлагается связать. Однако, это переделает и одиночную стрельбу. Я бы еще 10 раз подумал бы...
А что сейчас с траекторией полета пули?


on 1289770693, Dirk_Diggler wrote:
Третий. - такая модель в общем лишает вообще каких либо шансов на попадание очередью, только с первой пули. Ствол ведет сразу и у всех.  
Всегда есть вариант из CS - очередь в три патрона в пузо, третий патрон уйдет в голову. :)

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:11:23

on 1289779124, Bonarienz wrote:
Три проекции Спирали Френеля в компл. пр-ве.  

комплексное пр-во двумерно, там не может быть 3х проекций. Но я идею понял. 3хмерное пространство,обычное евклидово, если по X - это "си", Y - это "ки", а по Z откладывать номера выстрелов, то проекция получившегося дискретного набора точек на плоскость XY будет похоже на разброс пуль при "нормальной стрельбе". Это имеется в виду?


on 1289779124, Bonarienz wrote:
Именно эта кривая - В ОБЩЕМ, качественно - показывает то движение, которое совершает стреляющий ствол! Не важно, в руках ли стрелка, или зажатый в пристрелочный станок.

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

Но ради этого морочиться на интегралы Френеля и иже с ним?
Случайные физические процессы прекрасно аппроксимируются методами Монте-Карло. Если за этим дело встало - нужны данные по поражению цели очередями из разных стволом, и без Френеля можно отлично обойтись.


on 1289779124, Bonarienz wrote:
Т.е. описывается не окружность, но сложная замкнутая кривая!

"Замкнутая" - в смысле "непрерывная"? Спираль по определению не бывает замкнутой.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:15:58

on 1289779665, Airbus wrote:
Я уже давно длину очереди на глаз определяю.

Енто дано не всем. ) Лучше выдавать точные прогностические  данные )


on 1289779665, Airbus wrote:
А что сейчас с траекторией полета пули?  

Напоминаю. Сперва
1) Вычисляется C - шанс попадания
2) Берется рандомное число R
3) Вычисляется "оценка промаха" D=R-C
4) Если D<=0, то игрок попал точно, идет расчет повреждений и т.п.
4) Если D>0, то пуля отклоняется от линии прицела пропорционально этой самой величие D

Отсюда видно, что тут отклонение считается ПОСЛЕ определения, попал ли игрок. А в предлагаемой модели - наоборот.


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 02:32:37
2Dirk_Diggler:

Надо бы еще одну ветку открыть - ТФКП и Высший Анализ в ДжА!!!  ;D

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

Попробую состряпать картинку, со стволом, 12-ю пулями и мишенью. Но это не быстро...

Френель - это наиболее наглядный пример. Просто в общих курсах его никогда не объясняют в 3-х мерном пр-ве, и, тем более, не рассказывают о практич. применении...

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

И еще раз повторю! Френель упомянут просто как пример, нагляднейший, как казалось...

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

Мне вот интересно - "же" физика учитывает, а вот как это "же" связано с "дальность" ствола?

Т.е. крутить ли пулям сложную спираль вокруг прямой, или вокруг параболы?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 02:35:47

on 1289780158, Dirk_Diggler wrote:
Напоминаю.
Я этого не знал. :)

Первый патрон, допустим, можно так и оставить. А последующие: D = R [больше стандартного] - (Сила+Меткость+Опыт)/10 - С. И прибавляем штраф на N патрон очереди. И если D > 0, то пуля отклоняется в нужном нам направлении.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 02:37:51

on 1289781157, Bonarienz wrote:
Ответ #134 от Сегодня в 17:32:37
Из всего сообщения я понял только смайлик. (ц с поправкой) подруга :)

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:39:05

on 1289781347, Airbus wrote:
А последующие: D = R [больше стандартного] - (Сила+Меткость+Опыт)/10 - С.
И прибавляем штраф на N патрон очереди


Все эти (Сила+Меткость+Опыт)/10 и т.п. - включены в расчет шанса С. Там же - делается расчет "штрафа на N патрон очереди". Но он - линейно зависит от N. С этого момента всё и началось.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 02:41:20
2Dirk_Diggler: Weapons.c говоришь... Пойду-ка я его для начала гляну. :) Я тут пока только предположениями бросался.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:42:42

on 1289781680, Airbus wrote:
Weapons.c говоришь...

Ога, процедуры UseGun  и  CalcChanceToHitGun.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 02:44:04
2Dirk_Diggler:

...я интересуюсь... А вот ломаная устроит? напр, до 3-го патрона вкл. - альфа*Штраф, а с 4-го - бета*Штраф. Альфу и бету считать из дальнобойности ствола, напр.

Как уже говорилось - хоцца рессеяние верт. и гориз, в пределах эллипса поражения.

Кста. Для АКМ он - вытянут по верт., наклонен влево, а линия визирования - чуть выше нижнего фокуса эллипса.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:47:26

on 1289781157, Bonarienz wrote:
В нашем случае нужна бы таблица параметров для каждого из 12 выстрелов, в которую можно забить, а потом и дополнять, все нужные и придумываемые вновь параметры.  

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

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:49:33

on 1289781844, Bonarienz wrote:
Как уже говорилось - хоцца рессеяние верт. и гориз, в пределах эллипса поражения.  

На текущий момент, в процедуру отклонения пули, передается только один параметр - разница D (между рандомом и шансом). Для создания такого отклонения надо иметь минимум ДВА параметра.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:51:50

on 1289781157, Bonarienz wrote:
Т.е. крутить ли пулям сложную спираль вокруг прямой, или вокруг параболы?  

Вокруг прямой однозначно. А то мы так до моделирования сопротивления воздуха дойдем(а это уже не парабола) и давления солнечного света на пулю.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 02:55:35

on 1289782310, Dirk_Diggler wrote:
давления солнечного света на пулю


Это-то - просто!!!  ;D Чисто малюс. вектор силы, давящий, блин, с северо-востока, под углом сигма=atan(5/2). Угол известен точно.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 02:57:24
2Dirk_Diggler:

on 1289782173, Dirk_Diggler wrote:
Для создания такого отклонения надо иметь минимум ДВА параметра


А кто мешает так или иначе приделывать этот "Де" то к верт., то к гориз.?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 02:57:29

on 1289782535, Bonarienz wrote:
исто малюс. вектор силы, давящий, блин, с северо-востока, под углом сигма=atan(5/2). Угол известен точно.  

Чего это угол известен точно? Солнце под разным углом на пулю давит в зависимости от времени суток. И пока пуля летит - угол меняется, однако. Дифур.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 02:58:44
2Dirk_Diggler:

Ты еще забыл снос частиц оболочки - т.е. уравнение движения тела переменной массы надо вводить!!! ;D

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 02:59:52

on 1289781844, Bonarienz wrote:
А вот ломаная устроит? напр, до 3-го патрона вкл. - альфа*Штраф, а с 4-го - бета*Штраф
А ведь мысль то хорошая. Как мне сказал бывший военный, начиная с 5 патрона из АК (от бедра, ессно. "Прицельно" и "очередью" вещи несовместимые. Это решает вопрос с невозможностью попасть очередью) пули идут очень точно. Если стрелок опытный, конечно.

И два патрона из АК хорошо уходят. Третий - вдаль, а первые два - точно.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:01:49
2Dirk_Diggler:

А вот и нет! В ДжА меняется освещенность. А солнце, когда есть, всегда на СВ, с углом элевации сигма=atan(5/2)!

Причем именно это однозначно указывает на расположение Арульки в южном полушарии.

Ага!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:04:30
2Airbus:

Это так... Только твой знакомый, видимо - высокий ПРОФ. Сымаем шляпу, искренне. Отсечь два патрона из АКМ - это весьма непросто.


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:05:28

on 1289782792, Airbus wrote:
А ведь мысль то хорошая. Как мне сказал бывший военный, начиная с 5 патрона из АК (от бедра, ессно. "Прицельно" и "очередью" вещи несовместимые. Это решает вопрос с невозможностью попасть очередью) пули идут очень точно. Если стрелок опытный, конечно.

И два патрона из АК хорошо уходят. Третий - вдаль, а первые два - точно.  
Вот. Сейчас - каждый патрон летит кривее предыдущего. Лично я предлагаю пока решить простую задачу - подобрать закон вычисления штрафа чуть пореальней. Для создания такого закона - у нас есть всего два независимых параметра. Ломаную на них особо не построишь.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:07:12

on 1289782909, Bonarienz wrote:
А вот и нет! В ДжА меняется освещенность. А солнце, когда есть, всегда на СВ, с углом элевации сигма=atan(5/2)!  

Срочно переделать модель !  ;D

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:07:58
2Dirk_Diggler:
Ну как же - не построишь? Есть же номер текущего выстрела в очереди? Или я опять что-то забыл?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:09:20

on 1289783278, Bonarienz wrote:
2Dirk_Diggler:  
Ну как же - не построишь? Есть же номер текущего выстрела в очереди? Или я опять что-то забыл?  

Номер - есть! Если построишь - предлагайте модель. Я лично ума не дам как.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:09:54
2Dirk_Diggler:

Мы же тебе говорили - горы и солнце!!! Корову новую, надеемся, уже видел?

Переделываем! Только кто будет тени переделывать? Пару десятков тысяч...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:12:30
2Dirk_Diggler:

Мы Сей не розумеем настолько - надо бы код понимать.

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

Если просто, то еще передавать dH и dV (гориз. и верт. отклонения) в расчет траектории...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:16:48

on 1289783550, Bonarienz wrote:
надо бы код понимать.

Не надо. Можно своими словами и формулами. Вопрос - как вычислить штраф P к шансу попадания, для выстрела номер N, и оружия с параметрами BurstPenalty и BurstHitStart?
Параметры сейчас имеются в виду типа "сила отдачи" и "длина отсечки", но можно их использовать как угодно.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:19:28
2Dirk_Diggler:

Как вариант 1/(Nmax-Ncurr) - величина, обратная разности выбранной (или макс. возм.) длины очереди и текущего выстрела.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:21:19
2Dirk_Diggler:

Ну что же! Уже кое-что нарисовалось... Думаю, Терапевт смотрит на нас с иронической надеждой...

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Bonarienz на 15.11.2010 в 03:23:30
2Dirk_Diggler:

Еще раз уточни - как определены BurstPenalty и BurstHitStart? Как некий штраф для соотв. ствола, а вот второе?

Да, надо еще соотнестись с аналог. процедурой для одиночного выстрела.


Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 03:25:56
2Bonarienz: Эм... Мой знакомый - это мой пятидесятилетний отец. :) 25 лет в армии, несколько лет назад уволился.

Насчет отклонения - может их зашить в параметры ствола, и последующие пули кидать по вектору вверх-вправо? Для автоматчиков отклонение делить на 2.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:30:24
второе - с какого момента штраф начинает действовать. Т.к. типа длина отсечки.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Airbus на 15.11.2010 в 03:30:46
Подумал тут... Для первых 4 выстрелов штраф к патрону в очереди можно увеличивать по параболе, а для последующих - ввести зависимость от дальности до цели. Будет нечто константное, конечно...

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Legend на 15.11.2010 в 03:40:18
2Dirk_Diggler:
Quote:
А как ты точность определишь, ты же не стрелял из всей этой ботвы?  
Гы, сына, лол. Я тебе уже объяснял, что не обязательно быть курицей, чтобы уметь готовить яишницу ;) Это во-первых. Во-вторых, есть куча (тысячи их) таблиц/описаний/статистики/отзывов с результатами стрельб из различных единиц стрелкового оружия. Хотя не, ты прав, лучше сходить на полигон и из всего этого чуда пострелять. А для верности желательно взорвать ядрёну грену, а то вот откуда создателям игр знать, как она шарахнет? Они же не ходили на полигоны, не взрывали их
:cranky:

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:47:40

on 1289785218, Legend wrote:
лучше сходить на полигон и из всего этого чуда пострелять

Эт точно. Не почувствуешь - не поймешь. )))

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 03:50:31
2Dirk_Diggler:
Не обращай внимания на гениев. Они - бесплодны, но говорливы.

Немного смелости, и терпения - определиться с таблицей для одного, опорного, референсного ствола - и тупо СМОТРЕТЬ на экране, как стреляется с теми  или иными параметрами и коэфф.

Как говорят в моей области (видео и телевещание) - всему головой - экран и колонка!


Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 03:56:32
2Dirk_Diggler:
 
on 1289784624, Dirk_Diggler wrote:
второе - с какого момента штраф начинает действовать. Т.к. типа длина отсечки.
     


Никак не въедем - это та длина очереди, что выставлена игроком?

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Legend на 15.11.2010 в 03:58:26
2Dirk_Diggler: Тогда с тебя ядрёна грена, с меня полигон :D :devil: Доставка на Бене, чтобы потом вычислить элипсоиду поражения =)

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 15.11.2010 в 03:58:31
Нет. Это параметр ствола. ну типа номер выстрела, на котором отдача лупит в плечо. У большинства стволов - равна 1, т.е. отдача с первого выстрела, поэтому уже у второго штраф резко растет.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Airbus на 15.11.2010 в 04:01:33

on 1289786311, Dirk_Diggler wrote:
поэтому уже у второго штраф резко растет
С учетом скорострельности - не успеет "лупануть". А вот с третьего уже должно уводить вдаль.

Поэтому я за параболу с коэффициентом = коэфф. кучности ствола. :)

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 04:08:18
2Dirk_Diggler: 2Airbus:

Вот Вам обоим - таблица! Там даже аПыски в заголовках таблицы!

http://ru.wikipedia.org/wiki/%D0%90%D0%9A%D0%9C

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

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 15.11.2010 в 04:15:19

on 1289786898, Bonarienz wrote:
Отличный материал. Осталось разобраться в сущ. модели, модиф. ее и привязать таблицу поправок для стволов/стрелков.
     

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

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Airbus на 15.11.2010 в 04:17:44
2Bonarienz: Посмотрел. Получился, грубо говоря, неправильный конус от стрелка. И там стрельба короткими очередями, а мы рассчитываем еще и длинные.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 04:27:50
2Dirk_Diggler:

Да нет! Нам же известен ствол, есть целая простыня с его параметрами - ттх.тхт!

Ужели так трудно все это увязать? Таблица - общая для всего типа стволов, и веса - для конкретных стволов из типа. Например...

Уверен, что подобные таблицы можно довольно быстро найти для всех мыслимых стволов. Если не офиц., то любит.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Dirk_Diggler на 15.11.2010 в 04:30:16

on 1289788070, Bonarienz wrote:
Таблица - общая для всего типа стволов, и веса - для конкретных стволов из типа.

не может она быть общая.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 04:42:23
2Dirk_Diggler:

Я вспомнил!!! Кажися, в ДжА тайл есть в двух ипостасях!

В ближней зоне тайл - 1 метр! В дальней зоне (стрельба) тайл - 10 метров!!!

Т.е. при стрельбе по врагу, стоящему в 20 тайлах, ты стреляешь на 200 метров!!!

А таблицу всегда можно сделать общей - коэфф-мидля стволов при ее параметрах.

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 04:49:39
2Dirk_Diggler:

Кста! Если все прально поняли, то простой подстановкой 2 или 3 в BurstHitStart мы получаем ломаную? Т.е. первые два-три выстрела будут относительно точными?

Если так, то надо взвешивать оба параметра некоей функцией от номера выстрела...

Заголовок: Re: Клуб "Ночные операции" - 4
Прислано пользователем Bonarienz на 15.11.2010 в 04:54:29
2Dirk_Diggler:

Эти параметры "живут" в ттх.тхт!!! Правь и пробуй!!!

И я знаю, кто это сделал!

А посему - видимо, не составит проблемы вписать параметры эллипса рассеивания для всех стволов прямо в ттх.тхт!!!

Я даже уверен, что теперь мои персы будут стрелять очередями, как Иван или Тоска 10-ого уровня!!!

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 05:17:51

on 1289676559, Терапевт wrote:
Алгоритмы ИИ (и прочие советы по модификации кода) интересны только тогда, когда основаны на проверенных фактах, а не на предположениях, сформировавшихся только лишь при разглядывании кода.
Прежде чем озвучивать свои предположения по работе фрагментов кода, попробуй их проверять с помощью отладчика, узнаешь много интересного. ;)
     

Сделал сейв, в котором фраг ложится/встает.
Попробовал отладить. Виснет. Какая конфигурация сборки предназначена для отладки?

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 05:18:31

on 1289789379, Bonarienz wrote:
Кста! Если все прально поняли, то простой подстановкой 2 или 3 в BurstHitStart мы получаем ломаную? Т.е. первые два-три выстрела будут относительно точными?  

Да. Тогда штраф на эти выстрелы получается очень маленький.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Терапевт на 15.11.2010 в 18:59:43

on 1289677107, Dirk_Diggler wrote:
практическая проверка чревата тем, что я вместо работы с алгоритмами все время трачу на проверку.

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


on 1289677107, Dirk_Diggler wrote:
Я бы компилил экзешники для желающих потестить мои предложения ) и выкладывал бы здесь.  

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


on 1289791071, Dirk_Diggler wrote:
Какая конфигурация сборки предназначена для отладки?

Debug.

Что касается изменения формулы начисления штрафа в очереди, то менять её нет никакого смысла. Точность первых выстрелов в очереди может быть и так очень высокой в силу того, что при расчётах вероятность попадания может значительно превышать 100%, и только в самом конце вычислений обрезается до 99%.

Заголовок: Re: Глюки и проблемы - 2
Прислано пользователем Dirk_Diggler на 15.11.2010 в 21:11:36

on 1289840383, Терапевт wrote:
Точность первых выстрелов в очереди может быть и так очень высокой в силу того, что при расчётах вероятность попадания может значительно превышать 100%, и только в самом конце вычислений обрезается до 99%.  

вот-вот ) Еще один аргумент за то, что её надо менять. )

on 1289840383, Терапевт wrote:
Debug.  

У меня Debug намертво виснет при запуске, отжирая 99% процессора.Модифицировал для отладки конфигурацию Release, вроде кое-как работает.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 15.11.2010 в 21:34:34
Знаете что, господа... Посмотрел я ваш "эллипс рассеивания" для станковых пулеметов.. Это же обычное нормальное распределение для координат X и Y, просто с чуть-чуть отличающейся дисперсией, что и дает небольшой эксцентриситет. Стоило огород городить...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Bonarienz на 15.11.2010 в 23:18:29
2Dirk_Diggler:

Только для автоматов эллипс - растянут по горизонтали... И считать такое распределение - долго!!!

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 15.11.2010 в 23:21:16

on 1289855909, Bonarienz wrote:
И считать такое распределение - долго!!!  

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

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем jarni на 16.11.2010 в 02:13:05
2Dirk_Diggler:  
on 1289848296, Dirk_Diggler wrote:
У меня Debug намертво виснет при запуске, отжирая 99% процессора.Модифицировал для отладки конфигурацию Release, вроде кое-как работает.
Настройки глубины цвета рабочего стола на 16 бит ставил?

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 16.11.2010 в 03:01:05
так. выкатил 16 бит, глянем...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем MAn на 17.11.2010 в 00:09:15

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


Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 00:15:27

on 1289945355, MAn wrote:
А чо б не вычислять попадание только для первой пули, а для всех остальных вычислять только отклонение от первой, в соответствии с цифрами в колонке BurstPenalty?  

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


on 1289945355, MAn wrote:
ля каждой  последующей пули в очереди  вычисляется отклонение относительно места попадания первой, или:  точка привязки смещается - для второй пули вычисляетсчя отклонение относительно места попадания первой;

Если пробрасывать вычисление шанса попасть, а просто пули отклонять, то 99% всех пуль пойдут мимо. Я не до конца разглядел физ. модель, но чтобы пуля пошла точно во врага, там ей ОЧЕНЬ точно надо задать параметры полета. Для этого и вводится вычисления вероятности попадания. Т.е. сперва "бросается игральная кость", смотрится - если попал - то параметры вычисляются ТОЧНО. Если не попал - тогда углы ставятся от балды. Конечно, есть вероятность, что пуля таки даже с этими случайными углами попадет. но она стремится к нулю. Чтобы очередью попадать - сейчас нельзя пробрасывать вычисления шанса попадания. В этом одна из корневых проблем.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем MAn на 17.11.2010 в 00:25:47

on 1289945727, Dirk_Diggler wrote:
Ты понимаешь, тут дело в модели попадания, ведь процедура отклонения вызывается после того, как принято решение, что пуля летит в молоко...  

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


on 1289945727, Dirk_Diggler wrote:
Т.е. сперва "бросается игральная кость", смотрится - если попал - то параметры вычисляются ТОЧНО. Если не попал - тогда углы ставятся от балды. Конечно, есть вероятность, что пуля таки даже с этими случайными углами попадет. но она стремится к нулю.  

И тут не соглашусь... Наоборот, все необъяснимые на первый взгляд попадания... ну, там в голову с 25 тайлов... связаны с тем, что "кубик кидается дважды" ,т.е. даже если промазал, то всё равно можно попасть из-за того, что отклонение будет маленькое.

Потом, ты ж невнимательно прочёл - отклонение пули зависит от условно=заданной цифры в колонке BurstPenalty (там щас штраф на очередь указан)... отклонение может быть и очень маленьким

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 00:49:50

Code:
fGonnaHit = uiDiceRoll <= uiHitChance;



Code:
FireBulletGivenTarget( pSoldier, dTargetX, dTargetY, dTargetZ, pSoldier->usAttackingWeapon, (UINT16) (uiHitChance - uiDiceRoll), fBuckshot, FALSE );



Code:
           pBullet->sHitBy      = sHitBy;


                 
Code:
if ( sHitBy >= 0 )
                 {
                       // calculate by hand (well, without angles) to match LOS
                       pBullet->qIncrX = FloatToFixed( dDeltaX / (FLOAT)iDistance );
                       pBullet->qIncrY = FloatToFixed( dDeltaY / (FLOAT)iDistance );
                       pBullet->qIncrZ = FloatToFixed( dDeltaZ / (FLOAT)iDistance );
                       ddAdjustedHorizAngle = ddHorizAngle;
                       ddAdjustedVerticAngle = ddVerticAngle;
                 }
                 else
                 {
                       CalculateFiringIncrements( ddHorizAngle, ddVerticAngle, d2DDistance, pBullet, &ddAdjustedHorizAngle, &ddAdjustedVerticAngle );
                 }


Т.е. в пулю зашивается её точность, и вычисляются точные инкременты.

А алгоритм попаданий считается так. Для пули составляется список всех структур(включая людей) на карте, в которые она МОЖЕТ попасть. Не учитывая её направление. А только - 2 параметра, нач. и конечный тайл.
список составляется так - типа, ты в тайле где и пуля? НЕт? Следующий. Ты в тайле? В тебя можно попасть пулей? Записываем.
А дальше идет перебор списка - типа кто там и что там, в этом тайле. В т.ч. идет проверка и по координатам:  

Code:
                                         if (((*(pStructure->pShape))[pBullet->bLOSIndexX][pBullet->bLOSIndexY] & AtHeight[iCurrCubesAboveLevelZ]) > 0)
                                         {
                                               if (pStructure->fFlags & STRUCTURE_PERSON)
                                               {
                                                     // hit someone!
                                                     fStopped = BulletHitMerc( pBullet, pStructure, fIntended );
                                                     if (fStopped)
                                                     {
                                                           // remove bullet function now called from within BulletHitMerc, so just quit
                                                           return;
                                                     }

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 01:31:57

on 1289945355, MAn wrote:
А чо б не вычислять попадание только для первой пули, а для всех остальных вычислять только отклонение от первой, в соответствии с цифрами в колонке BurstPenalty?  

Проблема в том, где хранить вероятность попадания первой пули.

Кстати, напомните, в чем основная претензия к очередям? А то я уже за деревьями лес потерял...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 01:38:16
Вот у меня претензия - веерная стрельба практически бесполезна, вне зависимости от очереди... Фраги вообще нихрена не боятся. И накрыть из РПК толпу идиотов, скучковавшихся где-либо - очень сложно. Это как раз потому, что в вышеупомянутый список структур, какие МОЖНО подстрелить, солдаты попадают гарантированно только если стреляем мы в т.ч. именно в его тайл...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Luficer на 17.11.2010 в 02:40:31

on 1289950696, Dirk_Diggler wrote:
Вот у меня претензия - веерная стрельба практически бесполезна, вне зависимости от очереди...


Вот здесь ты чертовски прав. В практике (в частности сектор из А-серии, недалеко от СЗ ПВО, тот, что с островом) у меня были случаи, когда, стреляя из чего-то маломощного, но автоматического (MAC-10) очередями по 10 патронов удавалось за ход цепануть 2-х 3-х плохишей, скопившихся на участке в 9 квадратных тайлов. А при переигрывании хода, бывало, и ни одного не ранишь.
Будь у мерка пулемет+ соответствующая меткость - первые 6 пуль ушли бы в тушку мишени, остальные "в молоко" .
Довольно часто, прицельная стрельба "в область" могла бы очень пригодиться. При выкуривании снайперов и "засадников", к примеру или при стрельбе по плотной толпе. Пока же приходится для таких случаев таскать на себе РПГ, который, кстати, уже не торт.

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

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 02:44:12

on 1289954431, Luficer wrote:
равда, не проверял результаты на толпе, но, думаю, ничего хорошего не выйдет.
     

Я пробовал пару десятков раз. Максимум - попадает первая пуля.


on 1289954431, Luficer wrote:
прицельная стрельба "в область" могла бы очень пригодиться.  

пока не так-то просто реализовать это. Или надо увеличивать вероятность попадания в структуру до 100%, даже если ты в неё не целился...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Luficer на 17.11.2010 в 03:16:44

on 1289954652, Dirk_Diggler wrote:
пока не так-то просто реализовать это. Или надо увеличивать вероятность попадания в структуру до 100%, даже если ты в неё не целился...  

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

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 03:28:09
Кода - очень дохрена. Кратко алгоритм.

1) Определяется вероятность попадания C
2) Кидается рандом R, берется отклонение D от шанса
3) Формируется пуля. Пуле выдается направление на цель. Точное - если мы попали. И "примерно от балды" в противном случае, причем направление лежит между двумя конусами с вершиной в конце ствола. Внутренний конус ограничивает направление так, чтобы мы случайно не попали в цель - мы же уже промазали. Внешний ограничивает разброс. В пуле также храним тайл куда стреляем(где цель) и - отклонение D.
4) Пуля летит. на каждом перемещении:
   а) для пули составляется список всех структур(включая людей) на карте, в которые она МОЖЕТ попасть. Список составляется примерно так - типа, ты в тайле где и пуля? Нет? Следующий. Ты в тайле? Это в тебя игрок целился? Да? Записываем. Нет? Берем вероятность поражения структуры. Вот тут идет вычисления по всяким формулам и коэф. Сетка поражается слабо(пули пролетают насквозь обычно), стены поражаются всегда, камни и деревья - иногда.
  б) обходим список и проверяем на совпадение пули и точки структуры.

Как видно, мало чтобы координаты пули оказались внутри предмета. Надо, чтобы этот предмет был в списке проверяемых на такое совпадение! А люди туда попадают совсем не всегда, 100% гарантия попасть в список ТОЛЬКО у того, в кого мы целились.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем MAn на 17.11.2010 в 19:33:03

on 1289957289, Dirk_Diggler wrote:
3) Формируется пуля. Пуле выдается направление на цель. Точное - если мы попали. И "примерно от балды" в противном случае, причем направление лежит между двумя конусами с вершиной в конце ствола. Внутренний конус ограничивает направление так, чтобы мы случайно не попали в цель - мы же уже промазали. Внешний ограничивает разброс.

А это не ошибка, часом? Вот здесь написано иное:
http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=ja2v113;action=display;num=1285772568;start=0#0

Quote:
Первая часть ("попадание") проста дял понимания: если бросок кости успешен, пуля летит прямёхонько в центр мишени. Если на пути не будет препятствий, пуля попадёт точно в ту часть тела, в которую целились. Следовательно, с 50% ШП, 50% пуль улетит точно в центр мишени.    Вторая часть это то о чём большинство игроков пребывают в блаженном неведении, она разбирается с пулями которые провалили бросок и проверку по ШП. В зависимости от того насколько бросок кости был меньше ШП, пуля может пролететь в пределах определённого радиуса от центра мишени. Учитывая что радиус довольно большой (низкий ШП), или дистанция довольно велика, пуля может разминуться с целью полностью. Однако, всегда есть шанс что пуля вылетит в точку, достаточно близкую к ценрту мишени, чтобы поразить его, и это всё при том что она была определена как "промах"! Более того, с тем фактором случайности, который используется в формуле, довольно таки возможно для пули "промаха" прилететь прямо в центр цели, словно это пуля "попадания".



on 1289957289, Dirk_Diggler wrote:
А люди туда попадают совсем не всегда, 100% гарантия попасть в список ТОЛЬКО у того, в кого мы целились.

Багмонстр грит, что быдто 40 или 60%
http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=ja2v113;action=display;num=1285772568;start=15#19

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 19:38:03

on 1290015183, MAn wrote:
А это не ошибка, часом? Вот здесь написано иное:  

Обратить внимание на ddMinimumMiss и его использование.

     
Code:
// Want to make sure that not too many misses actually hit the target after all
           // to miss a target at 1 tile is about 30 degrees off, at 5 tiles, 6 degrees off
           // at 15 tiles, 2 degrees off.  Thus 30 degrees divided by the # of tiles distance.
           ddMinimumMiss = MIN_AIMING_SCREWUP / (dd2DDistance / CELL_X_SIZE );
           
           if (ddMinimumMiss > ddMaximumMiss)
           {
                 ddMinimumMiss = ddMaximumMiss;
           }

           ddAmountOfMiss = ( (ddMaximumMiss - ddMinimumMiss) * (DOUBLE) iMissedBy) / 100.0 + ddMinimumMiss;
if (PreRandom( 2 ) )
           {
                 ddHorizAngle += ddAmountOfMiss * (100.0 - ddVerticPercentOfMiss) / 100.0;
           }
           else
           {
                 ddHorizAngle -= ddAmountOfMiss * (100.0 - ddVerticPercentOfMiss) / 100.0;
           }

           // miss up or down
           if (PreRandom( 100 ) < uiChanceOfMissAbove)
           {
                 ddVerticAngle += ddAmountOfMiss * ddVerticPercentOfMiss / 100.0;
           }
           else
           {
                 ddVerticAngle -= ddAmountOfMiss * ddVerticPercentOfMiss / 100.0;
           }

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 19:43:57

on 1290015183, MAn wrote:
Багмонстр грит, что быдто 40 или 60%  

Там большая и толстая процедура определения шанса, зависит от расстояния и т.п.

А вот если мы туда и целились - то все 100%


Code:
     uiChanceOfHit = ChanceOfBulletHittingStructure( pBullet->iLoop, pBullet->iDistanceLimit, pBullet->sHitBy );

     if (iGridNo == (INT32) pBullet->sTargetGridNo)
           {
                 fIntended = TRUE;
                 // if in the same tile as our destination, we WANT to hit the structure!
                 if ( fIntended )
                 {
                       uiChanceOfHit = 100;
                 }


а потом вот так добавляем в структуры:


Code:
                                   if ( PreRandom( 100 ) < uiChanceOfHit )
                                   {
                                         gpLocalStructure[iNumLocalStructures] = pStructure;
                                         gubLocalStructureNumTimesHit[iNumLocalStructures] = 0;
                                         iNumLocalStructures++;
                                   }

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 19:50:21
А bugmonster-то прав... В принципе, в LOS.c есть всё, чтобы поменять модель стрельбы...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем MAn на 17.11.2010 в 19:53:04

on 1290015483, Dirk_Diggler wrote:
Обратить внимание на ddMinimumMiss и его использование.

Гм, ну я не силён в английском, но мне кажется, что там написано:

on 1290015483, Dirk_Diggler wrote:
Want to make sure that not too many misses actually hit the target after all              // to miss a target at 1 tile is about 30 degrees off, at 5 tiles, 6 degrees off              // at 15 tiles, 2 degrees off.  Thus 30 degrees divided by the # of tiles distance.   

Хотим, мол, чтобы не слишком часто "промахи" попадали в цель.
Для этого вводится ограничение по отклонению, то бишь пуля отклонившаяся на некоторый градус = 30/колво тайлов  не поражает цель, даже если и проходит через неё.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Dirk_Diggler на 17.11.2010 в 20:00:31

on 1290016384, MAn wrote:
Хотим, мол, чтобы не слишком часто "промахи" попадали в цель.  

ddAmountOfMiss = ( (ddMaximumMiss - ddMinimumMiss) * (DOUBLE) iMissedBy) / 100.0 + ddMinimumMiss;

Т.е. ddAmountOfMiss  не может быть меньше этого ddMinimumMiss. А мы потом углы на этот ddAmountOfMiss правим. Т.е ограничение конусом  "изнутри" есть. Вопрос в том, это именно строгий конус, или просто уменьшение вероятности - не так важно, лень формулу разбирать. В любом случае, если угол слишком точный - он дополнительно отклоняется.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем MAn на 17.11.2010 в 20:11:46

on 1290016831, Dirk_Diggler wrote:
не так важно, лень формулу разбирать. В любом случае, если угол слишком точный - он дополнительно отклоняется.

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

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем valuta на 04.03.2012 в 21:42:21
Всем привет! Я новенький, ногами не бейте, плиз.
В исходниках шанс попадания = (меткость + кондиция оружия) / 2.
Видимо в оригинале Джа 2 так же.
Значит:
1)неандерталец, найдя ствол 100% исправный, попадет в цель фифти-фифти
2)профи с меткостью 100 из ствола нулевой кондиции тоже фифти-фифти.
Без учета штрафов и бонусов ессно.
IMHO надо брать корень произведения  sqrt( меткость*кондиция).

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем coolberg на 05.03.2012 в 01:10:15
2valuta: насколько я помню, среднее арифметическое бралось только в том случае, когда кондиция оружия меньше меткости стрелка, в остальных случаях за базовый шанс бралась просто меткость. Поэтому для неандертальца шанс так и будет ноль, если я ничего не путаю.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем valuta на 05.03.2012 в 05:40:10
2coolberg: Да нет, еще раз глянул, именно среднеарифметическое. Неандерталец очень опасен.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем valuta на 08.03.2012 в 04:31:19
2coolberg: Однако вы сударь правы.
Тем не менее среднеарифметическое не есть гуд. Это величины вероятностные, соотв. надо перемножать/делить, а не складывать/пополамить.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Bonarienz на 08.03.2012 в 07:37:02
2valuta:

"Сударь" - уничижит. или шутлив.-иронич. сокращение от "Милостивый государь". В общении с незнакомыми или малознакомыми - недопустимо. (Для свед. - Множ. числа не имеет.)

Как на счет приближения функции вероятности эллиптическими?

Это ведь не просто суммы, но суммы с условиями - т.е. кус.-лин. аппроксимация заметно более сложных непрерывных зависимостей. А вот "куркулируются" такие зависимости заметно быстрее (на порядки быстрее) функциональных зависимостей. Банан по выч. мат... Фтопку идеи!

Ведь игре при просчете этихпля функций надо еще анимации крутить...

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем valuta на 08.03.2012 в 09:22:14
2Bonarienz:

О как !?!? ::) Бум знать.

Может быть и так. Разница в расчетах будет существенна, лишь случаях использования практически неисправного ствола. Чего в игре не бывает.
Можно забить.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 26.05.2016 в 16:00:44
Нашел только эту тему про исходники.
Вопрос специалистам, вот есть в НО 1.2 такой код:


Quote:
SOLDIERCLASS * FindSoldierByProfileID( UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly )
{
     UINT8 ubLoop, ubLoopLimit;
     SOLDIERCLASS * pSoldier;

     if (fPlayerMercsOnly)
     {
           ubLoopLimit = gTacticalStatus.Team[0].bLastID;
     }
     else
     {
           ubLoopLimit = MAX_NUM_SOLDIERS;
     }

     for (ubLoop = 0, pSoldier = MercPtrs[0]; ubLoop < ubLoopLimit; ubLoop++, pSoldier++)
     {
           if (pSoldier->bActive && pSoldier->ubProfile == ubProfileID)
           {
                 return( pSoldier );
           }
     }
     return( NULL );
}


bLastID = это максимальный возможный ID для команды (то есть, солдат с таким ID может реально существовать).
MAX_NUM_SOLDIERS - это значение, на 1 больше максимально возможного ID солдата в игре (для команды цивилов последний ID равен MAX_NUM_SOLDIERS - 1).

В итоге, цикл, проверяющий ubLoop < ubLoopLimit будет корректно работать для всех случаев, кроме случая, когда ищется последний ID для команды игрока.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Терапевт на 31.05.2016 в 14:42:29
2Seven:
Данная историческая ошибка теоретически чревата лишь какими-то глюками с транспортом игрока при наличии сразу двух машин. Например, NPC не сможет заправить вторую машину, если есть квест с такой реакцией. Причём она такая не единственная, есть ещё.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 14.07.2017 в 20:44:24
Вопрос знатокам.

В функции UseGun есть такой вызов:
FireBulletGivenTarget( pSoldier, dTargetX, dTargetY, dTargetZ, pSoldier->usAttackingWeapon, (UINT16) (uiHitChance - uiDiceRoll), fBuckshot, FALSE );
При этом FireBulletGivenTarget определена в LOS.h как
INT8 FireBulletGivenTarget( SOLDIERCLASS * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usHandItem, INT16 sHitBy, BOOLEAN fBuckshot, BOOLEAN fFake );
Для чего (uiHitChance - uiDiceRoll) преобразуется в UINT16, если передавать нужно INT16, причем отрицательное значение имеет смысл и означает величину промаха?

Например, вызов CalculateLaunchItemParamsForThrow в UseThrown производится корректно, с преобразованием в INT8:

CalculateLaunchItemParamsForThrow( pSoldier, sTargetGridNo, pSoldier->bTargetLevel, (INT16)(pSoldier->bTargetLevel * 256 ), &(pSoldier->inv[ HANDPOS ] ), (INT8)(uiDiceRoll - uiHitChance), THROW_ARM_ITEM, 0 );

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Терапевт на 21.07.2017 в 15:34:42

on 1500054264, Seven wrote:
Для чего (uiHitChance - uiDiceRoll) преобразуется в UINT16, если передавать нужно INT16, причем отрицательное значение имеет смысл и означает величину промаха?

Хотя по логическому смыслу это неправильно, но в данном случае не имеет значения к знаковому или беззнаковому типу происходит преобразование, главное, что к двухбайтовому, подходящему по размеру. Целое отрицательное число хранится, как положительное больше 32767. Например, -1 будет храниться, как 65535; -2, как 65534 и т.п. Таким образом знак числа при передаче в функцию не теряется, и все вычисления внутри выполняются корректно.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 21.07.2017 в 21:54:13
2Терапевт:
А вот еще из исходников НО 1.2:
В UseGun():
Вычисляем шанс попасть:

Quote:
uiHitChance = CalcChanceToHitGun( pSoldier, sTargetGridNo, pSoldier->bAimTime, pSoldier->bAimShotLocation );

Затем случайное число:

Quote:
// ROLL DICE
uiDiceRoll = PreRandom( 100 );

Если uiDiceRoll <= uiHitChance, то это попадание, то есть пуля полетит точно в цель.

Quote:
fGonnaHit = uiDiceRoll <= uiHitChance;

и передается в FireBulletGivenTarget(  как sHitBy параметр:

Quote:
FireBulletGivenTarget( pSoldier, dTargetX, dTargetY, dTargetZ, pSoldier->usAttackingWeapon, (UINT16) (uiHitChance - uiDiceRoll), fBuckshot, FALSE );

Если sHitBy >=0, то это попадание.
Получается, что при вычисленном шансе попасть uiHitChance = 0, есть 1% вероятность реального попадания (uiDiceRoll = 0, 0<=0).
При вычисленном шансе uiHitChance = 1%, реальный шанс попасть будет 2% (0<=1, 1<=1).

Ванильный баг в AI функции SearchForItems:

Quote:
case ARMOURCLASS_VEST:
     if (pSoldier->inv[VESTPOS].usItem == NOTHING)
     {
           iTempValue = 200 + EffectiveArmour( pObj );
     }
     else if ( EffectiveArmour( &(pSoldier->inv[HELMETPOS]) ) > EffectiveArmour( pObj ) )
     {
           iTempValue = 100 * EffectiveArmour( pObj ) / EffectiveArmour( &(pSoldier->inv[VESTPOS]) );
     }
     else
     {
           iTempValue = 0;
     }
     break;

Проверяем жилетку, а сравниваем броню поднимаемого объекта с броней шапки:

Quote:
else if ( EffectiveArmour( &(pSoldier->inv[HELMETPOS]) ) > EffectiveArmour( pObj ) )

Аналогично и со штанами.
Кроме того, EffectiveArmour() при определенных условиях может вернуть 0, что приведет к предсказуемым последствиям:

Quote:
INT8 EffectiveArmour( OBJECTTYPE * pObj )
{
     INT32            iValue;
     INT8            bPlate;

     if (pObj == NULL || Item[pObj->usItem].usItemClass != IC_ARMOUR)
     {
           return( 0 );
     }
...
}

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Терапевт на 22.07.2017 в 00:12:43

on 1500663253, Seven wrote:
Ванильный баг в AI функции SearchForItems:

В НО боты не ищут броню. Ищут только оружие и патроны.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Bonarienz на 22.07.2017 в 01:52:33
2Терапевт:

Как же так? С Барреттом и голой жопой - впирёт на фрагА?!. Нипарядык!

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 30.08.2017 в 10:52:53
В CreatureDecideActionBlack()

Quote:
// DIGGLER ON   21.11.2010
// Теперь у нас 2 процедуры на каждый случай жизни
#ifdef NEW_AI_STRUCT
     if ( gfTurnBasedAI || (gTacticalStatus.uiFlags & TURNBASED) )
           return(DecideActionRedTB(pSoldier,FALSE));
     else
           return(DecideActionRedRT(pSoldier,FALSE));
#else
return(DecideActionRed(pSoldier,FALSE));
#endif
// DIGGLER OFF

Разве тут не должно вызываться CreatureDecideActionRed?

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Терапевт на 30.08.2017 в 23:27:28
Наверно да, но с оригинала идёт именно так.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 30.08.2017 в 23:34:14
2Терапевт:
Судя по всему, это просто неудачная копипаста из DecideAction.c - там есть ровно такой же код - если единственный доступный для атаки противник умирает, ищем нормального и если находим, будем через Red AI к нему добираться, так как в Black AI нет поиска противника. То есть скопировать скопировали, а имя функции поменять забыли.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 19.12.2017 в 18:31:33
Еще один ванильный баг в 1.2:

FindLocations.c

Quote:
UINT8 NumberOfTeamMatesAdjacent( SOLDIERCLASS * pSoldier, INT16 sGridNo )
{
     UINT8      ubLoop, ubCount, ubWhoIsThere;
     INT16      sTempGridNo;

     ubCount = 0;

     for( ubLoop = 0; ubLoop < NUM_WORLD_DIRECTIONS; ubLoop++ )
     {
           sTempGridNo = NewGridNo( sGridNo, DirectionInc( ubLoop ) );
           if ( sTempGridNo != sGridNo )
           {
                 ubWhoIsThere = WhoIsThere2( sGridNo, pSoldier->bLevel );
                 if ( ubWhoIsThere != NOBODY && ubWhoIsThere != pSoldier->ubID && MercPtrs[ ubWhoIsThere ]->bTeam == pSoldier->bTeam )
                 {
                       ubCount++;
                 }
           }
     }

     return( ubCount );
}


Должно быть:

Quote:
ubWhoIsThere = WhoIsThere2( sTempGridNo, pSoldier->bLevel );


Из-за этого бага еще с оригинала не работает антискучивание в FindBestNearbyCover:

Quote:
iCurrentCoverValue -= (iCurrentCoverValue / 10) * NumberOfTeamMatesAdjacent( pSoldier, pSoldier->sGridNo );
...
iCoverValue -= (iCoverValue / 10) * NumberOfTeamMatesAdjacent( pSoldier, sGridNo );

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 29.10.2018 в 21:26:25
Ванильный баг в 1.2:

opplist.c, HearNoise()


Quote:
if (ubVolume >= pSoldier->ubNoiseVolume)
{
     // yes it is, so remember this noise INSTEAD (old noise is forgotten)
     pSoldier->sNoiseGridno = sGridNo;
     pSoldier->bNoiseLevel = bLevel;

     // no matter how loud noise was, don't remember it for than 12 turns!
     if (ubVolume < MAX_MISC_NOISE_DURATION)
     {
           pSoldier->ubNoiseVolume = ubVolume;
     }
     else
     {
           pSoldier->ubNoiseVolume = MAX_MISC_NOISE_DURATION;
     }

     SetNewSituation( pSoldier );  // force a fresh AI decision to be made
}

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Терапевт на 30.10.2018 в 13:33:00
2Seven:
И в чём он выражается?

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 30.10.2018 в 13:36:47
2Терапевт:
MAX_MISC_NOISE_DURATION = 12
ubVolume - громкость, может быть до 100 и больше.
В существующем виде AI запоминает не самый громкий звук (и самый важный, как следствие), а просто любой последний громче минимального уровня в 12, что приводит к некорректному поведению AI.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Терапевт на 30.10.2018 в 16:57:46
2Seven:
Понятно. Я бы сказал, что это не баг, а субъективный взгляд на данную примитивную линейную нормализацию величины. Ведь самый громкий звук необязательно будет самым важным. По крайней мере в случаях, когда игрок нападает на вражеский сектор.

Заголовок: Re: Наука и религия в исходниках НО.
Прислано пользователем Seven на 10.11.2018 в 19:29:15
Ванильный баг в 1.2


Quote:
// set values for the tiles EXITED from this location
FORCE_SET_MOVEMENTCOST( usGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_NONE );
SET_MOVEMENTCOST( usGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + 1, EAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
FORCE_SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_NONE );
SET_MOVEMENTCOST( usGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - 1, WEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );

Должно быть

Quote:
// set values for the tiles EXITED from this location
if (gubWorldMovementCosts[usGridNo - WORLD_COLS][NORTH][0] < TRAVELCOST_BLOCKED)
     FORCE_SET_MOVEMENTCOST(usGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_NONE);
ET_MOVEMENTCOST( usGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + 1, EAST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
if (gubWorldMovementCosts[usGridNo + WORLD_COLS][SOUTH][0] < TRAVELCOST_BLOCKED)
     FORCE_SET_MOVEMENTCOST(usGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_NONE);
SET_MOVEMENTCOST( usGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - 1, WEST, 0, TRAVELCOST_OBSTACLE );
SET_MOVEMENTCOST( usGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );

Лечит подвисание AI при попытке перепрыгнуть в северном направлении забор, за которым расположен непроходимый объект.



A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.