A: Sí, el motor y editor Defold con toda su funcionalidad es completamente libre de cargos. No hay costos, cuotas o regalías escondidas. Solo gratis.
A: Uno de los objetivos de Defold Foundation es asegurarse que el software Defold esté disponible a desarrolladores globalmente y que el código fuente esté disponible libre de cargos.
A: Estamos comprometidos profundamente con Defold. La Defold Foundation ha sido establecida de una forma que esté garantizada su existencia como responsable de Defold por muchos años próximos. No se va a ir a ningún lado.
A: Absolutamente. Defold es usado por un creciente número de desarrolladores de videojuegos profesionales y estudios de videojuegos. Revisa el games showcase para ejemplos de videojuegos desarrollados usando Defold.
A: Registramos datos de uso de manera anónima de nuestros sitios y el editor Defold para mejorar nuestros servicios y producto. No hay seguimiento de usuario en los juegos que desarrollas (al menos que añadas un servicio de analytics por tu cuenta). Lee más en nuestra Política de privacidad.
A: Defold fue creado por Ragnar Svensson y Christian Murray. Empezaron trabajando en el motor, editor y servidores in 2009. King y Defold empezaron una asociación en 2013 y King adquirió Defold en 2014. Lee la historia completa aquí.
A: ¡Absolutamente! El motor es un motor 3D completo. Sin embargo, las herramientas fueron creadas para el 2D así que tendrás que hacer un montón de trabajo pesado. Un mejor soporte 3D está en planeación.
A: La lógica del juego en tu proyecto Defold está escrita principalmente en el lenguaje Lua (específicamente Lua 5.1/LuaJIT, refiere al manual Lua para más detalles). Lua es un lenguaje dinámico ligero que es rápido y poderoso. También puedes usar lenguaje nativo (C/C++, Objective-C, Java and JavaScript dependiendo de la plataforma) para extender el motor Defold con nuevas funcionalidades. Cuando crees materiales personalizados, se utiliza OpenGL ES SL shader language para escribir vértices y fragmentos shaders.
A: Las siguientes plataformas tienen soporte para el editor/herramientas y el runtime del motor:
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 El editor fue creado y probad para 64-bit Ubuntu 18.04. Debe funcionar en otras distribuciones pero no damos garantía de ello.)
(2 El engine runtime debe correr en la mayoría de distribuciones 64-bit de Linux mientras los drivers de gráficos estén actualizados y soporten OpenGL ES 2.0.)
A: Con un click puedes publicar en Nintendo Switch, iOS, Android y HTML5 así como macOS, Windows y Linux. Es realmente un código base con múltiples plataformas soportadas.
A: Defold utiliza WebGL en builds HTML5, Metal en iOS y macOS y Vulkan o OpenGL ES 2.0 en las otras plataformas. Como desarrollador solo tienes que preocuparte por un render API utilizando un rendering pipeline completamente codificable.
A: Si, selecciona la opción “About” en el menú Help. El popup muestra claramente la versión beta de Defold y, más importante, el release específico SHA1. Para la versión de runtime, usa sys.get_engine_info()
.
La última version beta disponible para descarga desde http://d.defold.com/beta puede revisarse abriendo http://d.defold.com/beta/info.json (el mismo archivo existe para versiones estables: http://d.defold.com/stable/info.json)
A: Sí, checa sys.get_sys_info()
.
A: El editor utilizará el 75% de tu memoria disponible en el sistema. Una computadora con 4GB de RAM debe ser suficiente para proyectos menores de Defold. Para proyectos de tamaño medio o grandes es recomendado 6GB de RAM o más.
A: Sí. El editor beta de Defold verifica por una actualización al inicio, tal como la versión estable de Defold.
A: Este error está relacionado a problemas con Java assistive technology como el NVDA screen reader. Probablemente tienes un archivo .accessibility.properties
en tu carpeta home. Remueve el archivo y trata de lanzar el editor de nuevo. (Nota: Si utilizas cualquier tecnología de asistencia y requieres que el archivo esté presente entonces por favor escríbenos a info@defold.se para discutir soluciones alternativas).
Se ha discutido aquí en el foro de Defold.
A: Verifica si hay espacios en la ruta de la aplicación Defold. Por ejemplo, si pones la carpeta Defold-macosx que contiene la versión macOS del editor en tu carpeta de Applications, entonces debes estar bien. Si renombraste la carpeta a Defold macosx el editor puede que no inicie. En windows, poner Defold bajo C:\Program Files\ puede ocasionar este problema. Esto es debido a un bug conocido en el framework de Eclipse.
A: Esta excepción ocurre cuando el editor trata de hacer una conexión https pero la cadena de certificado provisto por el servidor no puede ser verificado.
Mira este link para más detalles en este error.
A: Cambia el factor de escala antes de correr Defold. source
$ gsettings set org.gnome.desktop.interface scaling-factor 2
$ ./Defold
A: Empieza el editor así:
$ GTK_CSD=0 ./Defold
A: En ciertas distribuciones (como Ubuntu 18) existe un error con la versión de jogamp/jogl que usa Defold vs. la versión de Mesa en el sistema. Puedes sobreescribir cuál versión de GL sea reportado cuando llames a glGetString(GL_VERSION)
cambiando el valor de MESA_GL_VERSION_OVERRIDE
a 2.1 o un valor más alto pero menos o igual que la versión de tu driver. Puedes verificar cual es la versión máxima de OpenGL que soporta tu driver usando glxinfo
:
glxinfo | grep version
Ejemplo de salida (busca “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,
Usa la versión 2.1 o la versión que iguala tu driver de gráficos:
$ MESA_GL_VERSION_OVERRIDE=2.1 ./Defold
$ MESA_GL_VERSION_OVERRIDE=4.6 ./Defold
A: En ciertas distribuciones (por ejemplo Ubuntu 20.04) existe un error con el nuevo driver de Mesa (Iris) cuando ejecutas Defold. Puedes intentar usar una versión anterior del driver cuando ejecutes Defold:
$ MESA_LOADER_DRIVER_OVERRIDE=i965 ./Defold
A: La versión libffi de tu distribución y la requerida por Defold (version 6 or 7) no son iguales. Asegúrate que libffi.so.6
o libffi.so.7
estén instalados bajo /usr/lib/x86_64-linux-gnu
. Puedes descargar libffi.so.7
de la siguiente forma:
$ wget http://ftp.br.debian.org/debian/pool/main/libf/libffi/libffi7_3.3-5_amd64.deb
$ sudo dpkg -i libffi7_3.3-5_amd64.deb
Luego especifica la ruta de esta versión en la variable del ambiente LD_PRELOAD
cuando ejecutes Defold:
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7 ./Defold
A: Si, puede ser posible usar Defold si habilitas el renderizado por software. Puedes habilitar el renderizado por software cambiando la variable de ambiente LIBGL_ALWAYS_SOFTWARE
a 1:
$ LIBGL_ALWAYS_SOFTWARE=1 ./Defold
A: Verifica la salida de consola (console output) en el editor. Si obtienes el siguiente mensaje:
dmengine: error while loading shared libraries: libopenal.so.1: cannot open shared object file: No such file or directory
Entonces necesitas instalar libopenal1. El nombre del paquete varía entre distribuciones, y en algunos casos también necesitarás instalar los paquetes openal y openal-dev o openal-devel.
$ apt-get install libopenal-dev
A: Si, activa la opción immersive_mode en la sección de Android de tu archivo game.project. Esto deja a tu aplicación tomar la pantalla completa y capturar todos los eventos touch de la pantalla.
A: Android detecta que hayas tratado de instalar la aplicación con un nuevo certificado. Cuando creas builds de depuración, cada build será firmada con un certificado temporal. Desinstala la aplicación anterior antes de instalar la nueva versión:
$ 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
A: En algunos casos no es posible correr un juego en el navegador de manera local desde el sistema de archivos. Correr desde el editor sirve el juego desde un servidor web local. Puedes, por ejemplo, utilizar SimpleHTTPServer en Python:
$ python -m SimpleHTTPServer [port]
A: Esto usualmente pasa cuando estás usando Windows y creas una build y lo cometes en Git. Si tienes la configuración line-ending equivocada en Git puede cambiar tus finales de líneas y por lo tanto el tamaño de la data. Sigue estas instrucciones para resolver el problema: https://docs.github.com/en/free-pro-team@latest/github/using-git/configuring-git-to-handle-line-endings
A: Asegúrate de que utilizas el mismo identificador de bundle en tu proyecto Defold así como el que usaste en el proyecto Xcode cuando generaste el perfil provisional del móvil.
A: Desde Inspect the entitlements of a built app:
$ codesign -d –ent :- /path/to/the.app
A: Desde Inspecting a profile’s entitlements:
$ security cms -D -i /path/to/iOSTeamProfile.mobileprovision
A: Este error puede ocurrir en ordenadores usando AMD Radeon GPUs. Asegúrate de actualizar los drivers de gráficos.
A: Intenta correr Defold como administrador. Click derecho en el ejecutable Defold y selecciona “ejecutar como Administrador”.
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.
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.
A: Cuando estés presentando, Apple tiene tres checkboxes para sus tres usos válidos por el IDFA:
Si seleccionas la opción un, el revisor de la aplicación buscará por anuncios dentro de la app. Si tu juego no muestra anuncios, el juego puede ser rechazado. Defold no usa AD id por sí mismo.
A: Defold tiene soporte para compras in-app y varias soluciones de anuncios. Checa la categoría de Monetización en el Asset Portal para una lista actualizada de opciones de monetización disponibles.
A: El proceso de build puede fallar al hacer rebuild en raras ocasiones donde ha encontrado previamente errores de build que hayas reparado. Forza un rebuild completo seleccionando Project > Rebuild And Launch desde el menú.
A: Si, lo hace. Son llamadas colecciones. Permiten crear jerarquías de objetos complejas y guardarlos como un bloque de construcción separado que puedes instanciaren el editor o durante la ejecución (a través de la aparición de colección). Para nodos GUI existe soporte para plantillas GUI.
A: Probablemente sea que trataste de añadir un hijo en el archivo de objeto de juego y eso no es posible. Para entender por qué, hay que recordar que las jerarquías padre-hijo son estrictamente una jerarquía de transformación del gráfico de la escena (scene-graph). Un objeto de juego que no se haya colocado (o aparecido) en una escena (colección) no es parte del gráfico de la escena y no puede ser parte de la jerarquía de éste.
A: Las relaciones padre-hijo no expresan nada más que las relaciones de transformación scene-graph y no deben ser confundidas por agregados de orientación de objeto. Si intentas enfocarte en los datos de tu juego y como transformarlo de la mejor forma posible, encontrarás menor necesidad de enviar mensajes con datos de estado a demasiados objetos al mismo tiempo. En los casos donde necesites jerarquía de datos, éstos son construidos y mantenidos fácilmente en Lua.
A: Eso es un artefacto visual llamado “sangrado de borde” (edge bleeding) donde los pixeles del borde de otros pixeles cercanos en un atlas sangran en la imagen asignada a tu sprite. La solución es acomodar los bordes de tus atlas de imágenes con columnas y filas extra de pixeles idénticos. Afortunadamente esto se puede hacer automáticamente en el editor de atlas de Defold. Abre el atlas y cambia el valor de Extrude Borders a 1.
A: El shader de sprites integrado que es usado por defecto en todos los sprites tienen un “tinte” constante definido:
local red = 1
local green = 0.3
local blue = 0.55
local alpha = 1
go.set("#sprite", "tint", vmath.vector4(red, green, blue, alpha))
A: La posición Z de un objeto de juego controla el orden del renderizado. Los valores bajos son dibujados antes de los valores más altos. En el script de render por defecto los objetos del juego con una profundidad del rango -1 a 1 son dibujados, cualquier cosa con el número más bajo o alto no serán dibujados. Puedes leer más sobre el script de render en la documentación de Render oficial. En nodos GUI el valor Z es ignorado y no afecta el orden del renderizado. En lugar de eso los nodos son renderizados en el orden que son enlistados y de acuerdo a las jerarquías de los hijos (y por capas). Lee más sobre el renderizado de GUI y optimización de llamadas de dibujo (draw call) utilizando capas en la documentación de GUI oficial.
A: No. El único efecto es precisión. El buffer Z es logarítmico y tiene una resolución muy fina de valores z cercanos a 0 y menos resolución más lejano al 0. Por instancia, con un buffer de 24 bits los valores 10.0 y 10.000005 pueden ser diferenciados mientras 10000 y 10005 no pueden.
A: De hecho, sí hay consistencia. Los ángulos están expresados en grados en todo el editor y el API del juego. Las librerías del videojuego utilizan radianes. Recientemente la convención rompe las físias de la propiedad angular_velocity
que son expresadas en radianes/s. Se espera un cambio.
A: Solo es una forma con color de vértice. Ten en cuenta que aún costará un nivel de servicio (fill-rate)
A: Todos los recursos son contados por referencia de manera interna. Tan pronto el contador de referencia llegue a cero, el recurso es liberado.
A: Todo está basado por componente. Es posible crear un objeto sin cabeza con múltiples sonidos y reproducir sonidos que envien mensajes al objeto controlador de sonido.
A: En general todos los recursos están estadísticamente declarados con el beneficio que obtienes control de recursos de manera libre. Puedes usar las propiedades de recursos para cambiar qué recurso es asignado al componente.
A: No, por el momento no es posible.
A: Si, utiliza la bandera physics.debug en game.project. (Refiere a la documentación de opciones del proyecto oficial).
A: Defold utiliza una versión modificada de Box2D en el fondo y el costo de rendimiento debe ser similar. Siempre puedes ver cuánto tiempo el motor tarda en las físicas sacando el profiler. También deberías considerar que tipo de colisiones usas. Objetos estáticos utilizan menos rendimiento, por ejemplo. Refiere a la documentación de Físicas en Defold para más detalles.
A: Depende de si están reproduciéndose o no. Un ParticleFx que no esté reproduciendo no tiene costo en el rendimiento. La implicación del rendimiento por reproducir ParticleFx debe ser evaluada usando el profiler pues su impacto depende en cómo está configurado. Como lo es con muchas otras cosas la memoria está asignada en el frente por el número de ParticleFx definido como max_count en game.project.
A: Cada proxy de colección cargado tiene su propio input stack. El Input está enrutado desde el input stack de la colección principal por el componente de proxy a los objetos en la colección. Esto significa que no es suficiente para el objeto del juego cargado en la colección el adquirir enfoque en el input, el objeto que aún mantiene (holds) el componente proxy necesita adquirir el enfoque de input también. Mira la documentación de Input para más detalles.
A: No. Defold soporta propiedades de tipo hash. Éstas pueen ser usadas para indicar tipos, identificadores de estado o claves de cualquier tipo. Los Hashes también pueden ser usados para guardar id’s de objeto (paths) pero propiedades de url son usualmente prefereidas ya que el editor automáticamente puebla un desplegable con URLs relevantes para ti. Ver la documentación de propiedades de Script para más detalles.
A: Accesas a las células usando mymatrix.m11
, mymatrix.m12
, mymatrix.m21
etc
Not enough resources to clone the node
cuando uso gui.clone() o gui.clone_tree()
A: Incrementa el valor de Max Nodes
del componente gui. Encontrarás este valor en el panel Properties cuando selecciones la raíz del componente en el Outline.
A: ¡Por supuesto! Tenemos una categoría “Work for hire” para eso. Siemprealentamos todo y eso benefica a la comunidad, y ofreciendo tus servicios a la comunidad—por remuneración o no—es un buen ejemplo.
A: En orden para reducir el revivir hilos de “Work for hire”, no deberías postear por más de una vez cada 14 días en tu propio hilo (al menos que sea una respuesta directa a un comentario en el hilo, en ese caso puedes responder). Si deseas añadir material adicional de tu trabajo dentro de los 14 días, puedes editar posts existentes con tu contenido añadido.
A: Seguro, ¡dense el gusto! Puede ser usado para ofertas así como pedidos, ej. “Programador buscando 2d pixel artist; soy rico y te pagaré bien”.