Metlivi Blog

Yapay Zeka Oyun Hafızası Bölümler Arasında Kalıcı Olmalı mı? Neyin Saklanacağı ve Neyin Sıfırlanacağına Dair Pratik Bir Tasarım

Bölüm tabanlı bir oyunda yapay zeka hafızası, bir bölüm sınırını yalnızca oyunun daha sonra önem taşımasını amaçladığı kalıcı bir gerçeği temsil ettiğinde aşmalıdır. Oyuncu taahhütlerini, kurulmuş ilişkileri ve doğrulanmış dünya gerçeklerini yapılandırılmış, kurgulanmış bir kayıtta tutun. Yapay zekanın, kasıtlı olarak korunan anılarla birlikte bu kaydın küçük ve ilgili bir görünümünü geri çağırmasına izin verin. Bir sonraki bölüm açıkça ihtiyaç duymadıkça sahneye özel bağlamı, geçici hedefleri ve anlık ayrıntıları sıfırlayın. Oyunun kayıtlı durumu (save state) nihai otorite olarak kalmalıdır; üretilen diyaloglar bunu betimleyebilir ancak sessizce yeniden yazmamalıdır.

30 Eylül 20266 dk okumaOkuma, sanat ve kültürYazan: Metlivi Editorial Team
Bölüm 1

Kalıcı kanon ile sahne hafızasını birbirinden ayırın

‘Hafıza’ farklı kavramları ifade edebilir: olayların bir kaydı, bu olayların bir özeti veya yorumu ve oyunun doğru kabul ettiği gerçekler. Bunları karıştırmak, bölüm geçişleri üzerine akıl yürütmeyi zorlaştırır. Örneğin bir karakter bir söylenti duymuş olabilir; ancak sırf yapay zeka bunu kendinden emin bir şekilde hatırlıyor diye bu söylenti otomatik olarak doğrulanmış bir dünya gerçeği haline gelmemelidir.

Faydalı bir tasarım, birbiriyle ilişkili iki katman tutmaktır. İlki, oyunun mülkiyetinde olan kanonik durumdur: promised_to_return: true, gave_map_to: Mira veya bridge_status: repaired gibi yapılandırılmış gerçekler. Bunlar oyun kuralları veya açık kurgulama yoluyla kaydedilir ve değiştirilir. İkincisi ise bir yapay zeka geri çağırma (retrieval) görünümüdür: bir yanıtı şekillendirmek için sağlanan seçilmiş gerçekler, anılar ve mevcut sahne bağlamı. Bu görünüm, bizzat kayıt dosyasının (save file) kendisi haline gelmeden kısa ve karaktere özgü olabilir.

Bu öneri mimari bir çıkarımdır; tek bir oyun motoru tarafından garanti edilen bir özellik değildir. Anlatı betik sistemleri (narrative scripting systems), bir hikaye boyunca okunabilen hikaye değişkenleri ile daha dar kapsamlı geçici değerleri zaten birbirinden ayırır; örneğin Ink, genel (global) değişkenleri ve geçici değişkenleri ayrı ayrı belgeler. Çalışma zamanı (runtime) ayrıca hikaye durumunu serileştirmek ve geri yüklemek için bir yöntem de sunar. Bu yetenekler faydalı bir model sağlar: durumu bilinçli olarak temsil edin, ardından her bir değerin hangi kapsama ve kalıcılığa ihtiyaç duyduğuna karar verin. Ink’in değişken ve mantık dokümantasyonu ile Ink’in çalışma zamanında kaydetme ve yükleme dokümantasyonu

Bölüm 2

Bölümler arası kayıtta neyin yer alacağına karar verin

Aday her bir anı için şu soruyu sorun: Daha sonraki bir sahne haklı olarak bu gerçeğe bağlı olabilir mi ve bunu doğrulayabilecek net bir oyun olayı veya kurgulanmış kural var mı? Yanıt evet ise bunu kalıcı durum olarak depolamayı değerlendirin. Hikaye daha sonra kullandığında; bir oyuncunun bir yoldaş için seçtiği isim, tamamlanmış bir söz veya bir kapının açılıp açılmadığı bu kapsama girebilir. Temeldeki gerçek net bir şekilde ifade edilebildiği sürece, sınırsız bir konuşma dökümü yerine bir değer ve onun kapsamını saklayın.

Pratik bir kayıt; özneyi, gerçeği, kaynak olayı ve kalıcılık kapsamını tanımlayabilir. Örneğin: subject: Mira; fact: player shared the map; source: chapter_2_choice_14; scope: campaign. Kaynak olay, uyuşmazlıkları çözmeye yardımcı olur: eğer daha sonra üretilen bir satır oyuncunun haritayı başkasına verdiğini iddia ederse ancak kaydedilen seçim aksini söylüyorsa oyun, olay kaydını tercih edebilir. Bu şema bir tasarım önerisidir; atıfta bulunulan araçların zorunlu kıldığı bir format değildir.

Belirsiz veya doğrulanmamış materyali ayrı tutun. ‘Muhafız, oyuncunun anahtarı aldığından şüpheleniyor’ ve ‘oyuncu anahtarı aldı’ farklı gerçeklerdir. Bir karakter, bir bölüm bittikten sonra bir şüpheyi hatırlayabilir; bu sırada kanonik dünya kaydı anahtarın hâlâ orijinal yerinde durduğunu söylemeye devam edebilir. Daha sonraki diyalogların bu ayrımları koruması gerekiyorsa söylenti, gözlem, çıkarım ve doğrulanmış olay gibi etiketler kullanın.

Bölüm 3

Mevcut sahneye ait olanları sıfırlayın

Sahne durumu genellikle o anki konuşma konusunu, geçici bir hedefi, son birkaç repliği, yerel sahnelemeyi ve şu anda hangi kapının açık olduğu gibi kısa ömürlü ayrıntıları içerir. Bu ayrıntılar yapay zekanın bir sonraki satırı yanıtlamasına yardımcı olabilir; ancak nadiren sefer (campaign) hafızası haline gelmeleri gerekir. Sahneden çıkışta bunları temizleyin veya bir sonraki sahnenin kurgulanmış düzeninden yeniden oluşturun.

Bu sınır önemlidir çünkü kalıcılık farklı anlamlara gelir. Unity’nin veri kalıcılığı eğitimi, tek bir oturum sırasında sahneler arasında oyuncuyu takip eden veriler ile oturumlar arasında kaydedilip geri yüklenen ilerlemeyi birbirinden ayırır; ayrıca sahne tarafından oluşturulan verilerin, oyun bunları ileriye taşımadığı sürece başka bir sahneye geçerken genellikle kaybolduğunu belirtir. Bu nedenle bir bölüm geçişi, her aktif değeri korumak için otomatik bir gerekçe değil, bilinçli bir aktarım kararıdır. Unity Learn: Implement data persistence between scenes

Dört aşamalı bir geçiş rutini deneyin: doğrulanmış bölüm olaylarını kesinleştirin; kanonik sefer kaydını güncelleyin; geçici sahne bağlamını atın; ardından bir sonraki bölümün yapay zeka bağlamını, bölümün kurgulanmış düzeni artı ilgili kalıcı gerçeklerden oluşturun. Bu yaklaşım, hikayenin açıkça desteklediği sürekliliği korurken bayat ayrıntıların yeni bir sahneye sızmasını engeller.

Bölüm 4

Kurgulanmış kayıt durumunu (save state) yetkili kılın

Bölüm başlangıcında, anlatım ve diyalog için yapay zekaya mevcut durumu salt okunur bağlam olarak verin. Oyuncu eylemleri kalıcı gerçekleri değiştirebiliyorsa oyunun bu eylemi kendi kurallarına göre doğrulamasını sağlayın ve kayıt verisini normal durum değiştirme yolu üzerinden güncelleyin. Model çıktısını bir olayın gerçekleştiğinin kanıtı olarak değil, önerilen bir replik veya eylem olarak ele alın. Bu ayrım, kayıtlı durumu üretilen metinden ayırt etme ihtiyacından türetilen bir tasarım önerisidir; oyunun kendi mimarisi içinde uygulanmalı ve test edilmelidir.

Anlatı araştırmalarında faydalı bir emsal bulunmaktadır: Generative Agents makalesi deneyimleri depolamayı, yansımaları sentezlemeyi ve davranışları yönlendirmek için seçilen anıları dinamik olarak geri çağırmayı açıklar. Bu, bir failin (agent) neleri dikkate alacağını şekillendirmek için geri çağırma ve sentezin kullanılmasını destekler. Üretilen bir anının kanonik oyun durumu olması gerektiğini öne sürmez. Bu ayrım önemlidir: bir özet, düzeltilebilir veya eksik olmaya devam ederken bile faydalı bir bağlam sağlayabilir. Park ve ark., “Generative Agents: Interactive Simulacra of Human Behavior”

Yeniden üretilebilir kayıtlar için oyunun yapılandırılmış gerçeklerini ve oyunun devam etmesi için gereken hikaye çalışma zamanı durumunu kalıcı hale getirin. Ink’in çalışma zamanı dokümantasyonu, hikaye durumunu JSON’a serileştirmeyi ve tekrar yüklemeyi gösterir. Üretilen bir özet de kolaylık sağlamak amacıyla saklanabilir; ancak yükleme sırasında bunu yeniden oluşturun veya yapılandırılmış kayda göre kontrol edin; eski bir özetin daha yeni kaydedilmiş bir seçimi geçersiz kılmasına izin vermeyin. Ink runtime: Saving and loading

Bölüm 5

Sınırı oyuncular için görünür kılın

Oyuncuların dahili hafıza yapılarını görmelerine gerek yoktur, ancak hangi seçimlerin ileriye taşındığını anlayabilmelidirler. Sonuçları kurgunun içinde, doğal olarak ait oldukları yerde gösterin: bir yoldaşın haritayı hatırlaması veya sonraki bir sahnenin daha önceki sözü yansıtması gibi. Kayıt dosyası veya bölüm özeti uygun bir alan sunduğunda, sonuç doğuran birkaç doğrulanmış gerçeği sade bir dille özetleyin. Doğaçlama geliştirilen her repliğin kalıcı bir kanon haline geldiği izlenimini vermekten kaçının.

Oyun imkan tanıdığında oyunculara sonuç doğuran hataları düzeltmeleri için bir yol sunun: bir kaydı yeniden yüklemek, bir kararı tekrar gözden geçirmek veya açık bir düzeltme etkileşimi kullanmak gibi. Bir yapay zeka karakteri bir şeyi yanlış hatırlarsa diyalog oyuncuyu bu hatayı yeni bir dünya gerçeği olarak kabul etmeye zorlamamalıdır. Bu tür düzeltme seçeneklerinin bulunup bulunmaması bir ürün kararıdır; ancak temel ilke sabittir: hatırlanan bir iddia ile kaydedilmiş bir olay birbiriyle değiştirilebilir değildir.

Bölüm 6

Bölüm geçişlerini somut durumlarla test edin

Oyununuzun gerçekte takip ettiği gerçekler etrafında küçük bir geçiş kontrol listesi oluşturun. Her durum için hem kayıtlı veriyi hem de bölüm değiştikten sonra sağlanan yapay zeka bağlamını inceleyin.

Doğrulanmış bir oyuncu seçimi kalıcıdır ve kurgulanan içeriğin bunu kullandığı sonraki bölümü etkileyebilir.

Bir söylenti veya karakter çıkarımı, doğrulanmış bir olay haline gelmek yerine belirsiz olarak etiketlenmeye devam eder.

Geçici bir sahne hedefi ve yakın zamandaki konuşma ayrıntıları, bir sonraki sahne açıkça gerektirmedikçe kaybolur.

Yeni yüklenen bir kayıt, yapay zeka daha önce çelişkili metinler üretmiş olsa bile aynı kanonik seçimleri geri yükler.

İlgili bir bağlantısı olmayan yeni bir bölüm, sırf var oldukları için ilgisiz anıları bünyesine almaz.

Bu kontroller önerilen bir teşhis yöntemidir; raporlanmış bir deney değildir. İki yaygın kusuru bulmayı kolaylaştırırlar: kalıcı gerçeklerin kaybolduğu süreklilik kaybı ve eski sahne ayrıntılarının sıfırlanması gereken bir bağlamda ortaya çıktığı hafıza sızıntısı. İkisinden biri gerçekleştiğinde, sorunu daha uzun bir istemle (prompt) çözmeye çalışmadan önce kalıcılık kapsamını ve bağlam oluşturma adımını kontrol edin.

Bölüm 7

Bölüm tabanlı hafıza için yalın bir kural

Kurgulanan oyun bir gerçeği adlandırabildiğinde, kaynağını doğrulayabildiğinde ve onun için daha sonra bir kullanım tanımlayabildiğinde o gerçeği kalıcı hale getirin. Kişisel anıları; karakter veya süreklilik kattıklarında, belirsizliği ve kaynağı koruyarak geri çağrılan bağlam olarak saklayın. Sınırda, sahneye özel yerel durumu sıfırlayın. Her aşamada, neyin doğru olduğunu kaydedilen ve kurgulanan oyun durumunun belirlemesine izin verin; yapay zeka hafızasının ise karakterin bu gerçeğe tepki vermesine yardımcı olmasını sağlayın.

İlgili okumalar

Bu konuyu keşfetmeye devam et