Доработка алгоритма движения юнитов в RTS (Unity 3d)
Перейти к разделу
Бюджет
83$
/ 5000
руб
в месяц
Создан: 3 года назад
На модерации
- Описание
- Для игры в жанре RTS необходимо реализовать алгоритм перемещения (групповые с учетом коллизий, повороты в движении и с места, маневрирование в узком пространстве) для юнитов разных типов (пешие, механизированные, авиация).
В качестве референса можно взять C&C Generals.
Что есть сейчас: все юниты имеют Rigidbody + BoxCollider + NavMeshAgent с соответствующим Agent Type.
Перемещение: классический mouseclick-to-move.
Окружение: Unity 2020 LTS, URP.
На усмотрение исполнителя доработку можно реализовать как для нативного NavMesh так и для A* Pathfinding Project.
Всего есть 4 типа юнитов в 2 группах:
1. Наземная группа. При перемещении группы юнитов в одну точку они должны занимать оптимальные отстоящие друг от друга позиции с учетом возможных препятствий. Например, если 4 юнита находились в сторонах света (С-Ю-З-В) и отправляются в одну точку – по возможности они должны прибыть в той же формации. В случае, если в предполагаемом месте стоит дружественный юнит – он отъезжает/отходит в сторону. Если враждебный – управляемый юнит останавливается в ближайшем возможном месте либо совершает наезд (например танк vs враждебный пехотинец).
- Пехота. Может поворачивать на месте, если при движении в одну точку отдан приказ на движение в противоположную сторону – пехотинец сначала останавливается, затем совершает поворот до предельного угла (задается параметром, например, если угол поворота менее 30 градусов – можно поворачивать в движении) и только потом начинает движение. Если при движении в одну точку отдан приказ на движение в точку, угол поворота между первой и второй меньше предельного – поворот так же совершается в движении.
- Механизированная техника (автомобили, мотоциклы). Не может поворачивать на месте. При повороте на угол больше предельного – маневр совершается по дуге согласно радиусу поворота (как обычная машина). Сейчас нативный NavMeshAgent начинает нереалистично «слайдить» одновременно с движением. Также необходимо поддержать разворот в 3 приема (при наличии пространства для маневра), если цель находится позади рядом и быстрее будет развернуться при наличии свободного места. Очень важно предусмотреть пограничные случаи: когда юниты находятся в узком пространстве (например на мосту), когда их много в одном месте и тд.
2. Воздушная группа. Находится на заданной высоте, при полете над возвышенностями и углублениями – повторяет рельеф поднимаясь и опускаясь, поддерживая постоянную высоту. Можно использовать NavMesh (со своим Surface), чтобы было проще повторять складки местности. Нет строгой необходимости учитывать коллизии, юниты могут проходить сквозь друг друга (однако, будет плюсом подержать их). При изменении высоты юнит должен изменять тангаж (поднимать-опускать нос, вращение вокруг оси X).
- Вертолеты. Скорее всего не потребуется доработок нативного NavMeshAgent, так как вертолеты умеют «слайдить». Тут требуется только поддержать вращение вокруг оси Z (крен) при поворотах.
- Самолеты. Не умеют «висеть на месте». При бездействии описывают круги вокруг точки. При начале движения – начинают движения описав дугу, при достижении цели – начинают описывать круги, выйдя на «орбиту» по спирали. Аналогично вертолетам должны вращаться вокруг всех осей (крен, тангаж, рысканье) при соответствующих маневрах. Также, нужно реализоваться приземление и взлет (при клике на аэродром самолет выходит на глиссаду и совершает посадку, аналогично при взлете – подьем до нужной высоты и движение в заданную точку),
Для демонстрации нужно будет собрать демку с примитивными препятствиями (Cube). В качестве юнитов подойдут любые бесплатные ассеты/примитивы.
На выходе хочется получить один/два компонента, без разбрасывания логики по нескольким классам/интерфейсами.
- Категория
Источник: fl.ru
Похожие проекты
$214
0
1
0
2
Краткое описание: Мы ищем исполнителя для тестирования функционала мобильного приложения на платформе Android. Задача включает проверку основных функций приложения, таких как работа комнаты, передача видео, звука и чата, а также создание подробной отчетности о найденных ошибках. Требования к исполнителю:......
1 месяц назад
0
3
$143
0
0
Oпpocы (1008pyб/чaс) Заходитe на сaйт: gonsù....
1 месяц назад
0
2
Требуется создать скрипт для premiere pro. Данная суть скрипта: в выделеном бине нужно что бы автоматически проставлялся in out ровно по серидине файла так что бы выделенная область была длиной 3 секунды. И требуется кнопка что бы работало через окно expressions. Проблема текущего в том что он не работает......
2 месяца назад
0
2
Нужно создать приложения под гемблинг/беттинг, на котлин. Приложение должно работать Firebase. Детали вышлю при обсуждение....
2 месяца назад
$21
0
2
Нужно разархивировать файл archive. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы ....
4 месяца назад
0
3
Разработать впн сервис ( Приложения на ios и android + сайт для оплаты подписки). Настройка Серверов. Оплата по договоренности. Работаем черед безопасную сделку....
5 месяцев назад
0
0
0
3
Нужно разархивировать файл archive. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы ....
5 месяцев назад
$214
0
1
Здравствуйте, у кого есть проект по продвижению chaturbate? Или кто-то делает?...
5 месяцев назад
$21
0
0
Заказные доработки функционирующих учётно-управленческих систем на производственных предприятиях. Навыки программирования в MS SQL, VBScript, 1С, знание принципов ООП....
6 месяцев назад
0
2
Нужно опубликовать мобильное приложение для Android в Гугл маркет с аккаунта разработчика Гугл плей консоль, созданного ДО Ноября 2023. В рамках проекта, необходимо прислать приглашение мне на почту, чтобы я загрузила приложение и отправила его на модерацию, с сохранением безвременного доступа к моему......
6 месяцев назад
0
5
Сделать игру для яндекс игр, настроить рекламу в игре и помочь с публикацией игры в платформе яндекс игры. Игра - карточная игра Пасьянс Паук (косынка) Игровой процесс: Тип игры: Пасьянс Паук. Количество мастей: Игрок может выбирать количество мастей: 1, 2, 3 или 4. Подсказки: Автоматические подсказки,......
7 месяцев назад
$14
0
3
Без акцента на идею, необходимо создать мобильное приложение iOs и Android, с возможностью трансляции основной информации в миниапп Tg. Интеграция с платежной системой, внутренний кошелек, две валюты. В зависимости от гео, возможность конвертации валют ч/з сервер. На старте, сервер скорее облачный. Двухфакторная......
7 месяцев назад
$1200
0
0
Необходимо перевести действующую БД с версии 77 на 8 (переписать конфигурацию, настроить обработки для переноса данных). Не типовая конфигурация по учету пенсионеров в ГУ РК....
7 месяцев назад
9
4
требуется готовую онлайн анкету на django по приему на работу перенести в whatsapp, telegram и viber. Нужно чтобы кандидат мог с удобством заполнять анкету с телефона, а все заполненные им данные по всем позициям автоматически загружались в нашу базу данных. В нашей базе будет создаваться резюме кандидата......
7 месяцев назад
$714
0
2
Описание задачи: Необходимо разработать serverless функцию на базе NestJS и TypeScript для автоматизированной обработки видеофайлов, загружаемых в Yandex Cloud Storage. Функция должна выполнять конвертацию видео в формат, поддерживаемый основными веб-браузерами, с последующим сжатием до оптимального......
7 месяцев назад
49
1
Трипланарная транспортная задача (отправители - транспорт - получатели) генерация исходных данных трехэтапное решение 1....
7 месяцев назад
28
1
В наличии массив кадастровых номеров (КН), необходимо путем запроса на ПКК определить примерные географические координаты каждого объекта из массива КН (ОКС, ЗУ), вывести в результирующий файл эти ко-ты и ряд сопутствующих данных по этому КН....
7 месяцев назад
44
9
Необходимо разработать бек и фронт мини-сервиса таким образом, чтоб его можно было развернуть внутри другого проекта....
7 месяцев назад
Похожая удалённая работа
- Удаленная работа для веб-программиста
- Удаленная работа для разработчика баз данных
- Удаленная работа для прикладного программиста
- Удаленная работа для системного программиста
- Удаленная работа для разработчика игр
- Удаленная работа для разработчика мобильных приложений
- Удаленная работа для тестировщика ПО
- Удаленная работа для 1С программиста
- Удаленная работа для разработчика встраиваемых систем
- Удаленная работа для разработчика CRM и ERP