Я неделю рисовал обычный куб для своей игры и всё равно облажался

Предположим, кому-то понадобилось сделать модель огромного кубического помещения для игры про изменение гравитации, где можно ходить по любой грани внутри этого огромного куба.

Открываем редактор. Делаем клик-клик. Готово. На этом можно и закончить.

Идеально
Идеально

А теперь добавим к задаче одно маленькое условие. О его реализации пойдёт почти вся оставшаяся часть статьи. И если при создании модели его получится соблюсти – будет готова некоторая основа для юзерфрендли экспиеренса.

Условие: в каких бы случайных точках пространства внутри куба ни оказался персонаж, и по отношению к какой бы грани ни была направлена гравитация – игрок, управляющий персонажем, всегда должен быстро ориентироваться и чётко понимать, где именно он находится (без использования ярких, пёстрых, вырвиглазных комбинаций цветов, а внешний вид всего помещения должен быть выдержан в едином стиле).

Например, вариант выше не подходит потому что в каких бы случайных точках персонаж ни оказался, игрок никогда не поймёт где именно он находится.

Увеличьте изображения и попробуйте найти вставленные отличительные признаки по которым понятно, откуда именно смотрит персонаж.
Увеличьте изображения и попробуйте найти вставленные отличительные признаки по которым понятно, откуда именно смотрит персонаж.

Почему именно куб? Вопрос эстетики или практичности? Ткнул ли автор пальцем в небо при выборе фигуры? Является ли он адептом ржавого озера? Поклонником кубизма? Жителем Кубы? На самом деле куб просто является результатом сочетания всех поверхностей перпендикулярных основным осям трёхмерного пространства, а только они будут использоваться для работы с гравитацией в некой потенциальной игре.

Всё, написанное далее, является моими личными размышлениями.

Чтобы добиться выполнения условия, надо разделить помещение на части и придать им индивидуальные черты. Попробуем сделать так, чтобы у каждой грани было как можно больше чего-то «своего». Так в сознании игрока будет закрепляться индивидуальный образ каждой местности, что в дальнейшем поможет ему беглым взглядом ориентироваться в своём местоположении. Я решил попробовать составить список «разновидностей отличительных черт», чтобы каждая из них была на всех гранях, но у каждой она была индивидуальна.

Я неделю рисовал обычный куб для своей игры и всё равно облажался

1. Форма небольших плоских фигур.

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

Первым, что я представил, оказались: квадрат, шестиугольник, круг, трапеция. Вернее, представил я куда больше, но эти оказались более приемлемыми вариантами.

Я неделю рисовал обычный куб для своей игры и всё равно облажался

Полагаю, можно себе позволить с одной гранью схитрить и поместить на неё выдуманную фигуру, нарисованную случайным образом…

Я даже не уверен, может ли быть у неё научное название
Я даже не уверен, может ли быть у неё научное название

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

От бессилия перед невозможным я, уже ни на что не надеясь, просто начал рисовать зигзагом обычные не замыкающиеся линии. … А потом подумал: «но ведь не обязательно подбирать замкнутый элемент». Можно и обычную линию. Скорее… очень толстую обычную линию. На том мы с самим собой и порешили.

Итоговый результат по всем граням
Итоговый результат по всем граням

2. Распределение плоских элементов

Пусть у каждой грани будет своё индивидуальное распределение элементов по поверхности. Вариантов не много, но попробовать стоит.

Для шестиугольника сразу напрашивается вариант замостить им всю поверхность (а может и не напрашивается, зависит от перспективы).

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

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

Я неделю рисовал обычный куб для своей игры и всё равно облажался

Грань со «случайной фигурой» может иметь и случайное распределение, чтобы соответствовать традициям, однако этого удостоилась трапеция.

"Случайные фигуры" разместим по диагонали ...чтобы любой человек, думающий о её оригинальности, точно понял, что это просто квадрат, повёрнутый на 45 градусов.

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

Я неделю рисовал обычный куб для своей игры и всё равно облажался

3. Выделение объёма

У каждой грани должен быть свой отличительный принцип выделения объёмных деталей. Можно придумать большое разнообразие подходов, начиная от выступов по краям и заканчивая углублениями в центре. И все они также должны быть не похожи друг на друга.

Хорошенько подумав о разных вариантах, я пришёл к следующему:

Квадрат: элементы выпирают, а углы обрублены и имеют небольшие формы между ними.

Круг: разные элементы повёрнуты на разные углы.

Линия: постоянно меняется высота, чтобы элементы чередовались в накладывании друг на друга (одна линия сначала над другой, затем под третьей, над четвёртой, под пятой).

Трапеция: каждый элемент расположен на своей высоте, пересекая все соседние фигуры.

Шестиугольник: элементы имеют большое углубление в виде копий самих себя и маленькие у каждой стороны.

«Случайная фигура»: выступ по периметру + разные небольшие фигуры вокруг.

Мне кажется, это достаточно разнообразные принципы, чтобы придать граням большей визуальной индивидуальности. Но я могу ошибаться или мыслить слишком узко. Постоянно есть ощущение, что можно придумать что-то получше. Даже когда уже что-то придумал.

4. Цвет

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

Является ли это примером «портит внешний вид» или «не портит внешний вид» - доподлинно неизвестно

5. Текстура

В принципе, если вы внимательно читали предыдущие пункты – вы и так знаете, как это всё работает. А я просто покажу, что получилось.

Кстати, в целях экономии ресурсов, текстуру следует накладывать одинаково на равные куски симметричных объектов. Шестиугольник в этом плане – моё почтение.

Всё. Я готов делать анимацию для нового Доктора Стрэнджа

6. Музыка

Стоп, что? Да. У каждой грани должно быть своё лёгкое музыкальное сопровождение. Это где-то в глубине сознания в теории подкрепит дополнительный отличительный признак.

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

Итак. Мы попытались составить ряд отличительных черт, чтобы, как на грань ни посмотри, её можно было легко узнать и отличить от всех остальных.

Получилось ли успешно? Ну…

+ модель ламп на рёбра. + карты нормалей. + шейдер.
Визуализация только карт нормалей. Ничего информативного. Просто показалось, что круто выглядит.

Хочется верить, что все эти наработки действительно помогут потенциальным игрокам не запутаться в локации. А вы что думаете обо всём этом? В правильном ли направлении я двигался? Предлагайте свои варианты.

Я неделю рисовал обычный куб для своей игры и всё равно облажался

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

Забегая наперёд, отмечу, что кардинально разные цвета реализовать не получилось. Уж больно сильно общий визуальный стиль становился несуразным. К тому же более скромное количество используемых текстур экономит оперативную память. Не то, что бы в этом была тотальная необходимость, но тем не менее.

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

Физическая модель содержимого помещения

И вот когда я подготовил физическую модель окружающей местности полностью – только тогда я начал заниматься её визуализацией.

Пока я делал физ. модель вот этого куска (который ниже) – я сразу представлял его в виде скопления тёмно-красных труб. Спустя много времени, когда наконец пришла очередь визуализировать эту часть, я сделал её такой, какой представлял. Эти трубы расположены в определённой небольшой области помещения и их ни с чем не спутать. Если игрок на них наткнётся – он может быть уверен в местности, в которой находится.

А вот одна непонятная дребедень по которой нужно будет ходить с разных сторон под разной гравитацией.

А это двигающийся мост. Как и многое другое – он один такой.

И так далее.

И множество других, в основном серых, в основном состоящих из примитивов, моделей, заполняющих помещение.

Итоговая картина с одного из ракурсов выглядит так:

Я неделю рисовал обычный куб для своей игры и всё равно облажался

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

Я подготовил небольшой билд. Обеспечил возможностью смены гравитации. Поставил чёткую задачу, которую нужно попытаться выполнить. И дал некоторым людям попробовать.

Результаты оказались потрясающими. Никто не смог по итогу понять, что вокруг вообще происходит, и где они находятся. Все бегали по одним и тем же местам, думая, что они разные. При смене гравитации некоторым казалось, что предметы вокруг менялись. Один приятель вовсе после 20 минут блуждания попал на грань с линиями и сказал «Её ведь тут раньше вообще не было, ведь так?». Занавес.

Это был занятный опыт. Так как мне не удалось достичь желаемого результата, придётся адаптироваться.

Ну а вы что думаете?

Что именно стоило сделать лучше и какие нюансы следовало учесть?

Я неделю рисовал обычный куб для своей игры и всё равно облажался

В любом случае, в проделанную работу были вложены конкретные идеи и для того, чтобы вносить в неё серьёзные изменения, придётся менять очень многое. Может быть даже было бы проще, имея обретённые знания, начать всё заново с новым подходом. Или же пытаться довести прототип до релиза в таком виде. Ведь нет никакой гарантии, что переделки не окажутся пустой тратой времени. Не простой выбор... Визуализировать его можно следующим образом:

Стоит дед лет 25. Думает.

Перед ним 2 кнопки: одна запускает новый проект, чтобы начать всё заново; другая доводит прототип до релиза. Но на какую из них стоит нажать?

Долго он думает. Понимает, что старые наработки никуда не денутся. И, скорее всего, будет куда правильнее начать по новой. Чтобы и игрокам удобнее играть было, и игра получилась более качественной.

Вот он тянется к соответствующей кнопке. Уже прислонился к ней рукой.

И вдруг резко поскальзывается, теряет равновесие и падает.

И его рука нажимает на случайную кнопку…

Интересно, куда именно он попал..

….

...

...

...

...

Упс…

6868
24 комментария

Абстрактные текстуры отличаются между собой, но не запоминаются.
Проще всего ориентироваться "по классике": белый потолок, кирпичные стены и только пол с абстрактным узором.

20
Ответить

Кстати, да. Автор по сути сделал все грани равнозначными, без четкого пола, потолка и стен. Так бы игроки могли понять: "ООО, я на потолке, потому что у меня люстра под ногами, и смотрю сверху вниз на стол и диван".

2
Ответить

Комментарий недоступен

18
Ответить

А можно "повесить люстру". Просто любой запоминающийся объект, встречающийся в единственном числе, видимый из любой точки пространства. Сделать объект сложной формы, ещё лучше сделать так, чтобы при взгляде из разных областей он у игрока вызывал разные, но каждый раз запоминающиеся и узнаваемые ассоциации, тогда игрок мысленно сам разделит пространство на участки и будет ориентироваться в них по "люстре".

13
Ответить

+ Можно сделать то же самое но с большим выделяющиемся монолитом на полу

Ответить

Довести до релиза. Ну, может, кто-то поругает, кто-то похвалит; заметят или не заметят. В любом случае, дойти до финиша побитым и ползком - лучше, чем не дойти. Лучше, чтобы заметили, чтобы дискуссия появилась.
Пока, ничего не понятно, всё запутанно. Но много всяких фишечек, которые хочется поизучать. И получившуюся сложность можно использовать как плюс, а не минус. Сам проект пока как разобранный паззл: есть отдельные красивые качественные детальки. А как их собрать - вопрос. Как сделать так, чтобы игроку было интересно искать выход?
По представленным материалам на странице в Steam, есть предчувствие, что автор ещё отметится в истории компьютерных игр.

12
Ответить

зачем делать 6 сторон уникальными если для ориентации достаточно 3х.
то есть пол покрасить зеленым, потолок в синий, одну из стен например в черный, остальные оставить белыми.
расставить хотябы 1 объект ориентир (вбабахать маяк) который просматривается с любой точки куба, тогда положение в пространстве станет еще очевидней.

то что на скринах это однородная масса в целом, естественно люди будут путаться.

5
Ответить