Blog Metlivi

Haruskah Memori Game AI Bertahan Lintas Bab? Desain Praktis untuk Hal yang Perlu Disimpan dan Direset

Untuk game berbasis bab, memori AI sebaiknya melintasi batas bab hanya jika memori tersebut mewakili fakta jangka panjang yang memang dimaksudkan agar berpengaruh nantinya. Simpan komitmen pemain, hubungan yang telah terjalin, dan fakta dunia yang telah terkonfirmasi dalam catatan terstruktur yang dirancang secara eksplisit. Biarkan AI mengambil sebagian kecil tampilan relevan dari catatan tersebut, bersama dengan ingatan apa pun yang sengaja dipertahankan. Reset konteks khusus adegan, tujuan sementara, dan detail momen ke momen kecuali bab berikutnya benar-benar membutuhkannya secara eksplisit. Status penyimpanan game harus tetap menjadi otoritas utama; dialog yang dihasilkan dapat mendeskripsikannya, tetapi tidak boleh menulis ulangnya secara diam-diam.

30 September 2026Waktu baca 6 mntMembaca, seni, dan budayaOleh Metlivi Editorial Team
Bagian 1

Pisahkan kanon permanen dari memori adegan

“Memori” dapat merujuk pada hal yang berbeda: catatan peristiwa, ringkasan atau interpretasi dari peristiwa tersebut, dan fakta-fakta yang dianggap benar oleh game. Mencampuradukkannya membuat transisi bab sulit untuk dipertimbangkan secara logis. Sebagai contoh, seorang karakter mungkin pernah mendengar rumor, tetapi rumor tersebut tidak boleh otomatis menjadi fakta dunia yang terkonfirmasi hanya karena AI mengingatnya dengan penuh percaya diri.

Desain yang berguna adalah dengan mempertahankan dua lapisan yang saling terkait. Lapisan pertama adalah status kanon yang dimiliki oleh game: fakta terstruktur seperti promised_to_return: true, gave_map_to: Mira, atau bridge_status: repaired. Ini disimpan dan diubah melalui aturan game atau perancangan eksplisit. Lapisan kedua adalah tampilan penarikan AI: fakta terpilih, memori, dan konteks adegan saat ini yang disediakan untuk membentuk respons. Tampilan ini bisa ringkas dan khusus untuk karakter tertentu tanpa harus menjadi file penyimpanan itu sendiri.

Rekomendasi ini merupakan inferensi arsitektural, bukan fitur yang dijamin oleh mesin tertentu. Sistem skrip naratif telah membedakan variabel cerita yang dapat dibaca di seluruh cerita dari nilai sementara dengan cakupan yang lebih sempit; Ink, misalnya, mendokumentasikan variabel global dan variabel sementara secara terpisah. Runtime-nya juga menyediakan cara untuk membuat serialisasi dan memulihkan status cerita. Kemampuan tersebut memberikan model yang berguna: representasikan status secara terencana, lalu putuskan cakupan dan persistensi apa yang dibutuhkan oleh setiap nilai. Ink’s variable and logic documentation dan Ink’s runtime saving and loading documentation

Bagian 2

Tentukan apa yang layak masuk ke dalam catatan lintas bab

Untuk setiap kandidat memori, tanyakan: dapatkah adegan berikutnya secara tepat bergantung pada fakta ini, dan apakah ada peristiwa game yang jelas atau aturan terancang yang dapat mengonfirmasinya? Jika ya, pertimbangkan untuk menyimpannya sebagai status jangka panjang. Nama yang dipilih pemain untuk rekannya, janji yang dipenuhi, atau apakah sebuah gerbang telah dibuka dapat memenuhi syarat jika cerita menggunakannya nanti. Simpan sebuah nilai beserta cakupannya, bukan transkrip tanpa batas, setiap kali fakta dasarnya dapat diungkapkan dengan jelas.

Catatan praktis dapat mengidentifikasi subjek, fakta, peristiwa sumber, dan cakupan persistensi. Sebagai contoh: subject: Mira; fact: player shared the map; source: chapter_2_choice_14; scope: campaign. Peristiwa sumber membantu menyelesaikan pertentangan: jika dialog yang dihasilkan kemudian mengklaim pemain memberikan petanya tetapi pilihan yang tercatat menyatakan sebaliknya, game dapat memprioritaskan catatan peristiwa tersebut. Skema ini adalah saran desain, bukan format wajib yang diharuskan oleh alat-alat yang disebutkan.

Bedakan materi yang tidak pasti atau belum terkonfirmasi. “Penjaga mencurigai pemain mengambil kunci” dan “pemain mengambil kunci” adalah dua fakta yang berbeda. Karakter mungkin mengingat kecurigaan setelah bab berakhir, sementara catatan kanon dunia tetap menyatakan bahwa kunci masih berada di lokasi aslinya. Gunakan label seperti rumor, observasi, inferensi, dan peristiwa terkonfirmasi jika dialog selanjutnya perlu mempertahankan perbedaan-perbedaan tersebut.

Bagian 3

Reset apa yang menjadi milik adegan saat ini

Status adegan sering kali mencakup topik percakapan saat itu, tujuan sementara, beberapa interaksi terakhir, penataan panggung lokal, dan detail berumur pendek seperti pintu mana yang sedang terbuka. Detail-detail ini mungkin membantu AI menjawab dialog berikutnya, tetapi jarang sekali perlu dimasukkan ke dalam memori kampanye. Bersihkan hal-hal tersebut saat keluar dari adegan atau rekonstruksi dari pengaturan terancang adegan berikutnya.

Batasan ini penting karena persistensi memiliki arti yang berbeda. Tutorial persistensi data Unity membedakan data yang mengikuti pemain antaradegan selama satu sesi dari kemajuan yang disimpan dan dipulihkan lintas sesi; tutorial tersebut juga mencatat bahwa data yang dibuat di dalam adegan biasanya hilang saat berpindah ke adegan lain kecuali jika game membawanya ke depan. Oleh karena itu, transisi bab merupakan keputusan transfer yang disengaja, bukan alasan otomatis untuk mempertahankan setiap nilai yang aktif. Unity Learn: Implement data persistence between scenes

Cobalah rutinitas transisi empat bagian: finalisasi peristiwa bab yang telah terkonfirmasi; perbarui catatan kampanye kanon; buang konteks adegan sementara; lalu bangun konteks AI untuk bab berikutnya dari pengaturan terancangnya ditambah fakta jangka panjang yang relevan. Hal ini membatasi detail basi agar tidak bocor ke dalam adegan baru sekaligus mempertahankan kontinuitas yang didukung secara eksplisit oleh cerita.

Bagian 4

Pertahankan status penyimpanan terancang sebagai otoritas utama

Pada awal bab, berikan status saat ini kepada AI sebagai konteks baca-saja (read-only) untuk narasi dan dialog. Jika tindakan pemain dapat mengubah fakta jangka panjang, buat game memvalidasi tindakan tersebut terhadap aturannya sendiri dan memperbarui catatan penyimpanan melalui alur perubahan status normal. Perlakukan output model sebagai draf dialog atau tindakan yang diajukan, bukan sebagai bukti bahwa suatu peristiwa telah terjadi. Pemisahan ini merupakan rekomendasi desain yang berakar dari kebutuhan untuk membedakan status penyimpanan dari teks yang dihasilkan; ini harus diimplementasikan dan diuji dalam arsitektur game itu sendiri.

Terdapat preseden yang berguna dalam penelitian naratif: makalah Generative Agents mendeskripsikan proses penyimpanan pengalaman, sintesis refleksi, dan penarikan memori terpilih secara dinamis untuk memandu perilaku. Hal tersebut mendukung penggunaan penarikan dan sintesis untuk membentuk apa yang dipertimbangkan oleh agen. Namun, ini tidak menetapkan bahwa ingatan yang dihasilkan harus menjadi status game yang kanon. Perbedaannya penting: ringkasan bisa menjadi konteks yang berguna namun tetap dapat direvisi atau tidak lengkap. Park et al., “Generative Agents: Interactive Simulacra of Human Behavior”

Untuk penyimpanan yang dapat direproduksi, pertahankan fakta terstruktur game dan status runtime cerita yang dibutuhkan game untuk melanjutkan permainan. Dokumentasi runtime Ink mendemonstrasikan cara membuat serialisasi status cerita ke JSON dan memuatnya kembali. Ringkasan yang dihasilkan juga dapat disimpan untuk kemudahan, tetapi bangun ulang atau periksa kembali terhadap catatan terstruktur saat memuat; jangan biarkan ringkasan basi mengesampingkan pilihan tersimpan yang lebih baru. Ink runtime: Saving and loading

Bagian 5

Buat batasan terlihat jelas bagi pemain

Pemain tidak perlu melihat struktur memori internal, tetapi mereka harus dapat memahami pilihan mana yang dibawa ke bab berikutnya. Tunjukkan konsekuensi dalam cerita di tempat yang semestinya: seorang rekan mengingat peta tersebut, atau adegan berikutnya mencerminkan janji sebelumnya. Jika file penyimpanan atau rekapitulasi bab menyediakan tempat yang sesuai, rangkumlah beberapa fakta penting yang telah terkonfirmasi dengan bahasa yang lugas. Hindari memberi kesan bahwa setiap dialog improvisasi telah menjadi kanon permanen.

Beri pemain cara untuk memperbaiki kesalahan yang berdampak signifikan jika game menyediakannya: memuat ulang simpanan, meninjau kembali keputusan, atau menggunakan interaksi koreksi yang eksplisit. Jika karakter AI salah mengingat sesuatu, dialog tidak boleh memaksa pemain untuk menerima kesalahan tersebut sebagai fakta dunia yang baru. Ada atau tidaknya opsi koreksi semacam itu merupakan keputusan produk, namun prinsip dasarnya tetap sama: klaim yang diingat dan peristiwa yang disimpan tidak dapat saling menggantikan.

Bagian 6

Uji transisi bab dengan kasus-kasus konkret

Buat daftar periksa transisi sederhana seputar fakta-fakta yang sebenarnya dilacak oleh game Anda. Untuk setiap kasus, periksa catatan yang disimpan dan konteks AI yang diberikan setelah bab berganti.

Pilihan pemain yang telah terkonfirmasi tetap bertahan dan dapat memengaruhi bab berikutnya di mana konten yang dirancang menggunakannya.

Rumor atau inferensi karakter tetap dilabeli sebagai hal yang belum pasti, alih-alih menjadi peristiwa terkonfirmasi.

Tujuan adegan sementara dan detail percakapan terkini menghilang kecuali adegan berikutnya membutuhkannya secara eksplisit.

Simpanan yang baru dimuat memulihkan pilihan kanon yang sama meskipun AI sebelumnya menghasilkan narasi yang bertentangan.

Bab baru yang tidak memiliki hubungan relevan tidak menerima memori yang tidak terkait hanya karena memori tersebut ada.

Pemeriksaan ini adalah metode diagnostik yang disarankan, bukan eksperimen yang dilaporkan. Metode ini mempermudah pencarian dua kecacatan umum: hilangnya kontinuitas (continuity loss), di mana fakta jangka panjang menghilang, dan kebocoran memori (memory leakage), di mana detail adegan lama muncul dalam konteks yang seharusnya telah direset. Jika salah satu terjadi, periksa cakupan persistensi dan langkah pembuatan konteks sebelum mencoba memperbaikinya dengan prompt yang lebih panjang.

Bagian 7

Aturan ringkas untuk memori berbasis bab

Pertahankan suatu fakta ketika game yang dirancang dapat menyebutkannya, mengonfirmasi sumbernya, dan menentukan kegunaannya di kemudian hari. Simpan ingatan pribadi sebagai konteks yang ditarik saat ingatan tersebut menambah penokohan atau kontinuitas, sembari tetap menjaga ketidakpastian dan asal-usulnya. Reset status lokal adegan di batas bab. Pada setiap tahap, biarkan status game yang tersimpan dan terancang menentukan apa yang benar; biarkan memori AI membantu karakter merespons kebenaran tersebut.

Bacaan terkait

Lanjutkan topik ini