Menjaga kualitas sebelum dirilis: playtesting dengan pemain nyata, bug tracking yang tertata, dan automated testing untuk regression, lalu praktik QA pass menyeluruh untuk Rimba Runner

Game kalian sudah punya gameplay, grafis, audio, dan multiplayer. Apakah sudah siap dirilis? Belum tentu — karena kualitas hanya bisa dijamin lewat pengujian. Game yang tidak diuji adalah game yang dipasang untuk gagal: satu bug crash di menit pertama membuat ulasan buruk yang menempel bertahun-tahun.
Episode ini membangun proses QA untuk Rimba Runner: playtesting (menguji dengan pemain nyata), bug tracking (mencatat dan memprioritaskan bug), dan automated testing (menguji dengan kode agar bug tidak kembali). Ini adalah disiplin yang membedakan hobi dari profesi.
Playtesting adalah menguji game dengan pemain yang bukan developer. Ini terdengar sederhana, tapi paling sulit dipraktikkan dengan benar. Developer buta terhadap bug karena sudah tahu cara main; pemain baru menemukan semuanya — kontrol yang membingungkan, tujuan yang tidak jelas, atau lompatan yang mustahil.
Tiga aturan playtesting yang efektif:
Hasil playtest bukan sekadar daftar bug — ia juga masukan desain: "pemain tidak tahu harus ke mana", "tombol lompat terasa telat", "musuh terlalu cepat". Inilah umpan balik paling awal untuk iterasi desain, yang akan kita kerjakan lanjut di episode 17.
Bug yang tidak tercatat adalah bug yang hilang. Setiap bug harus masuk sistem tracking dengan informasi yang cukup untuk direproduksi. Informasi wajib:
| Field | Contoh |
|---|---|
| Judul | "Player bisa menembus dinding saat lompat ganda" |
| Steps to reproduce | 1) lompat ganda di tile 12, 2) tahan kanan |
| Expected vs actual | Harap tertahan, nyatanya tembus |
| Severity | Crash / Major / Minor / Cosmetic |
| Environment | Godot 4.3, Linux, resolusi 1920x1080 |
| Stack trace / log | (jika ada) |
Praktik yang baik: gunakan tool tracking yang sudah ada — GitHub Issues, Jira, or Linear — dan tautkan bug ke commit yang memperbaikinya (fix #42). Ini menciptakan jejak: bug apa muncul di versi mana, diperbaiki oleh siapa, di commit apa. Dengan itu, regression (bug kembali) mudah ditelusuri.
Prioritaskan dengan matriks sederhana: severity × likelihood. Bug yang bikin crash dan sering terjadi dikerjakan dulu; masalah kosmetik langka boleh ditunda. Jangan biarkan daftar bug tak terurut — prioritas yang jelas membuat rilis tetap mungkin tercapai.
Playtesting tidak menangkap regression — bug yang kembali setelah perbaikan karena kode lain berubah. Di sinilah automated testing berperan. Untuk game, tiga level pengujian yang umum:
Contoh unit test di Godot (menggunakan skrip test bawaan):
extends SceneTree
func _init() -> void:
var scorer := ScoreCalculator.new()
assert(scorer.calculate_chain(3) == 60) # 10 + 20 + 30
assert(scorer.calculate_chain(0) == 0)
print("Semua unit test lulus")
quit()Kunci automated testing: uji logika murni (pure logic) terlebih dahulu — bagian yang paling sering rusak dan paling mudah diuji tanpa UI. Fungsi hitung, validasi, dan state transition adalah kandidat sempurna. Menguji gerakan karakter butuh setup physics yang rumit; mulailah dari yang berharga dan murah.
Tip
Tambahkan automated test untuk setiap bug yang diperbaiki (regression test). Ini memaksa bug "terkunci": sekali diperbaiki dan diuji, ia tidak bisa kembali tanpa membuat CI gagal. Dalam jangka panjang, regression test menghemat waktu debugging yang jauh lebih besar daripada biaya menulisnya.
QA bukan acara sekali jalan — ia siklus yang berulang sepanjang development. Siklus yang sehat untuk project indie:
Checklist QA Rimba Runner yang bisa dipakai:
[x] Semua level bisa diselesaikan tanpa bug blocker
[x] Save/load konsisten (restart game tidak hilang progres)
[x] Audio berhenti/berganti benar di menu, pause, game over
[x] UI tidak patah di resolusi utama & mobile
[x] Multiplayer join/leave tidak menimbulkan crash
[x] Tidak ada error di console sepanjang sesiImportant
Documentasikan prosedur QA (checklist ini) sebagai file di repo, misal docs/qa-checklist.md, supaya bisa dijalankan siapa pun tanpa perlu mengingat-ingat. Proses QA yang terdokumentasi jauh lebih mungkin benar-benar dijalankan menjelang rilis — saat tekanan paling tinggi dan lupa paling mudah terjadi.
Jalankan siklus QA pertama:
QA adalah investasi reputasi.
Inti yang harus dibawa pulang:
Di episode 16 selanjutnya kita akan membuat game tetap mulus: performance & optimization game — profiling, draw calls, dan frame budget, lengkap dengan praktik optimasi Rimba Runner. Sampai jumpa di episode 16!