Lua Academy · Leçon

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.

Leçon 4 sur 413 étapes

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)  -- 200

Charger 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()
end

Pré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
end

Recharger 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.

Gratuit pour commencer

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

  1. Systèmes d’événements en Lua
  2. Scripts fondés sur des composants
  3. Comportement de l’IA avec les machines à états
  4. Configuration pilotée par les données et rechargement à chaud
← Retour à Lua Academy