Di Balik Pestbacterie 1920: Kisah Pengembangan Gim
Desain
Ide dimulai saat penulis penat mengerjakan skripsi di Perpustakaan Nasional. Penulis rehat dengan menggunakan sisi kreatif dari otak alih-alih sisi analisis. Saya membuka GSlide untuk membuat peta sensus asal-asalan, lalu menggeser beberapa rumah agar terlihat efek transisi perubahan seiring waktu. Kemudian, sebuah memori tentang dokumenter yang belum lama penulis tonton terlintas di benak: haji sebelum pesawat, kasus tempe bongrek, dan wabah pes. Video seputar pes sepertinya menarik apabila dijadikan inspirasi permainan ... papan. Ya, Pestbacterie 1920 awalnya didesain sebagai teka-teki cetak dengan nama Pes 1920, tetapi akhirnya diubah ke kepanjangannya dalam bahasa Belanda karena penulis khawatir sengketa merk dagang dengan gim terkemuka.
Penjelasan Peta. Jalan utama sejatinya adalah jalan tanpa nama yang sejajar di samping perairan, sedangkan simpang tiga yang tegak lurus dengan jalur air adalah rute dagang yang menghubungkan ke desa sebelah. Jalanan tersebut bukan terbuat dari cor, melainkan tanah biasa agar lebih menggambarkan perkampungan di abad ke-20. Istilah IP merupakan singkatan dari pintu irigasi dalam bahasa Belanda. Di samping itu, GM adalah singkatan dari Geo...--penulis lupa, he-he. Intinya, itu adalah patok koordinat yang digunakan di era kolonial untuk keperluan kartografi, biasanya dicat biru. Peta sensus pada produk final juga menguning karena telah diarsipkan beberapa tahun per latar waktu berjalan, serta beberapa rumah mengalami pergeseran karena proses menggambar masih dilakukan secara manual.
Mekanisme. Sebuah kanal YouTube Extra Credits mengajarkan penulis bahwa komponen repetitif dalam gim sebaiknya dibatasi agar progres cerita tidak terlalu lambat (kecuali pada gim yang tidak menggunakan kisah, seperti catur yang murni strategi atau sejenisnya). Hal ini akan menjadi tantangan pada genre teka-teki karena secara teknis, pemain hanya dapat menyelesaikannnya satu kali. Sebuah algoritma sebenarnya dapat mengatasi masalah ini, yaitu dengan teka-teki bangkitan acak, seperti Sudoku. Namun, penulis tidak menginginkan pengalaman yang seperti itu karena sekali pemain menemukan pola penyelesaian, teka-teki yang tersisa akan diselesaikan dengan prosedur yang sama--penulis berpikir hal ini merupakan sebuah risiko repetisi pada gim dengan narasi.
Strategi desain dalam penyusunan teka-teki ini dilakukan dengan garis besar berikut. Petunjuk-petunjuk X dapat mengidentifikasi informasi Y, tetapi, hal tersebut belum tentu dapat diinferensikan untuk petunjuk jenis lain. Bisa jadi penarikan kesimpulan dilakukan dengan konversnya (dibalik Y untuk menyimpulkan X), memerlukan informasi tambahan, atau bahkan hanya dapat diidentifikasi setelah petunjuk lain telah terpecahkan terlebih dahulu. Hal yang terpenting adalah pastikan petunjuknya selalu ada dan tidak kontradiktif. Kondisi unik tersebut memungkinkan teka-teki dapat diselesaikan tanpa bantuan tambahan ataupun tebak-tebak buah manggis.
Basis Data. Strategi penyusunan basis data adalah dengan metode divide and conquer. Dua puluh empat kandidat disusun tanpa atribut, lalu dipetak-petakkan sesuai dengan kelompoknya. Atribut berdasar kelompok tersebut memungkinkan pemain untuk mengidentifikasi rumah tangga tertentu berdasarkan petunjuk yang terbatas. Beberapa atribut sengaja dibuat ambigu, seperti terdapat dua responden atas nama Lian, Zayn, dan lain-lain. Oleh karena itu, pemain perlu mengobservasi atribut lain sehingga dapat membedakan orang mana tinggal di rumah mana berdasarkan tabel basis data di atas (versi tanpa pemburaman dapat dilihat di Discord). Setelah data dirasa telah cukup memberikan bermacam metode referensi silang, penulis ubah bentuk tersebut menjadi tabel normal sehingga lebih mudah dikelola dengan sistem.
Mail Merge. Templat formulir disusun penulis beserta dengan kunci-kunci variabelnya. Kerangka format tersebut ditautkan dengan basis data yang telah dinormalisasi sehingga variabel dapat berubah menjadi entri secara otomatis. Dengan ini, sebanyak 72 lembar formulir yang terisi telah berhasil dicetak. Penulis cukup mengacak urutan dan menambahkan beberapa lembar pembantu agar pemain dapat memperoleh tujuan dan petunjuk teknis teka-teki. Pestbacterie 1920 versi cetak pun siap untuk dipecahkan.
Pengembangan
Konversi. Projek teka-teki yang telah selesai penulis harapkan dapat berkembang ke media lain, yaitu gim. Gagasan ini muncul setelah wisuda dan kebingungan harus mengisi waktu luang dengan apa. Namun, penulis tidak memiliki pengalaman sama sekali tentang pengembangan peranti lunak. Keterampilan ini hanya berasal dari ketersediaan desain (sudah selesai seperti versi cetak), kemampuan pemrograman dasar, dan seni digital--ini juga modal nekat karena hanya sekadar membuat lukisan dan aransemen.
Penulis bertanya kepada ChatGPT, aplikasi apa yang cocok digunakan pemula, gratis, dan tidak memiliki pembatasan lisensi yang tega. Godot adalah pilihan yang terbaik dan memenuhi kriteria tersebut. Adapun aset lain seperti desain kuesioner yang disusun pada Microsoft Word, yang terbatas untuk aktivitas pelajar nonkomersial, perlu disesuaikan dengan versi sumber terbuka, yaitu LibreOffice. Beberapa peranti pendukung yang mengizinkan penggunaannya untuk produksi antara lain Paint.NET, BeepBox, dan Audacity.
Salah satu kelemahan Godot berdasarkan penelusuran tersebut adalah minimnya komunitas. Kenyataannya, penulis kurang setuju dengan pendapat tersebut. Banyak permasalahan serupa yang dapat ditemukan di forum, belum lagi dokumentasi bawaannya juga cukup membantu. Penulis memulai tutorial dengan menyusun projek Dodge the Creeps dan ternyata mirip pemrograman web yang penulis sempat pelajari tempo hari, hanya saja pengembangan gim memiliki lebih banyak objek dengan atribut masing-masing. Penulis langsung tancap gas mengonversi Pestbacterie 1920 setelah tutorial usai.
Macet. Node 'simpul' yang digunakan pada pengembangan adalah simpul kontrol dan simpul 2D. Simpul kontrol bersifat responsif yang berarti akan berubah sesuai ukuran perangkat meskipun projek disusun pada resolusi 1280x720 piksel. Penyusunan kerangka cukup mudah seperti ilustrasi di bawah. Adapun simpul 2D perlu diperbarui setiap aksi karena terdapat interaksi seperti "urutan dokumen terlihat adalah yang teratas". Penyusunan tab navigasi, mudah. Tab perpesanan? Masih mudah juga. Sampai tiba tab papan tempel (corkboard) yang mengharuskan pengguna dapat menggeser dan memperbesar dengan alat yang sama ... semuanya berantakan dan membuat burnout terlebih masih banyak jenis alat yang seharusnya masih ditambahkan sebagai fitur.
Prototipe. Kesalahan yang membuat penulis stres adalah tidak menyusun prototipe--terlalu percaya diri untuk sekali tembak jadi. Solusinya, ironis, yaitu datang dari metode untuk menyelesaikan teka-teki itu sendiri: divide and conquer. Penulis membuat projek baru yang penuh dengan aset penyangga, asal fungsional dahulu, dengan logika sederhana. Misalnya, buat alat penambah catatan tempel. Lalu, buat alat pembesaran zum mengabaikan alat sebelumnya. Barulah kedua alat diperiksa sekaligus untuk memeriksa interaksi sehingga proses deteksi masalah dapat dilakukan langsung dari akarnya.
Terjemahan. Godot mendukung terjemahan sebagai fungsi bawaan sehingga elemen pada basis data yang awalnya sudah normal menjadi berantakan lagi. Seluruh elemen disusun ulang menjadi 1920 entri (kebetulan 1920?) dikali tiga bahasa. Praktik ini kurang tepat karena dapat menimbulkan anomali pembaruan, misal istilah pria yang diubah menjadi laki-laki berisiko menimbulkan data yang tidak konsisten jika tidak diperbarui seluruhnya. Solusi? Membuat tabel baru khusus untuk memberi label jenis kelamin tersebut, misal tampilkan label laki-laki jika jenis kelamin = 0. Namun, solusi ini tidak penulis ambil (jangan ditiru, wahai pengembang) karena tidak ada ekspektasi data untuk diperskala secara dinamis.
Grafis. Berikut adalah proses pengembangan versi Alfa, kebanyakan tentang grafis.
- Lukis delapan rumah (tangga) sebagai contoh tata letak ilustrasi pada tab validasi.
- Atur tata letak dokumen dan elemen variabel yang dinamis sesuai bahasa yang dipilih.
- Setel kunci jawaban pada berkas logika dan alur validasinya.
- Setel bantuan sesuai dengan kondisi dokumen yang belum terpecahkan (ada editorial terpisah).
- Setel penalti untuk validasi yang salah, sesuai dengan tingkat keparahan spoiler.
- Tamatkan lukisan enam belas rumah (tangga) tersisa.
- Atur tata letak dokumen tambahan seperti intro dan adegan akhir.
- Pastikan lisensi dan apresiasi memadai, ada masalah di sini.
Versi Beta. Produk Beta dipublikasikan di platform Itch dan Discord. Penulis berharap terdapat penguji luar yang memberikan umpan balik, tetapi sepertinya pasar kurang berminat. Untungnya, penulis memiliki dua rekan yang bersedia memberikan rekomendasi yang telah dirangkum pada editorial Itch. Beberapa fitur ditambahkan karena dianggap sakral dan memengaruhi pengalaman pengguna, seperti alat pengurutan dan penyaringan. Beberapa usulan yang ditolak antara lain karena desainnya memang disengaja atau keterbatasan mekanik. Keterbatasan ini muncul karena kodenya sudah menyerupai spaghetti alias berantakan. Memaksakan fitur yang sebenarnya menarik, seperti coretan seperti pena digital mungkin memengaruhi performa peranti (apabila terdapat pengembang yang mampu, mohon pencerahannya >_).
Penambahan elemen yang sengaja baru diberikan saat rilis adalah transliterasi bahasa Jawa dan tata suara. Guru bahasa Jawa penulis dahulu menyarankan produk kreasi baru sebaiknya menggunakan bahasa ngoko 'sebaya', tetapi tetap menggunakan bahasa halus pada konten seperti surat pegawai yang ditujukan kepada atasan. Di samping itu, suara efek yang disusun murni disintesis dengan BeepBox--awalnya mau produksi langsung, tetapi mikrofon tidak mendukung--termasuk musik latar belakangnya. Penulis turut merilis album tema di YouTube bertajuk Wonders of Engineering.
Publikasi
Tahapan terakhir adalah upaya penulis untuk menyiarkan produk setelah versi rilis resmi telah disusun.
YouTube. Video pratayang ditampilkan pada H-3 di kanal Belajar Sudoku dengan judul Pestbacterie 1920 Trailer. Video ini memuat contoh permainan dan ekspektasi penulis kepada pemain untuk memanfaatkan fitur-fitur yang ada.
Itch.io. Versi Beta telah diperbarui dengan versi rilis beserta dengan DevLog dan cuitan komunitas untuk meraih audiensi. Yah, meskipun per blog ini ditulis, gim tersebut belum masuk indeks internal. Setidaknya, saat mesin telusur Google melakukan pencarian Pestbacterie, konten ini berhasil dimuat di halaman pertama, bahkan sampai ada rangkuman singkat AI tentang deskripsi gim yang telah penulis paparkan pada komunitas.
Discord. Selain server resmi, penulis juga gencar menyebarkan gim ini pada server yang terkait dengan teka-teki: Lingo, The Roottrees are Dead, Komunitas Puzzle Klasik. Kebanyakan dari mereka memiliki kanal yang mengizinkan promosi diri sehingga penulis memanfaatkan kesempatan tersebut. Terus terang, kebanyakan lalu lintas yang masuk berdasarkan statistik bersumber dari jalur ini.
Ekraf. Pemerintah Indonesia menyediakan hub atau sentra komunikasi bagi pelaku ekonomi kreatif. Penulis langsung mengunggah identitas dan memasarkan produk di sini, terlebih kategori gim di Indonesia masih belum sebanyak jenis usaha lain.
Kaskus. Hm, sebenarnya penulis masih sesekali memantau Kaskus, terutama pada komunitas CYSTG. Hasilnya ... sepi seperti kuburan. Kontennya kurang lebih sama seperti cuitan pada Itch. Hanya saja, penulis sesuaikan dengan pembaca dalam bahasa Indonesia.
Print and Play. Versi cetak turut dirilis di Itch sekitar sebulan setelah versi video dipublikasikan. Kontennya kurang lebih sama, hanya saja minim ilustrasi karena memang ditujukan untuk teka-teki cetak klasik bak permainan papan.
Instagram. Penulis sangat jarang menggunakan Instagram, isinya hanya tugas prasyarat ospek kuliah dulu. Penulis hapus kebanyakan hal-hal yang berkaitan dengan itu dan berharap bisa meningkatkan paparan dengan mengunggah tautan menuju gim. Sedikit lebih baik daripada nol, bukan?
Facebook. Lagi-lagi, penulis juga jarang menggunakan Facebook. Privasi hanya untuk teman akhirnya dilonggarkan menjadi kepada publik sehingga dapat diindeks oleh mesin telusur. Sebuah pesan penulis kirim ke dinding profil dan berharap muncul di beranda orang lain yang beruntung dengan algoritma.
Blogger. Terakhir (mungkin), publikasi diterbitkan via Blogger. Di sini, tujuan utamanya bukan promosi seperti media lainnya, melainkan lebih ke penyampaian kisah di balik layar tentang pengembangan gim ini. Kisah dalam bahasa Inggris yang mungkin diceritakan dari sudut pandang berbeda dapat di Discord.
Blog ini ditulis seolah sebagai laporan setelah tahapan terakhir di atas usai. Meskipun masih banyak kekurangan, penulis berharap cerita ini dapat menginspirasi pembaca yang memiliki minat pengembangan peranti lunak untuk berkreasi dan berkarya terutama untuk pasar di Indonesia.