R : Oui, le moteur et l’éditeur Defold, avec toutes leurs fonctionnalités, sont entièrement gratuits. Il n’y a ni coûts cachés, ni frais, ni redevances. C’est tout simplement gratuit.
R : L’un des objectifs de la Defold Foundation est de garantir que le logiciel Defold soit accessible aux développeurs du monde entier et que son code source soit disponible gratuitement.
R : Nous sommes profondément engagés envers Defold. La Defold Foundation a été créée de manière à garantir qu’elle restera un propriétaire responsable de Defold pendant de nombreuses années. Elle est là pour durer.
R : Absolument. Defold est utilisé par un nombre croissant de développeurs de jeux professionnels et de studios de jeux. Consultez la vitrine de jeux pour découvrir des exemples de jeux créés avec Defold.
R : Nous enregistrons des données d’utilisation anonymes provenant de nos sites web et de l’éditeur Defold afin d’améliorer nos services et notre produit. Aucun suivi des utilisateurs n’est effectué dans les jeux que vous créez (sauf si vous ajoutez vous-même un service d’analyse). Pour en savoir plus, consultez notre politique de confidentialité.
R : Defold a été créé par Ragnar Svensson et Christian Murray. Ils ont commencé à travailler sur le moteur, l’éditeur et les serveurs en 2009. King et Defold ont établi un partenariat en 2013, puis King a acquis Defold en 2014. Découvrez toute l’histoire ici.
R : Absolument ! Le moteur est un moteur 3D à part entière. Cependant, les outils sont conçus pour la 2D, vous devrez donc réaliser vous-même une grande partie du travail. Une meilleure prise en charge de la 3D est prévue.
R : La logique du jeu de votre projet Defold est principalement écrite en Lua (plus précisément Lua 5.1/LuaJIT ; consultez le manuel Lua pour plus de détails). Lua est un langage dynamique léger, rapide et très puissant. Defold prend en charge les transpileurs qui produisent du code Lua. Une fois une extension de transpilation installée, vous pouvez utiliser d’autres langages — comme Teal — pour écrire du Lua vérifié statiquement. Vous pouvez également utiliser du code natif (C/C++, Objective-C, Java et JavaScript selon la plateforme) pour ajouter de nouvelles fonctionnalités au moteur Defold. Lors de la création de matériaux personnalisés, le langage de shaders OpenGL ES SL est utilisé pour écrire les shaders de sommets et de fragments.
R : La prise en charge de C++ dans Defold sert principalement à écrire des extensions natives qui interagissent avec des SDK tiers ou des API propres à une plateforme. Le dmSDK (l’API C++ de Defold utilisée dans les extensions natives) sera progressivement enrichi de nouvelles fonctionnalités afin de permettre aux développeurs qui le souhaitent d’écrire toute la logique du jeu en C++. Lua restera le langage principal pour la logique du jeu, mais l’API C++ enrichie permettra également de l’écrire en C++. Le travail d’enrichissement de l’API C++ consiste surtout à déplacer les fichiers d’en-tête privés existants vers la partie publique et à remanier les API pour un usage public.
R : TypeScript n’est pas officiellement pris en charge. La communauté maintient une boîte à outils, ts-defold, qui permet d’écrire du TypeScript et de le transpiler en Lua directement depuis VSCode.
R : Haxe n’est pas officiellement pris en charge. La communauté maintient hxdefold, qui permet d’écrire du Haxe et de le transpiler en Lua.
R : La Defold Foundation a ajouté la prise en charge de C# et l’a rendue disponible sous forme de dépendance de bibliothèque. C# est un langage de programmation largement adopté, et sa prise en charge aidera les studios et les développeurs qui ont beaucoup investi dans C# à passer à Defold.
Defold n’abandonne PAS Lua comme langage de script principal. C# est ajouté comme nouveau langage pour les extensions. Cela n’aura aucune incidence sur le moteur, sauf si vous choisissez d’utiliser des extensions C# dans votre projet.
La prise en charge de C# aura un coût (taille de l’exécutable, performances à l’exécution, etc.), mais il revient à chaque développeur ou studio de décider si cela lui convient.
Quant à C# lui-même, il s’agit d’un changement relativement mineur, puisque le système d’extensions prend déjà en charge de nombreux langages (C/C++/Java/Objective-C/Zig). Les SDK resteront synchronisés grâce à la génération des liaisons C#. Cela permettra de maintenir ces liaisons à jour avec un minimum d’efforts.
La Defold Foundation était auparavant opposée à l’ajout de C# dans Defold, mais elle a changé d’avis pour plusieurs raisons :
R : Les plateformes suivantes sont prises en charge :
Éditeur et outils
| Système | Version | Architectures |
|---|---|---|
| macOS | 11 Big Sur | x86-64, arm-64 |
| Windows | 10 | x86-64 |
| Ubuntu (1) | 22.04 LTS | x86-64 |
(1 L’éditeur est compilé et testé pour Ubuntu 64 bits. Il devrait également fonctionner sur d’autres distributions, mais nous ne donnons aucune garantie.)
Moteur d’exécution
| Système | Version | Architectures |
|---|---|---|
| macOS | 11 Big Sur | x86-64, arm-64 |
| Windows | Vista | x86-64 |
| Linux (2) | Toutes | x86-64, arm-64 |
| iOS | 15.0 | arm-64 |
| Android | 5.0 (niveau d’API 21) | arm-32, arm-64, x86-64 |
| HTML5 | wasm-web, wasm_pthread-web |
(2 Le moteur d’exécution devrait fonctionner sur la plupart des distributions Linux 64 bits tant que les pilotes graphiques sont à jour. Voir ci-dessous pour plus d’informations sur les API graphiques.)
R : En un clic, vous pouvez publier sur PS4™, PS5™, Nintendo Switch, iOS (64 bits), Android (32 bits et 64 bits) et HTML5, ainsi que sur macOS (x86-64 et arm64), Windows (64 bits) et Linux (x86-64 et arm64). Une seule base de code permet réellement de prendre en charge plusieurs plateformes.
R : En tant que développeur, vous n’avez à vous soucier que d’une seule API de rendu utilisant une chaîne de rendu entièrement programmable par script. L’API des scripts de rendu de Defold traduit les opérations de rendu vers les API graphiques suivantes :
| Système | API graphique | Note |
|---|---|---|
| macOS | Metal, OpenGL 3.3 ou Vulkan | Metal est utilisé par défaut depuis Defold 1.14.0 ; Vulkan via MoltenVK |
| Windows | OpenGL 3.3 ou Vulkan 1.1 | |
| Linux x86-64 | OpenGL 3.3 ou Vulkan 1.1 | |
| Linux ARM64 | OpenGL ES ou Vulkan 1.1 | EGL/GLES est utilisé par défaut |
| Android | OpenGLES 3.0 ou Vulkan 1.1 | Repli sur OpenGLES 2.0 |
| Appareils iOS | OpenGLES 3.0, Metal ou Vulkan | OpenGLES est utilisé par défaut ; Vulkan via MoltenVK |
| Simulateur iOS | Metal | Toujours Metal depuis Defold 1.14.0 |
| HTML5 | WebGL 2.0 ou WebGPU | Repli sur WebGL 1.0 |
R : Oui, sélectionnez l’option « About » dans le menu Help. La fenêtre qui s’affiche indique clairement la version bêta de Defold et, surtout, le SHA1 de cette version précise. Pour obtenir la version à l’exécution, utilisez sys.get_engine_info().
Vous pouvez vérifier la dernière version bêta disponible au téléchargement sur http://d.defold.com/beta en ouvrant http://d.defold.com/beta/info.json (le même fichier existe également pour les versions stables : http://d.defold.com/stable/info.json).
R : Oui, consultez sys.get_sys_info().
R : L’éditeur utilisera jusqu’à 75 % de la mémoire disponible du système. Sur un ordinateur doté de 4 Go de RAM, cela devrait suffire pour les petits projets Defold. Pour les projets de taille moyenne ou les grands projets, il est recommandé de disposer de 6 Go de RAM ou plus.
R : Oui. L’éditeur Defold en version bêta recherche une mise à jour au démarrage, tout comme la version stable de Defold.
java.awt.AWTError: Assistive Technology not found s’affiche-t-elle au lancement de l’éditeur ?
R : Cette erreur est liée à des problèmes avec les technologies d’assistance de Java, comme le lecteur d’écran NVDA. Vous avez probablement un fichier .accessibility.properties dans votre dossier personnel. Supprimez ce fichier et essayez de relancer l’éditeur. (Remarque : si vous utilisez une technologie d’assistance et que ce fichier doit être présent, contactez-nous à l’adresse info@defold.se pour discuter d’autres solutions).
Ce problème est abordé ici sur le forum Defold.
sun.security.validator.ValidatorException: PKIX path building failed s’affiche-t-elle au lancement de l’éditeur ?
R : Cette exception se produit lorsque l’éditeur tente d’établir une connexion https, mais que la chaîne de certificats fournie par le serveur ne peut pas être vérifiée.
Consultez ce lien pour obtenir des détails sur cette erreur.
java.lang.OutOfMemoryError: Java heap space s’affiche-t-elle lors de certaines opérations ?
R : L’éditeur Defold est développé en Java et, dans certains cas, la configuration mémoire par défaut de Java peut ne pas suffire. Si cela se produit, vous pouvez configurer manuellement l’éditeur pour lui allouer davantage de mémoire en modifiant son fichier de configuration. Ce fichier, nommé config, se trouve dans le dossier Defold.app/Contents/Resources/ sur macOS. Sous Windows, il se trouve à côté de l’exécutable Defold.exe et, sous Linux, à côté de l’exécutable Defold. Ouvrez le fichier config et ajoutez -Xmx6gb à la ligne qui commence par vmargs. L’ajout de -Xmx6gb définit la taille maximale du tas à 6 gigaoctets (la valeur par défaut est généralement de 4 Go). Le résultat devrait ressembler à ceci :
vmargs = -Xmx6gb,-Dfile.encoding=UTF-8,-Djna.nosys=true,-Ddefold.launcherpath=${bootstrap.launcherpath},-Ddefold.resourcespath=${bootstrap.resourcespath},-Ddefold.version=${build.version},-Ddefold.editor.sha1=${build.editor_sha1},-Ddefold.engine.sha1=${build.engine_sha1},-Ddefold.buildtime=${build.time},-Ddefold.channel=${build.channel},-Ddefold.archive.domain=${build.archive_domain},-Djava.net.preferIPv4Stack=true,-Dsun.net.client.defaultConnectTimeout=30000,-Dsun.net.client.defaultReadTimeout=30000,-Djogl.texture.notexrect=true,-Dglass.accessible.force=false,--illegal-access=warn,--add-opens=java.base/java.lang=ALL-UNNAMED,--add-opens=java.desktop/sun.awt=ALL-UNNAMED,--add-opens=java.desktop/sun.java2d.opengl=ALL-UNNAMED,--add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED
R : Si vous utilisez GNOME, vous pouvez modifier le facteur d’échelle avant de lancer Defold. source
$ gsettings set org.gnome.desktop.interface scaling-factor 2
$ ./Defold
R : Une autre solution, particulièrement utile si vous souhaitez agrandir l’affichage selon un facteur non entier, consiste à modifier le fichier Defold/config et, sur la ligne vmargs, à ajouter 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,...
Pour en savoir plus sur cette valeur, consultez l’article du wiki Arch Linux consacré au HiDPI.
R : Si vous utilisez KDE, vous pouvez définir GDK_SCALE :
$ GDK_SCALE=2 ./Defold
R : Lancez l’éditeur ainsi :
$ GTK_CSD=0 ./Defold
com.jogamp.opengl
R : Sur certaines distributions (comme Ubuntu 18), il existe un problème entre la version de jogamp/jogl utilisée par Defold et la version de Mesa présente sur le système. Vous pouvez remplacer la version de GL signalée lors d’un appel à glGetString(GL_VERSION) en définissant MESA_GL_VERSION_OVERRIDE sur 2.1 ou une valeur supérieure, mais inférieure ou égale à la version prise en charge par votre pilote. Vous pouvez vérifier la version maximale d’OpenGL prise en charge par votre pilote à l’aide de glxinfo :
glxinfo | grep version
Exemple de sortie (recherchez « 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,
Utilisez la version 2.1 ou la version correspondant à votre pilote graphique :
$ MESA_GL_VERSION_OVERRIDE=2.1 ./Defold
$ MESA_GL_VERSION_OVERRIDE=4.6 ./Defold
com.jogamp.opengl.GLException: Graphics configuration failed » s’affiche-t-il au lancement de Defold ?
R : Sur certaines distributions (par exemple Ubuntu 20.04), les nouveaux pilotes Mesa (Iris) posent un problème lors de l’exécution de Defold. Vous pouvez essayer d’utiliser une version plus ancienne du pilote pour lancer Defold :
$ MESA_LOADER_DRIVER_OVERRIDE=i965 ./Defold
libffi.so
R : La version de libffi de votre distribution ne correspond pas à celle requise par Defold (version 6 ou 7). Assurez-vous que libffi.so.6 ou libffi.so.7 est installé dans /usr/lib/x86_64-linux-gnu. Vous pouvez télécharger libffi.so.7 ainsi :
$ 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
Indiquez ensuite le chemin vers cette version dans la variable d’environnement LD_PRELOAD lors du lancement de Defold :
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7 ./Defold
R : Oui, vous pouvez peut-être utiliser Defold en activant le rendu logiciel. Pour activer le rendu logiciel, définissez la variable d’environnement LIBGL_ALWAYS_SOFTWARE sur 1 :
$ LIBGL_ALWAYS_SOFTWARE=1 ./Defold
R : Vérifiez la sortie de la console dans l’éditeur. Si le message suivant s’affiche :
dmengine: error while loading shared libraries: libopenal.so.1: cannot open shared object file: No such file or directory
Vous devez alors installer libopenal1. Le nom du paquet varie selon les distributions et, dans certains cas, vous devrez peut-être installer les paquets openal et openal-dev ou openal-devel.
$ apt-get install libopenal-dev
R : Ce comportement est probablement dû au gestionnaire de fenêtres utilisé (par exemple Qtile ou i3). Il s’agit d’un problème connu de JavaFX, qui peut être résolu en définissant la variable d’environnement GDK_DISPLAY sur 1 :
$ GDK_DISPLAY=1 ./Defold
D=2
Ou en modifiant le fichier Defold/config pour ajouter, sur la ligne vmargs, -Djdk.gtk.version=2 :
vmargs = -Djdk.gtk.version=2,-Dfile.encoding=UTF-8,...
R : Si vous lancez Defold depuis Steam installé avec Flatpak, vous devez autoriser Steam à accéder à vos autres disques. Vous pouvez modifier les autorisations de vos applications Flatpak à l’aide de Flatseal ou d’un outil similaire.
R : Il est probable qu’un appel interne à Desktop.getDesktop().browse(new URI(url)); échoue, car aucun navigateur n’est détecté sur les systèmes sans Gnome. Essayez d’installer libgnome.
$ apt-get install libgnome
R : Oui, activez le paramètre immersive_mode dans la section Android de votre fichier game.project. Cela permet à votre application d’occuper tout l’écran et de capturer tous les événements tactiles à l’écran.
R : Android détecte que vous essayez d’installer l’application avec un nouveau certificat. Lors de la création de bundles de builds de débogage, chaque build est signé avec un certificat temporaire. Désinstallez l’ancienne application avant d’installer la nouvelle 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
R : Cela peut se produire lorsque deux extensions ou plus fournissent un fragment de manifeste Android contenant la même balise de propriété, mais avec des valeurs différentes. Cela s’est notamment produit avec Firebase et AdMob. L’erreur de build ressemble à ceci :
SEVERE: /tmp/job4531953598647135356/upload/AndroidManifest.xml:32:13-58
Error: Attribute property#android.adservices.AD_SERVICES_CONFIG@resource
value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58 is also
present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
Suggestion: add 'tools:replace="android:resource"' to <property> element at
AndroidManifest.xml to override.
Vous trouverez plus d’informations sur ce problème et sa solution de contournement dans le ticket Defold #9453 et le ticket Google #327696048.
R : Dans certains cas, il n’est pas possible d’exécuter un jeu localement dans le navigateur à partir du système de fichiers. Lorsque vous lancez le jeu depuis l’éditeur, un serveur web local le sert au navigateur. Vous pouvez, par exemple, utiliser SimpleHTTPServer en Python :
$ python -m SimpleHTTPServer [port]
R : Cela se produit généralement lorsque vous utilisez Windows, créez un build et l’enregistrez dans un commit Git. Si la configuration des fins de ligne dans Git est incorrecte, Git modifiera vos fins de ligne et donc également la taille des données. Suivez ces instructions pour résoudre le problème : https://docs.github.com/en/free-pro-team@latest/github/using-git/configuring-git-to-handle-line-endings
R : Assurez-vous d’utiliser le même identifiant de bundle dans votre projet Defold que celui que vous avez utilisé dans le projet Xcode lors de la génération du profil de provisionnement mobile.
R : D’après Inspection des droits d’une application compilée :
codesign -d --ent :- /path/to/the.app
R : D’après Inspection des droits d’un profil :
security cms -D -i /path/to/iOSTeamProfile.mobileprovision
R : Cette erreur peut se produire sur les ordinateurs équipés de GPU AMD Radeon. Veillez à mettre à jour vos pilotes graphiques.
com.sun.jna.Native.open.class java.lang.Error: Access is denied s’affiche-t-il à l’ouverture d’un atlas ou d’une vue de scène ?
R : Essayez d’exécuter Defold en tant qu’administrateur. Faites un clic droit sur l’exécutable Defold et sélectionnez « Run as Administrator ».
R : Veillez à mettre à jour votre pilote vers une version supérieure ou égale à 27.20.100.8280. Vérifiez-le à l’aide de l’Intel Driver Support Assistant. Vous trouverez des informations supplémentaires dans ce message du forum.
AWTError: Assistive Technology not found
Si l’éditeur plante et que le journal mentionne Caused by: java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge, procédez comme suit :
C:\Users\<username>.accessibility.properties dans un éditeur de texte standard (Notepad convient)assistive_technologies=com.sun.java.accessibility.AccessBridge
screen_magnifier_present=true
#`) au début de ces lignesR : Vous pourrez créer des bundles d’application depuis l’éditeur et les outils en ligne de commande. Des informations sur les tests sur le matériel PlayStation®4, PlayStation®5 et Nintendo Switch vous seront fournies lorsque vous obtiendrez l’accès aux plateformes respectives.
R : Oui, toutes les fonctions standard de l’API Defold sont également disponibles sur les plateformes de console. En plus des fonctionnalités standard, vous aurez accès à quelques fonctions propres à la PlayStation®4, à la PlayStation®5 et à la Nintendo Switch, mais en général, le code devrait pouvoir rester exactement le même sur plusieurs plateformes.
R : Lors de la soumission, Apple propose trois cases à cocher pour les trois cas d’utilisation autorisés de l’IDFA :
Si vous cochez l’option 1, la personne chargée d’examiner l’application vérifiera que des publicités s’y affichent. Si votre jeu n’affiche pas de publicités, il risque d’être rejeté. Defold lui-même n’utilise pas d’identifiant publicitaire.
R : Defold prend en charge les achats intégrés et diverses solutions publicitaires. Consultez la catégorie Monetization de l’Asset Portal pour obtenir une liste à jour des options de monétisation disponibles.
R : Dans de rares cas, le processus de build peut ne pas recompiler les fichiers après avoir rencontré des erreurs de build que vous avez corrigées. Forcez une recompilation complète en sélectionnant Project > Rebuild And Launch dans le menu.
R : Oui. Ils sont appelés collections. Ils permettent de créer des hiérarchies complexes d’objets de jeu (game objects) et de les enregistrer comme des éléments distincts que vous pouvez instancier dans l’éditeur ou à l’exécution (par création dynamique de collections). Les nœuds d’interface graphique prennent en charge les modèles d’interface graphique.
R : Vous essayez probablement d’ajouter un enfant dans le fichier de l’objet de jeu, ce qui n’est pas possible. Cette opération n’est possible que dans le fichier de collection. Pour comprendre pourquoi, rappelez-vous que les hiérarchies parent-enfant sont strictement des hiérarchies de transformations du graphe de scène. Un objet de jeu qui n’a pas été placé (ou créé dynamiquement) dans une scène (collection) ne fait pas partie d’un graphe de scène et ne peut donc pas appartenir à une hiérarchie de graphe de scène. Vous pouvez obtenir l’identifiant du parent de l’objet de jeu à l’aide de go.get_parent().
R : Les relations parent-enfant expriment uniquement les relations de transformation du graphe de scène et ne doivent pas être confondues avec les agrégations de la programmation orientée objet. Si vous vous concentrez sur les données de votre jeu et sur la meilleure façon de les transformer lorsque son état change, vous aurez probablement moins besoin d’envoyer constamment des messages contenant des données d’état à de nombreux objets. Lorsque vous avez besoin de hiérarchies de données, celles-ci sont faciles à construire et à gérer en Lua.
R : Il s’agit d’un artefact visuel appelé « débordement des bords » (edge bleeding), dans lequel les pixels situés sur les bords d’éléments voisins dans un atlas débordent sur l’image attribuée à votre sprite. La solution consiste à ajouter une ou plusieurs lignes et colonnes de pixels identiques sur les bords des images de votre atlas. Heureusement, l’éditeur d’atlas de Defold peut le faire automatiquement. Ouvrez votre atlas et définissez la valeur Extrude Borders sur 1.
R : Le shader de sprite intégré, utilisé par défaut pour tous les sprites, définit une constante « tint » :
local red = 1
local green = 0.3
local blue = 0.55
local alpha = 1
go.set("#sprite", "tint", vmath.vector4(red, green, blue, alpha))
R : La position Z d’un objet de jeu détermine l’ordre de rendu. Les valeurs faibles sont dessinées avant les valeurs élevées. Dans le script de rendu par défaut, les objets de jeu dont la profondeur est comprise entre -1 et 1 sont dessinés ; tout ce qui se trouve en dessous ou au-dessus ne l’est pas. Vous trouverez plus d’informations sur le script de rendu dans la documentation officielle sur le rendu. Pour les nœuds d’interface graphique, la valeur Z est ignorée et n’a aucune incidence sur l’ordre de rendu. Les nœuds sont rendus dans l’ordre où ils apparaissent dans la liste et selon les hiérarchies d’enfants (et les couches). Pour en savoir plus sur le rendu de l’interface graphique et l’optimisation des appels de dessin à l’aide des couches, consultez la documentation officielle sur l’interface graphique.
R : Non. Le seul effet concerne la précision. Le tampon de profondeur est logarithmique et offre une résolution très fine pour les valeurs z proches de 0, mais une résolution plus faible loin de 0. Par exemple, avec un tampon de 24 bits, les valeurs 10.0 et 10.000005 peuvent être distinguées, contrairement à 10000 et 10005.
R : Elle est en réalité cohérente. Les angles sont exprimés en degrés partout dans l’éditeur et les API du jeu. Les bibliothèques mathématiques utilisent les radians. Cette convention n’est actuellement pas respectée pour la propriété physique angular_velocity, qui est exprimée en radians/s. Cela devrait changer.
R : Il s’agit simplement d’une forme dont les sommets sont colorés. Gardez à l’esprit qu’elle consomme tout de même de la capacité de remplissage des pixels.
R : Toutes les ressources disposent en interne d’un compteur de références. Dès que ce compteur atteint zéro, la ressource est libérée.
R : Tout repose sur des composants (components). Il est possible de créer un objet de jeu sans interface graphique avec plusieurs sons, puis de lire ces sons en envoyant des messages à l’objet qui contrôle le son.
R : En général, toutes les ressources sont déclarées statiquement, ce qui présente l’avantage de bénéficier automatiquement de leur gestion. Vous pouvez utiliser les propriétés de ressource pour changer la ressource attribuée à un composant.
R : Oui, consultez l’API de physique, en particulier physics.get_shape() et physics.set_shape().
R : Oui, activez le paramètre physics.debug dans game.project. (Consultez la documentation officielle sur les paramètres du projet.)
R : Defold utilise une version modifiée de Box2D en arrière-plan, et le coût en performances devrait être assez similaire. Vous pouvez à tout moment voir combien de temps le moteur consacre à la physique en ouvrant le profileur. Vous devez également tenir compte du type d’objets de collision utilisé. Par exemple, les objets statiques coûtent moins cher en performances. Consultez la documentation officielle sur la physique de Defold pour plus de détails.
R : Cela dépend de leur activité. Un ParticleFx qui ne joue pas n’a aucun coût en performances. Les conséquences d’un ParticleFx en cours de lecture sur les performances doivent être évaluées à l’aide du profileur, car son impact dépend de sa configuration. Comme pour la plupart des autres éléments, la mémoire est allouée à l’avance pour le nombre de ParticleFx défini par max_count dans game.project.
R : Chaque collection chargée par un proxy de collection (collection proxy) possède sa propre pile d’entrées. Les entrées sont acheminées depuis la pile d’entrées de la collection principale, via le composant proxy, jusqu’aux objets de la collection. Cela signifie qu’il ne suffit pas que l’objet de jeu de la collection chargée acquière le focus d’entrée : l’objet de jeu qui contient le composant proxy doit également l’acquérir. Consultez la documentation sur les entrées pour plus de détails.
R : Non. Defold prend en charge les propriétés de type hash. Elles peuvent servir à indiquer des types, des identifiants d’état ou des clés de toute nature. Les valeurs hachées peuvent également servir à stocker les identifiants (chemins) d’objets de jeu, même si les propriétés de type url sont souvent préférables, car l’éditeur remplit automatiquement une liste déroulante avec les URL pertinentes. Consultez la documentation sur les propriétés de script pour plus de détails.
vmath.matrix4() ou une fonction similaire) ?
R : Vous accédez aux cellules à l’aide de mymatrix.m11, mymatrix.m12, mymatrix.m21, etc.
Not enough resources to clone the node lorsque j’utilise gui.clone() ou gui.clone_tree()
R : Augmentez la valeur Max Nodes du composant d’interface graphique. Vous trouverez cette valeur dans le panneau Properties en sélectionnant la racine du composant dans Outline.
R : Bien sûr ! Nous avons une catégorie « Work for hire » spécialement prévue pour cela. Nous encouragerons toujours tout ce qui profite à la communauté, et lui proposer vos services — rémunérés ou non — en est un bon exemple.
R : Pour limiter les remontées des sujets « Work for hire », vous ne pouvez pas publier plus d’un message tous les 14 jours dans votre propre sujet (sauf pour répondre directement à un commentaire du sujet, auquel cas vous pouvez répondre). Si vous souhaitez présenter d’autres travaux dans votre sujet pendant cette période de 14 jours, vous devez modifier vos messages existants pour y ajouter le contenu.
R : Bien sûr, allez-y ! Elle peut servir aussi bien pour les offres que pour les demandes, par exemple : « Programmeur recherche artiste pixel art 2D ; je suis riche et je vous paierai bien ».