Дневник разработки №1, Harmonis: the hand-made kingdoms
Введение
Веб-разработчик. Давно хотел заняться чем-нибудь более веселым, и вот вышел UE5.2, и я понял — пора. (Правда спустя пару недель после релиза)
Изначально взялся делать что-то с конечной целью, ставя перед собой понятные задачи с постепенным увеличением сложности.
Поїхали
Так, мой бэкграунд — ну очень далек от игр и подобного, но тем не менее у меня есть преимущество — я знаю алгоритмы, структуры данных и абстракцией и всем вот этим меня не напугать; тем не менее изначально было чувство что тыкаюсь как слеповатый котенок :)
Первая мысль после запуска движка — окей, нужно хоть как-то начать во всем ориентироваться. Привет, ютьюб
Вторая — окей, я примерно понимаю что где находится, нужна идея, причем простая, но с механиками. О, пусть будет генерация уровня по гексагоном... Гугл... Ладно, с помощью знакомых инструментов я такой мог бы набросать за десять минут, но в тот момент я потратил два часа :D
Я нашел классное видео с объяснением как сделать то, что мне нужно, но... потратил огромное количество времени, к счастью, не зря. Автор часто опускал те или иные моменты, делал быстрый монтаж, и поэтому приходилось самому копаться и понять что именно он сделал между А и B. В итоге у меня получилось...
Какая красота (нет), но оно работало. Ура!
В следующие дни я пытался продраться через АД. Что такое материалы? Что такое инстансы? Как настроить чертову камеру? Почему не работает клики по объектам?... Почему пара источников света УБИВАЕТ ВСЮ производительность?...
И вот, хексагоны генерятся, и даже временами из двух вариантов — домики, деревья. Даже материал для плит кое-как настроил. Но что дальше?
А дальше я понял что делаю клон дорфромантика :D
Остановило ли это меня? Нет, я не вижу в этом ничего плохого, тем более с этого момента у меня появилась возможность подсматривать как сделаны те, или иные механики ту ребят, чтобы не гадать «а почему у меня все так криво ощущается».
Дальше я решил что пора сделать все чуточку сложнее, и каждый гексагон должен уже внутри делиться на некоторое количество нод. То есть, вот у нас шесть сторон, и по две стороны занимают три ноды. Или же одна нога на четыре стороны, и одна на две. Или... ну вы поняли.
Параллельно я продолжаю копаться с модельными, освещением и всем таким прочим.
Если правильно помню, где-то спустя неделю вопрос освещения стал прямо важным. Я не понимал почему у меня так плохо, откуда столько разных настроек света, и как уже сделать его нормальным. (Спойлер, чтобы сделать нормальное глобальное освещение нужно не просто подвинуть ползунок в сторону «шикарно», а изрядно покопаться, если раньше у вас не было такого опыта. Просто знать что нужны hdri карты, что нужны материалы, где их доставать, что за что отвечает и так и тому подобне.
Вот эти два парня мне в этом сильно помогали:
Ах да, еще был блендер и уроки по нему, просто чтобы хотя бы понимать как сделать простенькие модели для себя, как редактировать чужие-готовые-бесплатные.
В какой-то момент я понял, что все идет не плохо, и я получаю удовольствие. Захотелось и правда довести работу до конца. И раз доводить до конца, то нужно... сделать не только играбельно, но и красиво.
Я брал (да и беру) бесплатные модели с sketchup, но вот как сделать все универсальным? Нужен был единый дизайн, основа, от которой я уже мог бы пойти дальше.
Я просматривал готовые паки с моделями и сценами, и мне попалась в эта красота. Да, я купил ассет, признаю. Кидайте в меня помидоры. Но это классный набор моделей, и что важно, материалов, постэффектов, настроек освещение — и все это для актуальной версии движка, с использованием всех доступных инструментов, это мне сильно помогло в понимании как и что работает.
Давайте чтобы не затягивать статью, я быстро пробегусь по тому, что было сделано за следующую неделю. (То есть до сегодняшнего дня)
- Продолжающиеся попытки сделать все «визуально приятным»;
- «Рефакторинг»;
- Создание новый плит по клике на пустых местах, звуки, введение в местную систему анимаций (верчение плит по наведению), разные «теги» для сторон шестигранников — допустим деревья сочетаются с деревьями, домики с домиками и так далее, было немного сложновато из-за блюпринтов.
- Оптимизация... Я знал что такое лоды, но вот столкнулся с ними сам. А как иначе, когда в какой-то момент начинаются 20 фас, хоть ну никак все не должно быть так плохо.
- Куча разного веселья с настройками проекта, которые влияют на производительность в несколько раз, но узнаешь об этом только когда начинаешь целенаправленно копать.
- БАГИ
Эпилог
На самом деле я много не упоминал, иначе все стало совсем долгим и скучным. Что собираюсь сделать сейчас? Да продолжать работать на игрой.
Да, оно не уникальная идея, но я считаю что получается не плохо, и не собираюсь делать глупый клон чего-то, без своих собственных идей.
Работы впереди еще очень много, ОЧЕНЬ много, я это прекрасно понимаю. Текущий прогресс получился более-менее заметным, как минимум для меня, поэтому я и решил показать людям над чем работаю.
Сейчас меня есть свободное время, и я могу тратить на это по 8-10 часов в день, как и планирую продолжать следующие два месяца, с перерывом где-нибудь посередине на недельку. Если все пойдет как я запланировал, но релиз ближе к началу осени, или в конце лета.
Ссылочка, ну вы понимаете ;)