creator cover sashikknox
sashikknox

sashikknox 

C/C++ programmer, love Aurora OS

77subscribers

71posts

goals2
$783.54 of $4 006 raised
Поддержать портирование игрового движка Godot 4 для ОС Аврора с экспортом проекта в RPM файл, совместимый с RuStore.
$220.8 of $6 676 raised
just donate if you want =)

About

I am an opensource developer for SailfishOS/AuroraOS.
My projects:

Godot 4.5. Грустная история портировщика.

Плохие новости: разработчики Godot опять изменили код, отвечающий за финальный рендеринг кадра.
Хорошие новости: Новый подход близок к тому, что я делал при портировании Godot 4.4 на ОС Аврора. Это так же предотвратит гарантированный баг, который будет заметен в моем порте Godot 4 в будущей ОС Аврора 5.2 при переносе окна  игры на внешний экран. Поясню подробнее.

Как обстояли дела в Godot 4.4

Перед началом рендеринга финального кадра вызывается функция glViewport. Она сообщает драйверу, какой участок буфера будет использоваться для вывода изображения. В Godot 4.4 размер этого участка не соответствовал фактическому размеру окна, а задавался заведомо бо́льшим. (Причины расписывать долго, так было нужно)
Для моего порта под ОС Аврора это было крайне неудобно. Я использовал
полноэкранный квад (quad), который занимал весь viewport, и поворачивал
его с помощью матрицы, чтобы адаптировать рендер под ориентацию экрана устройства. Из-за этого мне приходилось использовать в потоке рендеринга (render thread) реальные размеры дисплея, а не окна приложения. Это, по своей сути, неверный подход, но он позволил быстро реализовать нужную функциональность без усложнения логики. Моё решение гарантированно ломало бы вывод на внешний монитор, но на тот момент работа с несколькими экранами в ОС Аврора была ещё на ранней стадии разработки.
Кроме того, движок использовал функцию glBlitFrameBuffer для копирования пикселей из буфера на экран. Этот метод мне тоже не
подходил, так как не позволял учесть поворот. Поэтому я заменил его на
рендеринг того самого квада с наложенной текстурой, в качестве которой и
выступал отрендеренный кадр.

Что изменилось в Godot 4.5

Теперь всё стало гораздо логичнее:
  • В поток рендеринга передаётся корректный размер окна (супер!).
  • Рендеринг финального кадра теперь тоже выполняется через квад, а не через glBlitFrameBuffer

Что в итоге?

Хотя новый подход и является более удобным для меня, код рендеринга довольно сильно изменился. Это значит, что половину моих доработок придётся либо выбросить, либо серьёзно переписать. Процесс будет небыстрым, поскольку я занимаюсь этим в свободное время и, по большому счёту, на чистом энтузиазме (бесплатно 😅).
главное не бросай сие дело. чем сможем поможем.

Испытание не для слабых: Doom 3 на R570e

Прикладываю полное видео моего опыта игры в Doom 3 на R570e, наслаждайтесь :D
P.S. Если кто перешли сюда не из телеграм поста, то докладываю: решил потестить, а можно ли поbграть в Doom 3 на R570e?
Поменял видео на 1080 p 60 fps

Godot 4. Переработка страницы export.

В общем я занимался тем что переделывал страницу экспорта проекта в  Godot 4. Главное чего я хотел добиться - упростить UI экспорта.
Избавится от дублирующихся опций. Например у меня было 2 опции, название пакета, название организации. Хотя по сути название пакета составляется из названия организации и названия приложения.
Так же на скриншоте выше присутствует бесполезная опция Sailjail, которую в принципе нельзя отключать, пакет тогда не пройдет валидацию. Опция была добавлена еще во времени Sailfish OS RUS  2.х, когда механизм изоляции приложений был не обязательный (или вообще отсутствовал, уже не помню).
Еще одна неудобная штука, отсутствие возможности подписывать пакет ключом с паролем, прямо из редактора.
Ну и последнее, я в общем то за все время использования godot так и не нашел примерения для использования custom binary и debug custom binary.
На mono/.Net версии, если экспортировать с использованием debug шаблона, то в логах пишется подробная информация об ошибках с момента запуска приложения и какие библиотеки подгружаются или не удается подгрузить, а не только название ошибки
Folgore, ну если очень надо, можно вернуть, только может просто обозвать custom binary ... надо подумать как удобней слелать. Я сначала делал как linuxbsd экспорте, с выпадающим меню и выбором архитектуры, но это адски неудобно, надо каждый раз дублировать одни и те же настройки под каждую архитектуру, поэтому сделал как сейчас в андройде, галочками.
о, открыл исходники, можно теперь подтягивать .Net
Отлично)
sashikknox, А, я просто внутрь ещё не заглядывал, увидел просто ветку. В любом случае прямо сейчас не сел бы. основная работа не располагает стольким временем... да и сейчас потихоньку ковыряюсь с датчиками и dbus, а там есть успех) Так что подождём до середины лета)

Экспорт RPM для ОС Аврора из редактора Godot 4

В общем на основе своего порта Godot 3.6 сделал экспорт проекта из Godot 4, внес кое какие исправления, но ничего глобально не переделывал, сейчас это выглядит ровно так же как в Godot 3.6.
В связи с чем можно воспользоваться инструкцией по экспорту проекта от Godot 3.6, только экспорт темплейты взять из предыдущего поста
Что еще не хватает в редакторе (по моему мнению):
- возможность либо вбить пароль при подписи пакетов, либо задать файл с паролем для ключей подписи
- возможность настроить путь до шаблонов экспорта глобально, в настройках редактора
- убрать ненужные опции экспорта, такие как отключение изоляции приложения
Бинарные сборки редактора прикрепляю ниже:
exe
godot.windows.editor.x86_64.exe128.84 Mb
x86_64
godot.linuxbsd.editor.x86_64136.72 Mb
P.S. В телеграме будет видео с процессом экспорта и запуска приложения, а еще прикреплю RPM файлы с примером.

Заходите иногда в Telegram :)

В общем как я уже упоминал разок, у меня теперь имеется Telegram канал. Завел я его по причине того, что мне хочется делится не только моей работой по портированию, но еще и в целом новостями которые мне интересны, и кажется могут быть интересны другим.
На бусти я по прежнему буду выкладывать все что удалось портировать, рассказывать об этом. В телеге будут еще и другие посты, например если порт делаю не я )
Вот и сейчас в телеграме можно глянуть видео запуска Unreal Engine 4 на ОС Аврора ;)
P.S. Подписывайтесь )

Godot 4.4.1 для ОС Аврора

Обновил исходники до текущего релиза Godot 4.4.1, и по запросам подписчиков - собрал версию x86_64 (не проверял, если проверите, отпишитесь хоть)
Запаковывать в RPM по той же инструкции
x86_64
godot.linuxbsd.template_release.x86_6479.56 Mb
arm32
godot.linuxbsd.template_release.arm3254.70 Mb
arm64
godot.linuxbsd.template_release.arm6474.60 Mb
А тут можно скачать редактор Godot для  ОС Аврора
Ну, как минимум, оно запустилось на эмуле
Артем Ковардин, а какой командой rpm на эмулятор сбрасывать?(
Ура, спасибо!

Godot 4 Editor для ОС Аврора

Я собрал все в RPM, но есть много НО:
- настройки редактора пока сохраняются не по правильному пути
- не работает двойной тап по папке, когда в файловом менеджере ходишь
- нет виртуальной клавиатуры, только с хардварной
- вообще без клавы и мыши не очень удобно все это
- на телефон вообще не имеет смысла ставить, увидите микроскопический интерфейс, можно разрабатывать под увеличительным стеклом
- в настройках рекомендую выставить масштабирование интерфейса ..
rpm
ru.sashikknox.godoteditor-4.4.1-1.aarch64.rpm49.98 Mb
rpm
ru.sashikknox.godoteditor-4.4.1-1.armv7hl.rpm50.08 Mb
В RuStore пока рано, хотя в целом рабочее, но все таки есть нюансы )
P.S. Я телегерам канал завел, посмотрим будет ли польза
В десктоп-режиме будет что надо

GameDev на ОС Аврора

Заметьте, я написал на ОС Аврора, не для ОС Аврора, а именно на самом мобильном девайсе сидеть и делать игрушку )
Как вам такое? Как думаете, надо в RPM редактор Godot 4.4 и в RuStore?
Даже не сомневайся, осталось еще vscode или что то аналогичное запустить...
Леонид, элементы старой версии vscode используются в CascadeStudio
rpm нужен!
Subscription levels4

Donate Extra Light

$1.33 per month
All subscriptions do not open nothing special for subscribers, it just easy way to donate monthly.
RU:
Все подписчики не получают никакого особенного контента, или каких то
закрытых постов. Это просто удобный способ сделать ежемесячные
пожертвования.

Donate Light

$2.01 per month
All subscriptions do not open nothing special for subscribers, it just easy way to donate monthly.
RU: Все подписчики не получают никакого особенного контента, или каких то закрытых постов. Это просто удобный способ сделать ежемесячные пожертвования.

Donate Medium

$4.1 per month
All subscriptions do not open nothing special for subscribers, it just easy way to donate monthly.
RU:
Все подписчики не получают никакого особенного контента, или каких то
закрытых постов. Это просто удобный способ сделать ежемесячные
пожертвования.

Donate Like a Man!

$8.1 per month
All subscriptions do not open nothing special for subscribers, it just easy way to donate monthly.
RU:
Все подписчики не получают никакого особенного контента, или каких то
закрытых постов. Это просто удобный способ сделать ежемесячные
пожертвования.
Go up