|
|||
AI Steering+Avoidance
Motorsport Games Тестовое задание - Unreal Engine/C++ developer AI Steering+Avoidance Задача Необходимо реализовать: - поведение транспортного средства, способного перемещаться по карте, - компоненты для AI, которые позволяют следовать по некоторой линии целевого маршрута и избегать произвольных препятствий, встречающихся на пути.
Требования Если линия маршрута отсутствует на карте, AI должен двигаться в своем forward направлении. Транспортное средство обладает габаритами, представленными в виде вектора. Препятствия должны быть представлены стандартными Static Mesh Actor’ами (Box, Cylinder, Sphere и т.д.) и в совокупности иметь произвольную форму.
Ограничения - Не использовать Navigation Unreal Engine 4 или любое другое решение для поиска путей. - Не использовать компоненты движения Unreal Engine 4. - Для препятствий не должно быть какой-либо предпросчитаной информации на карте. - Препятствия не должны быть представлены каким-либо собственным классом (только StaticMesh Actor). - Не должно быть класса, который агрегирует в себе все препятствия и выполняет какие-то предварительные вычисления и т.д. - Ожидаем реализацию, в которой пользователю на новой карте надо создать экземпляр транспортного средства и настроить линию целевого маршрута (если это требуется). - Проект должен быть разработан на Unreal Engine 4.22.
Желательно - Составить документ, описывающий работу реализованного алгоритма. - Использовать C++ за исключением случаев, где это нерационально. - Протестировать свой алгоритм на препятствиях, перемещающихся в пространстве.
На чем СЛЕДУЕТакцентировать свое внимание при решении задачи: - Правильный контроль AI рулевого управления транспортного средства. - Правильный контроль AI скорости транспортного средства. Транспортное средство должно терять минимальное количество скорости при уклонении от препятствия. - Следует учитывать габариты транспортного средства при уклонении. - Минимизация столкновений с препятствиями при максимальном приближении транспортного средства к линии целевого маршрута (если таковая участвует в тесте). - Успешность работы алгоритма не должна зависеть от формы препятствия.
На чем НЕ СЛЕДУЕТ акцентировать свое внимание при решении задачи: - На естественности поведения транспортного средства и его физике. Оно должно быть реализовано на достаточном для демонстрации поведения ИИ уровне, не более. - На оптимизации (в разумных пределах). - На визуальной составляющей.
Что будет оцениваться - Навыки программирования на С++ в контексте Unreal Engine 4. - Умение правильно документировать свой код. - Умение правильно описывать работу своего алгоритма (сопровождающий документ). - Алгоритмическое мышление. - Умение решать математические задачи в трехмерном пространстве. - Знание инструментария движка и умение эффективно его использовать. - Знание иерархии классов UE4, понимание их назначения и корректное применение. - Умение находить решение в условиях ограничений. - Умение тестировать работу своего алгоритма.
|
|||
|