Вернуться: Снова 3D

Всем привет!

Я решил снова попробовать себя в трех измерениях. И самое сложное для меня это создание графики для игры. Чем проще, тем лучше. Поэтому минимализм очень помогает. И вот появился Куб.

01.png

О графике

Игр, где используется эта незамысловатая фигура много. Поэтому оставлять его таким «простым» не хочется. Но сначала нужно ответить на вопрос: Куб, а ты кто?
От этого может зависеть дальнейшая разработка. И он похож на пиксель. Героя игры со старых консолей, который попал в другой мир! Если оставить Куб в первоначальном виде, то он будет выглядеть как посторонний, но это не совсем то. Хочется, чтобы объект вписывался в окружающую обстановку и, при этом, был инородным. И появилась идея «стилизации». Надо создать некий рельеф/текстуру на гранях, и так, чтобы можно было легко применить эффект ко всем объектам окружения. Если всё будет в одном стиле и приближено к реальным объектам, то белый куб будет выделяться.
Появилась идея добавления на нашего персонажа «видимость полигонов», как бы обновление, расширение графики. Я нашёл простой способ, в котором нам необходимо 4 операции из Blender’а.

  1. Операция Subdivide.

02.png

2. Модификатор Bevel.

03.png

3. Модификатор Triangulate.

04.png

4. Модификатор Displace.

05.png

06.png

Вот так и получили главного героя. К остальным объектам (готовым моделям) применяем необходимые из этих 4 операций.

07.png

Blender для меня был инструментом для подготовки объекта (сетки), все материалы я настраивал в движке непосредственно. Вот такой мой путь абсолютного новичка к некому стилю. Наверное, это можно назвать низкополигональные модели, но я наоборот добавляю их, так что не знаю.
Есть, конечно, ещё способы формирования «рельефа» на объекте за счёт материалов (dump), карты нормалей, но я выбрал этот как более быстрый и простой для меня на данный момент.

Об игровой механике

Сам куб мне и подсказал игровую механику. Мне вспомнился Кубик Рубика, с его вращениями. Так почему бы не применить это для уровней, в ограниченном виде. Менять окружения для меня всегда интересно, да ещё если и двигаться по всей площади объекта.
Получив идею игры, я размышлял как должен двигаться персонаж. Можно было бы сделать просто скольжение и прыжки, как в 3D-платформере (например, в игре Captain Toad: Treasure Tracker). Но это «нереалистично для куба». Так же появились бы проблемы с расположением персонажа при вращении, чтобы его «не закусило».

Выбор пал на движение по клеткам и, конечно, поворотами. Сделать это не сложно, если кому-то лень придумывать самому, то можно воспользоваться уроками. При изучении движка Godot Engine, я находил эти уроки. И сейчас просто вспомнил про них:

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

Уровни

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

  • уровни делать маленькими;
  • вращений нужно делать в меру;
  • проектировать уровни «без ям».

Я старался придерживаться этих правил. Хотя в начальных уровнях я специально нарушил и получилось место, куда можно упасть и не выбраться. Но для этого есть кнопка в меню, чтобы обучить игрока.
Уровней получилось немного, но их тестирование занимает время: при каждом повороте я бегал по уровню искал «ямы». Надеюсь, я поправил их все. Перезапускать уровни в таких играх мне не нравится, лучше если игрок может исправить или вернуть без этого.

В заключении

Буду ли снова делать игры в 3D? Данный вопрос остаётся у меня без ответа (хотя я устал от цифры три). Ведь главное — это интересная идея, а не сколько там плоскостей.
Спасибо, что дочитали! Удачи! =)