Pembuatan Pokémon yang unik untuk diri sendiri di dunia
Juli 2026
Gambaran umum
Dari enam kata yang dimasukkan di tengah permainan, AI akan menghasilkan spesies Pokémon baru. Beberapa menit kemudian, spesies baru itu muncul di semak-semak, dan pemain dapat bertemu, menangkap, serta memberi nama panggilan. Saya membuat prototipe penelitian yang menyusun secara langsung bukan hanya penampilan dan nama, tetapi juga tipe, nilai ras, teknik, dan data yang digunakan dalam permainan.
Dalam prototipe, percakapan, input kata, generasi di latar belakang, pertemuan di alam liar, penangkapan, hingga penamaan dihubungkan sebagai satu pengalaman tanpa menghentikan permainan. Spesies baru didaftarkan sebagai ras yang dapat ditangani oleh sistem permainan yang ada, bukan hanya sebagai gambar biasa.
Fokus utama dari inisiatif ini bukanlah model generatif itu sendiri. Manusia merancang kondisi untuk menjaga keseimbangan permainan dan konsistensi tampilan, dan hanya membiarkan AI mengeksplorasi dalam cakupan tersebut, yang disebut sebagai 'kerangka generatif'. Selain itu, saya juga secara awal mempertimbangkan sendiri apakah ketertarikan sejati bisa muncul jika hasil genereasi itu hanya milik saya, dengan memainkannya sendiri.
Pertanyaan — Jika sesuatu benar-benar unik, apakah keterikatan akan muncul?
Dalam permainan, ada kesenangan dalam memilih, mengembangkan, dan memberi nama karakter sehingga menjadi "keberadaan yang hanya dimiliki diri sendiri". Namun, titik awalnya berada di dalam pilihan yang disediakan oleh pengembang. Dengan AI generatif, jika keberadaan khusus pemain bisa dibuat dari titik awal itu sendiri, apakah keterikatan akan menjadi lebih kuat lagi?
Untuk memeriksa pertanyaan ini, hanya membuat satu gambar tidaklah cukup. Yang dihasilkan harus dapat masuk ke dunia permainan, bertemu, ditangkap, dan tetap dapat digunakan setelah itu. Oleh karena itu, dua pintu masuk dengan keterlibatan pemain yang berbeda disiapkan. Jika berbicara dengan kakek, itu dihasilkan tanpa input; jika berbicara dengan nenek, pemain memilih enam kata. Cara pembuatan permainan ditentukan oleh pihak yang pertama kali diajak bicara.
Tujuan dari prototipe ini bukan untuk menyimpulkan tentang keterikatan. Tujuannya adalah untuk membangun dasar untuk mengintegrasikan produk yang dihasilkan ke dalam pengalaman bermain game biasa, dan menemukan kondisi yang bisa dibandingkan di masa depan.
Alur permainan
Berikut adalah alur 'generasi keterlibatan' di mana pemain memilih kata-kata. Pemain berbicara dengan seorang nenek di Hutan Touka, lalu memilih enam kata melalui 'percakapan mudah' yang sudah ada dalam permainan. Saat bermain terus, proses generasi berlangsung, dan ketika persiapan selesai, suara hewan terdengar. Masuk ke rerumputan, spesies baru muncul dan bisa ditangkap dengan cara yang sama seperti Pokémon liar biasa. Nama, tipe, nilai ras, gerakan, sprite pertarungan depan & belakang, dan ikon yang dibawa akan dihasilkan setiap kali dijalankan. Rangkaian aksi ini juga dapat dikonfirmasi di Video demo.
Masalah desain — Jika dibuat secara bebas, permainan akan rusak
Kemampuan AI untuk menciptakan karakter baru dan kenyataan bahwa karakter tersebut berfungsi dalam permainan adalah masalah yang berbeda. Jika kemampuannya terlalu tinggi, tingkat kesulitan akan terganggu, dan jika tipe dan tekniknya tidak cocok, akan sulit untuk melatihnya. Jika penampilannya terlalu kompleks, bentuknya tidak akan bisa dikenali ketika diubah menjadi sprite 64×64 piksel.
Di sisi lain, jika semuanya dikunci, tidak ada artinya jika setiap kali dijalankan menghasilkan sesuatu yang berbeda. Yang dibutuhkan bukanlah menghilangkan kebebasan AI, melainkan membedakan bagian yang harus dijaga sebagai permainan dan bagian yang diperbolehkan mengalami perubahan.
Oleh karena itu, objek desain dipindahkan dari seekor Pokémon tunggal ke ruang yang dapat menghasilkan Pokémon. Manusia mendefinisikan tujuan, batasan, larangan, dan metode verifikasi, sementara AI mewujudkan kandidat di dalam batasan tersebut. Ini adalah percobaan desain berbasis batasan Filosofi desain saya sebagai prototipe yang bergerak.
Pendekatan — merancang kondisi pembuatan, bukan hasil yang dihasilkan
Jangan biarkan LLM menulis teks bebas, melainkan hanya mengisi item yang telah ditentukan seperti nama, tipe, nilai ras, gerakan, ukuran tubuh, dan warna. Hasil keluaran tidak langsung digunakan, tetapi diperiksa dengan validator. Jika ada pelanggaran, kembalikan ke model aturan mana yang dilanggar, dan buat ulang sampai memenuhi kondisi.
- Manusia yang menentukan batas. Menjadikan keseimbangan permainan, bentuk yang dapat dibaca di layar, dan ekspresi yang harus dihindari menjadi aturan yang dapat diperiksa.
- AI mewujudkan kandidat. Berdasarkan kata-kata pemain, usulkan nilai dari item yang diizinkan.
- Mesin memverifikasi aturan. Menilai secara otomatis kombinasi angka, teknik, dan ekspresi yang dilarang.
- Memberikan umpan balik hanya pada pelanggaran. Kandidat yang tidak memenuhi syarat dikembalikan dengan alasan dan dibuat ulang.
Keterbatasan yang melindungi permainan. Jumlah total nilai ras ditetapkan dalam rentang 280 hingga 360, dan batas atas serta bawah juga diterapkan pada setiap kemampuan. Gerakan diambil dari sumber game, dan dibatasi pada tipe ras tersebut atau tipe normal. Selain itu, gerakan one-hit KO, meledak sendiri, kerusakan tetap, dan gerakan yang terlalu kuat dikecualikan, serta jumlah gerakan serangan dan keberadaan gerakan yang sesuai tipe juga diperiksa. Tingkat penangkapan dan kecepatan pertumbuhan ditetapkan, sehingga perbedaan yang dihasilkan berada dalam rentang yang dapat dibandingkan.
Batasan untuk menjaga penampilan. Pilih bentuk tubuh dari kandidat yang mudah mempertahankan kontur bahkan untuk sprite kecil, dan batasi kosakata warna serta fitur. Fitur manusiawi, darah, senjata, dan huruf dikecualikan. Terakhir, selalu tambahkan kondisi pencegahan kerusakan seperti 'hanya satu tubuh', 'seluruh badan', dan 'jangan membuat anggota tubuh tambahan' ke instruksi pembuatan gambar.
Menurut sebuah catatan, model awalnya mengusulkan total nilai ras sebesar 380. Kerangka kerja mendeteksi pelanggaran dan mendorong pembuatan ulang, akhirnya menyatu pada spesifikasi 320. Yang penting bukanlah hasil yang baik muncul secara kebetulan, tetapi merancang proses yang tidak mengadopsi hasil yang keluar dari kerangka.
Menyelesaikan pengalaman di dalam permainan
Yang disentuh oleh pemain hanyalah percakapan dalam game, pilihan kata, dan pertemuan di semak-semak. Tidak perlu membuka layar lain untuk generasi. Sementara itu, proses dengan beban komputasi besar ditangani oleh proses Python di PC, yang berinteraksi dengan game melalui berkas. Dengan skrip Lua di mGBA yang menjembatani keduanya, sensasi memainkan game yang sudah ada dan pemrosesan AI eksternal dipisahkan.
- Membuat spesifikasi. Model bahasa lokal mengubah enam kata menjadi data ras yang telah diverifikasi.
- Membentuk sosok. Model gambar menggambar ilustrasi referensi, dan dari situ menghasilkan tampilan depan, belakang, dan ikon yang dipegang dengan konsisten.
- Mengonversi ke data untuk permainan. Mengurangi warna gambar menjadi 15 warna, lalu mengonversi dan mengompresnya menjadi sprite dan palet yang dapat digunakan oleh GBA.
- Menerapkannya ke permainan yang sedang berjalan. Menulis data ke wilayah yang telah dipesan sebelumnya, dan menghadirkan jenis baru tanpa me-restart game.
Karena data yang sama ditulis juga ke disk, ras yang tercermin akan tetap ada bahkan setelah game dimuat ulang. Penciptaannya hanya sekali dan tidak dapat dibatalkan. Jika melarikan diri atau kalah saat bertemu, ras tersebut akan tetap ada di dunia, tetapi jika dikalahkan, ras itu tidak akan muncul lagi. Ketidakbalikan ini juga dirancang untuk memberi pengalaman makna 'hanya satu di dunia'.
Hal-hal yang dapat dikonfirmasi dengan prototipe
Ini adalah verifikasi kelayakan yang dibuat sendiri, bukan permainan yang selesai atau eksperimen pengguna. Titik pencapaian dan ruang yang belum diverifikasi dibagi seperti berikut.
- Rentang di mana operasi dikonfirmasi. Kami memeriksa secara menyeluruh dalam mGBA mulai dari percakapan dalam game, memasukkan enam kata, pembuatan latar belakang, penerapan pada permainan yang sedang berjalan, pertemuan di alam liar, penangkapan, hingga memasukkan nama panggilan.
- Ini diimplementasikan untuk perbandingan. Disiapkan dua pintu masuk, yaitu 'generasi pasif' tanpa input dan 'generasi keterlibatan' yang memilih kata-kata, sehingga percakapan, pertemuan, dan penangkapan dapat direkam.
- Ada dasar, tetapi belum diverifikasi secara menyeluruh. Peningkatan level setelah penangkapan, pembelajaran teknik, pertarungan, penyimpanan ke kotak, dan penggunaan lanjutan setelah menyimpan terhubung dengan sistem yang ada, tetapi verifikasi melalui permainan dalam waktu lama belum dilakukan.
- Rentang yang belum diimplementasikan. Fungsi untuk menghasilkan evolusi berikutnya di tempat dan eksperimen perbandingan keterikatan oleh beberapa peserta tetap menjadi tugas di masa depan.
Hasil mencoba sendiri — hanya menjadi satu-satunya tidak menimbulkan keterikatan
Sejauh saya bermain dengan prototipe sendiri, saya tidak merasakan keterikatan yang kuat terhadap Pokémon yang dihasilkan. Ini adalah kesan pribadi dari pembuat implementasinya saja, dan bukan hasil eksperimen yang dapat digeneralisasikan. Namun, hal ini menjadi petunjuk untuk memikirkan apa yang harus diubah selanjutnya untuk dibandingkan.
Ada dua kondisi yang tampaknya memengaruhi keterikatan.
- Kualitas produk. Jika tidak melewati tingkat yang membuat penampilan dan pengaturannya menarik, hanya keunikan 'satu-satunya di dunia' tidak dapat menopang rasa keterikatan.
- Tingkat keterlibatan. Hanya dengan memilih enam kata, saya merasa hasilnya lebih terasa 'diberikan' daripada 'dibuat sendiri'. Yang menimbulkan rasa keterlibatan bukanlah jumlah input, tetapi kualitas proses pembuatan seperti memilih ulang, membandingkan, memperbaiki, dan bertanggung jawab atas hasilnya.
Yang menjadi kontras adalah 'Hanagitsune', yang dibuat melalui interaksi dengan beberapa AI generatif selain generasi otomatis untuk game, serta pengerjaan manual. Saya merasa memiliki kedekatan dengan karakter ini karena membandingkan kandidat, memperbaiki, dan mengembangkannya hingga bentuk yang memuaskan. Saya berpikir ini karena ada baik kualitas yang cukup maupun keterlibatan melalui percobaan dan kesalahan.
Prototipe ini tidak menjawab pertanyaan, 'Apakah konten yang dihasilkan menimbulkan keterikatan?'. Pertanyaan yang ambigu itu dibagi menjadi dua elemen yang dapat sengaja diubah, yaitu kualitas hasil dan kedalaman keterlibatan. Dalam verifikasi selanjutnya, perlu menyertakan pemilihan, perbandingan, dan perbaikan dalam proses pembuatan, menyamakan kualitas hasil hingga tingkat tertentu, dan melakukan perbandingan oleh beberapa peserta.
Implementasi
Pipeline generasi, kerangka kerja pembatasan dan verifikasi, konversi data untuk GBA, serta perubahan pada sisi game telah dipublikasikan di Repositori GitHub.
pret/pokeemerald Berdasarkan dekompilasi, ini dibuat sebagai penelitian pribadi. Tidak ada ROM, patch ROM, atau aset dalam game yang dibagikan. Semua sprite yang ditampilkan di sini adalah asli dan dibuat oleh AI. Pokémon adalah merek dagang Nintendo, Creatures Inc., dan Game Freak Inc., dan proyek ini tidak memiliki hubungan dengan perusahaan-perusahaan tersebut serta tidak mendapat persetujuan dari mereka.