Я абсолютно новачок у розробці ігор, і все, що я знаю про уникнення / дозвіл зіткнень, я дізнався про це на цьому веб-сайті або через нього на минулому тижні ... тому не соромтеся виправити мене, якщо я тут прошу засновані на неправильних припущеннях / нерозумінні. Я намагався зробити все можливе, щоб бути зрозумілим, але це сказане, тема все ще для мене новаторська.
Транспортні засоби
У своїй грі я маю транспортні засоби, які рухаються автономно. Вони розміщуються в тривимірному просторі, і їх рух регулюється низкою змінних, які відрізняються для кожного транспортного засобу. Тут цікавлять насамперед:
- Тільки рух вперед .
- швидкість , яка може змінюватися від хв і макс, але чий хв це НЕ (навіть близько до) нулю.
- А Радіус рульового управління , який залежить від швидкості (чим вище швидкість, тим більше радіус)
- Два максимальних прискорення (для зменшення та збільшення швидкості)
Мета
Моя мета - здійснити якийсь ІС, який дозволить на 100% точно уникнути зіткнення (тобто я буду впевнений, що транспортні засоби ніколи не будуть зіткнуться).
Дизайн
- Хоча я б більше віддав перевагу ідеї мати AI "на борту" (тобто кожен транспортний засіб має власний "AI уникнення зіткнення", врешті-решт, запит та / або відправлення повідомлень іншим транспортним засобам), мені також можливо реалізувати CA AI на центральний рівень (відправлення команд до транспортних засобів).
- У більшості випадків транспортний засіб просто доведеться керувати один від одного в будь-якому напрямку, але за певних обставин їм доведеться уникати зіткнення і рухатися до тієї ж цілі
Що я знайшов поки що і де застряг
У багатьох безлічі посилань, які я знайшов в інших питаннях на цьому веб-сайті, я знайшов особливе використання цих:
Хоча ці три посилання багато в чому «відкрили мені очі», мені не відразу зрозуміло, як використовувати цю інформацію в моєму випадку. Зокрема, стаття №2 "намагається" запобігти зіткненню (але зіткнення трапляються час від часу). Хоча стаття №3 іноді потребує зупинки транспортних засобів, щоб запобігти зіткненням.
Я також помітив, що алгоритми уникнення зіткнення, пов'язані вище, використовують "миттєву проекцію" лінійної швидкості щоб перевірити, чи є щось на шляху транспортного засобу. Мені було цікаво, чи цього в моєму випадку достатньо, чи мені довелося проектувати свою позицію більш реалістичним способом (наприклад: Якщо я на 60 ° направляю на 90 ° праворуч, я повинен обчислити своє положення для решти 30 ° кривої, а потім припускаючи лінійний рух).
Нарешті, я особливо боюся тупиків . Іншими словами: хоча щільність транспортних засобів у світі буде досить низькою, я переживаю, що з огляду на певну кількість транспортних засобів, що сходяться до тієї самої точки, як тільки вони зрозуміють, що вони перебувають на колії, будь-які маневри ухилення будуть неможливі як це привело б транспортний засіб на зіткнення з деякими іншими.
Питання
Як я можу досягти своєї "мети"? Поглиблене пояснення, звичайно, дуже вдячне, але посилання на зовнішні ресурси також допоможуть (я впевнений, що я не перший з цією проблемою, але, напевно, я використовував неправильні ключові слова для пошуку в Інтернеті? )
Заздалегідь дякую за допомогу!