Программач, нужна библиотечка поиска пути на подобии: http://www.dtf.ru/articles/read.php?id=46788. В ней меня не устраивает лишь одно, там .dll без исходников. А хотелось бы в красноглазом линупсе использовать. Был вариант обернуть её и таки сделать какой-нибудь .so, но после проверки зависимостей была обнаружена множественная завязка на винду, прошу посмотреть знающих людей, может не все потеряно и от зависимостей можно, лол, избавиться.Писать самому алгоритм как-то не хочется, наверняка кто-то уже выкладывал достойную реализацию. Заранее благодарен за любую помощь.
Программач, нужна библиотечка поиска пути на подобии: http://www.dtf.ru/articles/read.php?id=46788. В ней меня не устраивает лишь одно, там .dll без исходников. А хотелось бы в красноглазом линупсе использовать. Был вариант обернуть её и таки сделать какой-нибудь .so, но после проверки зависимостей была обнаружена множественная завязка на винду, прошу посмотреть знающих людей, может не все потеряно и от зависимостей можно, лол, избавиться.
Писать самому алгоритм как-то не хочется, наверняка кто-то уже выкладывал достойную реализацию. Заранее благодарен за любую помощь.
Давай замутим игрулю, а?
>>2062Вообще я как бы сам её делаю, так что вместе не вариант. Если какие-нибудь вопросы по игроделу будут, можешь задавать, а пока я ищу библиотечку. Может в этих ваших опенсорсах завалялась?
>>2062Вообще я как бы сам её делаю, так что вместе не вариант.
Если какие-нибудь вопросы по игроделу будут, можешь задавать, а пока я ищу библиотечку. Может в этих ваших опенсорсах завалялась?
>>2060Тут описание: http://www.codenet.ru/progr/alg/way.phpСсылки на вариации с исходниками:http://ishodniki.ru/list/alg/alg-games/http://code.progler.ru/tags/Алгоритмы/2Разобраться как работает, таки лучше, чем тупо копипастить, не?
>>2065>http://www.codenet.ru/progr/alg/way.phpК сожалению данный алгоритм не подходит, ибо он волновой. В приведенном мною примере был алгоритм трассировки луча с огибанием препятствий. Посмотри на приложенную картинку: слева предложенный тобою вариант, а справа то, что я ожидал.>Разобраться как работает, таки лучше, чем тупо копипастить, не?Я представляю как работаю эти самые алгоритмы, но их реализация требует долгой и нудной отладки, приблизиться к идеалу не так просто.
>>2065
>http://www.codenet.ru/progr/alg/way.php
К сожалению данный алгоритм не подходит, ибо он волновой. В приведенном мною примере был алгоритм трассировки луча с огибанием препятствий. Посмотри на приложенную картинку: слева предложенный тобою вариант, а справа то, что я ожидал.
>Разобраться как работает, таки лучше, чем тупо копипастить, не?
Я представляю как работаю эти самые алгоритмы, но их реализация требует долгой и нудной отладки, приблизиться к идеалу не так просто.
>>2069Упс, не тот пик.
>>2070>WouwPathFind.dllНе факт, что здесь все отлажено. Да и количество расчетов слишком большое, если я правильно все понял. Как тебе вот это:>Все руки двигаются по периметру своего препятствия на один шаг. Левые руки двигаются против часовой стрелки, правые - по часовой>проверяя через каждый шаг юнитаАвтор с одной стороны пишет о трассировке луча и геометрических периметрах, с другой стороны вводит "сетку", т.н. "шаг юнита". Больше всего это похоже на сферический велосипед от нехуй делать.
>>2070
>WouwPathFind.dll
Не факт, что здесь все отлажено. Да и количество расчетов слишком большое, если я правильно все понял. Как тебе вот это:
>Все руки двигаются по периметру своего препятствия на один шаг. Левые руки двигаются против часовой стрелки, правые - по часовой>проверяя через каждый шаг юнита
Автор с одной стороны пишет о трассировке луча и геометрических периметрах, с другой стороны вводит "сетку", т.н. "шаг юнита". Больше всего это похоже на сферический велосипед от нехуй делать.
>>2071При обходе препятствия он точки перегиба ищет и точки пересечения с трассирующим лучом. Вообще мне его идея понравилась, когда читал не усмотрел косяков.Ты закачивал пример? Просто exe, там можно посмотреть работу алгоритма и потестить производительность.Похоже придется, таки, самому писать. Но я все равно буду ждать от анонов ссылок.
>>2071При обходе препятствия он точки перегиба ищет и точки пересечения с трассирующим лучом. Вообще мне его идея понравилась, когда читал не усмотрел косяков.
Ты закачивал пример? Просто exe, там можно посмотреть работу алгоритма и потестить производительность.
Похоже придется, таки, самому писать. Но я все равно буду ждать от анонов ссылок.
>>2072Знает хуй. Но по ресурсам, вычисления точек пересечения и вращение векторов, более емки, чем переборы массивов. Я ковыряю сейчас волновой алгоритм, как закончу выложу пруфы с замерами, что-то мне подсказывает, что лучше его пока что ничего не изобрели. На подумать, а сработают "руки" на случае в пикче?
>>2077Вообще на подобной пикче они сработают, но мне не нужны такие длинные пути, после какого-то количества итераций со спокойной душой можно прервать процесс. Основное моё требование это то, что объект может находиться в любой точке пространства, а не только в центре клетки. Плюс карта проходимости периодически меняется.
>>2077>На подумать, а сработают "руки" на случае в пикче?
>>2077
>На подумать, а сработают "руки" на случае в пикче?
>>2081Выглядит красиво, лучи добра тебе.c: co, говорит, что все должно получиться.
>>2080Центр клектки - это относительное понятие, автор алгоритма оперирует таким термином как "шаг юнита", что подразумевает дискретность, алсо, даже в 3д клетки есть, дело в их размерах же.
>>2084>клекткиклеткиопечатка
>>2084
>клектки
клеткиопечатка
>>2084Ты употребляешь "шаг" как что-то плохое?Я так понял он находит ключевые точки, а затем объект начинает к ним последовательно двигаться с определенном шагом, дескать просто вектор скорости. Или "шаг" в чем-то другом?
>>2084Ну допустим в WouwPathFind положение юнита никак не зависит от параметров клетки, она хоть может быть со слона размером, все равно юнит может находиться где угодно. Размер клетки определяет лишь точность карты прохождения. Как бы вот это бы хотелось. Плюс в приведенном алгоритме хорошо сделан расчет размеров объекта, я может нуб, но пока не могу представить как считать путь волновым алгоритмом, если объект занимает 4 клеточки.
>>2088>если объект занимает 4 клеточки.Все, представил, лол.
>>2088
>если объект занимает 4 клеточки.
Все, представил, лол.
ОП, опиши игру. Еще интересует на чем пишешшь, и чувствуешь ли в себе силы закончить проект в одиночку?
>>2090Игру описывать не буду, так как пока мало что готово. Пишу на C++ сервер, а на каком-нибудь flash-е сделаю клиент, так что братья анонимусы смогут заценить игрушку онлайн. Силы в себе чувствую, но вот ленюсь прямо ппц как.Сервер хочу под линухом запустить, вот для этого библиотечку и ищу.
>>2090Игру описывать не буду, так как пока мало что готово. Пишу на C++ сервер, а на каком-нибудь flash-е сделаю клиент, так что братья анонимусы смогут заценить игрушку онлайн. Силы в себе чувствую, но вот ленюсь прямо ппц как.
Сервер хочу под линухом запустить, вот для этого библиотечку и ищу.
>>2086Без "шага" алгоритм становится непрерывным, т.е. обработке подвергается каждая виртуальная точка (она может быть меньше пикселя выводимого на экран), втыкаешь, что за мощности тебе потребуются (особенно в 3д)? Путь юнита, все таки измерятся, шагами, значит размер отверстия куда проходит юнит тоже в шагах (не в мм же), значит и размер юнита тоже задается шагами. Дискретность таки есть (а это и подразумевает сетку). На подумать, путь отрисовывается вектором нулевой толщины, так вот, как по этому вектору пройдет худой тролль, а как толстый?
>>2091>Игру описывать не буду, так как пока мало что готовоЕпт, я прошу описать саму задумку. На что игра будет похожа?
>>2091
>Игру описывать не буду, так как пока мало что готово
Епт, я прошу описать саму задумку. На что игра будет похожа?
>>2092кроме опечатки пикча впримерСогласись, не в размерах все-таки дело?
>>2069При уменьшении клетки результат работы волонового алгоритма будет сходиться к результату трассировки. Просто возьми клетку меньше, и захерячь волоновой.
>>2094На крузис.>>2092Пик рилэйтид, два тролля.
>>2094На крузис.
>>2092Пик рилэйтид, два тролля.
>>2095Уже склоняюсь к этому варианту.
>>2096Блджад, объясни чем у тебя измеряется размер юнита? Если то, что ты показал - правда, работа алгоритма, то я иду сосать хуйцы. Но! Почему тогда путь отрисовывается вектором? Может быть ты их сам рисуешь? Еще пикчу к примеру кинуть?
>>2095Тебя, иногда, очень трудно понять, но здесь ты все правильно сказал.
>>2099http://www.dtf.ru/articles/file.php?id=25845Качай@ПроверяйРазмер юнита - произвольная величина, она динамически проецируется на карту проходимости. Просто нужно изменить критерии обхода "руки" в зависимости от размера, это же элементарно.
>>2099http://www.dtf.ru/articles/file.php?id=25845Качай@Проверяй
Размер юнита - произвольная величина, она динамически проецируется на карту проходимости. Просто нужно изменить критерии обхода "руки" в зависимости от размера, это же элементарно.
>>2100Чем больше клеток, тем медленнее работает волновой алгоритм. Выходит трассировка дает лучший результат.
>>2102Не не не не не, трассировка "в вакууме" проверка каждой точки, каждого пересечения. В задачах отрисовки области (при построении видимого пространства),задача упрощается до пикселя экрана. Юнитов в 1 пиксель - не бывает, размер его ориентировочно, пускай будет 32х32х64(x,y,z). Так вот, зачем трассировать, если сработают нормально дискретные алгоритмы? Хотя, аноны, мы спорим только о предположениях, исходники никто не видел. Я обеими руками за, если этот хуец действительно придумал, что-то охуенно новое. Но я вижу невнятное ботаническое описание алгоритма, ссылающееся на WC3 без видимых пруфов, и да, Роман Будкеев работает не Blizzard, а в Bird's Eye View Games, которую видимо сам и организовал. Результат в чем? А не пускают ли нам пыль в глаза?c:fep, fap?
>>2103Пытаюсь связаться с автором и заставить его ответить на ответы, но пока безуспешно.
скажем так недалеко он уходит... Думаю, на сложных маршрутах, волновой будет отрабатывать быстрее и надежнее
>>2106МУХАХА ДВАЧУЮ КАПЧУ ПИКРИЛЕЙТЕД ДИСКАЧ.
>>2106Осталось посмотреть на результат тестирования волнового. Боюсь ля любого алгоритма сия задача сложна.
>>2111 ну кодить/прикручивать волновой алгоритм я сейчас небуду, мне оно как бы нафиг не нужно. Но он как минимум 100% дойдет до конечной точки, и сдается мне что если взять/написать алгоритм с ассемблерными вставками, то дойдет он туда в приемлемые сроки.пикрелейтед мой примерчик написаный за неск. часов, где то около года назад. Ниче из себя не представляет по сути, так, чисто разлекался. Я это к тому, что ничего сложного в волновом алгоритме нет, и разобраться в нем дело 2-3 часов, и + еще неск. часов на замену кусков С'шного кода асм вставки. А учитываю кучу готовых реализаций и того быстрее
>>2111 ну кодить/прикручивать волновой алгоритм я сейчас небуду, мне оно как бы нафиг не нужно. Но он как минимум 100% дойдет до конечной точки, и сдается мне что если взять/написать алгоритм с ассемблерными вставками, то дойдет он туда в приемлемые сроки.
пикрелейтед мой примерчик написаный за неск. часов, где то около года назад. Ниче из себя не представляет по сути, так, чисто разлекался. Я это к тому, что ничего сложного в волновом алгоритме нет, и разобраться в нем дело 2-3 часов, и + еще неск. часов на замену кусков С'шного кода асм вставки. А учитываю кучу готовых реализаций и того быстрее
>>2112 > вставками> учитывая
>>2112
> вставками> учитывая
>>2112Напиши, как ты видишь, расчет пути юнити, занимающего несколько клеточек. Пожалуй буду использовать какой-нибудь A*.
>>2114 често, хз... Пока приходит в голову только усложнение ф-ции распространения волны. Какой бы не был у тебя юнит, у него должна быть базовая точка. Вот эту точку ты и двигаешь(заполняешь матрицу распространении волны), только не бездумно, а с проверкой не уперлось ли остальная часть "тела" в стену, если уперлась то не прешь в ту сторону. Сторон то в любом случае 8 шт.Кстати, как правило достаточно рассматривать не все поле, а прямоугольник постоеный из точки начала и точки конца. А если он ничего не нашел, то можно и все поле проверить
>>2114 често, хз... Пока приходит в голову только усложнение ф-ции распространения волны. Какой бы не был у тебя юнит, у него должна быть базовая точка. Вот эту точку ты и двигаешь(заполняешь матрицу распространении волны), только не бездумно, а с проверкой не уперлось ли остальная часть "тела" в стену, если уперлась то не прешь в ту сторону. Сторон то в любом случае 8 шт.
Кстати, как правило достаточно рассматривать не все поле, а прямоугольник постоеный из точки начала и точки конца. А если он ничего не нашел, то можно и все поле проверить
>>2113Грамар-наци сосут хуй в програмаче, прямая вам дорога в быдлокодинг/0. Нечего сказать по существу, уебывай в /б/ и там лечи школоту, и, олсо, не погань винрарные треды, чмошник.
>>2114Капча мне подсказывает, что весь мир нужно разделить на эти большие клеточки, а затем искать путь.
>>2112Великий, снизойдешь ли переписать быдлокол с Ц на АСМ буде предоставленны исходники тебе. Волновой алгоритм слоупочен слишком. Заканчиваю я его уже, есть в тебе сторона светлая силы?
Лол, а все равно напишу трассирующий алгоритм, ибо мне он более симпатичен. Прозреваю, что в моём случае волновой будет сосать.ОП
Лол, а все равно напишу трассирующий алгоритм, ибо мне он более симпатичен. Прозреваю, что в моём случае волновой будет сосать.
ОП
>>2119Ты меня радуешь же.
Связался с автором, за исходники он просит 27500 деревянных, лол. Ох уж эта человеческая жадность. Попытаюсь, таки, ещё обернуть её и впрямую использовать, если не выйдет, очевидно пишу свою.
>>2116Вот только не надо всех программистов выдавать за безграмотное быдло.
Я опять выхожу на связь.За пару дней сделал реализацию алгоритма в ОП посте, работает почти идеально, иногда находит не самый лучший путь. Но думаю после доработки он будет быстр и верен. Вот вам картинка.
Я опять выхожу на связь.
За пару дней сделал реализацию алгоритма в ОП посте, работает почти идеально, иногда находит не самый лучший путь. Но думаю после доработки он будет быстр и верен.
Вот вам картинка.
А вот очевидный косяк.
а в чем косяк?
>>2487Более длинный путь выбрал.
- wakaba 3.0.8 + futaba + futallaby -