Librebox, un moteur de jeu open source compatible avec Roblox
(github.com/librebox-devs)- Librebox est un moteur de jeu 3D open source basé sur Luau qui vise la compatibilité d’API avec Roblox
- Les développeurs peuvent disposer d’une propriété complète, du moteur jusqu’au code, sur leurs jeux
- Le projet est actuellement au stade de démo et prend en charge le rendu de scène essentiel, le déplacement de caméra et la création de parties de base
- Les prochaines versions ajouteront notamment la physique, les entrées utilisateur et le support multiplateforme
- La licence est MIT : le projet est entièrement gratuit et peut être modifié et redistribué librement
Présentation de Librebox
- Librebox est un moteur de jeu 3D open source construit sur Luau
- Son objectif principal est de fournir une API similaire à Roblox afin de garantir au maximum la compatibilité du code Luau existant
- Les développeurs conservent la propriété et la liberté sur le moteur lui-même comme sur la logique du jeu, ce qui permet un développement sans dépendance à une plateforme
Pourquoi Librebox ?
- Il permet une utilisation libre du moteur et la maîtrise de sa propriété
- Les développeurs déjà familiers de Roblox ou de Luau peuvent réutiliser leur code presque sans modification
- Il devient possible de construire sa propre plateforme et de distribuer, modifier et monétiser librement
Principaux exemples de code
- Exemple : création d’une part, rotation et changement de couleur
- Voir le fichier
examples/part_example.lua - Comme avec du code Luau/Roblox classique, il est possible de gérer presque de la même manière la création de parts, la couleur, la position, la rotation et les boucles
- Voir le fichier
Résumé des fonctionnalités prises en charge (version démo)
- Rendu de scène, éclairage, ombres, skybox
- Rendu des objets dans game.Workspace
- Fonctions de déplacement de caméra de base
- Support du système d’instances et des principaux types de données
CFrame,Vector3,Color3,Random, etc.Instance.new, duplication/destruction de parts, contrôle des propriétés
- Services côté client
- Workspace, Camera, Lighting, RunService, etc.
- Support des événements RenderStep/HeartBeat
- Support des scripts Luau et ordonnanceur
- Coroutines, événements, tâches asynchrones (
task.spawn,task.wait, etc.)
- Coroutines, événements, tâches asynchrones (
- Gestion des fenêtres et optimisation du plein écran
Plateformes et extension
- Actuellement disponible uniquement sur Windows
- S’appuie sur raylib, ce qui facilite le portage vers d’autres OS
- Distribué sous forme d’exécutable autonome
Fonctionnalités prévues à l’avenir
- Moteur physique et détection de collision
- Support des modèles/meshes, images, GUI et matériaux
- GUI à l’écran, réplication/multijoueur (serveur)
- UserInputService, ContextActionService, etc.
- Mise en place d’un éditeur et d’un écosystème complet serveur/client
Vision et avenir
- Un moteur open source totalement autonome avec une ambition proche de Godot et Unity
- Permettre un développement libre avec mon jeu, mon code, sans dépendance à une plateforme
- Projet d’extension à tous les domaines : éditeur, serveur, distribution et monétisation
- API utilisateur et code source librement réécrits
Licence et droits d’auteur
- Licence MIT
- Utilise uniquement des licences open source, dont Luau (moteur de Roblox, MIT) et raylib (zlib/libpng)
- Projet indépendant, sans lien avec des plateformes commerciales ni avec des tiers
- N’inclut aucun code propriétaire ni ressources/sources externes
Contact et communauté
- E-mail : librebox.developers@gmail.com
- Tout le monde peut l’utiliser, donner son avis, le modifier et y contribuer
Stack technique
- Composé de C++, Lua, Luau, Python, C, CMake, etc.
Importance et avantages comparatifs
- Moteur open source indépendant pour l’écosystème Roblox/Lua
- Offre une liberté de création, de propriété et de monétisation souvent limitée sur les plateformes commerciales existantes
- Avec son code source entièrement ouvert, sa compatibilité d’API et sa démo sous Windows, il convient bien à la création de jeux et de contenus 3D basés sur Lua
Conclusion
- Un moteur de jeu réunissant gratuité, open source, compatibilité et liberté, ce qui en fait une option attrayante pour les développeurs juniors et le développement de jeux multiplateformes
1 commentaires
Avis Hacker News
:WaitForChild(), en disant que c'était plutôt une bonne chosewhile not parentObj:FindFirstChild("childObj name") do wait() end. Si je me souviens bien, la fonctionwait()est d'au moins 1/30 de seconde par frame ; pour quelque chose de vraiment immédiat, il faudrait l'exécuter à chaque heartbeatRobloxStudio.exe --place game.rbxlx --script test_runner.lua --keep-openpour afficher en continu la sortie console aurait été extrêmement pratique.loadPlaceFileau dépôt Lemur, puis je me suis arrêté en me demandant si c'était vraiment le bon endroit ; c'est à ce moment-là que j'ai découvert Librebox, et maintenant j'espère aller dans cette direction pour tester en CI local, avec Jest, des apps react-lua-iou en mode interactif