Read this FAQ in English

Perguntas frequentes

Perguntas gerais

P: Defold é realmente gratuito?

R: Sim, a engine Defold e editor com todas as funcionalidades é completamente de graça. Nenhum custo escondido, taxa ou royalties. Apenas de graça.

P: Por qual motivo a Defold Foundation doaria a Defold?

R: Um dos objetivos da Defold Foundation é ter certeza que software Defold esteja disponível para desenvolvedores ao redor do mundo e que o código fonte esteja disponível de graça.

P: Por quanto tempo vocês darão suporte a Defold?

R: Nós estamos muito compromissados à Defold. A Defold Foundation foi planejada de forma que garante a existência como um proprietário responsável para Defold por muitos anos à frente. Não vai acabar.

P: Posso confiar na Defold para desenvolvimento profissional?

R: Absolutamente. A Defold é usada por um número crescente de desenvolvedores profissionais de jogos e estúdios de jogos. Verifique demonstração de jogos para exemplos de jogos criados usando Defold.

P: Que tipo de rastreamento de usuário (user tracking) estão fazendo?

R: Nós registramos uso de dados anônimos dos nossos sites e do editor Defold para melhorar nossos serviços e produtos. Não existe nenhum rastreamento de usuário nos jogos que você cria (a menos que você adicione serviços de análise/analytics por conta própria). Leia mais sobre isto em nossa Política de Privacidade.

P: Quem fez a Defold?

R: A Defold foi criada por Ragnar Svensson e Christian Murray. Eles começaram a trabalhar na engine, editor e servidores em 2009. O King e a Defold comeraçam uma parceria em 2013 e o King adquiriu a Defold em 2014. Leia a história completa aqui.

Perguntas de plataforma

P: Em quais plataforma a Defold roda?

R: As seguintes plataformas são suportadas para o editor/ferramentas e o tempo de execução da engine (engine runtime):

System Version Architectures Supported
macOS 11 Big Sur x86-64, arm-64 Editor and Engine
Windows Vista x86-32, x86-64 Editor and Engine
Ubuntu (1) 18.04 x86-64 Editor
Linux (2) Any x86-64 Engine
iOS 11.0 arm-64 Engine
Android 4.4 (API level 19) arm-32, arm-64 Engine
HTML5   asm.js, wasm Engine

(1 O editor é construído e testado para Ubuntu 18.04 64-bit. Deve funcionar em outras distribuições também, mas não damos garantias.)

(2 A execução da engine deve rodar na maioria das distribuições Linux 64-bit desde que os drivers gráficos estejam atualizados e suportando OpenGL ES 2.0.)

P: Quais são os requisitos de sistema para o editor

R: O editor usará até 75% da memória disponível do sistema. Em um computador com 4 GB de RAM isto deve ser o suficiente para projetos Defold menores. Para projetos de tamanho médio e grande é recomendado usar 6 GB ou mais de RAM.

P: Para quais plataformas-alvo eu posso desenvolver jogos com Defold?

R: Com um clique você pode publicar para Nintendo Switch, iOS, Android e HTML5 como também macOS, Windows e Linux. É realmente uma base de código com múltiplas plataformas suportadas.

P: Com quais APIs de renderização a Defold está dependendo?

R: Defold usa OpenGL ES 2.0 para renderização gráfica, o qual está disponível em todas as plataformas suportadas.

P: Posso criar jogos 3D na Defold?

R: Absolutamente! A engine é uma engine 3D madura. Entretanto o conjunto de ferramentas (toolset) é feito para 2D, por isso terá que fazer muito trabalho pesado por conta própria. Um suporte 3D melhor está planejado.

P: Com quais linguagens de programação eu posso trabalhar com a Defold?

R: Lógica de jogo no seu projeto Defold é principalmente escrito usando a linguagem Lua (especificamente Lua 5.1/LuaJIT, recorrer ao manual Lua para detalhes). Lua é uma linguagem leve e dinâmica que é rápida e muito poderosa. Você também pode usar código nativo (C/C++, Objective-C, Java e Javascript dependendo da plataforma) para estender a engine Defold com novas funcionalidades. Quando construindo materiais personalizados, a linguagem de shading (shader language) do OpenGL ES SL é usada para escrever vertex e fragment shaders.

P: Existe alguma forma de saber qual versão estou rodando?

R: Sim, selecione a opção “Sobre” no menu de Ajuda. O popup mostra claramente a versão beta da Defold e, mais importante, a release específica SHA1. Para verificar versões de runtime, utilize sys.get_engine_info().

A última versão beta disponível para download de http://d.defold.com/beta pode ser verificado abrindo http://d.defold.com/beta/info.json (o mesmo arquivo existe também para versões estáveis: http://d.defold.com/stable/info.json)

P: Existe alguma forma de saber em qual plataforma o jogo está sendo execução em tempo de execução?

R: Sim, verifique sys.get_sys.info().

P: As versões beta da Defold atualizam automaticamente?

R: Sim. O editor beta Defold verifica por uma atualização na inicialização, assim como a versão estável da Defold faz.

Publicando jogos

P: Estou tentando publicar meu jogo na AppStore. Como eu devo responder ao Identificador de Publicidade (IDFA)?

R: Quando estiver enviando, a Apple possui três checkboxes para os três casos de uso válidos para o IDFA:

  1. Servir propaganda dentro do app (Serve ads within the app)
  2. Instalar atribuição a partir de propaganda (Install attribution from ads)
  3. Atribuição de ação de usuário a partir de propaganda (User action attribution from ads)

Se você marcar a opção 1, o revisor de app procurará por propagandas que aparecerão no app. Se seu jogo não mostra propagandas, o jogo pode ser rejeitado. Defold em si não utiliza id de propaganda (AD id).

P: Como eu monetizo o meu jogo?

R: Defold possui suporte para comprar dentro do app e várias soluções de publicidade. Verificar a categoria de Monetização no Portal de Ativos para uma lista atualizada das opções disponíveis de monetização.

Erros usando Defold

P: Por que o editor não inicia ou abre meu projeto?

R: Verifique se existem espaços no path da aplicação Defold. Por exemplo, se você colocar a pasta Defold-macosx contendo a versão macOS do editor em sua pasta Applications, então deve estar tudo bem. Se você renomear a pasta Defold macosx o editor pode não inicializar mais. No Windows, colocar Defold dentro de C:\Program Files\ pode ocasionar este problema. Isto é por conta de um bug conhecido na base do framework Eclipse.

P: Eu não consigo iniciar o jogo e não há erro de build. O que está acontecendo?

R: O processo de build pode falhar ao realizar rebuild dos arquivos em casos raros onde já tinha encontrado erro de build que você arrumou. Forçe um rebuild completo selecionando Project > Rebuild And Launch a partir do menu.

P: Por que estou tomando uma exceção java quando tentou iniciar a Defold?

R: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Esta exceção ocorre quando o editor tenta fazer uma conexão https mas a cadeia de certificados fornecida pelo servidor não pode ser verificada.

Ver este link para detalhes neste erro.

Linux

Q: Why is the Defold editor super small when run on a 4k or HiDPI monitor when using GNOME?

A: Change the scaling factor before running Defold. source

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

A: An alternative solution, especially when you wish to scale up by a fraction, is to modify the Defold/config file and on the vmargs line add glass.gtk.uiScale: source

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,...

More on this value in the Arch Linux HiDPI wiki article.

Q: Why does mouse clicks on Elementary OS go through the editor onto whatever is below?

A: Start the editor like this:

$ GTK_CSD=0 ./Defold

Q: The Defold editor crashes when opening a collection or game object and the crash refers to “com.jogamp.opengl”

A: On certain distributions (like Ubuntu 18) there is an issue with the version of jogamp/jogl Defold uses vs. the version of Mesa on the system. You can override which GL version that gets reported when calling glGetString(GL_VERSION) by setting the MESA_GL_VERSION_OVERRIDE to 2.1 or a larger value but less than or equal to the version of your driver. You can check which is the maximum OpenGL version your driver supports using glxinfo:

glxinfo | grep version

Example output (look for “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,

Use version 2.1 or version matching your graphics driver:

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

Q: Why am I getting “com.jogamp.opengl.GLException: Graphics configuration failed” when launching Defold?

A: On certain distributions (for instance Ubuntu 20.04) there is an issue with the new Mesa drivers (Iris) when running Defold. You can try using an older driver version when running Defold:

$ MESA_LOADER_DRIVER_OVERRIDE=i965 ./Defold

Q: The Defold editor crashes when opening a collection or game object and the crash refers to libffi.so

A: The libffi version of your distribution and the one required by Defold (version 6 or 7) does not match. Make sure libffi.so.6 or libffi.so.7 is installed under /usr/lib/x86_64-linux-gnu. You can download libffi.so.7 like this:

$ 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

Next you specify the path to this version in the LD_PRELOAD environment variable when running Defold:

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

Q: My OpenGL drivers are outdated. Can I still use Defold?

A: Yes, it might be possible to use Defold if you enable software rendering. You can enable software rendering by setting the LIBGL_ALWAYS_SOFTWARE environment variable to 1:

$ LIBGL_ALWAYS_SOFTWARE=1 ./Defold

Q: Why doesn’t my Defold game start when I try to run it on Linux?

A: Check the console output in the editor. If you get the following message:

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

Then you need to install libopenal1. The package name varies between distributions, and in some cases you might have to install the openal and openal-dev or openal-devel packages.

$ apt-get install libopenal-dev

Q: Why does the top menu close before I can select something?

A: This is likely caused by the window manager used (for instance Qtile or i3). This is a known issue in JavaFX and it can either be solved by setting the GDK_DISPLAY environment variable to 1:¨

$ GDK_DISPLAY=1 ./Defold

D=2

Or by modifying the Defold/config file and on the vmargs line add -Djdk.gtk.version=2:

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

Q: Why am I not able to browse all available file locations when I select Open From Disk?

A: If you are running Defold from Steam using Flatpak you need to give Steam permission to access your other drives. You can modify the permissions of your Flatpak applications using Flatseal or similar tool.

Android

Q: Is it possible to hide the navigation and status bars on Android?

A: Yes, set the immersive_mode setting in the Android section of your game.project file. This lets your app take over the whole screen and capture all touch events on the screen.

Q: Why am I’m getting “Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]” when installing a Defold game on device?

A: Android detects that you try to install the app with a new certificate. When bundling debug builds, each build will be signed with a temporary certificate. Uninstall the old app before installing the new version:

$ adb uninstall com.defold.examples
Success
$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
      pkg: /data/local/tmp/Defold examples.apk
Success

HTML5

Q: Why does my HTML5-app freeze at the splash screen in Chrome?

A: In some cases it is not possible to run a game in the browser locally from the filesystem. Running from the editor serves the game from a local web server. You can, for instance, use SimpleHTTPServer in Python:

$ python -m SimpleHTTPServer [port]

Q: Why does my game crash with error “Unexpected data size” while loading?

A: This usually happens when you are using Windows and make a build and commit it to Git. If you have the wrong line-ending configuration in Git it will change your line endings and thus also the data size. Follow these instructions to solve the problem: https://docs.github.com/en/free-pro-team@latest/github/using-git/configuring-git-to-handle-line-endings

Windows

Q: Why are GUI box nodes without a texture transparent in the editor but show up as expected when I build and run?

A: This error can happen on computers using AMD Radeon GPUs. Make sure to update your graphics drivers.

Q: Why am I getting ‘com.sun.jna.Native.open.class java.lang.Error: Access is denied’ when opening an atlas or a scene view?

A: Try running Defold as administrator. Right-click on the Defold executable and select “Run as Administrator”.

Q: Why is my game not rendering properly on Windows using an Intel UHD integrated GPU (but my HTML5 build works)?

A: Make sure to update your driver to a version higher than or equal to 27.20.100.8280. Check with the Intel Driver Support Asistant. Additional information can be found in this forum post.

Q: The Defold editor is crashing and the log shows AWTError: Assistive Technology not found

If the editor crashes with a log mentioning Caused by: java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge then follow these steps:

  • Navigate to C:\Users\<username>
  • Open the file called .accessibility.properties using a standard text editor (Notepad is fine)
  • Find the following lines in the config:
assistive_technologies=com.sun.java.accessibility.AccessBridge
screen_magnifier_present=true
  • Add a hashmark (#`) in front of theses lines
  • Save your changes to the file and restart Defold

Consoles

Q: Do I need to install additional tools to build for consoles?

A: You will be able to create application bundles from the command line tools. Information about how to test on PlayStation®4, PlayStation®5 and Nintendo Switch hardware will be provided to you when you are given access to the respective platforms.

Q: Is it still easy to use a single code base if I decide to also target consoles?

A: Yes, all of the standard Defold API functions are available also for the console platforms. In addition to the standard functionality you will also have access to a couple of PlayStation®4, PlayStation®5 and Nintendo Switch specific functions, but in general the code should be able to remain exactly the same across multiple platforms.

Conteúdo de jogo

P: A Defold suporta prefabs?

R: Sim. São chamados de coleções(collections). Elas permitem que você crie hieraquias de game object complexas e armazene-as como building blocks separados que você pode instanciar no editor ou em tempo de execução (por meio de collection spawning). Para nós GUI existe o suporte para templates GUI.

P: Eu não consigo adicionar um game object como filho de outro game object, por quê?

R: Existe chance de você estar tentando adicionar um filho em um arquivo de game object e isso não é possível. Para entender o porquê, tem que se lembrar que hierarquias pai-filho são estritamente uma hierarquia de transformação scene-graph. Um game object que não foi colocado (ou gerado) dentro de uma cena (coleção) não é parte de uma scene-graph e então não pode ser parte de uma hierarquia scene-graph.

P: Por que não consigo transmitir mensagens para todos os filhos de um game object?

R: Relações pai-filho espressam nada mais do que relações de transformação scene-graph e não devem ser confundidos por agregados de orientação objeto. Se você tenta focar no dados do seu jogo e em como melhor transformá-los enquanto seu jogo altera seu estado, você provavelmente encontrará menos necessidade de enviar mensagens com o estado dos dados para tantos objetos ao mesmo tempo. No caso de precisar de hieraquias de dados, estes são facilmente construídos e lidados em Lua.

P: Por que estou sofrendo com artefatos visuais ao redor das bordas dos meus sprites?

R: Isso é um artefato visual chamado “edge bleeding” onde você encontra os pixels de borda