- Proyek yang mengubah dialog repetitif dari game klasik Animal Crossing (GameCube, 2001) menjadi percakapan LLM berbasis cloud secara real time
- Tanpa memodifikasi kode game, proyek ini menghubungkan skrip Python eksternal dan AI melalui peretasan memori serta metode shared memory (mailbox)
- Teks dalam game diproses bukan sebagai string biasa, melainkan sebagai bahasa kode kontrol khusus, sehingga masalah diatasi dengan membuat encoder dan decoder terpisah
- Pembuatan dialog dipisah menjadi Writer (menulis dialog kreatif) dan Director (menambahkan kode kontrol dan ekspresi) untuk menjaga kualitas
- Hasilnya, para penduduk desa menampilkan percakapan AI yang tak terduga dengan mencerminkan berita, rumor, bahkan satire, sehingga memberi kehidupan baru pada game klasik
- Kode proyek tersedia secara publik di GitHub
Definisi masalah
- Animal Crossing memang menawan, tetapi juga terkenal dengan dialognya yang repetitif. Meski sudah 23 tahun berlalu, dialognya tetap sama, sehingga dicari cara radikal untuk mengubahnya
- Masalahnya, GameCube adalah lingkungan tertutup dengan CPU 485MHz, RAM 24MB, dan tanpa dukungan jaringan
- Game asli harus tetap dipertahankan apa adanya tanpa modifikasi kode
- Tujuannya adalah membangun jembatan untuk mengganti dialog repetitif dengan LLM modern
Langkah pertama: meretas sistem dialog
- Berkat dekompilasi Animal Crossing dari komunitas, kode C bisa diakses
- Dengan melakukan hook pada pemanggilan fungsi di file
m_message.c, penggantian teks dialog berhasil dilakukan
- Namun, cara bertukar data dengan AI eksternal secara real time masih menjadi tantangan
Metode mailbox memori
- Area tertentu di RAM GameCube digunakan sebagai mailbox IPC
- Skrip Python menulis/membaca langsung ke alamat memori → komunikasi antara game dan AI
- Dengan membuat pemindai memori, diperoleh alamat nama pembicara (0x8129A3EA) dan buffer dialog (0x81298360)
Bahasa kode kontrol
- Saat string biasa dikirim, game mengalami freeze
- Penyebabnya: Animal Crossing menggunakan bahasa berbasis kode kontrol seperti
<End Conversation>, <Pause>, <Color Line>
- Dibuat encoder/decoder dalam Python → mengubah teks yang mudah dibaca manusia ↔ urutan byte yang dipahami game
Meninjau alternatif jaringan
- GameCube memiliki Broadband Adapter, tetapi Animal Crossing tidak memiliki stack jaringan
- Untuk memakai BBA, perlu menambahkan stack jaringan dan asynchronous I/O, sehingga dinilai tidak efisien
- Sebagai gantinya, peretasan memori emulator dianggap lebih sederhana dan stabil
Pipeline AI
- Awalnya, satu LLM diminta menangani kreativitas sekaligus kode kontrol, tetapi karena masalah kualitas cukup besar, dipilih strategi pemisahan Writer-Director
- Writer: menghasilkan dialog kreatif berdasarkan kepribadian karakter (memanfaatkan data wiki penggemar)
- Director: membaca dialog lalu menyisipkan kode kontrol, ekspresi, warna, dan suara yang sesuai
- Pipeline LLM dua tahap ini memisahkan kreativitas AI dari kebutuhan teknis, sehingga kekuatan masing-masing bisa dimanfaatkan
- Berkat pembagian peran ini, kualitas yang stabil dapat dicapai
Hasil dan penyebaran
Makna proyek
- Proyek eksperimental yang menggabungkan peretasan konsol retro, integrasi AI, dan pelestarian game
- Dengan menghubungkan AI tahun 2025 ke game tahun 2001, proyek ini mewujudkan interaksi lintas generasi
- Game ini tidak lagi sekadar memiliki dialog repetitif, tetapi berevolusi menjadi dunia virtual yang hidup
- Proses pengembangan lengkap/video demo: Modern AI in a 24-Year-Old Game
Belum ada komentar.