Outil CLI
migueldeicaza/SwiftGodot avatar
migueldeicaza/SwiftGodot

SwiftGodot : relier Swift à Godot 4 par GDExtension

Nouvelles fixations Godot pour Swift. SwiftGodot SwiftGodot fournit des liaisons en langage Swift pour le moteur de jeu Godot 4.6 en utilisant le nouveau système GDExtension.

1 684 étoiles114 forksSwiftMIT

En bref

De quoi s’agit-il ?
SwiftGodot amène le système GDExtension de Godot à Swift, pour les extensions et l'utilisation du moteur intégré.
À qui s’adresse-t-il ?
migueldeicaza-swiftgodot s adresse aux lecteurs dont le besoin correspond aux fonctions décrites dans son README. Il ne convient pas d en déduire des garanties absentes de cette source.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 35 jours.
En quel langage est-il écrit ?
Principalement Swift, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Des bindings pour Godot 4.6

SwiftGodot est un paquet Swift qui fournit des bindings de langage pour le moteur de jeu Godot 4.6 via le système GDExtension. Le README indique que le support des versions plus anciennes de Godot est disponible sur des branches séparées. Le projet peut être utilisé de deux manières : construire une GDExtension qui s'insère dans un projet Godot existant, où le code Swift fournit des services au moteur, ou comme une API avec SwiftGodotKit, qui intègre Godot directement dans une application Swift et permet au code Swift de piloter le runtime. Cette distinction façonne la majeure partie de la documentation du projet.

Dans migueldeicaza-swiftgodot, le point « Des bindings pour Godot 4.6 » doit être lu à partir des éléments effectivement cités par le README. Il décrit une capacité ou un contexte précis, sans établir à lui seul une promesse de performance, de sécurité ou de compatibilité. La distinction est importante pour choisir un périmètre réaliste et pour ne pas attribuer au dépôt une fonction que sa documentation ne mentionne pas.

Le lecteur peut confronter cette section aux fichiers, exemples et liens nommés dans la source. Lorsque le README ne donne pas une information, elle reste non documentée. Cette réserve est particulièrement utile pour migueldeicaza-swiftgodot, car les dépendances et l environnement d exécution peuvent modifier le résultat observé.

Deux manières d'utiliser SwiftGodot

La première approche est le modèle d'extension. Le code Swift est compilé en une bibliothèque partagée, et un fichier .gdextension indique à Godot où se trouve cette bibliothèque et quel point d'entrée appeler. La deuxième approche utilise le module compagnon SwiftGodotKit, qui intègre Godot dans votre application et vous permet de lancer le runtime Godot depuis le code Swift. Le README souligne que piloter Godot depuis Swift signifie que vous pouvez déboguer votre code Swift depuis Xcode sur macOS, et aussi déboguer le code Godot lui-même. Les deux approches sont présentées comme complémentaires plutôt que concurrentes.

Dans migueldeicaza-swiftgodot, le point « Deux manières d'utiliser SwiftGodot » doit être lu à partir des éléments effectivement cités par le README. Il décrit une capacité ou un contexte précis, sans établir à lui seul une promesse de performance, de sécurité ou de compatibilité. La distinction est importante pour choisir un périmètre réaliste et pour ne pas attribuer au dépôt une fonction que sa documentation ne mentionne pas.

Plateformes supportées et version de Swift

Le README liste iOS, Linux, macOS et Windows comme plateformes que SwiftGodot peut actuellement cibler. Il dit aussi que des plateformes supplémentaires pourraient être possibles mais n'ont pas été testées, donc leur stabilité ne peut pas être vérifiée. Le paquet nécessite Swift 6.3. Pour la consommation, vous pouvez référencer le dépôt depuis SwiftPM pour un build complet depuis les sources sur toute plateforme supportée, ou utiliser le paquet préconstruit pour plateformes Apple depuis SwiftGodotBinary pour une itération plus rapide sur macOS et iOS.

Dans migueldeicaza-swiftgodot, le point « Plateformes supportées et version de Swift » doit être lu à partir des éléments effectivement cités par le README. Il décrit une capacité ou un contexte précis, sans établir à lui seul une promesse de performance, de sécurité ou de compatibilité. La distinction est importante pour choisir un périmètre réaliste et pour ne pas attribuer au dépôt une fonction que sa documentation ne mentionne pas.

Runtime minimal ou API complète

SwiftGodot offre deux cibles. La première, SwiftGodotRuntime, est un build minimal qui ne comprend que le support des types de variantes de base, Object, ClassDB et RefCounted. La seconde, SwiftGodot, est la cible traditionnelle avec toute l'API Godot et est un sur-ensemble de SwiftGodotRuntime. Le README renvoie à une discussion expliquant la justification de la séparation du runtime, mais cette discussion est externe au dépôt. Cette séparation vous permet de choisir entre une dépendance plus petite et une surface API complète selon vos besoins.

Dans migueldeicaza-swiftgodot, le point « Runtime minimal ou API complète » doit être lu à partir des éléments effectivement cités par le README. Il décrit une capacité ou un contexte précis, sans établir à lui seul une promesse de performance, de sécurité ou de compatibilité. La distinction est importante pour choisir un périmètre réaliste et pour ne pas attribuer au dépôt une fonction que sa documentation ne mentionne pas.

Démarrer un projet

Le README pointe vers plusieurs projets compagnons pour démarrer. SwiftGodotKick peut créer un squelette de modèle GDExtension avec Swift, ainsi qu'un projet SwiftGodotKit autonome pour une itération rapide sur macOS. SwiftGodotCLI est un outil en ligne de commande qui construit et exécute du code SwiftGodot sans configuration manuelle de projet Godot. Il y a aussi un projet modèle avec un plugin éditeur permettant de recompiler en un seul clic, et un modèle pour créer vos propres ponts d'API iOS/macOS vers Godot. Le README n'inclut pas d'instructions d'installation pour ces outils au-delà des liens.

Dans migueldeicaza-swiftgodot, le point « Démarrer un projet » doit être lu à partir des éléments effectivement cités par le README. Il décrit une capacité ou un contexte précis, sans établir à lui seul une promesse de performance, de sécurité ou de compatibilité. La distinction est importante pour choisir un périmètre réaliste et pour ne pas attribuer au dépôt une fonction que sa documentation ne mentionne pas.

Créer une extension

Pour créer une extension, le README liste quatre composants : votre code Swift, un fichier .gdextension qui décrit où se trouvent les ressources de la bibliothèque Swift, du code d'enregistrement et d'amorçage, et l'importation de l'extension dans un projet Godot. Le code Swift est compilé en une bibliothèque partagée que Godot appelle. Le README montre un exemple minimal : une classe SpinningCube qui sous-classe Node3D, utilise la macro @Godot et remplace _ready et _process. Il montre aussi une fonction de point d'entrée manuelle avec @_cdecl et une alternative utilisant la macro #initSwiftExtension. Un plugin de build appelé EntryPointGeneratorPlugin peut scanner les fichiers sources et générer le point d'entrée automatiquement.

Dans migueldeicaza-swiftgodot, le point « Créer une extension » doit être lu à partir des éléments effectivement cités par le README. Il décrit une capacité ou un contexte précis, sans établir à lui seul une promesse de performance, de sécurité ou de compatibilité. La distinction est importante pour choisir un périmètre réaliste et pour ne pas attribuer au dépôt une fonction que sa documentation ne mentionne pas.

Vérifier migueldeicaza-swiftgodot sur son chemin réel

Pour SwiftGodot, créez une extension minimale avec une classe SpinningCube, le fichier .gdextension et le point d entrée décrit dans README.md. Compilez avec Swift 6.3, chargez la bibliothèque dans Godot 4.6 et observez _ready puis _process. Un second essai avec SwiftGodotKit doit être séparé: il vérifie l intégration du runtime dans une application Swift, pas le même chemin que GDExtension.

Ce contrôle doit rester proportionné au projet. Notez la version, l entrée utilisée et la sortie obtenue, puis reliez chaque observation à un nom propre au dépôt. Une démonstration réussie ne prouve pas les scénarios non décrits; elle permet seulement de confirmer le chemin choisi et de repérer les écarts entre la documentation de migueldeicaza-swiftgodot et votre environnement.

Conclusion éditoriale

migueldeicaza-swiftgodot s adresse aux lecteurs dont le besoin correspond aux fonctions décrites dans son README. Il ne convient pas d en déduire des garanties absentes de cette source. Commencez par le chemin concret indiqué pour migueldeicaza-swiftgodot, contrôlez sa sortie et gardez séparées les capacités annoncées, les limites documentées et les résultats de votre environnement.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté