0Pricing
Lua Academy · Pelajaran

Konfigurasi Berbasis Data dan Muat Ulang Langsung

Muat data gim dari berkas Lua dan muat ulang skrip saat runtime.

Konfigurasi Berbasis Data dan Muat Ulang Langsung adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Apa Itu Desain Berbasis Data

Desain berbasis data memisahkan apa (data: statistik, level, tata letak) dari bagaimana (kode: logika permainan). Perubahan data tidak memerlukan kompilasi ulang.

Memuat Konfigurasi dari Berkas Lua

Berkas konfigurasi adalah skrip Lua yang mengembalikan sebuah tabel. Muat berkas tersebut dengan dofile atau loadfile + pcall.

-- config.lua
return {
  playerSpeed = 200,
  gravity     = 980,
  maxEnemies  = 10,
}

Membaca Konfigurasi

Di dalam skrip host, muat dan gunakan tabel konfigurasi.

local config = dofile("config.lua")
print(config.playerSpeed)  -- 200

Pemuatan Konfigurasi dalam Kotak Pasir

Demi keamanan, muat konfigurasi dalam lingkungan terbatas agar kode berbahaya tidak dapat memanggil os.execute atau fungsi berbahaya lainnya.

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

Ringkasan Muat Ulang Langsung

Muat ulang langsung memungkinkan perubahan data (atau kode) saat permainan sedang berjalan. Hal ini sangat mempercepat iterasi: ubah suatu nilai dan lihat hasilnya seketika tanpa memulai ulang.

Mendeteksi Perubahan Berkas

Gunakan os.difftime(os.time(), lastModified) atau periksa waktu modifikasi berkas secara berkala dengan ekstensi C atau trik I/O untuk mendeteksi perubahan pada berkas konfigurasi.

Memuat Ulang Konfigurasi

Saat terjadi perubahan, muat ulang berkas dan perbarui tabel konfigurasi yang sedang digunakan secara langsung agar semua referensi ke tabel tersebut melihat nilai baru.

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

Memuat Ulang Modul Lua

Hapus modul dari package.loaded sebelum memanggil require lagi untuk memaksa pemuatan baru.

package.loaded["mymodule"] = nil
local mymodule = require("mymodule")

Data Level dari Lua

Definisikan level sebagai tabel Lua: tata letak ruangan, penempatan musuh, dan zona pemicu. Muat saat program berjalan dengan dofile agar iterasi berlangsung cepat.

-- level1.lua
return {
  name = "Forest",
  enemies = {
    {type="goblin", x=100, y=200},
    {type="troll",  x=300, y=150},
  },
  music = "forest_theme.ogg",
}

Validasi

Setelah memuat konfigurasi, validasi bidang dan jenis yang diperlukan. Tampilkan pesan kesalahan yang jelas untuk data yang hilang atau tidak sesuai format.

Tag Versi

Sertakan bidang version dalam berkas konfigurasi. Tolak berkas dengan versi yang tidak kompatibel untuk mencegah kesalahan tersembunyi akibat data lama.

Pertanyaan tentang Muat Ulang Langsung

Bagaimana cara memaksa Lua memuat ulang modul yang tersimpan dalam cache?

Ringkasan: Konfigurasi Berbasis Data dan Muat Ulang Langsung

Muat data permainan dari berkas Lua dengan dofile/loadfile. Gunakan lingkungan kotak pasir untuk konfigurasi yang tidak tepercaya. Terapkan muat ulang langsung dengan memeriksa waktu modifikasi berkas secara berkala dan menghapus package.loaded untuk memuat ulang modul.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Konfigurasi Berbasis Data dan Muat Ulang Langsung” gratis?

Ya — teks lengkap “Konfigurasi Berbasis Data dan Muat Ulang Langsung” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Konfigurasi Berbasis Data dan Muat Ulang Langsung”?

Muat data gim dari berkas Lua dan muat ulang skrip saat runtime. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Konfigurasi Berbasis Data dan Muat Ulang Langsung” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Sistem Peristiwa dalam Lua
  2. Skrip Berbasis Komponen
  3. Perilaku Kecerdasan Buatan dengan Mesin Keadaan
  4. Konfigurasi Berbasis Data dan Muat Ulang Langsung
← Kembali ke Lua Academy