Модель рельефа для гексагональных игровых сеток

16

TL; DR:

Где высота должна быть закреплена на шестиугольной сетке в стиле цивилизации? Центр, сторона или вершина? (Или более сложный?)

Правильный вопрос:

Рассмотрим на мгновение классическую игру, которую мы все знаем и любим (может быть?), Альфа Центавра Сида Мейера. Модель карты представила совершенно новую концепцию видимого рельефа местности в классической формуле Civ. В SMAC каждая вершина игрового поля имела возвышение, что позволяло карте красиво катиться по холмам, что является полной необходимостью, учитывая, что на каждом углу кипят мозговые черви.

Будет ли карта высот только для вершин аккуратно переведена в шестиугольную сетку?

Очевидными альтернативами являются картографирование рельефа на боковой поверхности и картографирование рельефа на основе центра; а также отображение высоты внутренних вершин (дает возможность для скал! Ууу!)

Последний вариант - применение треугольной решетки к игровой сетке, охватывающей центры и вершины и имеющей высоту только вершины или внутреннюю высоту.

Какой из этих вариантов может работать хорошо? Какие из них могут высосать весь сок из процессора и оперативной памяти в спешке?

Виллихам Тотланд
источник

Ответы:

10

Будет ли карта высот только для вершин аккуратно переведена в шестиугольную сетку?

Это зависит от тесселяции сетки. Если вы тесселяете свой самолет таким образом, тогда да.

Сетки

В этом случае вы можете изменить зеленый треугольник (x6) так, как вам нравится: hextri

Какой из этих вариантов может работать хорошо?

Все они работают хорошо. Скорее всего, вы все равно будете использовать несколько методов. Вы не можете просто использовать возвышение средней точки, если вы не хотите использовать элементы из одной плитки, вам придется «поднимать» края, когда вы поднимаетесь в гору, если вам нужна топография из нескольких плиток.

Какие из них могут высосать весь сок из процессора и оперативной памяти в спешке?

Это не проблема (разве вы пишете это для какой-то встроенной системы?), Так как вся работа по генерации карты будет выполнена до того, как кто-нибудь начнет играть, во время фазы загрузки.

Дэвид Титаренко
источник
Под высотой средней точки я подразумеваю ситуацию, когда вы можете только установить и сохранить высоту для средней точки; если два гекса имеют достаточно разные высоты, края вокруг них будут подняты, чтобы соответствовать высоте их граней. (например, 1,1 имеет высоту 3; 1,2 имеет высоту 5: грань 1,1: 1,2 имеет высоту 4 при рендеринге).
Виллихам Тотланд
1
Это не проблема во время выполнения, потому что вам нужно уметь рассчитывать траектории движения, разницу в высоте для боевого преимущества и так далее. Это может быть не проблема во время выполнения, потому что дюжина поплавков на гекс на самом деле не так уж плоха для большинства платформ, но для использования карты все еще нужны данные.
-1

Здорово, что хоть кто-то еще подумал об этом. К сожалению, я сталкиваюсь с этой страницей только через несколько лет. Тем не менее, я собираюсь ответить на ваш вопрос об основных шестиугольниках. Фотографии, которые были показаны до сих пор, не являются 100%. А на 1-метровой карте сетка будет не в форме. Это означает, что поворот на 60 градусов невозможен.

Я экспериментировал на:

  • Различные размеры шестиугольников: какая основа треугольника (в пикселях) обеспечивает высочайшую точность на 1-метровых картах после распечатки. Это включает в себя как можно более совершенные их повороты на 60 градусов. Также при повороте их на 180 градусов для переоборудования.

  • Различные комбинированные слои шестиугольников.

  • Одиночные шестиугольники для вырезания высокодетализированных изображений (ОЗУ = недостаточно на больших картах).

  • Точные ограничения моего компьютера плюс то, что я чувствую, допустимо.

Я еще не экспериментировал с возвышением, создавая шестиугольники различной формы. Но я знаю, что база должна быть правильной, прежде чем делать повышение.


Резюме:

  • Точность 1 мм или менее на 1-метровой карте. Правило 60 градусов.

  • Мне нужны линии, которые могут соответствовать самим себе при повороте на 180 градусов.

  • Мне нужен треугольник, чтобы поместиться на моем экране с максимальным увеличением.

Я сузил свой выбор до 3 с этими правилами:

Небольшой:

  • Размер; +26 x +45, 27 x 46 пикселей

  • Неточность на 1 метр; 0,74 мм

  • Последовательность; 131213131312131

Средний:

  • Размер; +41 х +71, 42 х 72 пикселей

  • Неточность на 1 метр; 0,20 мм

  • Последовательность; 1312131313121313131312131

Большой:

  • Размер; +56 х +97, 57 х 98 пикселей

  • Неточность на 1 метр; 0,05 мм

  • Последовательность; 1312131313121313131213131312131

Один 1 пиксель.

Два и три являются группами по 2 пикселя. A 2 - это всего 4 пикселя, а A 3 - всего 6 пикселей.

Если вы добавите последовательность вверх, вы увидите, что это ширина в пикселях. Если сложить их и считать 4 и 6 вместо 2 и 3. Вы получите высоту в пикселях.

Числа + - это то, что вы добавляете в пикселях, когда ставите 2 треугольника друг на друга или друг против друга.

Не стесняйтесь задавать вопросы. На мою электронную почту.

Рамон
источник
1
Непонятно, как вы решаете вопрос. Вы несколько обсуждали эту тему, хотя ваш общий смысл также трудно выделить. Какое отношение имеют размеры этих пикселей к шестиугольной геометрии и высоте?
Сет Баттин
1
Другое дело: StackExchange не является традиционным форумом. Полезная информация должна быть включена в сообщение, и читатели не должны отправлять вам электронные письма, чтобы получить полный ответ. Кроме того, поскольку это не форум, люди не могут переосмыслить ваш ответ. Так что не только приглашать вопросы неуместно, но и не будет работать. См. Gamedev.stackexchange.com/help/how-to-answer .
Сет Бэттин