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


16

TL; DR:

Де слід підкріпити висоту на шестикутній сітці в цивільному стилі? Центр, сторона чи вершина? (Або складніший?)

Питання власне:

Розгляньте на мить класичну гру, яку ми всі знаємо і любимо (можливо?), Альфа Кентавра Сіда Мейєра. Модель карти представила абсолютно нову концепцію видимих ​​висот місцевості до класичної формули Civ. У SMAC кожна вершина ігрової дошки мала висоту, що дозволяє мапі красивих гірських горіхів, цілком необхідних, враховуючи, що у черв'яку кипить розум, що чекає навколо кожного кута.

Чи буде карта висоти лише для вершин акуратно перекладена на шестикутну сітку?

Очевидними альтернативами є картографічне підняття на бічній основі та картування висот на основі центру; а також картографування висот внутрішньої вершини (даючи можливість для скель! Так!)

Останній варіант - застосування трикутної решітки до ігрової сітки, що охоплює центри та вершини, та мають висоту лише для вершин або внутрішньої вершини.

Який із цих варіантів, ймовірно, добре працює? Які, швидше за все, поспішають висмоктувати весь сік з процесора та оперативної пам’яті?

Відповіді:


10

Чи буде карта висоти лише для вершин акуратно перекладена на шестикутну сітку?

Це залежить від tessellation сітки. Якщо ви так сильно сплачуєте свій літак, то так.

Сітки

У цьому випадку ви можете змінити зелений трикутник (x6) будь-яким способом: гекстри

Який із цих варіантів, ймовірно, добре працює?

Всі вони добре працюють. Швидше за все, ви все одно будете використовувати декілька методів. Ви не можете просто використовувати середнє піднесення, якщо ви просто не бажаєте одногір'яних гірських функцій, вам доведеться "підняти" краї, коли ви піднімаєтесь на гору, якщо ви хочете багатоповерхову топографію.

Які, швидше за все, поспішають висмоктувати весь сік з процесора та оперативної пам’яті?

Це не проблема (якщо ви не пишете це для якоїсь вбудованої системи?), Оскільки всі роботи над створенням карти будуть виконані до того, як хтось гратиме в гру, під час фази завантаження.


Під середньою точкою я маю на увазі ситуацію, коли ви можете встановлювати та зберігати висоту лише для середньої точки; якщо два шестикутники мають досить різні висоти, краї навколо них піднімуться, щоб відповідати висотам їх обличчя. (наприклад, 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 x +71, 42 x 72 пікселів

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

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

Великий:

  • Розмір; +56 x +97, 57 x 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 .
Сет Беттін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.