Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

Розробка для Linux

Розробка застосунків Defold для платформи Linux — це простий процес, у якому потрібно врахувати лише кілька особливостей.

Поширені запитання

Запитання: Чому редактор Defold виглядає дуже дрібним на моніторі 4K або HiDPI?

Відповідь: Якщо ви використовуєте GNOME, можна змінити коефіцієнт масштабування перед запуском Defold. Джерело

$ gsettings set org.gnome.desktop.interface scaling-factor 2
$ ./Defold

Відповідь: Інший спосіб, особливо якщо потрібен дробовий коефіцієнт збільшення, — змінити файл Defold/config, додавши glass.gtk.uiScale до рядка vmargs: джерело

vmargs = -Dglass.gtk.uiScale=1.5,-Dfile.encoding=UTF-8,...
vmargs = -Dglass.gtk.uiScale=175%,-Dfile.encoding=UTF-8,...
vmargs = -Dglass.gtk.uiScale=192dpi,-Dfile.encoding=UTF-8,...

Докладніше про це значення див. у статті вікі Arch Linux про HiDPI.

Відповідь: Якщо ви використовуєте KDE, можна задати GDK_SCALE:

$ GDK_SCALE=2 ./Defold

Запитання: Чому в Elementary OS клацання мишею проходять крізь редактор до вмісту під ним?

Відповідь: Запустіть редактор так:

$ GTK_CSD=0 ./Defold

Запитання: Редактор Defold аварійно завершує роботу під час відкриття колекції або ігрового об’єкта, а в повідомленні про збій згадано com.jogamp.opengl

Відповідь: У деяких дистрибутивах (як-от Ubuntu 18) є проблема сумісності версії jogamp/jogl, яку використовує Defold, з версією Mesa у системі. Ви можете перевизначити версію GL, яку повертає виклик glGetString(GL_VERSION), задавши для MESA_GL_VERSION_OVERRIDE значення 2.1 або більше, але не вище версії, яку підтримує ваш драйвер. Перевірити максимальну версію OpenGL, яку підтримує драйвер, можна за допомогою glxinfo:

glxinfo | grep version

Приклад виведення (шукайте «OpenGL version string: x.y»):

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.2.6
OpenGL core profile shading language version string: 4.60
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.2.6
OpenGL shading language version string: 4.60
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.2.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

Використовуйте версію 2.1 або версію, що відповідає вашому графічному драйверу:

$ MESA_GL_VERSION_OVERRIDE=2.1 ./Defold
$ MESA_GL_VERSION_OVERRIDE=4.6 ./Defold

Запитання: Чому під час запуску Defold з’являється помилка «com.jogamp.opengl.GLException: Graphics configuration failed»?

Відповідь: У деяких дистрибутивах (наприклад, Ubuntu 20.04) під час роботи Defold виникає проблема з новими драйверами Mesa (Iris). Ви можете спробувати запустити Defold зі старішою версією драйвера:

$ MESA_LOADER_DRIVER_OVERRIDE=i965 ./Defold

Запитання: Редактор Defold аварійно завершує роботу під час відкриття колекції або ігрового об’єкта, а в повідомленні про збій згадано libffi.so

Відповідь: Версія libffi у вашому дистрибутиві не відповідає тій, яку потребує Defold (версія 6 або 7). Переконайтеся, що libffi.so.6 або libffi.so.7 встановлено в /usr/lib/x86_64-linux-gnu. Ви можете завантажити libffi.so.7 так:

$ wget http://ftp.br.debian.org/debian/pool/main/libf/libffi/libffi7_3.3-6_amd64.deb
$ sudo dpkg -i libffi7_3.3-6_amd64.deb

Далі під час запуску Defold вкажіть шлях до цієї версії у змінній середовища LD_PRELOAD:

$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7 ./Defold

Запитання: Мої драйвери OpenGL застаріли. Чи можу я користуватися Defold?

Відповідь: Так, можливо, ви зможете користуватися Defold, якщо ввімкнете програмний рендеринг. Для цього задайте змінній середовища LIBGL_ALWAYS_SOFTWARE значення 1:

$ LIBGL_ALWAYS_SOFTWARE=1 ./Defold

Запитання: Чому моя гра Defold не запускається в Linux?

Відповідь: Перевірте виведення консолі в редакторі. Якщо ви бачите таке повідомлення:

dmengine: error while loading shared libraries: libopenal.so.1: cannot open shared object file: No such file or directory

то потрібно встановити libopenal1. Назва пакета залежить від дистрибутива, і в деяких випадках може знадобитися встановити пакети openal та openal-dev або openal-devel.

$ apt-get install libopenal-dev

Запитання: Чому верхнє меню закривається, перш ніж я встигаю щось вибрати?

Відповідь: Імовірно, це спричинено віконним менеджером, який ви використовуєте (наприклад, Qtile або i3). Це відома проблема JavaFX, яку можна розв’язати, задавши змінній середовища GDK_DISPLAY значення 1:

$ GDK_DISPLAY=1 ./Defold

D=2

Або змінивши файл Defold/config і додавши -Djdk.gtk.version=2 до рядка vmargs:

vmargs = -Djdk.gtk.version=2,-Dfile.encoding=UTF-8,...

Запитання: Чому після вибору Open From Disk я не можу переглянути всі доступні розташування файлів?

Відповідь: Якщо ви запускаєте Defold зі Steam, встановленого через Flatpak, потрібно надати Steam дозвіл на доступ до інших дисків. Змінити дозволи застосунків Flatpak можна за допомогою Flatseal або подібного засобу.

Запитання: Чому я не можу відкрити вебпрофайлер або скористатися іншими пунктами меню, що потребують браузера?

Відповідь: Імовірно, внутрішній виклик Desktop.getDesktop().browse(new URI(url)); завершується помилкою, оскільки в системах без GNOME браузер не виявляється. Спробуйте встановити libgnome.

$ apt-get install libgnome