Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие юнитов в RTS игре 
:(
    Опции темы
Megas
Дата 1.7.2013, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



На данный момент работаю над RTS игрой. Для нахождения пути на карте используется обычный А*.
Появилась небольшая задача. Допуститм стоит группа юнитов. Нужно одного из них, из самой середины, кудато отправить. Но так как он полностью окружен другими юнитами, то не существует расчетного пути для его выхода. А выйти из группы нужно обязательно.
В этом случае надо сообщить другим юнитам, чтоб они подвинулись и пропустили его.

Какие есть алгоритмы для этого? 
Я чтото даже затрудняюсь сформулировать вопрос гуглу, чтоб он мне выдал чтото подходящее.
PM WWW   Вверх
AVA12
Дата 1.7.2013, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



Гугление по теме "rts path move blocking units" уже в первой ссылке выдает термин - local avoidance. По этому термину гугл выдает много интересного (по-английски).
PM ICQ Jabber   Вверх
Агрох
Дата 21.8.2013, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: нет
Всего: 6



А что если рассчитать путь так, как будто он никем не окружён. А после этого тем юнитам, которые стоят на этом пути, дать команду отойти на ближайшую не занятую точку, не находящуюся на расчитаном пути.
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Bitter
Дата 21.8.2013, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 5
Всего: 27



Агрох, а если для этого мешающему юниту надо будет двигаться в направлении исходного юнита? Например они стоят в узком проходе )
PM MAIL ICQ Skype   Вверх
Агрох
Дата 22.8.2013, 09:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: нет
Всего: 6



Bitter, если для того чтобы мешающий юнит уступил дорогу исходному, ему самому надо пройти туда, куда ему мешает пройти исходный юнит, то тут надо выставлять приоритеты. Чтобы сделать 3 шага вперёд, надо сначала отойти на 2 назад, уступить место другому, потом вернуться в исходную точку и только потом идти на 3 шага вперёд). 
Это получится несколько, наверно будет правильно сказать вложенных (или рекурсивных), алгоритмов поиска пути. Но это будет всё тот же А*.
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
phomm
Дата 24.8.2013, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 7.10.2010

Репутация: нет
Всего: 1



Существует открытая разработка OpenSteer http://sourceforge.net/projects/opensteer/
Если нужно сложное поведение - имеет смысл взять её и задействовать для работы.

PM MAIL WWW ICQ Skype   Вверх
Bitter
Дата 24.8.2013, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 5
Всего: 27



phomm, хм интересно, даже под мак есть. Щас посмотрим )

Добавлено через 7 минут и 1 секунду
Для мака все слишком устарело, так что протестить не удалось :( Последнее обновление сайта в 2004м ...
PM MAIL ICQ Skype   Вверх
Odin_KG
Дата 27.12.2013, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.2.2007

Репутация: нет
Всего: нет



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.