Blog Metlivi

Cara Mereka Bentuk Permainan Bot AI dengan Peraturan Jelas, Memori dan Pilihan Pemain

Untuk mereka bentuk permainan bot AI yang boleh dimainkan, tetapkan gelung kecil yang berulang, simpan keadaan permainan di luar perbualan dan berikan setiap tindakan pemain akibat yang jelas. Biarkan bot mentafsir permintaan dan menerangkan peristiwa; biarkan peraturan yang jelas menentukan kos, kemajuan dan pengakhiran. Panduan ini ditujukan kepada pembina permainan yang mencipta permainan berasaskan teks dengan watak atau pencerita AI. Tugasnya adalah untuk mencipta satu sesi pendek yang boleh diuji, supaya pemain memahami pilihan mereka, melihat kesan keputusan mereka dan mencapai pengakhiran yang sah. Permainan penghantaran di bawah ialah reka bentuk ilustrasi, bukannya produk yang telah diuji atau kajian kes yang dilaporkan.

22 September 20263 minit bacaanOleh Metlivi Editorial Team
Bahagian 1

Mulakan dengan gelung teras yang boleh dimainkan tanpa AI

Tulis gelung itu dalam satu ayat: Paparkan situasi → terima tindakan → semak peraturan → kemas kini keadaan → paparkan akibat dan pilihan seterusnya. Setiap giliran harus melengkapkan gelung itu atau menerangkan sebab ia tidak dapat diteruskan.

Sebelum menulis gesaan personaliti, tetapkan objektif, tindakan yang tersedia, kos tindakan dan syarat pengakhiran. Anda sepatutnya boleh menjalankan permainan ini menggunakan kad indeks atau hamparan. Ini membolehkan anda meneliti mekaniknya sebelum dialog yang dijana menambahkan variasi.

Pertimbangkan permainan kecil bernama Festival Parcel. Pemain mempunyai lima unit masa untuk menghantar bungkusan. Mereka boleh memilih laluan terus atau laluan taman, dan jika mahu, mengumpul reben hiasan sebelum bertolak. Bot memainkan watak penghantar festival yang menerangkan laluan dan memberi komen tentang penghantaran itu.

Peraturan yang dicadangkan sengaja diringkaskan:

Paparkan peraturan ini sebelum pilihan pertama. Terangkan bahawa tindakan penghantaran menamatkan sesi, jadi pemain mesti mengumpul reben terlebih dahulu. Penghantaran yang menggunakan unit masa terakhir tetap berjaya kerana semakan kejayaan dibuat terlebih dahulu.

Prototaip ini mempunyai permulaan, ruang keputusan dan pengakhiran yang lengkap. Watak atau lokasi tambahan harus menyumbang dengan menambah keputusan berguna kepada gelung itu.

Mulakan di depot dengan bungkusan, lima unit masa dan tanpa reben.

Mengumpul reben menggunakan satu unit masa dan hanya boleh dilakukan sekali.

Penghantaran terus menggunakan tiga unit masa dan menamatkan sesi dengan jayanya.

Penghantaran melalui taman menggunakan empat unit masa dan menamatkan sesi dengan jayanya, serta menambahkan poskad taman pada pengakhiran.

Menunggu menggunakan satu unit masa.

Semakan status, pertanyaan tentang peraturan dan permintaan penjelasan tidak menggunakan masa.

Tindakan hanya dibenarkan jika masa yang tinggal mencukupi untuk membayar keseluruhan kosnya.

Selepas tindakan yang sah, semak kejayaan penghantaran terlebih dahulu. Jika bungkusan masih belum dihantar dan tiada laluan yang mampu dibayar, tamatkan permainan dengan keputusan penghantaran terlepas.

Bahagian 2

Jadikan keadaan yang jelas sebagai sumber kebenaran bagi hasil

Anggap keadaan sebagai rekod perkara yang benar dalam permainan. Teks perbualan boleh menerangkan rekod itu, tetapi tidak sepatutnya mengubahnya secara senyap.

Bab State oleh Robert Nystrom dalam Game Programming Patterns (https://gameprogrammingpatterns.com/state.html) menerangkan mesin keadaan terhingga melalui keadaan, input dan peralihan yang dibenarkan. Bab itu juga menunjukkan bagaimana gabungan bendera Boolean yang longgar boleh menghasilkan gabungan yang tidak sah. Gunakan prinsip itu pada kitaran hayat permainan anda: gunakan satu status sesi, seperti aktif, dihantar atau terlepas, dengan peralihan yang ditetapkan.

Bagi prototaip penghantaran ini, spesifikasi keadaan ringkas sudah memadai:

Terbitkan poskad taman daripada laluan yang dipilih dan bukannya menyimpan nilai kedua yang mungkin bercanggah dengannya. Begitu juga, kira tindakan yang tersedia pada masa ini daripada keadaan dan peraturan.

Gunakan urutan pemprosesan yang tetap: tafsir permintaan, sahkan tindakan dan parameternya, kira hasil, sahkan perubahan keadaan, kemudian ceritakannya. Berikan pencerita hasil yang telah disahkan dan tindakan seterusnya yang dibenarkan. Pencerita tidak sepatutnya membuat pengiraan kedua.

Contohnya, selepas mengumpul reben, hasil yang menjadi rujukan ialah: empat unit masa masih ada, reben telah dikumpul dan kedua-dua laluan mampu dipilih. Bot boleh menerangkan warna reben itu, asalkan warna tersebut tidak memberi kesan mekanik. Bot tidak boleh menambah kos masa yang tidak diumumkan atau memberikan reben kedua.

Anda boleh membuat prototaip syarat ini dengan alat penceritaan sedia ada. Tutorial fiksyen interaktif rasmi Inkle (https://www.inklestudios.com/ink/web-tutorial/) menerangkan pilihan bersyarat, penjejakan kandungan yang pernah dilawati, pemboleh ubah dan pengakhiran yang jelas. Ciri-ciri ini menyediakan asas yang berguna untuk menguji permainan yang ditulis sebelum menambah penceritaan AI.

Medan — Nilai awal — Peraturan

Status sesi — aktif — Hanya sesi aktif menerima tindakan permainan

Masa yang tinggal — 5 — Tidak boleh kurang daripada sifar

Reben dikumpul — palsu — Boleh berubah kepada benar sekali

Laluan diambil — tiada — Menjadi terus atau taman semasa penghantaran

Bilangan tindakan yang disahkan — 0 — Bertambah sekali bagi setiap tindakan permainan yang diterima

Bahagian 3

Berikan pemain pilihan yang boleh difahami dan mempengaruhi hasil

Bagi reka bentuk ini, nilai agensi berdasarkan sama ada pemain boleh menjangkakan perbezaan yang bermakna lalu melihatnya pada hasil. Beberapa butang dengan perkataan berbeza tetapi membawa kepada hasil yang sama tidak banyak membantu mengujinya.

Dalam Festival Parcel, keputusan laluan memenuhi pilihan pemain yang berbeza:

Ini ialah pengiraan ilustrasi berdasarkan peraturan yang dinyatakan. Ia menyediakan panduan keputusan yang mudah: pilih penghantaran terus untuk menyelesaikannya lebih awal, kumpul reben untuk hiasan, atau pilih laluan taman untuk mendapatkan poskad. Masa yang tinggal ialah butiran pengakhiran di sini; ia tidak memberikan mata secara tersembunyi.

Jika permainan kemudian memberikan ganjaran untuk hasil tertentu, maklumkan sistem pemarkahan itu sebelum keputusan dibuat. Jika tidak, pemain tidak dapat menilai pertukaran yang anda maksudkan.

Sokong teks bebas di samping tindakan yang dipaparkan. “Mari ikut jalan yang lebih indah” boleh dipadankan dengan penghantaran melalui taman. “Jadikan ia istimewa” bersifat samar: maksudnya mungkin mengumpul reben, memilih laluan taman atau kedua-duanya. Minta penjelasan ringkas tanpa menggunakan masa.

Untuk prototaip pertama, terima satu tindakan permainan bagi setiap mesej. Jika pemain meminta satu urutan, paparkan langkah-langkahnya dan minta mereka memilih tindakan pertama. Ini mengelakkan pelaksanaan separa bagi pelan yang langkah seterusnya mungkin tidak tersedia.

Jadikan respons terhadap permintaan yang tidak disokong tetap bermaklumat. Jika pemain meminta untuk terbang, terangkan bahawa laluan yang tersedia ialah terus dan taman, berserta kosnya. Teks bebas boleh meluaskan cara pemain menyatakan kehendak, sementara sistem tindakan mengekalkan set kebolehan yang boleh diramal.

Pelan — Jumlah kos masa — Hasil yang kelihatan

Penghantaran terus — 3 — Bungkusan biasa dihantar dengan baki 2 unit masa

Kumpul reben, kemudian penghantaran terus — 4 — Bungkusan berhias dihantar dengan baki 1 unit masa

Penghantaran melalui taman — 4 — Bungkusan biasa dihantar bersama poskad taman

Kumpul reben, kemudian penghantaran melalui taman — 5 — Bungkusan berhias dihantar bersama poskad taman

Bahagian 4

Tentukan perkara yang diingati bot dan perkara yang boleh diketahuinya

Pisahkan memori kepada tiga lapisan, setiap satunya dengan tujuan berbeza.

Keadaan sesi yang menjadi rujukan menyimpan sumber, kemajuan, laluan yang dipilih dan pengakhiran. Ia kekal apabila sesi disimpan dan dimuat semula, serta berubah hanya melalui tindakan yang disahkan.

Log peristiwa sesi merekodkan tindakan yang disahkan dan akibatnya. Satu entri mungkin menyatakan bahawa tindakan 2 mengumpul reben dan mengurangkan masa daripada lima kepada empat. Ini membantu penyahpepijatan dan ringkasan yang tepat. Kekalkan pengecam tindakan supaya permintaan berulang tidak menggunakan peristiwa yang sama dua kali.

Konteks naratif mengandungi dialog terkini dan ringkasan padat untuk mengekalkan nada serta kesinambungan. Kandungannya boleh dipendekkan tanpa memadam keadaan permainan yang sebenar.

Panduan Anthropic tentang kejuruteraan konteks yang berkesan (https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) membincangkan cara meringkaskan sejarah perbualan dan menyimpan nota berterusan di luar tetingkap konteks. Panduan itu juga memberi amaran bahawa ringkasan yang terlalu agresif boleh menghilangkan butiran penting. Implikasi reka bentuknya di sini ialah fakta mekanik yang tepat perlu disimpan dalam storan berstruktur, manakala ringkasan digunakan untuk kesinambungan perbualan.

Tetapkan sempadan pengetahuan selain sempadan storan. Watak hanya patut menerima fakta yang dibenarkan untuk diketahuinya. Jika versi kemudian mempunyai laluan tersembunyi, jangan masukkan laluan itu dalam konteks watak sehingga syarat penemuannya dipenuhi. Tidak semua keadaan yang tersedia kepada enjin permainan perlu tersedia kepada pencerita.

Bagi permainan kecil ini, kekalkan kemajuan dalam sesi yang disimpan dan padamkannya apabila permainan baharu dimulakan. Jangan membuat kesimpulan tentang pilihan pemain yang berkekalan berdasarkan satu pilihan laluan. Jika anda menambah pilihan yang disimpan, seperti huraian yang lebih pendek, jadikannya jelas dan boleh disunting.

Uji memori dengan urutan khusus: kumpul reben, simpan, muat semula, minta status dan pilih penghantaran melalui taman. Reben mesti kekal dikumpul, empat unit masa mesti berbaki sebelum penghantaran dan masa akhir mesti sifar.

Bahagian 5

Reka respons yang berasingan untuk kegagalan permainan dan kegagalan sistem

Objektif yang terlepas ialah sebahagian daripada permainan. Permintaan penjanaan yang gagal ialah masalah pelaksanaan. Berikan kedua-duanya akibat yang berbeza.

Bagi kegagalan permainan, nyatakan peraturan yang menamatkan permainan. Selepas tiga kali menunggu, hanya dua unit masa yang tinggal, jadi kedua-dua laluan penghantaran tidak mampu dipilih. Tamatkan permainan serta-merta dengan penjelasan yang jelas dan pilihan untuk memulakan semula, bukannya membiarkan pemain terperangkap dalam sesi aktif yang mustahil dimenangi.

Bagi kegagalan pelaksanaan, tetapkan cara pemulihan sebelum menambah penceritaan yang rumit:

Jangan gantikan simpanan yang tidak dapat dibaca secara senyap dengan permainan baharu. Ini menyembunyikan kemajuan yang hilang dan menjadikan respons seterusnya mengelirukan.

Sediakan mesej hasil yang ringkas untuk setiap tindakan: perkara yang berlaku, perkara yang berubah dan perkara yang tersedia seterusnya. Penceritaan bot yang ekspresif boleh mengiringi hasil ini. Semasa tamat masa atau respons yang bercanggah, mesej ringkas itu masih membolehkan pemain meneruskan permainan.

Akhiri permainan dengan ringkasan yang tepat. Sebut reben hanya jika telah dikumpul dan poskad hanya untuk laluan taman. Prosa yang dijana harus mengekalkan perbezaan yang dipilih pemain sepanjang sesi.

Situasi — Tingkah laku yang diperlukan

Permintaan pemain yang samar — Minta penjelasan; kekalkan keadaan

Tindakan tidak tersedia — Terangkan syarat yang belum dipenuhi; kekalkan keadaan

Cadangan tindakan AI yang tidak sah — Tolaknya dan tawarkan tindakan yang sah

Penceritaan gagal selepas tindakan disahkan — Paparkan hasil yang ditulis berdasarkan keadaan yang telah disahkan

Penghantaran berganda — Pulangkan hasil sedia ada tanpa mengenakan kos sekali lagi

Keadaan yang disimpan tidak dapat dimuatkan — Laporkan masalah dan tawarkan pemulihan atau pilihan untuk memulakan semula secara jelas

Bahagian 6

Uji peraturan, kemudian tafsiran bot

Mula-mula uji permainan dengan teks tetap. Liputi setiap tindakan, pengakhiran dan keadaan sempadan. Kemudian tambahkan bot dan ulangi ujian itu dengan pelbagai cara ungkapan. Ini membezakan peraturan yang rosak daripada permintaan yang disalahertikan.

Jemput pemain yang mewakili kumpulan sasaran untuk menyelesaikan penghantaran tanpa bimbingan. Minta mereka menerangkan jangkaan sebelum memilih dan perkara yang mereka percaya telah berubah selepas itu. Panduan Nielsen Norman Group tentang ujian kebolehgunaan kaedah berfikir dengan suara lantang (https://www.nngroup.com/articles/thinking-aloud-the-1-usability-tool/) mengesyorkan peserta dan tugasan yang mewakili kumpulan sasaran sambil membiarkan peserta bercakap; panduan itu juga mengingatkan bahawa soalan daripada pemudah cara boleh mempengaruhi tingkah laku.

Gunakan pemerhatian bersama log tindakan. Catat tindakan yang dicuba, permintaan penjelasan, hasil yang tidak dijangka dan sebarang percanggahan antara penceritaan dengan keadaan yang disahkan. Tanya sama ada pemain memahami setiap pilihan secara berasingan daripada sama ada mereka seronok memilih antara pilihan tersebut.

Senarai semak ujian permainan ringkas. Baiki kegagalan dalam peraturan dan pengendalian keadaan sebelum mengembangkan dunia permainan. Jika pemain memahami pilihan tetapi menganggapnya tidak menarik, ubah pertukaran yang ditawarkan. Jika mereka menikmati keputusan tetapi tidak dapat menjangkakan kosnya, perbaik cara maklumat itu dipaparkan. Kembangkan prototaip apabila pilihan sedia ada kekal mudah difahami dengan pelbagai cara ungkapan, sesi tersimpan dan laluan kegagalan.

Pembukaan: Bolehkah pemain baharu mengenal pasti objektif, had masa dan tindakan yang menamatkan permainan?

Gelung: Adakah setiap tindakan yang diterima menghasilkan akibat yang kelihatan dan langkah seterusnya atau pengakhiran yang sah?

Pilihan: Bolehkah pemain menerangkan sebab mereka memilih laluan atau pilihan hiasan tertentu?

Sempadan: Adakah pengumpulan reben diikuti penghantaran melalui taman berjaya dengan baki masa tepat sifar?

Pengesahan: Adakah permintaan yang samar, berulang dan tidak tersedia mengekalkan keadaan yang betul?

Memori: Adakah simpanan dan muat semula mengekalkan sumber, pilihan dan tindakan yang tersedia?

Kegagalan: Adakah situasi penghantaran yang tidak mampu dibayar berakhir dengan jelas dan menyediakan pilihan untuk memulakan semula?

Pemulihan: Bolehkah permainan diteruskan selepas kegagalan penceritaan tanpa mengenakan kos sekali lagi?

Konsistensi: Adakah setiap pengakhiran sepadan dengan keadaan laluan dan reben yang telah disahkan?

Bacaan berkaitan

Terus meneroka topik ini