![]() |
ИИ для гонок
Интересуют статьи и рецепты, к тому как сделать ИИ к гонкам..
|
Вот тебе прототип:
fla: http://***********/7449521 swf: http://***********/7449527 Некое подобие sensor AI. Я бы сделал как-то так. Естественно вариант не конечный. Можно сделать и level editor на самом Flash. Делал на Flash CS3, AS2, Flash 9.0. Может поможет моя идея. =) |
Нет, это не то.... тут у тебя просто обьект реагирует на столкновение со стенками и меняет свой угол.... это несовсем ИИ...
|
Это называется сенсорный ИИ. Посмотри примеры AGEIA PhysX (физический движок). Таким способом они и делают машинку. Фейково да, но в некоторых случаях сработает.
|
Можно конечно сделать нечто вроде следования за кривой Безье (по принципу waypoint'ов - "движемся как можно ближе к кривой", стремимся к ней). И для гонок даёт неплохие результаты, судя по демкам.
http://www.youtube.com/watch?v=QSP36H8_AbU - вот тут и сделано через waypoints. |
ИМХО вейпоинты оптимальный вариант
Если заинтересует - здесь можно скачать исходники( и бинарник тож (: ) на Delphi и глянуть как я это делал. http://igdc.ru/viewpage.php?page_id=33 Представь себе трассу, вейпоинты идут точно по середине дороги. Есть машинка. Можно легко определить, какой вейпоинт ближайший к машинке. Так же легко найти следующий за ним. То есть фактически мы имеем вектор, куда следует двигаться машинке будь она посередине дороги. Машинка может поворачивать налево и направо, верно? (: Мы можем найти требуемый угол поворота машинки, чтобы она шла по найденному выше вектору. Зная текущий угол поворота машинки и требуемый мы может определить, куда следует поворачивать в данный момент - вправо, влево, или просто ехать прямо. Также легко посчитать расстояние машинки от центра дороги - достаточно погуглить на тему расстояние от точки до прямой. Если это расстояние больше четверти ширины дороги, то корректируем требуемый вектор движения в нужную сторону - чтобы машинка держалась ближе к центру. Здесь нет учета других машин. То есть ИИ едет как бы сам по себе. Могу ошибаться, это всего лишь мой способ решения проблемы. |
Есть ряд проблем:
1. ИИ должен быть рандофицырованым, что значит что будет 4 машинки и они должны думать рандомно 2. ИИ должен изходить из того что машину будут всё время подрезать, и толкать... |
1. Это довольно легко реализуется. Думать совсем по-разному они не будут, но некоторые различия сделать можно. Я делал для кажой машинки различные коэфициенты, которыми она руководствовалась при езде. То есть например минимальный угол отклонения от необходимого курса, при котором машинка начнет поворачивать. Максимальное расстояние от центра дороги(при его привышении машинка начнет подруливать к центру). Можно ещё сделать притормаживание при резкой смене курса, тоже у каждой машинки с разными параметрами. То есть простор для размышлений есть.
2. Сделай сначала чтобы они хоть как-то ездили (: Потом уже начнешь думать. Быть может тебя устроит то как они ведут себя на дороге, не зная ничего о противниках. Потом если таки не устроит ты хотя бы будешь знать какие именно аспекты следует включить в их ИИ. Ну удачи (: |
Интересно а где можна найти этот метод в более подробном описании?
|
А что именно здесь не понятно? Мне не попадались статьи по этому делу. Думаю можно попробовать поискать книги по ИИ.
|
| Часовой пояс GMT +4, время: 10:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.