Precomputed Shade - FOV алгоритм, Golang

Темы, связанные с проектированием и программированием roguelike-игр

Модераторы: Sanja, Максим Кич

Аватара пользователя
thefish
Сообщения: 31
Зарегистрирован: 18 июн 2012, 22:37

Re: Precomputed Shade - FOV алгоритм, Golang

Сообщение thefish » 19 дек 2019, 14:35

Покрутив в свободное время пяток реализаций Брезенхама я уяснил, что не для всего он подходит. Наиболее прилично себя ведет реализация с целыми числами, но и она может "ломаться".
Частичный выход - использовать уже готовый, предрасчитанный граф (привет, Макс!), в котором число "артефактов изгибания" сведено к минимуму (например вручную).
Другой, и кмк более интересный способ - использовать не Брезенхама, а Алгоритм Ву, отсекая освещенность по произвольной нижней границе.

Реализацию второго способа попробую накатать уже в новогодние выходные, перед НГ как-то совсем нет времени.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Precomputed Shade - FOV алгоритм, Golang

Сообщение Максим Кич » 23 дек 2019, 11:02

thefish писал(а):
19 дек 2019, 14:35
Покрутив в свободное время пяток реализаций Брезенхама я уяснил, что не для всего он подходит.
Проблема Брезенхема в том, что он оперирует точками — то есть объектами нулевого размера. А мы хотим проверить видимость квадратной клетки. Но в общем случае есть куча хороших алгоритмов FOV.

Это у меня проблема заключается в том, что на анизотропных картах они не работают — а для обычной карты, которая двухмерным массивом задаётся, надо брать готовый и не мучиться. Ну или из спортивного интереса что-то пытаться сделать.
Dump the screen? [y/n]

Аватара пользователя
thefish
Сообщения: 31
Зарегистрирован: 18 июн 2012, 22:37

Re: Precomputed Shade - FOV алгоритм, Golang

Сообщение thefish » 23 дек 2019, 12:15

Но в общем случае есть куча хороших алгоритмов FOV...
У них есть фатальный недостаток =)
... из спортивного интереса что-то пытаться сделать.
Естественно из спортивного интереса. Неспортивная, т.е. коммерческая разработка - не про рогалики; есть множество более эффективных способов заработать на жизнь программированием.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Precomputed Shade - FOV алгоритм, Golang

Сообщение Максим Кич » 24 дек 2019, 15:33

thefish писал(а):
23 дек 2019, 12:15
У них есть фатальный недостаток =)
С этим поспорить невозможно.
thefish писал(а):
23 дек 2019, 12:15
Естественно из спортивного интереса. Неспортивная, т.е. коммерческая разработка - не про рогалики; есть множество более эффективных способов заработать на жизнь программированием.
Спортивная — это когда мы сами себе создаём сложности и героически их преодолеваем, потому что нам это нравится. Вопрос коммерции тут не стоит — хотя DarkGod, скажем, свой ToME как-то продавать умудряется.

Лично я бы ни за какие коврижки не бился об собственный ЛОС, если бы я мог взять готовый. Но существующие ЛОСи либо врут по теням, либо сканируют карту в таком порядке, который в моём случае неприменим.

Было бы что-то готовое — я взял бы и не мучился. Потому что мне интереснее геймплейные фишки и алгоритмы генерации карт покрутить, чем вот это вот всё.
Dump the screen? [y/n]

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя