Заинтересовавшиеся нашим проектом люди иногда присылают нам карты, на которых наш алгоритм досадно конфузится и не может выдать ничего вразумительного. Получается например вот так (для теста взят лишь фрагмент района), все равномерно вытоптано:
Поэтому сейчас мы занимаемся изысканием способов улучшения алгоритма и его коэффициентов. Обычно проблемы возникают на больших районах с большим числом генераторов.
Под катом пример полного района и увесистая (3 Мб) гиф-анимация того, как сейчас выглядит генерация дорожек.
Пока что на таких сложных картах встречаются две крайности: дорожки либо не образуются вовсе, либо наоборот, через несколько шагов итерации вся карта оказывается вытоптана в ноль. Показанный на анимации пример еще более-менее ничего, дорожки в целом просматриваются, но все равно — много мусора, отдельных пятен, при этом не хватает некоторых важных тропинок.
Пока что был переработан алгоритм генерации пешеходов — теперь они привязываются к своему исходному генератору (раньше исходный генератор выбирался случайно) и двигаются со случайной задержкой (чтобы избегать единовременного выбегания большой толпы на старте симуляции). Были подкручены некоторые коэффициенты — те что у нас были ранее были оптимизированы для маленьких карт с десятком генераторов, а на показанной выше их около 200!
Так что продолжаем перебирать параметры, тестировать и искать свой идеальный алгоритм.
Добавить комментарий