Перейти к содержимому

Маскировка и обзор


Рекомендованные публикации

Игроки
771 публикация
5 681 бой
06 Окт 2015 - 03:02 пользователь Med433 сказал:

 

Есть идеи, как измерить частоту проверки на видимость?

 

У меня есть корявая схема, если других не придумаем, можно её опробовать.

 

 Становимся в куст так, чтобы можно было малым поворотом башни высунуть или спрятать подвижную габаритную точку, остальные точки должны быть скрыты (попробуй ещё такой куст найди https://forum-mt-prod.lesta.ru/emoticons/facepalmic.gif). Каким-нибудь кликером начинаем прятать и показвывать эту точку с частотой, близкой к предполагаемой для дистанции до наблюдателя из противоположной команды. Если частота равна истинной, то танк будет либо всё время засвечен, либо все время скрыт. Если же частоты чуток различаются, то он будет появляться и исчезать через долгие промежутки (несколько минут). Ну а если частоты совсем разные, засвет будет постоянным (грубо, при различии в два раза возникнут некоторые хитрости)

 

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

 

Первый ну очень корявый. Второй тоже может зависеть от клиента. Можно сделать так:

Ищем узкую щель (между домами, например). Ставим один любой танк напротив этой щели на некотором расстоянии (на котором хотим проверить тик засвета). Берем быстрый танк и пролетаем им с другой стороны щели вплотную к ней. Так повторяем много раз. Зная расстояние между габаритными точками, скорость танка, ширину щели и вероятность засвета (полученную экспериментально) можем вычислить тик засвета. Случайную погрешность можно сколь угодно уменьшать, увеличивая количество экспериментов. А вот с систематической погрешностью сложнее, я не знаю, как от нее избавиться, а она может иметь место. С ходу: мы можем "поймать" не расстояние между крайними габаритными точками, а между средней (верхушка башни, вроде) и крайней. От этого можно избавиться, начав с малой скорости, когда светиться будет в 100% случаев и постепенно увеличивать скорость, чтобы поймать момент первых незасветов. Еще влияет, естественно, точность измерения ширины щели и габаритов танка. Может есть еще какой фактор, который может дать систематическую погрешность.

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

Скрипт статистики участников форума
Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв

Как-то всё очень сложно у вас. Можно просто подобрать пару танков по характеристикам так, чтобы засвет происходил на нужной дистанции. И как обычно: один стоит, второй делает шаг (только один шаг, отделяющий его от обнаружения оппонента). Проблема в другом - в точности замеров. Речь ведь идет о долях секунды. Плюс, погрешность от пинга и времени отрисовки. Если на основном сервере, то пинг, по идее, не сильно повлияет, у меня, по крайней мере, он небольшой (~30-40 мс на РУ4). Правда могут быть проблемы с подбором танков, но это ещё не факт. Опять же, смотря какой набор дистанций проверять. Со временем отрисовки сложнее. Я думаю, информация о том, что, скажем, в прицеле кто-то появился, на клиент передаваться должна независимо от того, с какой скоростью клиент отрисует объект. Можно отловить точное время этого момента. Тут Strannik_Scan наверное что-то скажет. И вопрос как вот это всё согласовать. Слишком уж высокая точность нужна.

 

Можно попробовать логировать мометы начала движения наблюдателя и потом сопоставить их со временем обнаружения пациента. Всё равно Странику скрипт пилить надо будет. Никак без него.

Изменено пользователем AndrasD
 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
3 194 публикации
46 157 боёв

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

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

 

Изменено пользователем Гость
Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв

1. Если проверять, например, дистанцию 50 -150 метров, заявленная разница 0,5 секунды. То есть, частота должна быть в районе нескольких десятых секунды. Это очень быстро.

2. Как можно сдвинуть мышь на строго фиксированное расстояние? Я, честно говоря, не в курсе. С танком в этом смысле несколько проще. Например, кратковременное нажатие клавиши вперед на Маусе сдвигает его примерно на 6 см. Погрешность там достаточно невелика.

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

 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
771 публикация
5 681 бой
06 Окт 2015 - 11:19 пользователь AndrasD сказал:

 

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

Вот поэтому всё и сложно.

 

Med433, сорри, первый метод норм, я думал там другое написано и не стал читать дальше первого предложения.

Тоже там свои косяки есть, конечно, но вроде всё решаемо.

Скрипт статистики участников форума
Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв
06 Окт 2015 - 20:03 пользователь StranikS_Scan сказал:

 

По поводу измерения задержки засвета. Сервер обсчет сцены делает в течение тика 100 мс, т.е. рассылку новой сцены он делает с минимальным интервалом в 100мс. Когда тормозит, то этот интервал самопроизвольно растягивается. Факт засвета - это выполнение двух условий:

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

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

 

Исходя из этого измерение, думаю, надо построить таким образом:

1. Запустить две копии клиента на одной машине (Орион в помощь). В этом случае вместо двух разных пингов будет один пинг.

2. Оперируя только дистанцией между опорными точками корпусов машин заранее по цифрам и таблицам подобрать две машины - светящую (первая) и засвечиваемую (вторая) - таких, что РО второй машины будет равно интересующей нас дистанции или будет близка к ней. Например в таблице задержек есть вот такие границы интервалов - 150, 270, 445 м.

3. После этого надо выставить машины на границе РО в чистом поле без засвета, но с минимально возможным отступом от границы, при котором время преодоления этого отступа было бы в 10 раз меньше тика сервера и им в дальнейшем в расчете можно было бы пренебречь. По сути это очень похоже на схему теста коэф. маскировки у AndrasD, только тут нас интересует не факт засвета и его задержка.

4. Дальше нам потребуется логер времени следующих событий:

- отправка нажатия клавиши из питона в клиенте

- приход данных о новом противнике с клиента в питон

Логер должен хукать соответствующие эвенты и логировать время их вызова. Этот мод должен работать в боих запущенных копиях клиента. Мы жмякаем клавишу движения вперед на первой копии клиента, после чего событие логируется с отметкой по времени T1, затем происходит то что происходит - второй танк обнаруживает первый и это собятие уже на второй копии клиента логируется с отметкой по времени Т2. И этот опыт надо повторить несколько раз.

 

Теперь переходим к анализу временных меток. Cначала рассмотрим из чего будет складываться разница dT=T2-T1:

Tt1 - время прихода данных из первого клиента на сервер и постановка их в очередь, можно принять равным пингу Тt1 = 0.001*ping, сек.

Td - время ожидания ближайшего тика сервера, это время случайное и варьируется в мс от 0 до 100-ping, т.е. можно записать Td = {0...(0.1-Tt1)}.

Ts - время обсчета сцены сервером, зависит от его загруженности, сколько оно не известно, но в нормальном режиме оно меньше тика сервера Ts

Tx - это пауза засвета, данная величина равна Tx = 0.1*n, где n - это количество тиков сервера, в течение которых он игнорировал факт засвета по причине искусственной задержки.

Tt2 - время прихода данных с сервера на второй клиент, в нашем случае это величина принимается равной Tt1

 

Таким образом получаем вот такую формулу:

dT = Tt1 + Td + Ts + Tx + Tt2.

Здесь интерес для нас представляет только Tx, а точнее величина n.

n = (dT - Tt1 - Tt2 - Td - Ts)/0.1 = 10*(dT - 0.002*ping - {0...(0.1-0.001*ping)} - Ts) = 10*(dT - {0.002...(0.1/ping+0.001)}*ping - Ts).

 

Пример, пусть ping = 40 мс, при этом Ts = 5 мс. Разница времён по логу составила 500 мс. Тогда получаем, что задержка находится в пределах:

n_min  = 10*(0.5 - 0.002*40 - 0.05) = 3,7 = 4, тика

n_max = 10*(0.5 - (0.1/40+0.001)*40 - 0.05) = 4,1 = 5, тиков

Цитирую по просьбе Страника, ибо он в РО.

 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
3 194 публикации
46 157 боёв
06 Окт 2015 - 03:09 пользователь AndrasD сказал:

 

1. Если проверять, например, дистанцию 50 -150 метров, заявленная разница 0,5 секунды. То есть, частота должна быть в районе нескольких десятых секунды. Это очень быстро.

2. Как можно сдвинуть мышь на строго фиксированное расстояние? Я, честно говоря, не в курсе. С танком в этом смысле несколько проще. Например, кратковременное нажатие клавиши вперед на Маусе сдвигает его примерно на 6 см. Погрешность там достаточно невелика.

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

 

1. Естественно начинать с больших дистанций, так сказать, потренироваться на кошках (с)

2. mouse_event'ом.

Если нажать "w" и "s" последовательно, танк в исходную точку не вернётся, а тут важна строгая периодичность.

3. Достаточно проверить, что при переходе между крайними положениями танк засвечивается и гаснет.

 

Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв
07 Окт 2015 - 00:02 пользователь Med433 сказал:

 

1. Естественно начинать с больших дистанций, так сказать, потренироваться на кошках (с)

2. mouse_event'ом.

Если нажать "w" и "s" последовательно, танк в исходную точку не вернётся, а тут важна строгая периодичность.

3. Достаточно проверить, что при переходе между крайними положениями танк засвечивается и гаснет.

1. Основные сомнения как раз по малым дистанциям. С большими действительно проще.

2. Mouse event это хорошо, вот только заюзать это я всё равно не знаю как. 

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

3. Тут согласен, если поймать положение.

 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
3 194 публикации
46 157 боёв

Если какой-нибудь язык знаешь, набираешь "*язык* mouse_event" - и всё, ты умеешь писать кликер.

Ну или можно это заюзать.

http://cdn-frm-eu.wargaming.net/4.4/style_extra/mime_types/zip.gif   timing_thread.zip   606,55К

 

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

Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв
07 Окт 2015 - 13:04 пользователь Med433 сказал:

 

Если какой-нибудь язык знаешь, набираешь "*язык* mouse_event" - и всё, ты умеешь писать кликер.

Ну или можно это заюзать.

http://cdn-frm-eu.wargaming.net/4.4/style_extra/mime_types/zip.gif   timing_thread.zip   606,55К

 

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

Увы, никакого.

timing thread можно. Кстати, ведь есть ещё скорость поворота башни.

 

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

 

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

  • Плюс 1
 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
3 194 публикации
46 157 боёв
07 Окт 2015 - 02:22 пользователь AndrasD сказал:

 

Увы, никакого.

timing thread можно. Кстати, ведь есть ещё скорость поворота башни.

 

Есть, поэтому угол должен быть малым.

 

А ещё есть базовые тики по 0.1 секунды. Если кликер поставить на 0.105 секунды, я даже боюсь представить, что случится  https://forum-mt-prod.lesta.ru/emoticons/Smile_ohmy.gif

Смотреть надо, конечно, с чужого танка.

 

А рентген в 50 м разве не каждый тик проверяется?

 

Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв

Малый, да. Будет сложно подбирать эти две позиции видно/не видно.

 

На 50 метрах получается, что должен каждый. А дальше уже нет.

 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
3 194 публикации
46 157 боёв

Тогда на 50 метров надо чтобы группа танков въехала в круг рентгена наблюдателя. Минимальное (большее нуля) время между засветами двух танков будет ближе всего к... тику сервера https://forum-mt-prod.lesta.ru/emoticons/Smile_trollface-3.gif

 

Ссылка на комментарий
Игроки
771 публикация
5 681 бой
07 Окт 2015 - 14:59 пользователь Med433 сказал:

Тогда на 50 метров надо чтобы группа танков въехала в круг рентгена наблюдателя. Минимальное (большее нуля) время между засветами двух танков будет ближе всего к... тику сервера https://forum-mt-prod.lesta.ru/emoticons/Smile_trollface-3.gif

А кто тебе сказал, что клиент рисует факты засвета с тем же тиком? И получает пакеты с тем же тиком?

 

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

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

Изменено пользователем seriych
Скрипт статистики участников форума
Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв
07 Окт 2015 - 17:43 пользователь StranikS_Scan сказал:

 

Пользователь сказал:

 

Кстати, Страник там выше чуток неверно сформулировал описание Тх. Засвет не игнорируется, он не проверяется какое-то количество тиков.

Угу, поздно сам увидел.

 

Пользователь сказал:

 

а изменение координат танка.

Не  уверен что правильно понял о каких координатах ты пишешь, но в принципе можно так:

 

1. Пусть тот танк что мы хотим засветить - это будет стоячий танк, а вот танк который засвечивает - это будет подвижный танк.

2. Тогда опыт будет такой:

- подвижным танком встаем на границе РО, но без засвета

- затем нажимаем клавишу вперед и он сдвигается, в следствие чего инициирует засвет

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

3. Теперь выведем формулу для разницы dT=T2-T1.

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

T1 = Tt1 + Td + Ts + Tt2

T2 = Tt1 + Td + Ts + Tx + Tt2

dT = Tx = 0.1*n, при условии что Tt2 в обоих случаях били близки друг к другу

4. Выходит что для того чтобы оценить сколько тиков сервер не делал опрос точек обзора достаточно взять разницу времён и умножить на десять: n = 10*dT.

 

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

Сделать с десяток-другой опытов не так уж сложно.

 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв
Шапка обновлена, добавлен M4A1 Revalorisé. Помогал Devilhunter.
  • Плюс 1
 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
3 194 публикации
46 157 боёв
07 Окт 2015 - 04:49 пользователь seriych сказал:

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

 

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

 

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

 

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

 

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

Изменено пользователем Гость
Ссылка на комментарий
Игроки
64 публикации
15 422 боя
19 Окт 2013 - 04:17 пользователь AndrasD сказал:

 

  •  Навык "Злопамятный" - увеличивает продолжительность засвета находящегося в прицеле (в секторе ± 5 градусов) танка на 2 секунды. Эти 2 секунды прибавляются к времени засвета для самого наблюдателя и потом передаются им союзникам. То есть, они тоже видят засвеченный танк на 2 секунды дольше.

 

 

Уточните, пожалуйста, в каком случае вражеский танк будет считаться находящимся в прицеле? Достаточно ли держать его в автоприцеле (дуло танка будет смотреть на него), чтобы это правило работало, или же необходимо ручное наведение прицелом?

">
Ссылка на комментарий
Игроки
1 439 публикаций
18 577 боёв
08 Окт 2015 - 07:36 пользователь OrtMayar сказал:

 

Уточните, пожалуйста, в каком случае вражеский танк будет считаться находящимся в прицеле? Достаточно ли держать его в автоприцеле (дуло танка будет смотреть на него), чтобы это правило работало, или же необходимо ручное наведение прицелом?

Важно именно то, куда смотрит ствол танка, от его положения считаются те самые 5 градусов. Своей камерой можно вертеть куда угодно.

 Маскировка и обзор. Коэффициенты техники и многое другое.
Ссылка на комментарий
Игроки
1 013 публикации
27 753 боя

В табличке в первом посту о танке После Переоценки 

http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_10_2015/post-85610-0-82242900-1444308414.pngпотерялся класс танка и название орудия.

http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_10_2015/post-85610-0-10149500-1444308583.png

А еще: обновлен Альманах до 36 версии. Добавлен этот самый После Переоценки.

  • Плюс 2
Ссылка на комментарий

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

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас
  • Сейчас на странице   0 пользователей

    • Эту страницу никто не просматривает.
×
×
  • Создать...