Дневник разработки №1, Harmonis: the hand-made kingdoms

Дневник разработки №1, Harmonis: the hand-made kingdoms

Введение

Веб-разработчик. Давно хотел заняться чем-нибудь более веселым, и вот вышел UE5.2, и я понял — пора. (Правда спустя пару недель после релиза)

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

Поїхали

Так, мой бэкграунд — ну очень далек от игр и подобного, но тем не менее у меня есть преимущество — я знаю алгоритмы, структуры данных и абстракцией и всем вот этим меня не напугать; тем не менее изначально было чувство что тыкаюсь как слеповатый котенок :)

Коротко как все выглядит на данный момент
Дневник разработки №1, Harmonis: the hand-made kingdoms

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

То самое видео
То самое видео

Вторая — окей, я примерно понимаю что где находится, нужна идея, причем простая, но с механиками. О, пусть будет генерация уровня по гексагоном... Гугл... Ладно, с помощью знакомых инструментов я такой мог бы набросать за десять минут, но в тот момент я потратил два часа :D

Это классное видео с объяснением того, как работает алгоритм генерации сетки гексагонов в принципе... Но ужасный туториал, если вы совсем новичок. Для нуждающихся: https://www.youtube.com/watch?v=A-1O4BHdkfA
Это классное видео с объяснением того, как работает алгоритм генерации сетки гексагонов в принципе... Но ужасный туториал, если вы совсем новичок. Для нуждающихся: https://www.youtube.com/watch?v=A-1O4BHdkfA

Я нашел классное видео с объяснением как сделать то, что мне нужно, но... потратил огромное количество времени, к счастью, не зря. Автор часто опускал те или иные моменты, делал быстрый монтаж, и поэтому приходилось самому копаться и понять что именно он сделал между А и B. В итоге у меня получилось...

Это чуть более поздний скриншот, но примерно того-же дня. 
Это чуть более поздний скриншот, но примерно того-же дня. 

Какая красота (нет), но оно работало. Ура!

В следующие дни я пытался продраться через АД. Что такое материалы? Что такое инстансы? Как настроить чертову камеру? Почему не работает клики по объектам?... Почему пара источников света УБИВАЕТ ВСЮ производительность?...

Я, пытающийся сделать свой первый материал для поверхности. Правда он почему выглядит всрато, но...
Я, пытающийся сделать свой первый материал для поверхности. Правда он почему выглядит всрато, но...

И вот, хексагоны генерятся, и даже временами из двух вариантов — домики, деревья. Даже материал для плит кое-как настроил. Но что дальше?

Дневник разработки №1, Harmonis: the hand-made kingdoms

А дальше я понял что делаю клон дорфромантика :D

Остановило ли это меня? Нет, я не вижу в этом ничего плохого, тем более с этого момента у меня появилась возможность подсматривать как сделаны те, или иные механики ту ребят, чтобы не гадать «а почему у меня все так криво ощущается».

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

Маленькие циферки — обозначение для меня как там сгенеировались наши шестигранники.
Маленькие циферки — обозначение для меня как там сгенеировались наши шестигранники.

Параллельно я продолжаю копаться с модельными, освещением и всем таким прочим.

Об этом лучше забыть, тссс.
Об этом лучше забыть, тссс.
А тут освещение вроде бы нормальное, а вроде бы... странноватое.
А тут освещение вроде бы нормальное, а вроде бы... странноватое.

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

Вот эти два парня мне в этом сильно помогали:

Ссылочка раз https://www.youtube.com/watch?v=lpUirw6S_AM
Ссылочка раз https://www.youtube.com/watch?v=lpUirw6S_AM
Ссылока два https://www.youtube.com/watch?v=fSbBsXbjxPo
Ссылока два https://www.youtube.com/watch?v=fSbBsXbjxPo

Ах да, еще был блендер и уроки по нему, просто чтобы хотя бы понимать как сделать простенькие модели для себя, как редактировать чужие-готовые-бесплатные.

О май гад, как сочно. Лучше вам не знать сколько здесь полигонов :D
О май гад, как сочно. Лучше вам не знать сколько здесь полигонов :D

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

Я брал (да и беру) бесплатные модели с sketchup, но вот как сделать все универсальным? Нужен был единый дизайн, основа, от которой я уже мог бы пойти дальше.

Совсем неудачная попытка попытка
Совсем неудачная попытка попытка

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

Красотища ведь, а?
Красотища ведь, а?

Давайте чтобы не затягивать статью, я быстро пробегусь по тому, что было сделано за следующую неделю. (То есть до сегодняшнего дня)

  1. Продолжающиеся попытки сделать все «визуально приятным»;
  2. «Рефакторинг»;
  3. Создание новый плит по клике на пустых местах, звуки, введение в местную систему анимаций (верчение плит по наведению), разные «теги» для сторон шестигранников — допустим деревья сочетаются с деревьями, домики с домиками и так далее, было немного сложновато из-за блюпринтов.
  4. Оптимизация... Я знал что такое лоды, но вот столкнулся с ними сам. А как иначе, когда в какой-то момент начинаются 20 фас, хоть ну никак все не должно быть так плохо.
  5. Куча разного веселья с настройками проекта, которые влияют на производительность в несколько раз, но узнаешь об этом только когда начинаешь целенаправленно копать.
  6. БАГИ
Дневник разработки №1, Harmonis: the hand-made kingdoms
Дневник разработки №1, Harmonis: the hand-made kingdoms
Тут конечно не видно (так как толком не настроено), но это очень классный и универсальный шейдер снега. Держите ссылочку на туториал https://www.youtube.com/watch?v=ppdbj_CPk7A
Тут конечно не видно (так как толком не настроено), но это очень классный и универсальный шейдер снега. Держите ссылочку на туториал https://www.youtube.com/watch?v=ppdbj_CPk7A

Эпилог

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

Да, оно не уникальная идея, но я считаю что получается не плохо, и не собираюсь делать глупый клон чего-то, без своих собственных идей.

Работы впереди еще очень много, ОЧЕНЬ много, я это прекрасно понимаю. Текущий прогресс получился более-менее заметным, как минимум для меня, поэтому я и решил показать людям над чем работаю.

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

Ссылочка, ну вы понимаете ;)

Дневник разработки №1, Harmonis: the hand-made kingdoms
26
15 комментариев

Вместо шестиугольных клонов дорфромантика почему бы не поисследовать другие формы?

2

Думал об этом, но шестигранники не зря часто используются для основы сетки;

Они визуально красивы при сочетании друг с другом, сетка состоит только из шестигранников без других элементов;

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

1

Раньше был портал от эпиков learn.unrealengine.com а сейчас его нет, не знаешь, что случилось?

Сейчас редирект на https://dev.epicgames.com/community/

Это не оно?

PS.

У меня мак на м1про, и только с версии UE5.2 движок стал полноценно работать на этих устройствах — это, в том числе, причина почему я решился.

В интернете ​не очень хорошие бенчмарки на ютюбье и отзывы на реддите насчет производительности, но по факту все очень даже хорошо — но придется переткнуть с пяток настроек в проекте и самом движке, чтобы увеличить фас с 20 (по дефолту) до 80; Большие сцены бесплатных городов от мегаскана тоже идут приемлемо на средних/высоких настройках детализации.

Так что не бойтесь, если ваше основное устройство примерно схоже с моим.

на м1 про еще 5,0 использовал, было все гуд. в 5.2 нативно стал работать