Devlog #14: Обновление игрового прогресса
Всем привет! Это 14-й devlog. За последние 25 дней проделана большая работа — я рад представить первый Major Update (версия игры 260327), который посвящен теме прогрессии игры и сильно улучшает её. Всего я сделал ~100 изменений разного масштаба, но опишу только самые важные из них.
Прогрессия — это то, что заставит вас не только спускаться в подземелье, но и подниматься. Она добавляет базовые RPG-механики. С каждым новым обновлением это будет всё больше видно: вам нужно планировать ресурсы, следовать механикам мира, исследовать. Т.е. это настоящий поход в подземелье и обратно — история, которая у каждого будет уникальна.
В целом есть довольно много разных вещей, которые я не успел сделать — это ещё примерно ~100 изменений. Я о том, что размер этого обновления мог быть ещё больше, чем получился по факту. Но я сделал всё самое основное, что касается темы обновления. Хотя для многих может показаться: куда ещё больше? Об этом вы поймёте, прочитав список изменений ниже.
Следующие крупные обновления я планирую такие:
- Апрель: Боевая система
- Май: Изучение мира
Поэтому в этом обновлении я не стал добавлять систему сохранений — потому что довольно мало вещей пока что, которые можно сохранять, хотя играть можно довольно долго. Но сама система концептуально готова, и есть всё для её реализации — она планируется на майское обновление. В этот момент уже будет достаточно систем для глубокой игры, и сохранения будут необходимы.
Также я не сделал систему прокачки уровней — потому что мало мобов и нет босса. Эта часть планируется пока что на апрель, потому что именно в этот момент будет проработка эффектов, видов урона, оружия и новых мобов.
Теперь перейдём к самому обновлению — я разделил его на части для вашего удобства чтения.
Инвентарь
Система инвентаря представляет собой сумку, которая открывается по клавише Tab, а также две руки под активные предметы. Находится всё это снизу по центру экрана — чтобы не мешать, т.к. это приятнее для игры и выглядит чисто.
Т.е. вы имеете небольшой рюкзак, чтобы не вмещать туда много предметов, что ставит вас перед выбором в некоторых ситуациях. В будущем здесь будет система веса, что добавит большей глубины для этой механики.
В рюкзаке можно навестись на предметы и почитать их характеристики. В будущем там будет больше информации и эффектов. Также подразумевается, что игрок будет изучать эффекты по мере игры, и их можно будет просматривать для уже использованных предметов.
Вы можете взять предмет в одну из рук, нажав на кнопки в меню информации о предмете, или использовать сразу через кнопку с иконкой шестерёнки.
Вы также можете просто перетащить предмет, удерживая левую кнопку мыши.
Вы также можете удалить предмет, перетащив его на иконку крестика.
Для использования предмета вам надо нажать той клавишей мыши, в которой предмет. Так можно использовать расходники по типу зелья или еды. Хорошие новости: у нас есть супер популярные багеты для регенерации хп. 😅
Если же в руке находится оружие, то оно тоже будет использовано. Если рука пустая, то будет использована пустая рука для удара. В основном стоит помнить, что обычные предметы наносят мало урона, но ими можно делать мелкие атаки. В основном следует использовать оружие в руке для получения его урона, что требует достаточно стамины.
Опять же, характеристики оружия и расходников будут обновляться со временем. Так, например, разное оружие требует разной стамины, должно будет иметь длину, силу удара, силу отталкивания — что планируется добавить в апрельском обновлении.
Торговцы
Торговцы — это NPC, которые были добавлены на поверхности подземелья. В планах есть добавления и других NPC, и, возможно, даже система других отрядов в подземельях — но это пока что концепт.
В целом, каждый торговец имеет свою специализацию, и вместе они покрывают все основные потребности. На данный момент реализована только часть торговцев:
- Торговец еды
- Торговец обычными предметами
- Торговец оружием
- Торговец зелий
В будущем также будут добавлены следующие торговцы:
- Место для сна
- Торговец по монстрам
- Guild Master
- Торговец кристалами
- Торговец редкостями
Все новые торговцы будут появляться постепенно по мере добавления механик в новых тематических devlogs.
Для начала торговли вам необходимо навестись на него и нажать клавишу E, как при использовании предмета. Ваша камера автоматически будет наведена лицом к торговцу, как начало диалога.
После чего будет открыто меню торговли. В нём будет видно название и иконку профессии торговца. Также иконку профессии можно увидеть на прилавке каждого торговца.
Само меню выполнено в 3D GUI-стиле, чтобы вы видели торговца, и в целом это выглядит приятно и чисто.
Пока что нет системы квестов. Планируется, что каждый торговец будет давать свои специфичные задания.
Но сейчас можно спросить что-то или просто поторговать. Сейчас не так много реплик общения. В будущем я планирую добавить как больше информации и лора в них, так и привязать их к некоторым игровым событиям.
Что касается окна торговли — оно появляется с другой стороны. Там вы можете либо покупать, либо продавать. Сейчас у торговцев одинаковые цены продажи, но также планируется система, при которой торговцы будут покупать только то, что им нужно и когда нужно. То есть планируется целая система плавающих цен у торговцев. В целом же они продают только вещи своей специализации.
Для покупки или продажи вам просто надо перетащить интересующий вас предмет в клетку для взаимодействия снизу. Вы можете посмотреть информацию о предмете, как и в вашем инвентаре — просто наведя курсор на нужный предмет.
Также я сделал точно такую же систему валюты, как в Kingso, потому что это одна и та же вселенная игр. Суть заключается в том, что каждые 100 монет автоматически создают 1 монету более высокого уровня. Всего есть 4 вида: медные, серебряные, золотые и платиновые. Так можно очень легко определить свой статус по деньгам, а в целом проще видеть цены и понимать, насколько дорого стоят предметы. Например, какой-нибудь простой хлеб стоит пару медных монет, а меч или дорогая броня — уже серебряные или золотые. Также система автоматически конвертирует все виды монет, так что вам не нужно особо считать.
Иконки уровней
Небольшое важное улучшение, чтобы было легче видеть, на каком участке подземелья вы находитесь. Вы можете увидеть иконку для каждого биома. Также я пока что думаю, стоит ли обозначать цифрами, потому что планируется всего 100 уровней, и, возможно, это будет полезно. 🤔
Мобы
Система мобов стала значительно стабильнее:
- Исправлена дистанция спавна мобов.
- Исправлен баг, из-за которого мобы могли не сразу заспавниться.
- Другие игроки теперь нормально видят мобов (за исключением дальних дистанций друг от друга).
- Если один игрок бьет моба, другой будет это видеть.
- Если моб ударит другого игрока, это будет видно (но пока что без красного отображения хита).
- Смерть мобов видят все игроки.
- Добавлен новый моб — зеленый слайм. Он немного отличается и обитает в заросшем биоме.
- Внесено большое количество внутренних исправлений и улучшений.
Игрок
- Добавлена синхронизация предметов в руках.
- Добавлены проверки на изменение состояния игрока — чтобы не применять лишние действия к игрокам.
- Добавлена синхронизация скорости анимаций.
Интерфейс
- 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. Если вы еще не пробовали игру, надеюсь, что вы попробуете и напишете, что думаете о ней, и расскажете о ней друзьям!