Ruslan
Задачка: У тебя есть точное положение чужой машинки некоторое время назад, надо вычислить с достаточной точностью где она сейчас. Это задача для школьника. В чем проблема? Зачем тут AI?
И что такое пинг ты походу ни фига не знаешь. С какой стати ты тут собрался применять его?
PeeKay
Поддерживаю, но тут похоже клиника, при чем агрессивная :) полное не понимание проблемы.
Zab
Я тебя в очередной раз спрашиваю, за какие ты еще формуля за 9 класс трешь? Ты можешь себе представить ситуацию, когда скажем 3 машины, друг возле друга, на скорости вписываются в поворот, и вдуг от одного из игрока тупо не приходят сигналы? Распиши алгоритм своих действий, а лучше не пиши мне больше, ты меня на грубость провоцируешь :)
Я сказал достаточно. Читай школьные учебники. Можно еще и подумать попробовать чуть-чуть, десяти минут должно хватить. И не лепить AI туда, где он нафиг не сдался.
Zab
> Читай школьные учебники.
спасибо за такой ценный совет :) зара пойду в библиотеку учебники курить за 9 класс.
Я не шучу и не издеваюсь. Я задаю вопрос... Ну, куда вы лезете программировать физику, если не освоили даже школьную программу? В школьной программе мало, очень мало, даже институтской программы не хватит, но вы совсем без всего... с одной верой в дела мороза.
Zab
Тролишь или просто подбухиваешь? :)
Zab
> И не лепить AI туда, где он нафиг не сдался.
Начните с терминологии. То что я предлагаю ни в одном месте не AI, а просто адаптивный механизм утилизирующий статистику матчей и на основании этих данных предсказывающий поведение машин на разных участках трассы. Вон прошлый раз когда тоже там другой ваш брат по разуму за учебники тему двигал - в итоге не смог решить простую прикладную задачку на алгоритмы. Не надо так. То что обсуждается в этой теме ни в какой плоскости не лежит с "учебниками по физике за 9-ый класс", и в рамках школьной программы подобная задача не решается. Более того если бы вы внимательно читали тему, то собственно как раз и пытаются решить проблему погрешности метода экстраполяции, т.е линейного предсказания исходя из "физики за 9-ый класс".
PeeKay
В чем проблема с линейной экстраполяцией? Разве что с засечкой времени снятия показаний и кошмарной точностью виндовых таймеров, заставить которые идти синхронно очень трудно.
Но для автосимуляторов не годится линейная экстраполяция, нужны более сложные кривые. Это вполне поддается обработке, например передачей положения элементов управления, вместе с координатами. Получишь движение по дуге.
Отставание то на секунду или даже меньше, в самом худшем случае, считающимся почти неиграбельным. Человек не так часто способен менять состояние управляющих сигналов.
Формула для равномерного прямолинейного движения - это таки 9й класс.
Zab
> В чем проблема с линейной экстраполяцией?
Занос двух болидов в повороте. Линейная экстраполяция впишет их друг в друга и в стену, нейроалгоритм будет знать что в этом участке через X метров поворот, что в этом повороте оптимальная скорость такая то, и угол вхождения в поворот такой-то, и дальше вся динамика до тех пор покуда не взят прямой путь (поворот руля в пределах 10 градусов).
Что бы обработать подобный сценарий корректно тебе необходимо учитывать в предсказании то куда машины будут двигаться дальше на этом участке. В отличии от любых пресетов и алгоритмических вычислений нейросеть будет обрабатывать реальные данные реального прохождения игроком этого участка пути, соответственно в отличии от линейной экстраполяции будут учитываться все особенности прохождения ,а не слепо экстраполировать положение по вектору с учетом массы, скорости и так далее.
В конце концов да, я понимаю, ты динозавр для которого нейросети это какая то уже черная магия, но это не повод отметать действительно дельное и эффективное решение задачи в пользу... а хрен знает, ты пока ничего дельного не предложил, а там где предложил - метод не решает поставленную задачу.
Я все что хотел сказать - сказал. Дальше сами думайте. А кто думать не пожелает, отделается верой в чудесную нейросеть, это его проблемы.
а кстати интересно как бы эта нейросеть работала. Допустим от машинки не было данных полсекунды. Она все эти полсекунды симулировала управление машиной 60 раз в секунду на сервере? а теперь приходит пакет от неё отправленный 0.495 секунд назад - она будет заново симулировать эти полсекунды или как-то мгновенно просчитает новое положение с учётом обновлённых данных?
kipar
В данном случае даже не особо важно где симуляция происходила, на сервере или на клиенте, в момент потери соединения, управление передается нейронке, как только сеть восстановилась, игнорируем устаревшие пакеты и продолжаем с текущего момента, в котором машинка выровнена на трассе и продолжает ехать(я бы в этот момент еще пару секунд наверное принудительно игнорил сигналы от игрока, или применял бы их с меньшим коэффициентом, чтобы он резко не изменил динамику, потому, что он может сразу не сориентироваться в игровой ситуации и жмакать шопопало).
Судя по тому, что автор топика, не активен в теме от слова вообще, то осмелюсь предположить, что никакую нейронку он писать и обучать не будет. В его случае проще всего интерполировать машинку логающего к ближайшей позиции на сплайне.
Ruslan
ну это какое-то экстремальное решение, я думал тут речь о предикшене, в не о замене игрока на бота при разрыве связи
Экстраполяция в играх - это вообще то о предсказании реального поведения игрока, а тут уже пошел холивар на тему замещения управления реального игрока - ботом. Но, бота можно сделать как угодно, хоть по сплайнам, хоть по ИИ. По своей сути отличаться ничем и не будет. Мне кажется тут 4 страницы написали информации которая к сути вопроса вообще не имеет никакого отношения по итогу.
Отличие нейронки от линейной экстраполяции прежде всего в том, что нейронка будет представлять поведение основываясь на паттерне игрока, а линейная экстраполяция привязывается к сухим данным, не исключая возможности резкого изменения паттерна поведения. Если мы начинаем додумывать поведение, это уже не экстраполяция а какая-то другая технология. В нормальных играх не допускают к геймплею клиентов с высоким пингом, если они выходят за рамки разумной экстраполяции. И в целом проектируют архитектуру основанную на прошлом, с историей состояний для обработки коллизий и прочего по серверу.
В случае с нейронкой, игрок все-равно будет телепортирован к исходной точке состояния, где он находится в данный момент времени на сервере. И пролаг все равно будет, если конечно на полном серьезе не пытаться забрать управление игроком во время подобного лага) Это действительно звучит странно для сетевой игры. Тоже самое, если сказать всем остальным клиентам, что в момент выстрела игрок попал в head вместо условной стены куда должна была полететь пуля) Я вообще нигде не видел подобной технологии в играх, и это не шаблон проектирования, вот в чем соль. Это просто extension который не понятно как будет работать в конечном итоге.
ДобрыйБарин
> тут уже пошел холивар на тему замещения управления реального игрока - ботом
Не совсем. Как я вижу это - есть трек, есть игроки, есть наученная на прохождении трека нейросеть. Нейросеть в каждый момент времени исходя из позиции x,y болида может предсказать оптимальное поведение на ближайшем участке дороги. Есть линейная экстраполяция, она рисует вектор продолжающий движение болида исходя из его вводных - x,y,скорость, масса и так далее.
Когда болид подходит к нужному участку дороги нейросеть уже заранее знает что на этом участке будет поворот, и соответственно добавляет свой вектор к вектору экстраполяции, получает средний вектор который поправка к движению, и в случае если у игрока по какой-то фантастической причине пинг не 60мс, а 600мс, то исходя из данных нейронки анализируются вводные его пути, и строится некий усредненной вектор входа в поворот, который в случае с большим пингом компенсирует недостаток контроля со стороны игрока. При этом ключевые показатели все еще снимаются, т.е если в пределах этих 600мс игрок таки повернет руль - это так же будет учтено нейросеткой и будет корректировка.
При этом, нет, исключен случай при котором болид хочет врезаться в стену, а нейронка ему это сделать мешает.
ДобрыйБарин
> Это просто extension который не понятно как будет работать в конечном итоге.
Повтори мне это через 10 лет пожалуйста. )
Тема в архиве.