Каким образом можно реализовать и спроектировать стены в изометрической игре?

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

Кажется, что есть 2 подхода к созданию стен в изометрической игре с черепицей:

  • Нарисуйте их немного за пределами плитки (The Sims 1, Тематическая больница, Jagged Alliance 2, Project Zomboid).
  • Сделайте их размером 1x1 (плитка) большим и попросите их нарисовать их на собственной плитке (Ultima 8, каждый роггелик).

Пример чертежа

Второй способ - это самый простой способ сделать это. Поскольку стена занимает всю плиту, вам не нужно беспокоиться о перекрытии в floortile и необходимости разрабатывать шаблоны вокруг нее. У вас возникает другая проблема, хотя если вы хотите сделать шаблоны разного размера, чем сетка. Например, если вы хотите иметь довольно тонкие стены. Тогда ваша сетка также должна быть больше. На стороне плюса необходима только 1 стеновая деталь.

Первый aproach требует некоторого кода для определения изменения от стены для рисования и может показаться немного странным, если вокруг него не будут созданы плитки для пола. Он также требует не менее 4 штук.

Какой метод является предпочтительным способом для этого и почему?

Ответ 1

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

Если вы беспокоитесь о способности делать тонкие стены, просто убедитесь, что размер плитки достаточно мал. Ваши игровые плитки не должны следовать шаблону, который нарисован на полу, например. реальная напольная плитка может состоять из 2x2 игровых плит.

Ответ 2

я бы рекомендовал начать рендеринг с самыми дальними объектами и закончить с ближайшим - таким образом вы можете получить простой инвариант: объекты, расположенные ближе к камере, могут покрывать более расположенные объекты (как в реальной жизни)

Альтернатива: вы можете использовать небольшие различия в координате "Z" объектов, чтобы позволить глубителю выполнить трюк - если вы используете глубину буфера, порядок визуализации не имеет значения, но желательно начинать с ближайшего - это способ рендеринга texelcount может быть ниже