В декабре фокус разработки был в основном на системах диалогов и квестов. Этот блог должен был выйти в начале месяца, но новый год внёс свои коррективы.
Обновление уже доступно для загрузки в лаунчере (Windows, Linux) или напрямую.
Прогресс за месяц
Система диалогов
Диалоги работают благодаря Yarn Spinner - это нодовая система, её используют игры такие как Night in the Woods. Потребовалось несколько модификаций в Yarn чтобы он заработал в нашем случае (мультиплеер), но в общем он работает и подходит для нелинейных диалогов с проверками навыков/перков/аттрибутов/итд - это как раз то что мы планируем.
Диалоги работают по-разному в DM и в сюжетке. В DM - каждый игрок имеет отдельную историю. В сюжетном режиме все игроки делят одну прогрессию истории - и могут участвовать в диалоге одновременно. В случае если в диалоге больше одного игрока, значения для проверок берутся по формату “лучшее из доступного”. Например, проверка [Ремонт 50] может быть пройдено если у любого из игроков есть 50 навыка ремонта.
В данный момент в DM доступно 2 персонажа с диалогами - это лидеры мусорщиков и рейдеров.
(*Заметка: этот диалог был написан программистом, а не писателем.)
Квесты
С квестами мы пошли по другому пути и сделали собственную систему, потому что существующие доступные решения по затрудняют создание сложных квестов. Что мы хотели от системы квестов:
- Поддержку нескольких способов выполнения.
- Контекст взятие квеста - когда в зависимости от того, как вы начали задание, вы получаете разную перспективу.
- Необязательные цели
- Повторяемые квесты
- Процедурные задания
Чтобы протестировать систему, мы добавили два простых задания, которые вы можете получить от лидеров фракций. Пожалуйста, попробуйте выполнить их, чтобы помочь нам протестировать систему.
Датапаки
Чтобы поддержать моддинг и упростить разработка, мы добавляем систему датапаков. Она напрямую вдохновлена ресурспаками / датапаками из Minecraft. Вот как это работает:
- При запуске игры вы можете выбрать один или несколько датапаков.
- От порядка загрузки датапака зависит, какой контент используется: датапак перезаписывает файлы содержащиеся в ранее загруженных датапаках.
- Из датапаков грузятся: локализованный текст, предметы, эффекты, перки, JS-скрипты (в сэндбоксе), кьютимарки, квесты, диалоги, таблицы лута, конфигурации спавна, и тд.
- В датапаках НЕ будет: 3D-ассетов, сцен, уровней, кода вне сэндбоксе.
Сейчас датапаки используются только для внутренних штук и помоддить не получится, но мы выпустим подробный гайд как делать моды с помощью датапаков позже.
Полный список изменений
Кроме диалогов/квестов/датапаков, были исправления, и улучшения доступности и UI. Полный список ниже.
Исправления
- Перезарядка теперь правильно учитывает ускорение/замедление персонажа (например от З.П.С. или зелий).
- Теперь нельзя перезаряжать несколько стволов одновременно.
- Пофикшено жонглирование оружием - теперь задержка между выстрелами остаётся при переключении оружия.
- Персонаж в сюжетном режиме не спавнился из-за бага в загрузке уровня.
- Исправлено отсутствие тени в окне инвентаря.
- Перетаскиваемые предметы не сбрасываются при выходе из PipBuck.
- Значки интерактивных объектов неправильно масштабировались на объектах с неравномерным масштабом.
- Исправлен сбой в работе объявления сервера. Это приводило к исчезновению серверов из браузера, даже если сервер в порядке.
Изменения
- Добавлена диалоговая система на основе Yarn Spinner и реализован пользовательский интерфейс диалога.
- Добавлены 2 задания в DM: простое задание на убийство для лидеров фракций. Награда - 2 комплекта лучшего снаряжения.
- Добавлена поддержка датапаках по образу Minecraft (пока загружаются только скрипты).
- UI карты уровня переработан и теперь имеет улучшенные элементы управления и визуал.
- Теперь позиции игроков команды видно на карте.
- Тип используемых боеприпасов теперь можно изменить в ПипБаке.
- Типы боеприпасов, подходящие для текущего оружия, теперь выделяются в инвентаре. Активный тип выделен отдельно.
- Элементы ввода (например, ввод пароля, ввод количества) теперь можно вводить нажатием Enter.
- Добавлена чувствительность прокрутки в настройки управления.
- Значения ползунков теперь можно вводить напрямую текстом.
- Добавлена кнопка “показать быстрый доступ” на вкладке инвентаре в ПипБаке.
- Важные персонажи теперь отмечены звёздочкой.
- Удалена опция разрешения (движок справляется с этим лучше).
- Добавлена опция ограничения FPS (активна только при выключенной vsync).
- Добавлена опция масштабирования рендера.
- NPC больше не используют прочность оружия.
- Теперь можно переопределить стартовый уровень для сюжетного режима с помощью
--level
. - Добавлена поддержка загружаемых скриптов (JavaScript ES6) с базовым API.
Планы на следующий месяц
Закончить UI для квестов и диалогов
Находится в разработке:
- Отображать обновления статуса квеста на HUD со звуковой индикацией.
- Во время диалога такие действия, как получение награды или принятие квестов, будут отображаться в журнале.
- Логи диалогов будут доступны в ПипБаке.
- В сюжетном режиме игроки увидят, какую опцию выделяют другие игроки.
- В сюжетном режиме игроки, которые не участвуют в диалоге, увидят реплики из диалога в чате.
-
Прокачка
Уровни, получение опыта, очки распределения перков / навыков, разблокировка перков и прокачка навыков.
ЛУМ
В зависимости от уровня восприятия отображение NPC и игроков поблизости по краям экрана.