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

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