Отчет о ходе работ за месяц

Обновление сайта

Наконец-то я нашел время, чтобы немного обновить наш сайт. Раньше раздел новостей представлял собой просто длинный текстовый документ. Он был заменен на ABlog — расширение для ведения блога в Sphinx. Это делает раздел новостей немного более управляемым, не добавляя больших затрат на обслуживание. Заодно я немного увеличил размер шрифта и ограничил ширину сайта.

Мост в Matrix

Я обновил все наши комнаты Matrix до версии 12, что оказалось не так просто, как казалось изначально. Хотя t2bot (наш мост Matrix↔Discord на тот момент) поддерживает версию 12, мост работал только в одном направлении.

После попытки самостоятельно разместить бота и выяснения того, что сам бот не работает с версией комнат 12 (t2bot просто использует прокси для изменения запросов), я отправился на поиски лучших вариантов. Вот появляется новый мост, с которым я никогда не сталкивался в своих предыдущих поисках: Out Of Your Element Он не поддерживается matrix-docker-ansible-deploy, который используется для нашего Matrix-сервера, но все же его настройка оказалась достаточно простой. После множества моих собственных ошибок мне удалось заставить Out Of Your Element работать на (тогда ещё не поддерживаемой) версии комнат 12.

Результат превосходен. Многие отметили, насколько лучше работает новый мост. В отличие от t2bot, он поддерживает передачу реакций с помощью эмодзи (в обоих направлениях) и пока что работает на 100% надёжно. Надёжность очень важна, потому что t2bot часто не мог передать сообщения или делал это в течение нескольких минут.

Вот Matrix (Element) и Discord рядом:

Скриншот Element, демонстрирующий перенаправленные сообщения и реакции. Скриншот Discord, показывающий перехваченные сообщения и реакции.

Сторона Matrix нашего моста сейчас используется гораздо чаще, чем раньше.

Релиз версии 2025.12.1

17 декабря вышла версия Overte 2025.12.1. Мы довольно долго опасались этого релиза, потому что он нарушает протокол, то есть клиенты и серверы несовместимы с предыдущими версиями, что значительно усложнило тестирование. И действительно, мы столкнулись с очень странной регрессией, которая произошла только в одной области одного конкретного сервера. Любой, кто соединялся и появлялся в этой области, застревал в режиме безопасной посадки и никогда не завершал загрузку окружения.

Причина оказалась очень простой: в сентябре мы уменьшили максимальный размер пакета сетевых пакетов (MTU), чтобы исправить проблемы с подключением для пользователей, чьи интернет-провайдеры не предоставляют им обычный полный размер в 1500 байт. На одном из серверов, где возникли проблемы, был один объект, который помещался в старый размер пакета, но был слишком большим для нового. Объекты создаются на стороне клиента и передаются на сервер, а это значит, что невозможно создать объект, размер которой превышает максимальный размер пакета… если только максимальный размер пакета не изменится. Из-за этого сервер не имел никаких механизмов защиты от объектов, не помещающихся в пакет, и просто продолжал попытки снова и снова.

Обратите внимание, что я сказал, что MTU был изменен в сентябре? Проблема была не в релизе 2025.12.1. Сервер просто не обновлялся до тех пор, пока изменение протокола не потребовало его обновления. На самом деле проблема представляла собой редкую регрессию в версии 2025.09.1.

Vulkan

Бэкенд Vulkan наконец-то был объединен с основной веткой. Это изменение разрабатывалось так долго, что технически оно предшествовало самому Overte. Огромное спасибо NLnet и программе NGI за спонсирование работы 74hc595 над этим, и огромное спасибо 74hc595 и всем людям, участвовавшим в этом масштабном проекте.

Хотя до того, как Vulkan станет нашим бэкендом для рендеринга по умолчанию, ещё многое предстоит сделать, он уже вполне пригоден для ежедневной работы в Linux. Если вы хотите попробовать, либо соберите Overte из исходного кода, используя аргумент -DOVERTE_RENDERING_BACKEND=Vulkan, или загрузите любую сборку Vulkan, созданную конвейером CI, например эту.

Релиз на itch.io

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

Я потратил много времени на разработку страницы Overte на itch.io и даже добавил поддержку “itch”, приложения для ПК от itch.io, позволяющего автоматически обновлять программу. Функция, которой пока нет ни в одном из наших других каналов распространения.

Скриншот “itch”, показывающий Overte в коллекции пользователя. Скриншот “itch”, предлагающий пользователю выбрать, хочет ли он использовать Overte в режиме VR или в обычном режиме.

Хотя я вполне доволен тем, как получилась наша страница на itch.io и поддержка приложения itch, есть одна проблема: похоже, что сотрудников itch.io просто нет. После публикации Overte 30 декабря я заметил, что он не был указан в списке. Я связался со службой поддержки itch.io, но пока не получил ничего, кроме автоматического сообщения “Запрос получен”. На сервере Discord itch.io многие другие пользователи рассказывают похожие истории.

Если бы я увидел проект с открытым исходным кодом в таком состоянии, я бы подумал, что он заброшен или его разработчик выгорел. В случае с коммерческой компанией я не знаю, что и думать. Наверняка они хотя бы информировали бы людей о таком длительном времени ожидания. В любом случае, наличие Overte в магазине приложений только для того, чтобы он исчез из списка, не очень полезно. Если это продолжится, нам просто придется снова отказаться от поддержки itch.io…