Komut dosyası genellikle çekirdek motorunuzun dışında çalışan bir kod parçasıdır. Genellikle metin dosyalarında saklamak istediğiniz her yerde bulunur. Daha sonra genellikle motor tarafından yüklenir, ayrıştırılır ve çalışma zamanında yürütülür.
Genel olarak ne olursa olsun, hangi dili kullanırsanız kullanın (örneğin, Lua, Angelscript), bu dil genellikle motor programcısının motor işlevlerini ve hatta tüm sınıfları şu anda çalışan "komut dosyası altyapısı" örneğine göstermesini sağlayan bazı olanaklara sahiptir. .
Örneğin (tamamen aptal bir örnek, ama sadece noktayı ele almak için) oyun kodunuz bir yerde zombileri ortaya çıkaran ortak bir işleve sahip olabilir:
void SpawnZombie(int x, int y, int hp /* whatever else */)
{
//...
}
Şimdi kullandığınız komut dosyası dili, bu işlevi çalışan komut dosyası ayrıştırıcısına göstermenizi sağlar. Bu etkili bir şekilde bir metin dosyasını açabileceğiniz, "SpawnZombie (200,300,1337)" yazabileceğiniz anlamına gelir ve motorunuz kodu yürüttüğünde, bir Zombi o konumda ortaya çıkacaktır.
Diğer cevaplar zaten bunun tipik olarak nasıl kullanıldığına dair birkaç iyi örneği listeliyor, ancak çok önemli bulduğum bir noktayı dışarıda bırakıyorlar:
Bu tür komut dosyaları çalışma sırasında hata ayıklamayı veya test etmeyi çok kolaylaştırır.
Haritaya bir zombi yerleştirmenin mükemmel bir yolunu bulmak istediğinizi varsayalım, böylece keşfettiklerinde oyuncu üzerinde maksimum korkutucu etki yaratır. Komut dosyası desteği olmadan, uygulamadan çıkmanız, koddaki bazı sihirli sayıları değiştirmeniz, yeniden derlemeniz ve test etmeniz gerekir.
Komut dosyası desteği ile (çalışma zamanı sırasında metin girme yönteminiz zaten varsa, örneğin bir hata ayıklama konsolu), sadece "SpawnZombie (333,444,555)" yazıp nasıl göründüğünü görürsünüz.
Aynı şekilde silahlar, araçlar üretmeniz, farklı haritalar yüklemeniz, oyundaki bazı şeylerin değerlerini değiştirmeniz vb. test edilmiş vb.
Bu, daha karmaşık oyunlarda tonlarca tasarruf sağlayacaktır.