SamuKata
teedeezet
teedeezet

boosty


Итоги месяца: февраль 2024

Привет всем спонсорам!
 
Итоги месяца в этот раз получились не совсем обычными. Всё дело в том, что почти весь февраль я посвятил новому ролику (который всё ещё делается, но выйдет уже скоро).
Работа над проектом, конечно, тоже велась. Правда, мне пришлось отложить все старые планы и заниматься тем, что срочно понадобилось сделать для показа в видео.
 
[Grim Wild]
 
Процедурные текстуры поверхностей
 
Я сделал пару новых текстур по новому образцу. Если раньше поверхности были .png картинками, которые явно повторялись через N клеток, то сейчас я пошёл по другому пути: создавать более комплексные шейдеры.
Текстура земли, 32x32 клетки. На самом деле, я мог показать и 256x256 клетки, явных повторов там бы тоже не было
  
Шейдер земли всего из двух текстур:
1) Шум Перлина (в будущем может быть заменён на другой алгоритм для более красивых результатов)
2) Бесшовные пятна, каналы которых (R/G/B) можно комбинировать и получать разные результаты
В будущем я вообще могу объединить эти текстуры в одну, используя свободный Alpha канал
 
Шумы и пятна комбинируются в разном масштабе и умножаются друг на друга. Такой подход позволяет создать паттерн, который не повторяется настолько очевидно, как обычная текстура. По этому же принципу я буду делать и остальные поверхности.

Новая текстура снега (вода пока что старая). Края "ледника" здесь слишком рваные, и это уже исправлено. Карта 128x128 клеток

Новая текстура лавы. "Линии" на ней покачиваются и меняют свою интенсивность (контраст). К сожалению, Бусти не поддерживает .gif, чтобы показать вам текущий результат. В любом случае, она будет ещё доделана и добавлена в новый ролик 
 
Пользовательский интерфейс
 
Для нового ролика мне пришлось сделать концепт окна модов и сразу же перенести его в Unreal Engine.

Все "моды", которые вы здесь видите - фейки. Функционала для создания модов в проекте пока что нет
 
Работа оказалась неожиданно полезной, потому что я выяснил пару интересных вещей:
1) Размер шрифта в Figma не равен размеру шрифта в Unreal Engine. Всё это время движок меня обманывал. Теперь, когда я разобрался, в чём же дело (UE использует DPI 96, а Figma - 72), макеты из Фигмы могут переносятся в проект без каких-либо отличий во внешнем виде.
2) Старый шрифт (
Roboto Condensed), который мне и так надоел, оказался нечитабельным. Представляю вам Roboto Flex, который теперь используется в игре по умолчанию:  
Да, они из одного семейства и похожи друг на друга. Основная разница в том, что Flex (от слова Flexible) - гибкий, и его можно настраивать как угодно. Если и новый вариант не будет удобен игрокам, я смогу с лёгкостью добавить символам ещё немного ширины. 
 
Всё же, слишком широкие шрифты игре не подходят: в виджетах присутствует слишком много информации, которая должна помещаться в одну строку и не быть обрезанной.
 
Внедрение Lua
 
В новом ролике я затрону тему модификаций и того, что они делаются через скрипты на Lua. Для наглядной демонстрации мне пришлось внедрить в проект Lua, и результаты меня полностью устраивают.
 
Пока что я продумываю общую архитектуру скриптов (уже планируется 3 уровня "привилегий" виртуальной машины: для внутриигровых скриптов, для модов и для тестирования) и понемногу изучаю язык, в котором до этого у меня опыта не было.
 
Тот факт, что Lua есть в игре уже сейчас, поможет с самого начала закрытого тестирования проводить стресс-тесты, создавая требуемую логику прямо на месте.
 
В работе
 
Работа, которую придётся перенести на март, включает в себя все мои обещания с прошлого месяца. И знаете, это даже хорошо! За февраль я немного додумал систему условных спрайтов и понял, как её можно улучшить.
 
В феврале я также нарисовал какое-то количество новых спрайтов, но спойлерить содержание ролика я не хочу. Покажу вам их в итогах марта 🙂
 
[Важно: Что такое Level-Agnostic системы]
 

Раз работы, о которой я могу вам рассказать, в этот раз не так много, то позвольте мне вместо итогов расписать в этом посте важную информацию.
 
Я много раз упоминал "Level-Agnostic системы" ("независимые от уровня"). Всё, что я говорил раньше - это то, что клетки из обычного набора данных становятся полноценными игровыми объектами. И как любые объекты, они существуют именно в игровом мире, а не на уровне.
 
Если клетка существует в мире, значит, всё, что находится на ней, тоже: поверхности и свет; навигация пешек и динамические жидкости.
 
Всё это приводит нас к тому, что в Grim Wild будет открытый мир (open world).
 
Р
азделения на изолированные уровни не будет. Вместо них будут чанки (64x64 клетки), которые могут свободно подгружаться по мере игры.
 
На самом деле, для меня самого такой исход - не сюрприз. Я очень давно искал возможности реализовать в проекте открытый мир, и, наконец, нашёл (точнее, реализация сама нашла меня).
 
Я специально в прошлые годы разработки почти никак не касался геймплея. И именно поэтому говорил, что фундамент проекта сделать важнее, чем "наслоения" в виде игрового процесса.
 
Так получилось, что вся уже сделанная архитектура проекта идеально подходит для открытого мира. Точкой в вопросе реализации открытого мира стала новая и супер-эффективная система отрисовки спрайтов. Напоминаю, что она всё ещё в процессе реализации, но уже сейчас прирост производительности от неё очень большой.
 
В итоге я решил, что упускать возможность уйти от RimWorld, к тому же так красиво, нельзя.
 
Плюсы открытого мира:

• Уровень игрока не изолирован и не ограничен. Можно строить какие угодно постройки и не бояться, что закончится место
• Мировые поселения могут занимать несколько клеток, а не пытаться уместиться на одном уровне. Это касается и других структур (квестовых в том числе)
• Разделение на "клетку уровня" и "клетку планеты" больше не будет, они соединятся
• Конвейеры и транспорт были бы оправданы
 
Минусы открытого мира:

• Обычно в играх с open world под управлением игрока находится какая-то одна пешка. В GW мы управляем колонией, и чтобы подгружать новые чанки, надо привести туда колонистов. Пока что удобство такого подхода под вопросом
• Многоярусные уровни перестают иметь какой-либо смысл. Я делал их только ради того, чтобы у игрока на изолированном уровне было больше пространства.
Хорошие новости: если многоярусые уровни будут убраны из игры, то ВСЕ механики и интересности оттуда могут быть спокойно перенесены в скалы (больше горные массивы, где можно делать подземные базы). Игра не потеряет ничего!
 
Что важно знать про Level-Agnostic
 
Пока что все разговоры про Open World - это, скорее, идеи. Есть вероятность, что на каком-то этапе разработки всё сорвётся, и придётся делать консервативный (урезанный) вариант открытого мира.
 
Я обдумывал переход на open world больше четырёх месяцев. До сих пор ни одной серьёзной преграды на пути к его реализации я не увидел. Думаю, это очень хороший знак!
 
Часто задаваемые вопросы (из будущего)
 

Думаю, у вас в голове сейчас очень много вопросов. Я попытаюсь ответить на некоторые из них.
 
– Сильно ли из-за L-A растянется время разработки проекта?

Не думаю. Все фундаментальные механики остаются теми же. Объекты до сих пор существуют в мире и состоят из логических компонентов. Фракции и поселения почти никак не поменялись (разве что стали многоклеточными). Как я уже говорил, я делал очень гибкий фундамент проекта, так что впихнуть в него открытый мир сейчас вполне реально.
 

– Это не слишком импульсивное решение? Оно точно приведёт проект в правильную сторону?

Решение о внедрении открытого мира я обдумывал очень долго. Я несколько раз перерыл все доски в Трелло и пересмотрел свои старые ролики, но не смог найти ни одного серьёзного довода против реализации этой системы. Я считаю, что открытый мир - это то, чего не хватало игре уже больше года. Зрители с самого начала видели в проекте нечто большее, чем обычная копия RimWorld, и я, наконец, могу им это дать.
  

– Многоярусные уровни оставить нельзя? Ты всё-таки говорил про них в роликах!

Да, чем-то пожертвовать всё-таки пришлось. Реализовать их всё ещё можно, но они не имеют теперь никакого смысла. В теории, ярусы могут быть добавлены даже модами (с технической стороны, каждый этаж = отдельная "планета"). Мне с самого начала не нравилась концепция трёхмерного игрового процесса в двумерной игре. Теперь всё "на своих местах". К тому же, ярусы добавляли очень много логических дыр, с которыми я не был в состоянии справиться.
 

– А много старого кода придётся удалить

Нет, не так много. В основном удалится код, который я писал в 2021-2022 годах. В 2023 я занимался тем, что останется в проекте навсегда.
 

– Разработка точно двигается вперёд, а не стоит на месте?

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

– Как нам вообще понимать, какой ты видишь игру? Как понять, что именно мы спонсируем?

В целом, моё видение игры отражено в роликах и публичных досках в Трелло. Я, прямо как и зрители/спонсоры, не могу видеть точной картины того, что у меня получится. Я вижу лишь направления развития, и о них же я и рассказываю вам.
Отследить логику моих решений не так сложно: я полностью избавляюсь от "наследника РимВорлда" и создаю свою уникальную игру. Следовательно, в будущем проект может отбросить какие-то другие унаследованные идеи, заменив их своими.
  
  
Если у вас остались вопросы, задавайте их в комментариях к посту или в Дискорде (пожалуйста, используйте чат #команда-поддержки, потому что зрителям об открытом мире я пока сообщать не хочу. Это будет сделано как минимум в 8 серии)
 
[Публичная деятельность]
 
Шестая серия активно монтируется. Она оказалась даже сложнее, чем пятая, так что затраты времени на визуализацию моих мыслей увеличились.
 
Ситуацию усугубляет работа в Premiere Pro на моём слабом ПК (на самом деле, у меня ноутбук). Чуть ли не 50% времени (я не шучу и не преувеличиваю) у меня тратится на лаги или ожидания.
 
Однажды я рендерил (обрабатывал) минутную сцену... 2 дня подряд. В первый день Премьер сначала зависал, потребляя 100% ОЗУ, а потом, после двух часов рендера, выдал мне ошибку без пояснения. Во второй день я потратил на рендер аж 5 часов. И это было не целое видео, а всего лишь одна сцена оттуда.
Кстати, Unreal Engine способен обработать эту же сцену в реальном времени. Это в тысячи раз быстрее Премьера. Правда, монтировать ролики на C++ - явно какое-то извращение
 
Новая серия выйдет в марте. Я очень хочу доделать её в первой половине, но ничего обещать не могу - лаги от моих пожеланий не уменьшатся.
 
Напоминаю, что после выхода ролика я сделаю для вас "Послевкусие" с подробным разборов тезисов из видео. А пока что, спасибо за прочтение! 
 

Итоги месяца: февраль 2024 Итоги месяца: февраль 2024 Итоги месяца: февраль 2024 Итоги месяца: февраль 2024 Итоги месяца: февраль 2024 Итоги месяца: февраль 2024 Итоги месяца: февраль 2024

Comments

<div ><div><span class="text">Александр Гринько, Хорошо, спасибо за интересный вариант развития</span></div></div>

teedeezet

<div ><div><span class="text">Очень интересный лог. Автор не подумывал над тем чтобы поститься на хабре, там нормально так зарекламиться можно (ну и найти заинтересованных в прямой поддержке проекта, кодовой базы)</span></div></div>

Александр Гринько

<div ><div><span class="text">ну, зато теперь до торговцев можно дойти, и до другой колонии тож проще дойти</span></div>

Vampyr Doctor


More Creators