(Lua) oyun betikleri ne anlama geliyor?


9

Lua'nın genellikle gömülü kodlama ve özellikle kodlama için kullanıldığını okudum. Tam olarak nasıl kullanıldığını resmetmekte zorlanıyorum. Neden ve hangi özellikler ve hangi kitle için kullanıldığını açıklayabilir misiniz?

Bu sorular özellikle Lua'yı değil , Lua betiklemesine benzer bir amaca hizmet eden gömülü komut dizilerini ele almaktadır.

Son kullanıcıların özel ayarlamalar yapması için kullanılıyor mu? Oyun geliştiricilerinde oyun mantığı (seviyeler, AI, ...) oluşturulmasını hızlandırmak için kullanılıyor mu? Komut dosyası oluşturma daha hızlı olabileceğinden, oyun çerçeve kodu yazmak için kullanılır mı?

Temel olarak, bu tür komut dosyası kullanımının düz yapılandırma ve çerçeve mantığı arasındaki derinliği merak ediyorum. Ve ne kadar komut dosyası yazılır. Birkaç yapılandırma satırı mı yoksa önemli miktarda mı?


Yanıtlar:


11

Bir oyun motorundaki bir betik dili, oyun motorunuzu daha üst düzey, yorumlanmış bir şekilde ortaya çıkarmak için vardır.

Örneğin Skyrim gibi bir oyun alın. Ortaya çıkan birçok görev ve etkileşim olduğunu fark edeceksiniz ve bunlardan bazılarında, bir sahne sırasında bir öğeye yaklaşmanıza tepki veren bir bekçi gibi oldukça etkileyici bir mantık var. Bunlar saf veri biçiminde ifade edilmesi zor şeylerdir ve bu nedenle görevler ve özel davranışlar genellikle komut dosyası olarak ifade edilir.

Dikkate alınması gereken birçok pratiklik de vardır - bu komut dosyalarını oluşturan oyun tasarımcıları genellikle oyun motoru kodlayıcılarından daha yüksek bir soyutlama düzeyinde çalışırlar; bellek tahsisi, vb. için endişe etmek istemiyorlar. Bir betik dili onlar için iyi bir seçimdir ve LUA ile, genellikle motorun güzel bir üst düzey cephesine çağırırlar. Ayrıca, bir komut dosyasında bazı dakika özelliklerini ayarlamak istediğinizde oyununuzu yeniden derlemek de istemezsiniz.

Tüm bunların ötesinde, kolay hata ayıklama, modifikasyon ve bahsettiğiniz diğer tüm güzel şeylere izin verir.


3

Son kullanıcıların özel ayarlamalar yapması için kullanılıyor mu?

Sadece yapılandırmalardan oyunun üst düzey mantığının büyük bir kısmını uygulamaya kadar geniş bir yelpazede kullanılabilir, örneğin Oyuna bağlıdır, ancak Lua sadece gömülü betiktir. İnsanlar bunu istedikleri kadar ya da az kullanabilirler.


1
Bazı oyunlar son kullanıcıların kendi komut dosyalarını uygulamasını sağlar. Genel API'nin yanı sıra, kullanıcılar oyun etkinliklerine tepki gösteren eklentiler, widget'lar vb. Uygulayabilir.
Laiv

1
MMO rpgs'de düşünüyordum :-)
Laiv

1
@Laiv IMO MMORPG'leri uygulamak çok eğlenceli görünen şeylerden biri, ancak onları uzun süre oynamaya benzer şekilde, böyle bir eziyete dönüşüyor. Oyun dünyası tipik olarak çok statik olmalı ya da oyun moderatörlerinden böyle aktif bir katılım olmalıdır. Çevrimdışı oyunların geliştirilmesi çok daha eğlenceli olduğunu düşünüyorum, çünkü aslında sona eren bir hikayeyle çok dinamik bir dünya yaratabilirsiniz.

1
Hayır hayır. Yıllar önce Allods Online oynuyordum. Oyunun, oyuncuların eklentileri ve widget'ları uygulaması için küçük bir API'si vardı. Cevabınızı bazı örneklerle genişletmek istedim :-)
Laiv

1
@Laiv Oh görüyorum! Hesabımı silme sürecindeyim ancak cevabımı daha kısa ve daha tatlı hale getirmek için düzenledim. Bu süreçte biraz bilgi kaybettim ama önceki düzenlemem senaryoyu kişisel olarak nasıl kullandığımdan bahsetti. Şu anda tüm kişisel bilgileri cevaplarımdan düzenlemeye çalışıyorum.

2

Orijinal oyun programcıları dışındaki kişiler tarafından oyun mantığını değiştirmek veya genişletmek için kullanılabilir. Bu insanlar nispeten teknik olmayan olabilir, örneğin oyun tasarımcıları veya son kullanıcılar (oyuncular).

Komut dosyaları genellikle daha üst düzey dillerdir ve bu nedenle Lua, C ++ 'dan daha kolaydır. Komut dosyalarında yazılan kod genellikle oyun tasarımcılarının oyun sahnelerini çabucak değiştirmeleri için yararlı olan ana uygulama (oyun motoru) derlenmeden değiştirilebilir.

Not: Bu soruyu gamedev.stackexchange.com'da sorsan iyi edersin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.