Available for Hire
ZB

Memuat...

Tangkapan layar DEBUG RUN
Kembali
Frontend 2026 Featured

DEBUG RUN

Game arcade top-down di browser: seorang developer tersedot ke dalam codebase-nya sendiri dan harus membasmi bug gelombang demi gelombang. Dibuat dengan Phaser 3 dan TypeScript.

Tentang Projek

DEBUG RUN adalah game arcade top-down yang berjalan sepenuhnya di browser, dibuat sebagai proyek pribadi untuk mendalami pengembangan game. Premisnya: seorang developer tersedot ke dalam codebase-nya sendiri dan harus bertahan melawan bug yang datang bergelombang. Permainannya berisi 10 wave dengan kurva kesulitan menanjak dan dua boss di wave 5 dan 10, tujuh tipe musuh dengan tiga pola perilaku berbeda (mengejar, zigzag, dan menerjang), serta sistem combo tiga pukulan yang dilengkapi hitstop, knockback, dan screen shake. Pemain punya dua skill berpendingin, Purge berupa serangan area melingkar dan Shock berupa garis menembus yang membuat musuh terpaku, ditambah dash dengan kekebalan penuh selama bergerak. Setiap kali satu wave bersih, pemain memilih satu dari tiga upgrade. Dua hal yang secara teknis paling menarik: seluruh efek suara dan musiknya disintesis saat runtime lewat Web Audio API sehingga tidak ada satu pun berkas audio di repositori, dan total asetnya hanya sekitar 140 KB termasuk font piksel yang di-host sendiri agar game tetap jalan tanpa koneksi. Angka balancing dipisah ke berkas data tersendiri, jadi menyetel permainan berarti mengubah data, bukan kode.

Tech Stack

Phaser 3 TypeScript Vite Web Audio API

Tantangan

  • Membuat pertarungan terasa berbobot di game 2D tanpa bantuan engine besar
  • Menjaga ukuran aset tetap kecil supaya game cepat dimuat dan bisa jalan tanpa koneksi
  • Menyeimbangkan 10 wave dan 2 boss tanpa harus mengubah kode setiap kali menyetel kesulitan

Solusi

  • Kombinasi hitstop, knockback, dan screen shake pada setiap pukulan, ditambah kekebalan saat dash supaya pemain punya jalan keluar yang adil
  • Seluruh audio disintesis saat runtime lewat Web Audio API, tanpa berkas suara sama sekali, dan sprite dipak dari frame terpisah sehingga total aset sekitar 140 KB
  • Angka balancing dipisah ke berkas data tersendiri, sehingga menyetel kesulitan cukup mengubah data