seriych Опубликовано: 6 октября, 2015 Игроки 771 публикация 5 681 бой Поделиться Опубликовано: 6 октября, 2015 06 Окт 2015 - 03:02 пользователь Med433 сказал: Есть идеи, как измерить частоту проверки на видимость? У меня есть корявая схема, если других не придумаем, можно её опробовать. Становимся в куст так, чтобы можно было малым поворотом башни высунуть или спрятать подвижную габаритную точку, остальные точки должны быть скрыты (попробуй ещё такой куст найди https://forum-mt-prod.lesta.ru/emoticons/facepalmic.gif). Каким-нибудь кликером начинаем прятать и показвывать эту точку с частотой, близкой к предполагаемой для дистанции до наблюдателя из противоположной команды. Если частота равна истинной, то танк будет либо всё время засвечен, либо все время скрыт. Если же частоты чуток различаются, то он будет появляться и исчезать через долгие промежутки (несколько минут). Ну а если частоты совсем разные, засвет будет постоянным (грубо, при различии в два раза возникнут некоторые хитрости) Альтернативно, можно играться с выездом из-за угла на большой скорости паравозиком танков (или одним, но многократно). В этом случае не вполне понятно, какую роль играет пинг и скорость подгрузки моделей, как момент засвета записывается в реплее и т.д. Но с практической точки зрения, этот вариант тоже может быть интересным. Первый ну очень корявый. Второй тоже может зависеть от клиента. Можно сделать так:Ищем узкую щель (между домами, например). Ставим один любой танк напротив этой щели на некотором расстоянии (на котором хотим проверить тик засвета). Берем быстрый танк и пролетаем им с другой стороны щели вплотную к ней. Так повторяем много раз. Зная расстояние между габаритными точками, скорость танка, ширину щели и вероятность засвета (полученную экспериментально) можем вычислить тик засвета. Случайную погрешность можно сколь угодно уменьшать, увеличивая количество экспериментов. А вот с систематической погрешностью сложнее, я не знаю, как от нее избавиться, а она может иметь место. С ходу: мы можем "поймать" не расстояние между крайними габаритными точками, а между средней (верхушка башни, вроде) и крайней. От этого можно избавиться, начав с малой скорости, когда светиться будет в 100% случаев и постепенно увеличивать скорость, чтобы поймать момент первых незасветов. Еще влияет, естественно, точность измерения ширины щели и габаритов танка. Может есть еще какой фактор, который может дать систематическую погрешность.Можно попробовать 15 танков наблюдателей вместо одного и поймать скорость при которой будет засвечиваться две группы танков, а в середине засвечены не будут. Ссылка на комментарий
AndrasD Опубликовано: 6 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 6 октября, 2015 (изменено) Как-то всё очень сложно у вас. Можно просто подобрать пару танков по характеристикам так, чтобы засвет происходил на нужной дистанции. И как обычно: один стоит, второй делает шаг (только один шаг, отделяющий его от обнаружения оппонента). Проблема в другом - в точности замеров. Речь ведь идет о долях секунды. Плюс, погрешность от пинга и времени отрисовки. Если на основном сервере, то пинг, по идее, не сильно повлияет, у меня, по крайней мере, он небольшой (~30-40 мс на РУ4). Правда могут быть проблемы с подбором танков, но это ещё не факт. Опять же, смотря какой набор дистанций проверять. Со временем отрисовки сложнее. Я думаю, информация о том, что, скажем, в прицеле кто-то появился, на клиент передаваться должна независимо от того, с какой скоростью клиент отрисует объект. Можно отловить точное время этого момента. Тут Strannik_Scan наверное что-то скажет. И вопрос как вот это всё согласовать. Слишком уж высокая точность нужна. Можно попробовать логировать мометы начала движения наблюдателя и потом сопоставить их со временем обнаружения пациента. Всё равно Странику скрипт пилить надо будет. Никак без него. Изменено 6 октября, 2015 пользователем AndrasD Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_prvu9rSvc3J0 Опубликовано: 6 октября, 2015 Игроки 3 194 публикации 46 157 боёв Поделиться Опубликовано: 6 октября, 2015 (изменено) Как мне представляется, сравнение частот - в принципе самый точный метод, потому что там фактически не нужно ничего измерять. Нужно лишь создать строго периодическое попадание/пропадание из засвета с заданной частотой. Возможно, проще это сделать не с кустом, а со щелью или окошком, на той же Малиновке. Пинг не проблема, если он постоянный, то есть подлагиваний быть не должно.Использовать подвижную точку обнаружения нужно потому, что мышку легко сдвинуть на фиксированную величину и в точности обратно. Как такое сделать поступательным движением корпуса, я не представляю, потому что танк по-разному реагирует на нажатия клавиш с одинаковой длительностью. Изменено 6 октября, 2015 пользователем Гость Ссылка на комментарий
AndrasD Опубликовано: 6 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 6 октября, 2015 1. Если проверять, например, дистанцию 50 -150 метров, заявленная разница 0,5 секунды. То есть, частота должна быть в районе нескольких десятых секунды. Это очень быстро.2. Как можно сдвинуть мышь на строго фиксированное расстояние? Я, честно говоря, не в курсе. С танком в этом смысле несколько проще. Например, кратковременное нажатие клавиши вперед на Маусе сдвигает его примерно на 6 см. Погрешность там достаточно невелика.3. А ведь нам тогда ещё нужно будет знать точное расположение габаритной точки и проводить воображаемую линию до точки обнаружения наблюдателя (её тоже нужно знать) И до какой именно мы не знаем, поскольку их две, работают они по очереди и какая именно должна сработать следующей тоже неизвестно. Ведь нужно знать в какой конкретно момент та самая воображаемая линия возникнет минуя препятствия. Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
seriych Опубликовано: 6 октября, 2015 Игроки 771 публикация 5 681 бой Поделиться Опубликовано: 6 октября, 2015 06 Окт 2015 - 11:19 пользователь AndrasD сказал: Как-то всё очень сложно у вас. Можно просто подобрать пару танков по характеристикам так, чтобы засвет происходил на нужной дистанции. И как обычно: один стоит, второй делает шаг (только один шаг, отделяющий его от обнаружения оппонента). Проблема в другом - в точности замеров. Речь ведь идет о долях секунды. Плюс, погрешность от пинга и времени отрисовки.Вот поэтому всё и сложно. Med433, сорри, первый метод норм, я думал там другое написано и не стал читать дальше первого предложения.Тоже там свои косяки есть, конечно, но вроде всё решаемо. Ссылка на комментарий
AndrasD Опубликовано: 6 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 6 октября, 2015 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, тиковЦитирую по просьбе Страника, ибо он в РО. Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_prvu9rSvc3J0 Опубликовано: 6 октября, 2015 Игроки 3 194 публикации 46 157 боёв Поделиться Опубликовано: 6 октября, 2015 06 Окт 2015 - 03:09 пользователь AndrasD сказал: 1. Если проверять, например, дистанцию 50 -150 метров, заявленная разница 0,5 секунды. То есть, частота должна быть в районе нескольких десятых секунды. Это очень быстро.2. Как можно сдвинуть мышь на строго фиксированное расстояние? Я, честно говоря, не в курсе. С танком в этом смысле несколько проще. Например, кратковременное нажатие клавиши вперед на Маусе сдвигает его примерно на 6 см. Погрешность там достаточно невелика.3. А ведь нам тогда ещё нужно будет знать точное расположение габаритной точки и проводить воображаемую линию до точки обнаружения наблюдателя (её тоже нужно знать) И до какой именно мы не знаем, поскольку их две, работают они по очереди и какая именно должна сработать следующей тоже неизвестно. Ведь нужно знать в какой конкретно момент та самая воображаемая линия возникнет минуя препятствия. 1. Естественно начинать с больших дистанций, так сказать, потренироваться на кошках (с)2. mouse_event'ом.Если нажать "w" и "s" последовательно, танк в исходную точку не вернётся, а тут важна строгая периодичность.3. Достаточно проверить, что при переходе между крайними положениями танк засвечивается и гаснет. Ссылка на комментарий
AndrasD Опубликовано: 6 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 6 октября, 2015 07 Окт 2015 - 00:02 пользователь Med433 сказал: 1. Естественно начинать с больших дистанций, так сказать, потренироваться на кошках (с)2. mouse_event'ом.Если нажать "w" и "s" последовательно, танк в исходную точку не вернётся, а тут важна строгая периодичность.3. Достаточно проверить, что при переходе между крайними положениями танк засвечивается и гаснет.1. Основные сомнения как раз по малым дистанциям. С большими действительно проще.2. Mouse event это хорошо, вот только заюзать это я всё равно не знаю как. Насчет всех танков не скажу, но Маус возвращается. Правда всегда есть риск при движении чуть-чуть пережать клавишу. И самое главное, двигать танк туда-сюда достаточно быстро всё равно не получится, опять же, если говорить о малых дистанциях.3. Тут согласен, если поймать положение. Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_prvu9rSvc3J0 Опубликовано: 7 октября, 2015 Игроки 3 194 публикации 46 157 боёв Поделиться Опубликовано: 7 октября, 2015 Если какой-нибудь язык знаешь, набираешь "*язык* mouse_event" - и всё, ты умеешь писать кликер.Ну или можно это заюзать.http://cdn-frm-eu.wargaming.net/4.4/style_extra/mime_types/zip.gif timing_thread.zip 606,55К Кстати, если видимость проверяется каждый тик, то такой метод не прокатит, потому что понятно, да? Ссылка на комментарий
AndrasD Опубликовано: 7 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 7 октября, 2015 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 Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_prvu9rSvc3J0 Опубликовано: 7 октября, 2015 Игроки 3 194 публикации 46 157 боёв Поделиться Опубликовано: 7 октября, 2015 07 Окт 2015 - 02:22 пользователь AndrasD сказал: Увы, никакого.timing thread можно. Кстати, ведь есть ещё скорость поворота башни. Есть, поэтому угол должен быть малым. А ещё есть базовые тики по 0.1 секунды. Если кликер поставить на 0.105 секунды, я даже боюсь представить, что случится https://forum-mt-prod.lesta.ru/emoticons/Smile_ohmy.gifСмотреть надо, конечно, с чужого танка. А рентген в 50 м разве не каждый тик проверяется? Ссылка на комментарий
AndrasD Опубликовано: 7 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 7 октября, 2015 Малый, да. Будет сложно подбирать эти две позиции видно/не видно. На 50 метрах получается, что должен каждый. А дальше уже нет. Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_prvu9rSvc3J0 Опубликовано: 7 октября, 2015 Игроки 3 194 публикации 46 157 боёв Поделиться Опубликовано: 7 октября, 2015 Тогда на 50 метров надо чтобы группа танков въехала в круг рентгена наблюдателя. Минимальное (большее нуля) время между засветами двух танков будет ближе всего к... тику сервера https://forum-mt-prod.lesta.ru/emoticons/Smile_trollface-3.gif Ссылка на комментарий
seriych Опубликовано: 7 октября, 2015 Игроки 771 публикация 5 681 бой Поделиться Опубликовано: 7 октября, 2015 (изменено) 07 Окт 2015 - 14:59 пользователь Med433 сказал:Тогда на 50 метров надо чтобы группа танков въехала в круг рентгена наблюдателя. Минимальное (большее нуля) время между засветами двух танков будет ближе всего к... тику сервера https://forum-mt-prod.lesta.ru/emoticons/Smile_trollface-3.gifА кто тебе сказал, что клиент рисует факты засвета с тем же тиком? И получает пакеты с тем же тиком? Опять вы к клиентским временам возвращаетесь. Нельзя так. Прямые измерения времени отдельного факта засвета никак не подходят. Кто его знает как там между собой сервер и клиент в данный момент взаимодействуют, плюс как работает клиент сам по себе.Если с резонансной частотой это еще прокатит, но мы тут собственно и не время отдельных засветов измеряем а пользуемся разумным предположением, что время равномерно и прямолинейно как на сервере, так и на клиенте, и этого нам достаточно и измеряем количество засветов на большом промежутке времени. В методе со щелью время засвета вообще не измеряется, а косвенно вычисляется из скорости и расстояния. Изменено 7 октября, 2015 пользователем seriych Ссылка на комментарий
AndrasD Опубликовано: 7 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 7 октября, 2015 07 Окт 2015 - 17:43 пользователь StranikS_Scan сказал: Пользователь сказал: Кстати, Страник там выше чуток неверно сформулировал описание Тх. Засвет не игнорируется, он не проверяется какое-то количество тиков.Угу, поздно сам увидел. Пользователь сказал: а изменение координат танка.Не уверен что правильно понял о каких координатах ты пишешь, но в принципе можно так: 1. Пусть тот танк что мы хотим засветить - это будет стоячий танк, а вот танк который засвечивает - это будет подвижный танк.2. Тогда опыт будет такой:- подвижным танком встаем на границе РО, но без засвета- затем нажимаем клавишу вперед и он сдвигается, в следствие чего инициирует засвет- логер потребуется только на машине с подвижным танком, он должен логировать времена двух эвентов: эвента с новыми координатами танка - T1 и эвента с новым засвеченным танком - T2.3. Теперь выведем формулу для разницы dT=T2-T1.Пусть точка отсчета времени это момент нажатия кнопки, тогда используя обозначения из старой формулы получаем чтоT1 = Tt1 + Td + Ts + Tt2T2 = Tt1 + Td + Ts + Tx + Tt2dT = Tx = 0.1*n, при условии что Tt2 в обоих случаях били близки друг к другу4. Выходит что для того чтобы оценить сколько тиков сервер не делал опрос точек обзора достаточно взять разницу времён и умножить на десять: n = 10*dT. Вроде вполне рабочий вариант. Но есть одна проблема. Дело в том, что приход данных на сервер может совпасть с тиком когда сервер таки решил опросить габаритные точки. В результате если мы проводим опыты с частотой в несколько секунд, то мы будем получать результаты со значениями в диапазоне от 0 до Nmax. А мы как известно после засвета танка должны подождать когда он исчезнет чтоб повторить опыт. А время исчезновения - она плавающее и составляет несколько секунд. Таким образом, нужно будет проделать десяток или больше опытов, а затем из результатов выбрать максимальный n это и будет величина близка к Nmax.Сделать с десяток-другой опытов не так уж сложно. Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
AndrasD Опубликовано: 7 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 7 октября, 2015 Шапка обновлена, добавлен M4A1 Revalorisé. Помогал Devilhunter. 1 Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_prvu9rSvc3J0 Опубликовано: 8 октября, 2015 Игроки 3 194 публикации 46 157 боёв Поделиться Опубликовано: 8 октября, 2015 (изменено) 07 Окт 2015 - 04:49 пользователь seriych сказал: Кто его знает как там между собой сервер и клиент в данный момент взаимодействуют, плюс как работает клиент сам по себе. Это можно выяснить заодно. Нужен лог положения башни всех вражеских танков (единственного), и мой кликер, переделанный в синусоиду. Правда вот там всё и в самом деле может оказаться как-то сложно. Один клиент пытается создать на сервере движение башни с заданной частотой. Вражеский клиент наблюдает за ним, и логирует его положение башни. Если сделать так для многих частот, все характерные времена вылезут на поверхность. Альтернативно, можно переделать кликер под белый шум, тогда нужно лишь одно долгое измерение. В спектре положения башни со стороны наблюдателя будут видны все характерные частоты. Изменено 8 октября, 2015 пользователем Гость Ссылка на комментарий
OrtMayar Опубликовано: 8 октября, 2015 Игроки 64 публикации 15 422 боя Поделиться Опубликовано: 8 октября, 2015 19 Окт 2013 - 04:17 пользователь AndrasD сказал: Навык "Злопамятный" - увеличивает продолжительность засвета находящегося в прицеле (в секторе ± 5 градусов) танка на 2 секунды. Эти 2 секунды прибавляются к времени засвета для самого наблюдателя и потом передаются им союзникам. То есть, они тоже видят засвеченный танк на 2 секунды дольше. Уточните, пожалуйста, в каком случае вражеский танк будет считаться находящимся в прицеле? Достаточно ли держать его в автоприцеле (дуло танка будет смотреть на него), чтобы это правило работало, или же необходимо ручное наведение прицелом? "> Ссылка на комментарий
AndrasD Опубликовано: 8 октября, 2015 Игроки 1 439 публикаций 18 577 боёв Автор Поделиться Опубликовано: 8 октября, 2015 08 Окт 2015 - 07:36 пользователь OrtMayar сказал: Уточните, пожалуйста, в каком случае вражеский танк будет считаться находящимся в прицеле? Достаточно ли держать его в автоприцеле (дуло танка будет смотреть на него), чтобы это правило работало, или же необходимо ручное наведение прицелом?Важно именно то, куда смотрит ствол танка, от его положения считаются те самые 5 градусов. Своей камерой можно вертеть куда угодно. Маскировка и обзор. Коэффициенты техники и многое другое. Ссылка на комментарий
anonym_Q73RYN4Jgy9B Опубликовано: 8 октября, 2015 Игроки 1 013 публикации 27 753 боя Поделиться Опубликовано: 8 октября, 2015 В табличке в первом посту о танке После Переоценки 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 Ссылка на комментарий
Рекомендованные публикации
В целях безопасности не указывайте здесь личную информацию о себе или о ком-либо другом, так как мы не сможем защитить её в соответствии с Политикой конфиденциальности Леста Игры.
Пожалуйста, войдите для комментирования
Вы сможете оставить комментарий после входа
Войти сейчас