Devlog #14: Обновление игрового прогресса

Всем привет! Это 14-й devlog. За последние 25 дней проделана большая работа — я рад представить первый Major Update (версия игры 260327), который посвящен теме прогрессии игры и сильно улучшает её. Всего я сделал ~100 изменений разного масштаба, но опишу только самые важные из них.

Прогрессия — это то, что заставит вас не только спускаться в подземелье, но и подниматься. Она добавляет базовые RPG-механики. С каждым новым обновлением это будет всё больше видно: вам нужно планировать ресурсы, следовать механикам мира, исследовать. Т.е. это настоящий поход в подземелье и обратно — история, которая у каждого будет уникальна.

В целом есть довольно много разных вещей, которые я не успел сделать — это ещё примерно ~100 изменений. Я о том, что размер этого обновления мог быть ещё больше, чем получился по факту. Но я сделал всё самое основное, что касается темы обновления. Хотя для многих может показаться: куда ещё больше? Об этом вы поймёте, прочитав список изменений ниже.

Следующие крупные обновления я планирую такие:

  • Апрель: Боевая система
  • Май: Изучение мира

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

Также я не сделал систему прокачки уровней — потому что мало мобов и нет босса. Эта часть планируется пока что на апрель, потому что именно в этот момент будет проработка эффектов, видов урона, оружия и новых мобов.

Теперь перейдём к самому обновлению — я разделил его на части для вашего удобства чтения.

Инвентарь

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

Devlog #14: Обновление игрового прогресса

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

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

Вы можете взять предмет в одну из рук, нажав на кнопки в меню информации о предмете, или использовать сразу через кнопку с иконкой шестерёнки.

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

Devlog #14: Обновление игрового прогресса

Вы также можете удалить предмет, перетащив его на иконку крестика.

Для использования предмета вам надо нажать той клавишей мыши, в которой предмет. Так можно использовать расходники по типу зелья или еды. Хорошие новости: у нас есть супер популярные багеты для регенерации хп. 😅

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

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

Торговцы

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

В целом, каждый торговец имеет свою специализацию, и вместе они покрывают все основные потребности. На данный момент реализована только часть торговцев:

  • Торговец еды
  • Торговец обычными предметами
  • Торговец оружием
  • Торговец зелий

В будущем также будут добавлены следующие торговцы:

  • Место для сна
  • Торговец по монстрам
  • Guild Master
  • Торговец кристалами
  • Торговец редкостями

Все новые торговцы будут появляться постепенно по мере добавления механик в новых тематических devlogs.

Для начала торговли вам необходимо навестись на него и нажать клавишу E, как при использовании предмета. Ваша камера автоматически будет наведена лицом к торговцу, как начало диалога.

После чего будет открыто меню торговли. В нём будет видно название и иконку профессии торговца. Также иконку профессии можно увидеть на прилавке каждого торговца.

Само меню выполнено в 3D GUI-стиле, чтобы вы видели торговца, и в целом это выглядит приятно и чисто.

Devlog #14: Обновление игрового прогресса

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

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

Devlog #14: Обновление игрового прогресса

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

Для покупки или продажи вам просто надо перетащить интересующий вас предмет в клетку для взаимодействия снизу. Вы можете посмотреть информацию о предмете, как и в вашем инвентаре — просто наведя курсор на нужный предмет.

Также я сделал точно такую же систему валюты, как в Kingso, потому что это одна и та же вселенная игр. Суть заключается в том, что каждые 100 монет автоматически создают 1 монету более высокого уровня. Всего есть 4 вида: медные, серебряные, золотые и платиновые. Так можно очень легко определить свой статус по деньгам, а в целом проще видеть цены и понимать, насколько дорого стоят предметы. Например, какой-нибудь простой хлеб стоит пару медных монет, а меч или дорогая броня — уже серебряные или золотые. Также система автоматически конвертирует все виды монет, так что вам не нужно особо считать.

Devlog #14: Обновление игрового прогресса

Иконки уровней

Небольшое важное улучшение, чтобы было легче видеть, на каком участке подземелья вы находитесь. Вы можете увидеть иконку для каждого биома. Также я пока что думаю, стоит ли обозначать цифрами, потому что планируется всего 100 уровней, и, возможно, это будет полезно. 🤔

Devlog #14: Обновление игрового прогресса

Мобы

Система мобов стала значительно стабильнее:

  • Исправлена дистанция спавна мобов.
  • Исправлен баг, из-за которого мобы могли не сразу заспавниться.
  • Другие игроки теперь нормально видят мобов (за исключением дальних дистанций друг от друга).
  • Если один игрок бьет моба, другой будет это видеть.
  • Если моб ударит другого игрока, это будет видно (но пока что без красного отображения хита).
  • Смерть мобов видят все игроки.
  • Добавлен новый моб — зеленый слайм. Он немного отличается и обитает в заросшем биоме.
  • Внесено большое количество внутренних исправлений и улучшений.
Devlog #14: Обновление игрового прогресса

Игрок

  • Добавлена синхронизация предметов в руках.
  • Добавлены проверки на изменение состояния игрока — чтобы не применять лишние действия к игрокам.
  • Добавлена синхронизация скорости анимаций.

Интерфейс

  • SVG-изображения были немного обновлены без заметных видимых изменений, но теперь весят меньше.
  • Добавлен IconsManager — это хранилище картинок по мере их использования, что позволяет кэшировать и переиспользовать изображения.
  • Обновлены некоторые панели GUI, мелкие изменения по типу separators и styles, но изменений много.
  • Исправлена ошибка фокусов для кнопок — можно было нажимать пробел, и действие происходило.
  • Исправлена поддержка курсоров: раньше системные курсоры могли использоваться в некоторых местах GUI.
  • Исправлена ошибка, когда курсор мыши не сжимался при диалоговых окнах и в некоторых панелях за главным меню.

Графика

  • Добавлено движение паутины, улучшено отображение в темноте.

Мелкие изменения

  • Сетевая часть была разделена на части и улучшена.
  • Debug-панель вынесена поверх UI игрока и работает только по F3. Это удобно, т.к. это разные элементы интерфейса.
  • Debug-панель была полностью переписана, что значительно ускорило её работу.
  • Улучшена система консольных выводов — теперь видно PID и к какой части игры относится вывод.

Баги

  • Полностью отлажена ошибка с запуском на разных процессорах в Windows. Проблема была в том, как библиотека ring собиралась, используя неверные команды для процессора. Поэтому я заменил временное решение на полноценное, а также уведомил разработчика. Я также сделал это для всех Rust-сборок для полной совместимости на x86-64 процессорах в будущем.
  • У чанков и всех предметов убран mouse pickable — это была излишняя стандартная операция в Godot, которая также мешала новому 3D GUI работать, так как перекрывала его raycast.
  • У границ на поверхности подземелья исправлена реакция коллизий на некоторые ненужные взаимодействия.
  • Можно было выйти в главное меню и совершать некоторые действия движения за игрока.
  • У entity при использовании hit при быстром клацании мог не показываться урон по нему.
  • В начале игры вызывалась пустая анимация и выводилась ошибка.
  • Были части GUI, которые могли рисоваться несколько раз из-за двух и более человек — их ненужная логика была полностью отключена.
  • Добавлены проверки для Godot Instances, что делает работу игры более стабильной при отсутствии сущностей.

SFX

  • Немного улучшена работа 3D-звука.
  • Добавлен 2D SFX-звук с умной системой, которая держит пару источников готовыми и может при переполнении добавлять новые динамически, что полезно для разных звуковых сцен.
  • Добавлены звуки при нажатии кнопок в GUI (кроме Tab и Option-кнопок).
  • Добавлены звуки инвентаря и торговли.
  • Полностью переделаны все звуки SFX под общую LUFS (т.е. теперь всё гармонично звучит).

Debug

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

Заключение

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

3
1 комментарий