À propos du projet
# Born React Native Godot
React Native Godot permet d'intégrer le moteur Godot dans des applications React Native. Il a été créé par [Born](https://born.com) et développé par [Migeran](https://migeran.com) en collaboration.
## Principales fonctionnalités
* Prend en charge Android et iOS, basé sur [LibGodot](https://github.com/migeran/libgodot).
* Utilisé en production par Born, au service de millions d'utilisateurs.
* Démarrez, arrêtez et redémarrez le moteur Godot ; chaque redémarrage peut charger un projet Godot différent.
* Mettez en pause et reprenez l'instance Godot en cours d'exécution.
* Godot s'exécute sur un thread séparé, ce qui maintient l'interface utilisateur et le thread JavaScript de React Native réactifs.
* Intégrez la fenêtre principale de Godot et ses sous-fenêtres sur le même écran ou sur des écrans différents.
* Accédez à l'API complète de Godot depuis TypeScript/JavaScript : instanciez des objets, appelez des méthodes, obtenez/définissez des propriétés, connectez-vous aux signaux et transmettez des callables JavaScript à Godot.
## Premiers pas avec l'application d'exemple
L'[application d'exemple](example/) démontre les principales fonctionnalités. Après avoir installé les prérequis (par exemple, via ASDF pour Node, Java, Gradle, Ruby) et exporté les exemples Godot (`./export_godot_GodotTest.sh android|ios`, etc.), téléchargez les bibliothèques précompilées et exécutez sur iOS ou Android comme d'habitude avec `yarn ios` / `yarn android`. Un script pratique `update_deps.sh` gère la configuration.
## Votre première application React Native Godot
1. Installez depuis npm : `yarn add @borndotcom/react-native-godot`
2. Téléchargez les packages LibGodot précompilés : `yarn download-prebuilt` (non distribués via npm ; cela permet des builds personnalisés).
3. Importez et utilisez la vue : `import { RTNGodot, RTNGodotView, runOnGodotThread } from "@borndotcom/react-native-godot"`.
4. Ajoutez `<RTNGodotView style={...}/>` (par défaut, la fenêtre principale de Godot).
5. Initialisez Godot sur le thread Godot en appelant `RTNGodot.createInstance([...])` avec les arguments de ligne de commande. Points clés :
- Utilisez `--display-driver embedded` pour intégrer dans React Native.
- Sur Android, transmettez un chemin de dossier (par exemple, `--path /main`) ou PCK ; sur iOS, utilisez `--main-pack` avec un fichier pack. Le téléchargement à l'exécution des applications Godot est recommandé pour une taille plus petite et des mises à jour plus faciles.
6. Arrêtez avec `RTNGodot.destroyInstance()` sur le thread Godot ; pause/reprise depuis le thread principal JS via `RTNGodot.pause()` / `RTNGodot.resume()`.
Exportez votre projet Godot en PCK ou ZIP ; l'exemple inclut des scripts d'aide.
## Utilisation de l'API Godot
Accédez à l'API via `RTNGodot.API()` :
```typescript
let Godot = RTNGodot.API();
var engine = Godot.Engine;
var vector = Godot.Vector2();
vector.x = 1.0; vector.y = 2.0;
var sceneTree = engine.get_main_loop();
var root = sceneTree.get_root();
```
Connectez-vous aux signaux avec `.connect(function() { ... })`, et transmettez des fonctions JS comme Callables aux méthodes Godot (par exemple, depuis le GDScript d'un nœud personnalisé).
## Threading et JavaScript
Godot s'exécute sur son propre thread. Pour interagir depuis JavaScript, la bibliothèque utilise [react-native-worklets-core](https://github.com/margelo/react-native-worklets-core) pour exécuter du JS workletisé sur le thread Godot via `runOnGodotThread()`. C'est l'approche recommandée ; les appels directs depuis le thread principal RN sont possibles mais limités (par exemple, l'accès à l'arbre de scènes n'est pas thread-safe) et les références d'objets ne sont pas interchangeables entre les contextes.
## Sujets avancés
* **Builds LibGodot personnalisés** : Clonez LibGodot (branche `libgodot_migeran_45`), compilez avec les scripts fournis et remplacez les chemins de téléchargement via des variables d'environnement (par exemple, `LIBGODOT_XCFRAMEWORK_PATH`).
* **Débogage du code natif** : Pour iOS, compilez un LibGodot de développement et définissez des points d'arrêt dans Xcode ; pour Android, ajoutez des répertoires de symboles et éventuellement créez un lien symbolique vers l'arborescence source de Godot.
* **Débogage à distance dans l'éditeur Godot** : Transmettez `--remote-debug tcp://<host>:6007` et utilisez `adb reverse` sur Android ; définissez l'hôte distant de l'éditeur sur iOS.
## Licence
Publié sous licence MIT.
## Support
Le support commercial et le développement sont proposés par [Migeran](https://migeran.com). Born recrute des ingénieurs React Native (voir [born.com](https://born.com)).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.