Configuration pilotée par les données et rechargement à chaud
Chargez les données du jeu depuis des fichiers Lua et rechargez les scripts à l’exécution.
Configuration pilotée par les données et rechargement à chaud est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.
Qu'est-ce qu'une conception pilotée par les données ?
La conception pilotée par les données sépare le quoi (les données : statistiques, niveaux, dispositions) du comment (le code : la logique du jeu). Les changements de données ne nécessitent pas de recompilation.
Charger la configuration depuis un fichier Lua
Un fichier de configuration est un script Lua qui renvoie une table. Chargez-le avec dofile ou loadfile + pcall.
-- config.lua
return {
playerSpeed = 200,
gravity = 980,
maxEnemies = 10,
}Lire la configuration
Dans le script hôte, chargez et utilisez la table de configuration.
local config = dofile("config.lua")
print(config.playerSpeed) -- 200Charger une configuration en bac à sable
Pour des raisons de sécurité, chargez la configuration dans un environnement restreint afin qu'un code malveillant ne puisse pas appeler os.execute ni d'autres fonctions dangereuses.
local function loadConfig(filename)
local chunk, err = loadfile(filename)
if not chunk then error(err) end
local env = {math = math, table = table}
setfenv and setfenv(chunk, env) or _ENV -- 5.1 vs 5.2+
return chunk()
endPrésentation du rechargement à chaud
Le rechargement à chaud permet de modifier les données ou le code pendant l'exécution du jeu. Cela accélère considérablement l'itération : modifiez une valeur et observez immédiatement le résultat sans redémarrer.
Détecter les modifications de fichiers
Utilisez os.difftime(os.time(), lastModified) ou interrogez la date de modification d'un fichier au moyen d'une extension C ou d'une astuce d'E/S afin de détecter la modification d'un fichier de configuration.
Recharger la configuration
Lorsqu'une modification est détectée, rechargez le fichier et mettez à jour sur place la table de configuration active afin que toutes les références à cette table voient les nouvelles valeurs.
local function hotReload(config, filename)
local ok, newCfg = pcall(dofile, filename)
if ok and type(newCfg) == "table" then
for k, v in pairs(newCfg) do config[k] = v end
print("Config reloaded")
else
print("Reload error:", newCfg)
end
endRecharger les modules Lua
Supprimez un module de package.loaded avant de rappeler require afin de forcer un nouveau chargement.
package.loaded["mymodule"] = nil
local mymodule = require("mymodule")Données de niveau en Lua
Définissez les niveaux sous forme de tables Lua : dispositions des salles, placements des ennemis et zones de déclenchement. Chargez-les lors de l'exécution avec dofile pour itérer rapidement.
-- level1.lua
return {
name = "Forest",
enemies = {
{type="goblin", x=100, y=200},
{type="troll", x=300, y=150},
},
music = "forest_theme.ogg",
}Validation
Après avoir chargé la configuration, validez les champs et les types requis. Fournissez des messages d'erreur clairs pour les données manquantes ou mal formées.
Étiquettes de version
Incluez un champ version dans les fichiers de configuration. Refusez les fichiers dont la version est incompatible afin d'éviter les erreurs silencieuses dues à des données obsolètes.
Question sur le rechargement à chaud
Comment forcer Lua à recharger un module mis en cache ?
Récapitulatif : configuration pilotée par les données et rechargement à chaud
Chargez les données du jeu depuis des fichiers Lua avec dofile/loadfile. Utilisez des environnements en bac à sable pour les configurations non fiables. Implémentez le rechargement à chaud en interrogeant les dates de modification des fichiers et en vidant package.loaded pour recharger les modules.
Apprends Lua avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 40
- Leçons
- 159
Questions Fréquemment Posées
La leçon « Configuration pilotée par les données et rechargement à chaud » est-elle gratuite ?
Oui — le texte complet de « Configuration pilotée par les données et rechargement à chaud » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Configuration pilotée par les données et rechargement à chaud » ?
Chargez les données du jeu depuis des fichiers Lua et rechargez les scripts à l’exécution. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Lua Academy ?
Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Configuration pilotée par les données et rechargement à chaud » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?
Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Systèmes d’événements en Lua
- Scripts fondés sur des composants
- Comportement de l’IA avec les machines à états
- Configuration pilotée par les données et rechargement à chaud