Jump to content
Korean Random
SoprachevAK

Сбор статистики о попаданиях

Recommended Posts

Появилась идея собрать статистику по "везентю" стрельбы. Веб сервер, мат статистика, сайт с отображением для меня легко и просто ибо умею. 

Встаёт вопрос о том как получить инфу от клиента, как то год назад уже писал модик, крайне неприятный опыт, так что проще всего спросить совета, а не рандомно тыкаться в исходник

 

Собственно мне нужно:

  1. Хук в старт битвы
    1. Получение общей инфы (ник игрока, техника, пушка, её урон и продибие по типу снарядов, разброс с учётом перков и модулей)
  2. Хук в момент выстрела 
    1. Координата маркера прицела 
    2. Текущий разброс (надеюсь он в хук выстрела ещё не разбрасывается)
    3. Танк на который наведён прицел (буду брать хп шотных совков)
    4. Тип снаряда которым произведён выстрел
  3. Хук? в момент попадания снаряда в коллайдер (видел как то на форму такой коллбэк, но сейчас найти не получается)
    1. Координата куда снаряд попал
    2. Инфа о попадание если попал в танк (тип попадания (пробитие/рикошет/не пробил), урон)

 

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

 

Share this post


Link to post

Short link
Share on other sites

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

 

Про моды - можно посмотреть здесь (описание тут) и здесь.

 

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

Edited by StranikS_Scan
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
5 hours ago, StranikS_Scan said:

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

Ну тут вопрос в том как  эту информацию отображать, я хочу сделать визуальную инфографику, которая будет по списку боёв показывать точку попадания каждого выстрела относительно круга сведения, будет опция переключение на нормализованное отображение, когда круги сведения приводятся к одному размеру, будет отображаться суммарный круг, где на одной картинке будут все точки попаданий выбранных боёв, на ней будет 50% квантиль нормального распределения и 50% квантиль фактического, по их взаимному расположению можно будет однозначно определить везло или нет в выбранных боях
У многих стримеров горит с того как не летят снаряды и им было бы интересно чем то оправдать своё горение, ровно так же, как многие стримеры юзают модик показывающий точки попадания по танку после боя, пару стримеров которых я спросил с аудиторией 100к-150к, подтвердили интерес

За модики спасибо, из них суммарно я смогу взять координату пушки до выстрела и координату попадания как по ландшафу, так и по технике, однако под вопросом остаётся способ получения текущего разброса танка в момент перед выстрелом, тк далеко не все выстрелы производятся с полным сведением

 

И если не сложно, ткни в мануал как запустить исходники твоих модов, через .wotmod работают, через орион и exec, import/reload scripts from file/folder выдаёт ошибки по типу ImportError: No module named hook, тесторый скрипт print(BigWorld.player().name) работает

Share this post


Link to post

Short link
Share on other sites
8 минут назад, SoprachevAK сказал:

Ну тут вопрос в том как  эту информацию отображать, я хочу сделать визуальную инфографику, которая будет по списку боёв показывать точку попадания каждого выстрела относительно круга сведения, будет опция переключение на нормализованное отображение, когда круги сведения приводятся к одному размеру, будет отображаться суммарный круг, где на одной картинке будут все точки попаданий выбранных боёв, на ней будет 50% квантиль нормального распределения и 50% квантиль фактического

 

Это теория. А на практике:

- не круг сведения, а круг разброса, это разные круги

- есть клиентский круг разброса и есть серверный, в динамике они не совпадают

- событие выстрела и событие попадания разнесены по времени

- распределение у разброса снарядов в текущей версии игры не совсем "нормальное", оно искусственное и до конца не изучено (патч 0.8.5, патч 0.9.6, патч 1.0.x)

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

- после чего осмысливаем с какой погрешностью это все будет работать в динамике

 

Отсюда приходим к простому выводу, что если стримеру нужно знать "везло ему или не везло", то есть в разы более простые и понятные пути как это посчитать. Например, взять число выстрелов за бой и число попаданий и выдать стримеру %. Это идеальный мод для ютуберов и их хомяков. Легко, просто, понятно. Сей мод будет не только информативен но даже и полезен, так как сподвигнет малолетних танкистов не стрелять в небо по кустам и просто так.

 

1 час назад, SoprachevAK сказал:

через .wotmod работают

 

Они же собраны под пакет. Только в составе пакета и будут работать. Запуск через Орион они не предполагают.

Share this post


Link to post

Short link
Share on other sites
1 hour ago, StranikS_Scan said:

есть клиентский круг разброса и есть серверный, в динамике они не совпадают

Ну в твоём моде с артой есть серверный тангенс разброса

 

1 hour ago, StranikS_Scan said:

распределение у разброса снарядов в текущей версии игры не совсем "нормальное", оно искусственное и до конца не изучено (патч 0.8.5, патч 0.9.6, патч 1.0.x)

Вместо нормального можно брать среднее по всем боям, думаю оно будет весьма точным

 

1 hour ago, StranikS_Scan said:

точка попадания может оказаться за точкой прицеливания

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

 

1 hour ago, StranikS_Scan said:

после чего осмысливаем с какой погрешностью это все будет работать в динамике

 

Спорно, большинство выстрелов делается в стоячем положение с полным или почти полным сведением, что нивелирует рассинхронизацию, и остаётся научиться считать траекторию, либо засчитывать лишь те выстрелы, у которых F(скорость полёта снаряда, расстояние от прицела до попадания) < X, где функцию F и константу X взять с потолка

 

1 hour ago, StranikS_Scan said:

взять число выстрелов за бой и число попаданий и выдать стримеру %

Это вроде бы и так показывается в послебоевой статистике, однако из 20 выстрелов обидно иметь не 5 попаданий по танку, а 15 промахов когда улетело в край разброса, обидны выстрелы, которые могли бы попасть, если бы не рандом

 

 

В заключение остаётся вопрос о вычисление траектории

Share this post


Link to post

Short link
Share on other sites
8 часов назад, SoprachevAK сказал:

В заключение остаётся вопрос о вычисление траектории

 

Ну да, в остальном же все гладко ))))))) 

https://github.com/StranikS-Scan/WorldOfTanks-Decompiled/blob/b92d3a2b1678f04f1ea78aa78ab6e77e51b98844/source/res/scripts/common/projectile_trajectory.py

Share this post


Link to post

Short link
Share on other sites
24 minutes ago, StranikS_Scan said:

Ну если предположить, что ProjectileMover.add получает refVelocity достаточную для вычисления траектории, то да, остальное вроде бы гладко

И судя по всему это то что надо

 

Два выстрела с бт7 артиллерийского

image.thumb.png.9aff4ef46bf726ea1ef3ed9f4c2f8f53.png

image.thumb.png.24d3434b748760baee05720aa00d424e.png

Edited by SoprachevAK

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan а почему скорость трассера меньше ттх скорости снаряда? Ты в своём моде делишь её на 0.8, что видимо было посчитано эмпирически, тк в движке я никаких упоминаний об этих магических константах я не нашел  

 

ps. Если интересно вот что получилось, пока в альфа версии https://soprachev.com/wot-shoot/

Edited by SoprachevAK

Share this post


Link to post

Short link
Share on other sites
50 минут назад, SoprachevAK сказал:

почему скорость трассера меньше ттх скорости снаряда? Ты в своём моде делишь её на 0.8, что видимо было посчитано эмпирически, тк в движке я никаких упоминаний об этих магических константах я не нашел  

 

Share this post


Link to post

Short link
Share on other sites
2 часа назад, SoprachevAK сказал:

что видимо было посчитано эмпирически

 

Ага, ну прям))) Эмпирика - удел безработных чудиков. У меня нет времени на такое. Смотри чтение параметров из xml - тыц. Ну и ссылку на подробное объяснение выше дал Ктулху.

 

2 часа назад, SoprachevAK сказал:

ps. Если интересно вот что получилось, пока в альфа версии https://soprachev.com/wot-shoot/

 

Нету подписей у кругов. Не понятно, что есть что. Ну и в таких случаях стоит где-то описание подробностей давать ибо иначе сразу возникают вопросы - насколько все это соотносится с физикой игры. Например та же вероятность попадания (квантиль) при каких условиях считается. Когда, например, erfc() или erf() применяете, то нужно учитывать, что в игре распределения не идеальные ,а с обрезкой. ВГ в распределениях разброса, урона, пробития, берет(брал) обрезку по трем сигмам..... Еще бы вероятность попадания в круг показывалось бы. Да и кругов этих много... может какие-то круги с полупрозрачной заливкой сделать.

 

А вообще, если вы такое умеете делать, как этот сайт сейчас, то мои советы вам нафиг не нужны )))))

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...