LINUX.ORG.RU

Fedora 25, GNOME 3, Wayland, портирование игры Gish на Android OS

 , , ,


1

2

Решил оценить готовность дистрибутива Fedora 25 Workstation для повседневного рабочего использования. А что может дать более объективную оценку, чем выполнение какой-нибудь интересной работы в этом окружении?

В качестве такой задачи я выбрал портирование компьютерной игры Gish на Android OS. Недавно я вспомнил про этот оригинальный 2D-платформер и захотел поиграть в него на своём Android-смартфоне. Игра была выпущена в далёком 2004 году, а после попала в самый первый сборник инди-игр Humble Indie Bundle, который собрал более одного миллиона долларов. В знак признательности поддержавшему их сообществу, разработчик игры Cryptic Sea объявил о том, что исходный код Gish'а будет открыт и выпущен под лицензией GNU GPL v2.0, на LOR'е даже писали об этом событии.

Скачав исходники игры, я открыл их в Qt Creator'е [Скриншот] и начал переносить платформер с библиотеки SDL на SDL2. Потом я импортировал проект в Android Studio и продолжил работу уже там. В целом на портирование я отводил по 2-3 часа каждый день после работы. Спустя месяц появилась первая релизная версия игры.

Итак, за один месяц использования GNOME 3 и Wayland я заметил следующие проблемы:

  1. Огромные декорации развёрнутых окон на низких разрешениях экрана выглядят настолько ужасно, что я решил установить расширение Pixel Saver, которое исправило эту проблему, правда, почему-то не во всех приложениях. Например, с GNOME Terminal это расширение не работает.
  2. В некоторых Qt-приложениях видны артефакты отрисовки (см. скрин Qt Creator'а выше, заголовки вкладок) из-за некачественной мимикрии. Работать это не мешает, но смотрится эстетически некрасиво.
  3. Иногда (очень редко) заметны странные мелькания в нижней части экрана. Возможно это какие-то баги в Intel'овских драйверах или Mesa3D, потому что в том же sddm и KDE Plasma 5 я тоже наблюдал такое.
  4. Иногда появлялись проблемы, связанные с различными анимациями окон, их закономерность я не смог выявить.

Теперь о хорошем. Интеграция Wayland и XWayland приложений в GNOME 3 практически бесшовная. В процессе использования я не выявил никаких проблем с отрисовкой, буфером обмена, переключением языка и снятием скриншотов. Ещё соглашусь с тем, что GNOME 3 в Wayland-сеансе работает плавнее и быстрее, чем в X.Org-сессии, видимо, сказывается полное отсутствие тиринга.

Таким образом можно подытожить следующее: Fedora 25 Workstation, несмотря на радикальную и быструю замену X.Org на Wayland, осталась вполне пригодным для работы дистрибутивом. Надеюсь, в Fedora 26 исправят отмеченные мной шероховатости, а софт, который сейчас использует XWayland, переведут на Wayland.

P.S. Если кому интересны результаты портирования Gish, дайте знать, выложу свои наработки в комментариях.

>>> Просмотр (1366x1536, 1837 Kb)

★★★★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 1)

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

sudopacman ★★★★★
()
Ответ на: комментарий от ilipnitsky

Да. Пока только Pixel Saver я нашёл полезным для себя. Может есть ещё какие-нибудь интересные расширения, позволяющие адаптировать GNOME 3 к экранам с небольшим разрешением (1366x768)?

Какой конфиг у компьютера?

Старый ноут для подобных экспериментов: ASUS K52F, 8GB RAM, i3-370M.

EXL ★★★★★
() автор топика
Ответ на: комментарий от dtrace

Не знаю, не использовал пока Qt 4 софт тут.

Скажи название программ на этом тулките, я проверю и отпишусь.

EXL ★★★★★
() автор топика
Ответ на: комментарий от ilipnitsky

Нет, лагов в работе не замечал, всё довольно шустро.

А вообще попробуй сторонние темы, у них загаловки уменьшены.

У меня такой принцип работы, что окна большинства приложений я разворачиваю на весь экран. Соответственно, не вижу этих заголовков вообще. Вот только с GNOME Terminal баг какой-то.

EXL ★★★★★
() автор топика
Ответ на: комментарий от EXL

Иногда фокус мыши/клавиатуры пропадает, софт не реагирует на ввод. Причем не работает и на GTK и на Qt, но при использовании софта на втором тулките. Лечится перезапуском программы или переключением окон. Замечал в LMMS, иногда VirtualBox (хотя он же на Qt5).

dtrace
()
Ответ на: комментарий от EXL

что окна большинства приложений я разворачиваю на весь экран

А почему бы для этого не использовать тайлинг на каком-нибудь Sway?

commagray ★★★★★
()

Спасибо за Pixel Saver!

с GNOME Terminal это расширение не работает

У меня заработало, правда у меня не федора, а убунту, ну и работаю я в иксах

olibjerd ★★★★★
()
Последнее исправление: olibjerd (всего исправлений: 1)

Для себя нашёл полезными такие расширения:

gnome-extra/gnome-shell-remove-dropdown-arrows: An extension that removes the dropdown arrows from GS menus
gnome-extra/pixel-saver: An extension to merge the title bar of a maximized window into GS activity bar
gnome-extra/status-area-horizontal-spacing: An GS extension to reduce the horizontal spacing between status area icons
gnome-extra/topicons-plus: An extension to move legacy tray icons to the top panel

spijet ★★★
()

Когда я тестировал связку Wayland+Nouveau, гномошелл на вейленде работал тормознее и корявее плазмы на иксах, вот я поржал тогда.

Deleted
()
Ответ на: комментарий от Deleted

от карточки зависит.
нувио в режиме Х11 у меня намертво вешались на ГТ220, а под вяленным всё ОК,

Deleted
()
Ответ на: комментарий от Deleted

По-моему, младшие модели нвидии вообще бракованный трэш чуть менее, чем полностью.

Deleted
()
Ответ на: комментарий от Deleted

Чего тут не улавливать?

Nouveau - это самые плохие драйвера под линукс.

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

fornlr ★★★★★
()

Огромные декорации развёрнутых окон на низких разрешениях экрана выглядят настолько ужасно

Хвали CSD и дальше.

В некоторых Qt-приложениях видны артефакты отрисовки

А ты в курсе что все Qt приложения в GNOME on Wayland стартуют под XWayland? Чтобы они работали нативно под Wayland - нужно export QT_QPA_PLATFORM=waylandЧто ты получишь в результате? Синюю убогую рамку окна (тот самый CSD в Qt), рандомное появление контекстного меню в разных частях экрана, и наиужаснейшие шрифты. А ещё баги с ресайзом окна и его позиционированием. Так что в этом плане ещё пилить и пилить.

Если кому интересны результаты портирования Gish, дайте знать, выложу свои наработки в комментариях.

GitHub не планируется? И вообще - это сложно, портировать игру на Андроид? Ну я имею ввиду много ли кода приходится переписывать/модифицировать?

Sunderland93 ★★★★★
()
Последнее исправление: Sunderland93 (всего исправлений: 1)
Ответ на: комментарий от Deleted

А nouveau и не даст ощутить всю красоту гнома на wayland. У самого та же ситуация. На Radeon - небо и земля

Sunderland93 ★★★★★
()

Угадал автора по названию.

Про вяленый: в моей убунте не готов. Не работают индикатор раскладки(скролл лок постоянно горит и не выключается) и рабочий стол папочкой, хотя в туле все включено. И прироста производительности не чувствуется. Когда был на федоре — все было идеально. Ч Canonical ДНТ?

batya
()
Ответ на: комментарий от ilipnitsky

Там можно самому настраивать, но это кто-то может посчитать пердолингом, так что да, нужно менять тему.

batya
()

Если кому интересны результаты портирования Gish

Дык интересны, конечно.

al_exquemelin ★★★
()
Ответ на: комментарий от batya

Он всё равно в блюре, да и на окнах сосредотачиваешь внимание а не на фоне. Или ты не для работы.

itn ★★★
()

софт, который сейчас использует XWayland, переведут на Wayland

Для этого нужно все существующие тулкиты, включая Motif, Tk, fltk, Fox toolkit, Xaw, XForms,... и т.д., портануть на Wayland. А пока что для Wayland'а есть разве что GTK 3, Qt 5, SDL 2, Clutter и EFL. И всё.

saahriktu ★★★★★
()
Ответ на: комментарий от itn

Да, с 0-1% нагрузка поднимается до 10-25%, после проигрывания анимации опускается обратно.

EXL ★★★★★
() автор топика
Ответ на: комментарий от batya

Смотрю на неё только после включения компьютера. Нравится фокус на этой фотографии.

EXL ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Мне хватит перевода Java/JVM и Chrome/Firefox на Wayland.

EXL ★★★★★
() автор топика
Ответ на: комментарий от Sunderland93

Хвали CSD и дальше.

Так там где CSD, никаких притензий нету.

А ты в курсе что все Qt приложения в GNOME on Wayland стартуют под XWayland?

Нет, этого не знал. Чуть позже проверю, как Qt Creator ведёт себя с этой переменной.

EXL ★★★★★
() автор топика
Ответ на: комментарий от Sunderland93

al_exquemelin

GitHub не планируется?

https://github.com/EXL/Gish

APK можно скачать в релизах: https://github.com/EXL/Gish/releases

И вообще - это сложно, портировать игру на Андроид? Ну я имею ввиду много ли кода приходится переписывать/модифицировать?

Нет, не много, когда у тебя имеются наготове все готовые обвязки и прочее. Опыт портирования и всякие интересные UB, которые вылезли при переносе кода с x86 на ARM я описал в этой статье в своём бложике:

http://exlmoto.ru/gish-droid/

Ну и, собственно, видеоролик, показывающий работу игры на моём Android-смартфоне:

https://youtu.be/GyMU2oV2LI4

EXL ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

GTK 3, Qt 5, SDL 2, Clutter и EFL

разве что

GTK, Qt

разве что

и всё

Все более убеждаюсь в том, что ты наркоман. Ты перечислил ненужные тулкиты и сказал, что из-за этого вяленд пока нельзя юзать. Да будет тебе известно, 95% софта под линь либо на GTK, либо на Qt. Вот то, что Qt 4, емнип, нет, это действительно плохо.

batya
()
Ответ на: комментарий от batya

Во-первых, GTK с Qt появились не сразу с 3-ей и 5-ой версиями соответственно. А GTK 1-2 и Qt 1-4 под Wayland нет. GTK 3 и Qt 5 only. Во-вторых, разного рода xterm'ы, xemacs'ы, xpdf'ы, gv, xcalc'и, xfig'и,... и т.д. линкуются совсем не с GTK или Qt.

и сказал, что из-за этого вяленд пока нельзя юзать

Я этого не говорил. Тем, кому достаточно GTK 3 и Qt 5, или тем, кого не напрягает XWayland, тем можно. А вот если GTK 3 и Qt 5 недостаточно, но и XWayland напрягает...

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от batya

У меня почти все знакомые маководы, так у всех просто чёрный фон.

itn ★★★
()
Ответ на: комментарий от batya

Пользуется, пользуется. И в разных OpenBSD тоже. Не так давно целая новость была, что в OpenBSD xterm на UTF-8 по дефолту перевели. А вокруг того же xemacs'а существуют целые сообщества.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Ядрена вошь, если линукс 1%, то это 1% от одного процента. Т.е. никто на них внимания обращать не будет. Опенбздя — для серверов, ей графика в принципе не нужна. А иксы скоро выкинут, потому что они ужасны.

batya
()
Ответ на: комментарий от batya

1%, то это 1%

И что? 1% от 1% даже одного миллиарда юзеров - это 100000 человек. Сто тысяч. А есть города с населением в 5 тысяч человек и менее. Этож целых 20 небольших городов! А на планете, внезапно, больше чем один миллиард населения. Так что, 1% от 1% может дойти даже до 120-140 небольших городов. Другой вопрос, что не у всех есть компьютеры.

saahriktu ★★★★★
()
Ответ на: комментарий от commagray

Я пробовал раньше такие тайловые менеджеры как Awesome и XMonad, мне они не особо понравились.

EXL ★★★★★
() автор топика
Ответ на: комментарий от spijet

Спасибо за интересные расширения.

EXL ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.