Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 29.01.2013, 15:53   #16
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Искуственный интеллект

Не обижайтесь, но с вами говоришь как со стенкой, вам одно, вы другое.
Может я чтото не понимаю...
У меня нет коридоров, чтобы поставить две точки одну в начале, другую в конце. У меня остров, ростут пальмы, т.е. появляются преграды. У меня изначально не неда никаких вейпоинтов.
Понимаю когда есть помещение, надо нцп знать где есть проход а где нет. У меня то наоборот, надо знать где нельзя пройти.

Ребят, ну подскажите ответы на вопросы ниже, я не могу гуглить, у меня скорость 32 кб/сек. - не издевайтесь )

Для прогнозирования встречи с препятствием что лучше использовать, Pick,Collided(Xors'a), RayCast(PhysX'a)?

Подскажите только плиз как в тип добавлять подтипы?
Т.е. маленький пример, я пойму, просто не хочется гуглить с моим мертвым интернетом..
И я попробую тест сделать, а там погоняете,скажете что думаете
__________________
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 16:19   #17
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Искуственный интеллект

Не осилил весь код, некогда, мне хватило Dim. Перепиши на куче (а лучше посмотри готовый пример), и получишь ускорение на несколько порядков.
Я сам писал a* через массив, вышло ооочень медленно. Типа того, что на карте 512х512 был поиск несколько секунд.
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 16:37   #18
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Искуственный интеллект

Сообщение от burovalex Посмотреть сообщение
Не обижайтесь, но с вами говоришь как со стенкой, вам одно, вы другое.
Может я чтото не понимаю...

Ребят, ну подскажите ответы на вопросы ниже, я не могу гуглить, у меня скорость 32 кб/сек. - не издевайтесь )

Для прогнозирования встречи с препятствием что лучше использовать, Pick,Collided(Xors'a), RayCast(PhysX'a)?

Подскажите только плиз как в тип добавлять подтипы?
Т.е. маленький пример, я пойму, просто не хочется гуглить с моим мертвым интернетом..
И я попробую тест сделать, а там погоняете,скажете что думаете
...
__________________
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 16:47   #19
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Искуственный интеллект

Тебе ответили - A* с выделением памяти на куче.
Не хочешь делать нормально, бери Пик, Коллизии, делай тесты. А потом я нарисую тебе пример, на котором твое прогнозирование загонит бота в тупик или цикл.
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 17:07   #20
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Искуственный интеллект

ок
Да я не против пользоваться таким методом, но мне кажется для начинающего должно быть чтото попроще...

И не понял что означает выделение памяти на куче

Блин, мне так и не подсказали как в типе сделать подтип.
Чтобы к нцп добавлять вейпоинты.
__________________
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 17:38   #21
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Искуственный интеллект

Кучи, это читать в хелпе про Heap. Блитц у меня не стоит уже лет 7, так что точнее не скажу. Кстати, вспомнил про еще более классную штуку, к тому же совсем свежую: http://habrahabr.ru/post/162915/
Подтипов тут нет честных, не могу найти правильную ссылку, импер подскажет.
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 17:59   #22
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: Искуственный интеллект

burovalex
Не тупи, у тебя есть карта растительности - юзай ее для построения графа для поиска пути Астаром или волновым методом. Точнее ты можешь по этой карте построить регулярную сетку ( массив ) на которой будут отмечаться проходимые и непроходимые участки ( да, можно риалтайм ), а чтобы не тормозило на больших картах - выпрямляй руки, учи матчасть или юзай уже готовые реализации алгоритмов поиска пути
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 18:10   #23
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Искуственный интеллект

Как-то скачал сборку примеров на Блитце, там как раз было 2 с А* алгоритмом. Только я не могу найти(
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 19:20   #24
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Искуственный интеллект

Ну даже, чтобы пользоваться Астаром, надо научиться пользоваться подтипами. С чем у меня пока проблемы, вкурить не могу..

Type npc
Field entity
Field target
Field wp.waypoints
End Type

Type waypoints
Field x#,y#,z#
End Type

Function CreateNPC()
npc.npc=New npc
End Function

Function NewTarget()
For npc.npc.wp=Each npc.waipoints
;а здесь чтото не правильно, я хотел пройтись по типу waypoints в типе npc
Next
End Function
__________________
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 19:24   #25
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Искуственный интеллект

Оченно рекомендую библу Дипломата:

http://forum.boolean.name/showthread...080#post251080

Юзал для стратегии и шутера - работает отменно и с статикой и динамикой. сотня юнитов шустренько шныряет по уровню с узкими коридорами, не сталкиваясь и не застревая.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
Mr_F_ (29.01.2013), Nex (29.01.2013), tirarex (29.01.2013)
Старый 29.01.2013, 22:33   #26
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Искуственный интеллект

Можно использовать волновой алгоритм. Это наверно самый простой поиск пути в плане реализации.
http://pmg.org.ru/ai/path.htm
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 22:48   #27
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Искуственный интеллект

Вот для свой игрушки тоже ищу нахождение пути только вот мне нужно сделать нахождение по вей поинтам

тоесть расставил точки по карте а в функции обновления нпс просто повернуть и толкать до ближайшей точки
в варианте tormoz,а таковых точек не заметил но увидел что надо показывать где стены а на большой карте с кучей домов и разных интерьеров таковой возможности нет


еслть ли такие библиотеки работающие по вышеописанному принципу
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 23:03   #28
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Искуственный интеллект

Сообщение от tirarex Посмотреть сообщение
в варианте tormoz,а таковых точек не заметил но увидел что надо показывать где стены а на большой карте с кучей домов и разных интерьеров таковой возможности нет


еслть ли такие библиотеки работающие по вышеописанному принципу
Ты не понимаешь как работает пп.
Твоя задача передать в длл сетку проходимости.
Разбиваешь уровень на клетки со стороной в одного юнита. Заполняешь массив по проходимости. Передаешь в пп. Все.
Заполнять сетку можно заранее, например нарисовать битмап проходимости, где пиксель -клетка сетки, или получить в коде, пикая уровень по сетке, дифференцируя по высоте\имени и тп.
Дополнить карту можно самими юнитами в динамике.
Далее передаешь начальную и конечную точку пути
пп возвращает координаты вейпойнтов по которым двигается юнит (в формате сетки).
см. примеры в архиве.
(Offline)
 
Ответить с цитированием
Старый 29.01.2013, 23:25   #29
jimon
 
Сообщений: n/a
Ответ: Искуственный интеллект

ну сетка это всего лишь частный случай графа, где каждый узел связан с еще 4 (или 9 чтобы ходили по диагонали) узлами, не вижу проблем брать за граф карту вейпоинтов, просто кто будет учить дискретную математику для этого ? все ищут простого решения, геймдевелоперы блин
 
Ответить с цитированием
Старый 29.01.2013, 23:48   #30
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Искуственный интеллект

Сообщение от jimon Посмотреть сообщение
ну сетка это всего лишь частный случай графа, где каждый узел связан с еще 4 (или 9 чтобы ходили по диагонали) узлами, не вижу проблем брать за граф карту вейпоинтов, просто кто будет учить дискретную математику для этого ? все ищут простого решения, геймдевелоперы блин
Сомневаюсь что велосипедный пп для отдельной игры как-то повлияет на общий результат. Думаю что наоборот - пока девелопер сушит мозг над 100500-ым велосипедом, плавно подойдет старость...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:03.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com