Metlivi Blog

Hikâyeyi Bozmadan Bir Oyunda Yapay Zekâ Diyalogları Nasıl İsteğe Bağlı Hale Getirilir?

Oyuncular yapay zekâ tarafından oluşturulan diyalogları devre dışı bırakabiliyorsa, oyunun bu diyaloglar olmadan da aynı temel aktiviteyi tamamlayacak eksiksiz bir rotaya ihtiyacı vardır. İşe, üretilen diyalogların halihazırda ne işe yaradığını listeleyerek başlayın: ipuçları sunmak, oyuncu eylemlerini onaylamak, seçenekler açmak veya atmosfere katkıda bulunmak. Ardından her temel işleve özel tasarlanmış bir rota verin, ilerleme ve ipucu kayıtlarını diyalog ayarından bağımsız tutun ve bu özellik hem açıkken hem de kapalıyken bir kayıt dosyasını test edin. Bunun maliyeti ek metin yazımı, durum yönetimi, arayüz çalışması ve test süreçleridir; getirisi ise standart oynanışa engel teşkil etmeyen, oyuncu kontrolünde bir özelliktir.

30 Eylül 20267 min readOkuma, sanat ve kültürYazan: Metlivi Editorial Team
Bölüm 1

Açma/kapama düğmesini oluşturmadan önce "kapalı" durumunun ne anlama geldiğine karar verin

"Yapay zekâ diyaloğu" olarak etiketlenen bir ayar, kapatıldığında neyin değiştiği belirsizse çok muğlak kalır. Yalnızca yeni üretilen satırları mı, oluşturulan tüm metinleri mi, sesli çıkışı mı yoksa serbest biçimli sohbete dayalı etkileşimleri mi devre dışı bıraktığını açıkça belirtin. Ayar açıklaması, pratik etkiyi bir oyuncunun anlayabileceği terimlerle ifade etmelidir; örneğin "Konuşmalar için önceden yazılmış diyalogları kullan" veya "Üretilen NPC yanıtlarını devre dışı bırak". Ayar, bir kayıt dosyası zaten üretilmiş diyalogları kullandıktan sonra değiştirilirse, önceki konuşma geçmişinin görünür kalıp kalmayacağını belirtin.

Alternatifleri seçmeden önce diyaloğun işlevlerini birbirinden ayırın. Üretilen bir yanıt dekoratif olabilir, oyuncunun kurduğu cümleye tepki verebilir, isteğe bağlı bir ipucu sağlayabilir veya zorunlu bir ipucunu aktarabilir. Bu rollerin farklı yedekleme gereksinimleri vardır. İsteğe bağlı bir selamlama, görevi değiştirmeden ortadan kalkabilir. Gerekli bir ipucu ise önceden yazılmış bir satır, okunabilir bir not, bir hedef güncellemesi veya çevresel bir işaret gibi başka bir tasarlanmış rotaya ihtiyaç duyar. Bu, anlatım sunumu ile oynanış bilgisi arasındaki ayrımdan çıkarılan bir tasarım önerisidir: Microsoft'un Xbox kılavuzu, oynanış için kritik bilgilerin erişilebilir bir biçimde aktarılması gerektiğini belirtirken, oyun erişilebilirliği kılavuzu temel bilgilerin yalnızca sese bağımlı kılınmaması tavsiyesinde bulunur. Xbox Accessibility Guideline 106: Screen narration, Full list – Game Accessibility Guidelines

Bölüm 2

Görevi koruyun, her bir satırı korumak zorunda değilsiniz

Bir yedek planın üretilen her yanıtı taklit etmesi gerekmez. Oyuncunun mevcut hedefi anlama, gerekli kararları verme ve aktiviteye devam etme becerisini koruması gerekir. Yapay zekâ açıkken ve kapalıyken oynanabilir minimum sekansı yazın: Karşılaşmayı hangi eylem başlatıyor, oyuncunun hangi bilgiye ihtiyacı var, hangi seçim önem taşıyor ve tamamlanmayı ne onaylıyor? Bu sekansları eksik ön koşullar veya çıkmaz sokaklar açısından karşılaştırın.

Örneğin, kilitli bir oda hakkında bir ipucunu açığa çıkarabilecek bir konuşma hayal edin. Önceden yazılmış rotada, oyuncu bir konu seçip sabit bir ipucu alabilir; konuşmadan sonra ipucu günlükte görünür. Üretilen diyalog etkinken, NPC yanıtlarının sözcükleri değişebilir ancak aynı ipucu tanımlanmış bir oyun olayı aracılığıyla kaydedilmelidir. Özellik devre dışı bırakılırsa, önceden yazılmış karşılıklı konuşma bu ipucunu yine de açığa çıkarabilir. Bu açıklayıcı bir modeldir, belirli bir oyuna dair bir iddia değildir. Günlük güncellemesi, oynanışın istikrarlı kaydıdır; diyalog ise bunu sunmanın yollarından yalnızca biridir.

Bu ayrım, metin yazma işini sınırlandırmaya da yardımcı olur. Dallanan konuşmalar genellikle yeniden birleşir ve diyalog sistemleri daha sonra aynı yola çıkan birden fazla yanıt kullanabilir; buradaki tasarım ödünü, oyuncuların bu dallanmaların sınırlarını fark edebilmesidir. Defining Dialogue Systems Pratik bir seçenek, değişken üretilmiş ifadeleri isteğe bağlı yüzeysel varyasyonlar olarak ele alırken, önceden yazılmış kilit seçimleri ve sonuçları korumaktır. Üretilen bir yanıt görev durumunu, itibarı, envanteri veya erişimi değiştirebiliyorsa, bu bağımlılığı belgeleyin ve kapalı yolun kasıtlı olarak önceden yazılmış bir seçim yoluyla aynı durum değişikliğini üretip üretmeyeceğine karar verin. Metin oluşturucuyla birlikte sonuç doğuran bir eylemi sessizce ortadan kaldırmayın.

Bölüm 3

Kayıt dosyalarını ve ipuçlarını ayardan bağımsız tutun

Oyuncunun ilerlemesini, yalnızca metin üretimi etkinken var olan bir transkriptte değil, oyun durumunda (game state) saklayın. Bir ipucunun kararlı bir tanımlayıcısı ve toplanmış ya da keşfedilmiş bir durumu olmalıdır; bir konuşma bu durumu belirleyebileceği gibi, önceden yazılmış alternatifi de belirleyebilir. Günlük, ipucunu bu durumdan alarak göstermelidir. Bu bir uygulama tavsiyesidir, evrensel bir oyun motoru gereksinimi değildir.

Aynı şekilde, özellik tercihini net bir kapsama sahip bir ayar olarak ele alın. Bunun profil başına mı yoksa kayıt dosyası başına mı kaydedileceğine karar verin ve bu seçimi görünür kılın. Game Accessibility Guidelines ayarların hatırlanmasını tavsiye eder ve profil düzeyindeki ayarları da bir seçenek olarak tanımlar. Full list – Game Accessibility Guidelines Bir kayıt dosyasını yükleyen oyuncu, mevcut tercih önceki oturumda kullanılandan farklı olduğu için keşiflerini kaybetmemelidir. Özelliği kapatmak, kayıt dosyasının faydalı geçmişinin bir parçasıysa önceki diyalog kayıtlarını da silmemelidir.

Yalnızca sıfırdan başlangıçları değil, geçiş durumlarını da kontrol edin. Üretilen diyalog etkinken oluşturulmuş bir kayıt dosyasını yükleyin, özelliği kapatın ve bir ipucunun bulunduğu ancak konuşmanın bitmediği bir noktadan devam edin. Ardından işlemi ters yönde tekrarlayın. Ayar değişikliğinin ödülleri yinelemediğini, bir konuşmayı sıfırlamadığını, günlük kayıtlarını temizlemediğini veya bir hedefi asla üretilmeyecek bir satırı bekler vaziyette bırakmadığını doğrulayın. Bunlar belirtilen tasarım hedefinden türetilen test senaryolarıdır; herhangi bir oyunun bu hataları içerdiğine dair iddialar değildir.

Bölüm 4

Değişikliği, oyuncuların onu yaptığı yerde açıklayın

Açma/kapama düğmesini oyuncuların özellikle ilk kez karşılaşmadan önce bulabilecekleri bir yere koyun ve diyalogların nasıl üretildiğini bildiklerini varsaymadan etkisini açıklayın. Kapatmak mevcut konuşma tarzını değiştiriyorsa, oyunculara bunun yerini neyin alacağını söyleyin. Değişiklik yalnızca bir sahneden veya yeniden yüklemeden sonra geçerli oluyorsa bunu belirtin. Mevcut ayarı okunabilir, gezinmesi kolay bir denetimde gösterin ve amaçlanan davranış buysa seçimin hatırlandığından emin olun.

Arayüz ayrıca işlevsellikteki her türlü anlamlı kaybı da açıkça belirtmelidir. Örneğin, üretilen yanıtları devre dışı bırakmak bir oyuncunun artık dilediği soruları yazamayacağı anlamına geliyorsa, bunu açıkça söyleyin; önceden yazılmış seçeneklerin açık uçlu girişi desteklediğini ima etmeyin. Bu durum özellikle önemlidir çünkü farklı diyalog yapıları farklı türde kontroller sağlar. Merkez ve dal (hub-and-spoke) diyaloğu oyuncuların konuları tekrar ziyaret etmesine izin verebilirken, dallanan bir konuşma bir karara yol açıp ilerleyebilir. Defining Dialogue Systems Ayar etiketi ve yardım metni, kapalı yolun gerçekte neyi desteklediğiyle eşleşmelidir.

Bölüm 5

Her iki yolu da aynı kontrol listesine göre test edin

Hedefleri veya ipuçlarını etkileyen her konuşma için küçük, tekrarlanabilir bir test matrisi kullanın. Bunu, yeni bir kayıt ve karşıt ayar altında yapılmış bir kayıt kullanarak, ayar açık ve kapalıyken çalıştırın. Her çalıştırmada oyuncunun etkileşime girip çıkabildiğini, gereken her ipucunu öğrenebildiğini, ipucunu günlükte görebildiğini, sonuç doğuran seçimler yapabildiğini, hedefi tamamlayabildiğini, kaydedebildiğini, yeniden yükleyebildiğini ve devam edebildiğini kontrol edin.

Ardından kesintileri ve uç durumları test edin: Oturumun ortasında ayarı değiştirin, son satırından önce bir konuşmadan çıkın, ipucunu başka bir yerden topladıktan sonra bir NPC'yi tekrar ziyaret edin ve etkileşimden önceki bir kontrol noktasını yükleyin. Beklenen durum geçişlerini genel ifadelerle kaydedin ("ipucu bulundu", "kapı açıldı", "hedef tamamlandı"); böylece kalite güvence (QA) ekibi, üretilen belirli bir cümleye bağımlı kalmadan sonuçları karşılaştırabilir. Anlatı tasarımı araştırmaları, yeniden birleşen dallar ve dinamik olarak değişen hikâyeler de dahil olmak üzere çeşitli yapıları tanımlar ve oyuncu eylemliliği ile anlatı uyumu arasındaki gerilime dikkat çeker. Bu da her satırın eşleşmesi gerektiğini varsaymak yerine, iki rotayı açık durum kurallarına sahip bağlantılı tasarlanmış deneyimler olarak ele almayı destekler. Character-Driven Storytelling Design for Digital Games: A Scoping Review

Son olarak, test kullanıcılarından her bir rotayla temel aktiviteyi tamamlamalarını ve bir sonraki adımda ne yapacaklarından emin olamadıkları yerleri not etmelerini isteyin. Bu soru, verilen sözü doğrudan test eder: Üretilen diyalogları devre dışı bırakmak, konuşma deneyimini ayarın açıkladığı şekilde değiştirmeli, önceden yazılmış rota ise görevi baştan sona oynamak için yine de yeterli bilgi sağlamalıdır. Anlatı açısından zengin oyunlardaki seçimlere yönelik araştırmalar, seçimlerin oyunu, oyuncunun oyunla olan ilişkisini ve bunun dışındaki deneyimi etkileyebileceğini ortaya koymaktadır; bu, her seçimin modlar arasında birebir aynı şekilde korunması gerektiği anlamına gelmez. How Should I Respond to “Good Morning?”: Understanding Choice in Narrative-Rich Games

Dolayısıyla yapay zekâ diyaloğunu isteğe bağlı hale getirmek, bir açma/kapama düğmesi eklemekten daha maliyetlidir. Kasıtlı olarak önceden yazılmış bir rota, net durum sınırları, ipuçlarının kalıcı görünürlüğü, neyin değiştiğinin dürüstçe açıklanması ve ayarlar ile kayıtlar arasında çapraz testler gerektirir. En yararlı tasarım ölçütü oldukça basittir: Özellik kapalıyken bir oyuncu hedefi hâlâ anlayabiliyor, gerekli ipuçlarını bulabiliyor, hedeflenen kararları verebiliyor ve aktiviteyi bitirebiliyor mu? Değilse, bu düğme eksiksiz bir alternatif sunmaktan ziyade oyunun bir kısmını devre dışı bırakıyor demektir.

İlgili okumalar

Bu konuyu keşfetmeye devam et