Отчёт разработки #2
Всем привет! Это второй отчёт о разработке проекта UnderBorn! Этот отчёт будет не таким объёмным, как первый, хоть и прошло значительно больше времени - пока что вынужденно занят ддругими своими проектами. Несмотря на это, за пару месяцев были сделаны достаточно монументальные изменения. Я всё ещё продолжаю работу над инфраструктурой, основной логикой и базовыми механиками, а также начал отрисовывать GUI и продумывать ЛОР и сюжет игры!
Попытки оптимизации
Не покидают мысли, что из игры можно выжать больше ФЭПЭСОВ! С такими мыслями я сел за оптимизацию текстур (texture arrays, DDS текстуры), а также за рендеринг и отсечение того, что не нужно рендерить в игре. По идее мир будет состоять из большого количества объектов, и вопросы оптимизации стоят в первую очередь!
Было весело, но немного больно - отвалились все текстуры, не рендерились полупрозрачные блоки, а иногда мир вообще превращался в кашу. Тем не менее, какие-никакие результаты удалось получить, всё это дало прирост 3-5% к FPS (что-то в районе 1100-1200 FPS на моей уже старенькой GTX 970 и Ryzen 5 5500).
Сейчас у меня следующая задача - выпилить полностью Optifine из кода и переписать код, смотря на Angelica. Angelica - это по сути альтернативный мод для оптимизации, который тащит из более современных версий всю логику и лучшие практики и портирвоанные Sodium и Iris (улучшенные шейдеры, современные методы оптимизации, быстрая скорость загрузки). А самое главное, что у него полностью открытый исходный код, что позволяет изучать то, что там в нём написано!
По сути сейчас выпиливается OptiFine из-за его ужасной работы с шейдерами. Мне нужно нормальные шейдеры для дальнейшей разработки, чтобы светились метки и разные объекты!
Также окончательно выпилил modDiscoverer, максимально порезал остатки ASM с переносом кода в сам движок - это даст ещё более быструю загрузку игры на старте.
ЛОР и сюжет

Начал прорабатывать ЛОР и сюжет! Пока что готовы описания корпораций - основных фракций в игре (их всего 7). Также появились 2 второстепенных образования - Совет Медиата (по ЛОРу это высший орган власти, который управляется представителями корпораций), микробизнесы и 2 локации - "Буферная Зона" (независимый рынок) и "Площадь 7 корпораций" (по сути стартовая центральная локация).
Описаны валюты и различные термины. Также описал первый ивент, который будет происходить в игре - Кортежи Теневого Барона.
Так как всё скорее всего несколько раз изменится, сильно спойлерить сюжет и ЛОР не буду, подробнее буду рассказывать в следующих девлогах, когда всё сложится в более цельную картину - следите за обновлениями!
Проработка GUI и концепт интерфейса персонажа

Начал отрисовывать новый GUI, который будет использоваться в игре. Пока что начал с интерфейса персонажа - здесь можно взаимодействовать с персонажем: выставлять броню и оружие, наблюдать за характеристиками, видеть состояние - бафы/дебафы, здоровье, броня, энергия. Также справа есть матричный инвентарь, балансы.
Также можно увидеть, что всё имеет вес, оружие имеет прочность (думаю, оно не будет полностью ломаться, но от состояния будут зависеть его показатели), предметы имеют редкость и размеры.
Само изображение персонажа взято из интернета для заглушки (все права принадлежат владельцам изображения) в качестве демонстрации, чтобы отразить, как примерно может выглядеть интерфейс.
Скорее всего, я буду дальше придерживаться такой стилистики, и этот дизайн доживёт до релиза. Но всё может измениться в любой момент!
Пост про GUI можно было увидеть раньше всех ещё в мае, подписавшись на Boosty! Мне важна ваша поддержка, она позволит быстрее выпустить игру!
Смена текстур и плавные склоны
Зашил в игру новые текстуры, более высокого качества, стандартных текстур в игре больше нет. Скорее всего это временное решение, и пак ещё несколько раз поменяется под более апокалиптичные, но пока что лучше не нашёл - будут такие! :)
Также одно из главных нововведений этого девлога: плавные склоны! Я достаточнео долго мучался с ними, и наконец домучался! Теперь все блоки Carpenter's blocks имеют абсолютно плавну коллизию, а не ступенчатую, как это было раньше. То есть подскакиваний на блоках больше не будет, и (я надеюсь) это всё даст более комфортный геймплей.
Мир и механики
Продолжаю подстраиваь мир под игру и выпиливать всякий мусор:
- Полностью удалены редстоун и механизмы - они просто не нужны в игре (и не понятно, насколько они излишне нагружают игру).
- Мир теперь органичен плоской картой 10000x10000. Стандартные генераторы мира удалена полностью - от них нет никакого смысла, карта будет строиться руками (мной или билдерами). Карты больше 10к в целом не будет, поэтому даже смысла неагружать серверы нет!
- Удалены ад и край - тут и так уже постапокалипсис и сплошной ад и выживание 😈
- Полностью выпилена логика LAN (локальных серверов) и открытие мира по LAN
- Наконец-то выпилил логику ванильных вкладок, сейчас всё рендерится через кастомный GUI
- Полностю удалена логика установки блоков вне креатива. Вообще! Вот вообще никак теперь ;)
- Удалена подсветка блоков в режиме выживания, теперь мир ощущается цельно
- Удалены партиклы при падении на блоки, попытке ломания блоков
- Удалено взаимодействие с Carpenter's blocks вне кератива
Архитектура игры/сервисов, микросервис банка, улучшение сайта

Составил маленькую такую схемку архитектуры, какие сервисы есть и как всё взаимодействует между собой. На серверах всё теперь общается через gRPC а не HTTP, чтобы уменьшить задержки. Также появилась аналитическая база логов на ClickHouse.
Также немного изменил сайт, пересадил его на Strapi. Так что весь контент теперь будет лежать только здесь! Это всё ещё не релизная версия, но пока что для ведения девлога - сойдёт :)
Появилась система банков и микросервис для него. Через этот сервис будет проходить вся игровая и донатная валюта. Никаких предметов для валюты! Всё это позволит не писать костыли вокруг предметов, а удобно взаимодействовать с числами!
Я продолжаю развивать свой проект, хоть и не такими быстрыми темпами, как хотелось бы. Тем не менее, разработка не стоит на месте! Старабсь развивать все направления в игре, начиная с каких-то базовых архитектурных и системных решений, заканчивая ЛОРом и GUI! Спасибо, что прочитали этот девлог - дальше только больше!
Подписывайтесь на все соц.сети!
- Telegram: https://t.me/underborn_game
- Discord: https://discord.gg/j8m6eyb3kV
- VK: https://vk.ru/underborn
Также напомню, что у меня есть Boosty, где вы можете поддержать разработку и помочь с развитием игры! Все, кто на начальных этапах поддержит меня, получит приятный бонус на старте и особые трофеи/ачивки! Ссылка на Boosty: https://boosty.to/underborn