Обновление

DevLog 14

DevLog 14

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

Основа PvP

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

Состояние матча рассчитывается на сервере. Клиент передаёт приказ, сервер его проверяет, строит маршрут и определяет итоговое положение. Он же разрешает конфликты за клетки и отклоняет повторные команды или приказы, относящиеся к другой сессии. Расчёт движения работает с целевой частотой 60 тиков в секунду, а клиент сглаживает получаемые позиции.

В тестовом ролике можно сравнить движение без искусственной задержки и при пинге около 100 мс. Арена при этом остаётся отдельной от постоянной колонии: обычное сохранение не заменяется временным PvP-миром, а при отключении одного из участников тестовая сессия завершается.
 

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

Караваны стали серверными объектами

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

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

На видео одновременно показаны сервер и клиент: маршрут, положение каравана и смена состояния совпадают на обеих сторонах. Эта модель нужна для будущего «серверного рассказчика», общих квестов и событий на глобальной карте.

Новая панель управления сервером

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

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

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

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

Серверные идеологии

Каталог идеологий хранится на сервере. Администрация создаёт фиксированные или изменяемые варианты, а игрок выбирает идеологию своей фракции при старте. Рядом с каждым вариантом показывается число игроков, которые уже сделали такой выбор.

Общие правила идеологии синхронизируются с сервером, но назначения пешек на роли остаются внутри конкретной колонии. Редактор использует проверку версии: устаревший черновик не сможет незаметно перезаписать изменения, внесённые другим администратором.

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

Профиль игрока и подключение к серверу

Окно подключения разделено на интернет-серверы и избранное. Сохранённая запись избавляет от повторного ввода адреса, а карточка до входа показывает доступность сервера, число игроков, лимит мест и пинг. Для списка предусмотрены поиск и сортировка.

В профиле собраны роль, сетевой статус, дата регистрации, первый вход, время на сервере и объекты игрока. Кнопка перехода находит поселение или караван на глобальной карте. Стоимость колонии остаётся закрытой информацией: сервер передаёт её только владельцу и его друзьям.

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

Тикеты прямо в игре

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

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

Серверный чат и коллекции эмоджи

Чат поддерживает общие каналы, личные сообщения и отдельные серверные уведомления. Эмоджи выбираются из меню или вводятся текстовым кодом. Один каталог используется в чате, тикетах и серверных письмах.

Администрация объединяет значки в коллекции и категории, меняет порядок и при необходимости ограничивает набор отдельной привилегией. У игрока есть поиск и локальное избранное. Обновления каталога приходят без полного перезапуска игры.

В текущей реализации используются статичные изображения. Для отображения анимированных GIF нужна отдельная доработка.

Серверная почта и награды

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

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

Логи, резервные копии и защита сервера

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

Для миров игроков и общего мира сервер хранит несколько предыдущих версий. Частые запросы сохранения и серии быстрых переподключений ограничиваются; при временном отказе игрок видит, сколько осталось ждать. Команды для общих объектов дополнительно проверяются по владельцу и допустимости действия.