Как стать автором
Обновить

Комментарии 11

А как будет выглядеть minimap в такой стратегии?
Можно сделать несколько полных карт из разных точек с разным масштабом.
не уверен что это будет удобно((
Получается в любой момент виден весь мир, вопрос только в том, насколько хватит разрешения чтобы его рассмотреть. Я про игру, разумеется.
То, что видели юниты.
>Жаль, что геометрия нашего мира в обозримом масштабе не гиперболическая
Может это мне только кажется, но разве мы воспринимаем мир не как гиперболический? Например, такое явление как перспектива в случае зрения.
Скорее наоборот — как проективный. Кажется, что параллельные пересекуться на горизонте.
Завидую Вашему умению писать такие посты, когда от лимона осталась только половина.
Интересно узнать, как эффективно моделировать игровую сетку на плоскости Лобачевского. Как, например, это сделано в Hyperrogue?
Там на каждую клетку заводится объект, который сылается на соседние с ним клетки. Объект создается отложено, по мере необходимости, так как карта бесконечна. При этом то, что на этой ячейке может находится, зависит от текущего опыта игрока.
Как обходится проблема дырок в такой сетке (если обойти несозданные ячейки, трудно понять что пришел в существующую другим путем) я не разобрался. Я бы следил, что бы созданная область была выпукла. Но возможно это слишком редкая ситуация — обойти по кругу большой участок тяжело.
Как бы перечислить ячейки мне тоже интересно. Системы координат я придумать не смог. У меня есть задумка игры, для которой хорошо бы подошла карта локально евклидова, но глобально Лобачевского.
Системой координат на плоскости Лобачевского могут быть обычные комплексные числа из верхней полуплоскости. Перемещение плоскости там является дробно-линейным преобразованием (a*z+b)/(c*z+d), где все a,b,c,d вещественны.
Эта реализация лучше, чем диск Пуанкаре, потому что при приближении к границе Im z=0 (которая на плоскости соответствует бесконечности) мы получаем малые значения y, которые в double хранятся без потери значащих цифр. При приближении к границе круга x^2+y^2=1 мы бы неизбежно теряли точность.
Вот поддерживать в этих условиях «целочисленные» координаты ячеек не получится. Оно и понятно: при сдвиге на радиус R мы получим exp( R ) возможных ячеек. Разумные арифметические модели этого не выдержат.
Одна из альтернатив — найти конечное поле, которому принадлежат центры ячеек. В случае (7,6,6) это непросто, но в каком-нибудь {5,4} или {4.5} вполне реально. Тогда карта будет периодической, но период настолько большой, что с копией игровой области мы вряд ли встретимся.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории