45 poin oleh GN⁺ 2025-07-05 | 3 komentar | Bagikan ke WhatsApp
  • Meskipun merupakan pengembang perangkat lunak dengan pengalaman 20 tahun, ini adalah pertama kalinya membuat game, dan ia menyelesaikan game tower defense berbasis Phaser.js "Tower of Time" dengan memanfaatkan agen coding AI
  • Tujuannya adalah menguji kemampuan nyata AI dalam pengembangan game, dan kode beserta semua prompt AI dan proses kerja didokumentasikan di GitHub
  • Lebih dari 95% kode ditulis oleh AI, dengan menggabungkan berbagai alat AI seperti Augment Code, Cursor, dan Claude Sonnet 4
  • Game ini menghadirkan keseruan unik melalui strategi berbasis fitur memundurkan waktu (rewind), beragam tower, sistem manajemen energi, dan kemunculan musuh per wave
  • Streaming langsung, pemanfaatan aset art dan sound, serta pelajaran dan tips praktis dari proses pengembangan menjadikannya bahan belajar yang berguna bagi pemula game maupun AI

Gambaran umum Tower of Time

  • Proyek ini dijalankan dengan tujuan menguji apakah pengembangan game yang nyata dimungkinkan dengan alat coding AI
  • Dengan pertama kali mempelajari game engine Javascript bernama Phaser.js, ia mengikuti Beginner's Jam Summer 2025 dan menyelesaikan 'Tower of Time' dalam 25~30 jam
  • Seluruh proses pengembangan, semua prompt, kode, dokumentasi, dan tautan bermain dicatat di GitHub

Pengenalan game

  • Tower of Time adalah game tower defense bertema perjalanan waktu, di mana pemain menahan musuh yang datang dalam bentuk wave, dan dalam situasi genting dapat memundurkan waktu untuk menyusun ulang strategi
  • Game ini menggabungkan berbagai jenis tower (dasar, sniper, slowdown, splash, dll.) dengan sistem energi (digunakan untuk membangun tower dan memundurkan waktu)
  • Fitur utama
    • Memundurkan waktu: pada momen yang merugikan, pemain bisa kembali ke keadaan sebelumnya dan menata ulang strategi pertahanan
    • Beragam tower: penempatan tower dengan karakteristik berbeda memungkinkan berbagai strategi pertahanan
    • Manajemen energi: elemen pengelolaan sumber daya yang menuntut pertimbangan matang atas penggunaan energi
  • Cara bermain
    • Mendukung keyboard/gamepad (bergerak: tombol arah/stick, aksi: spasi/tombol gamepad, rewind: backspace/trigger)

Eksperimen coding AI dan proses pengembangan

  • Sekitar 95% dari seluruh kode ditulis oleh AI (Claude Sonnet 4, OpenAI, Augment Code, Cursor, dll.)
  • Semua prompt utama, trial and error, dan hasil akhir dicatat di repositori dalam PROMPTS.md
  • Kelebihan pembuatan kode otomatis oleh AI: prototyping cepat, otomatisasi pekerjaan kode yang berulang, kemudahan dokumentasi
  • Keterbatasan dan hal yang perlu diperhatikan: AI cenderung menghasilkan kode berlebihan, saat muncul isu implementasi tertentu perlu mendesain ulang prompt atau rollback, dan disarankan memanfaatkan log debugging

Pelajaran yang didapat dari pengembangan

  • Bahkan hanya dengan AI coding, sangat mungkin menyelesaikan game yang menyenangkan
  • Kualitas prompt, pemberian konteks yang jelas, dan strategi debugging sangat penting
  • Perlu terus memeriksa agar jumlah kode tidak bertambah secara tidak perlu

Tumpukan teknologi

  • Engine: Phaser 3 (v3.90.0) + Phaser Editor v4
  • Bahasa: TypeScript
  • Build tool: Vite
  • Aset art: itch.io, sebagian disesuaikan sendiri
  • Sound: freesound.org

Coba mainkan di browser: Tower of Time

3 komentar

 
softer 2025-07-07

Sepertinya ini bisa menjadi referensi yang bagus.

 
ifmkl 2025-07-06

Saya juga sedang giat memanfaatkan AI untuk membuat game web.

 
GN⁺ 2025-07-05
Komentar Hacker News
  • Seru membaca prompt yang digunakan dalam pengembangan satu per satu
    Tulisan tentang "contoh sukses vibe coding" sering memberi ilusi seolah dengan banyak agen, orkestrasi kode yang rumit, dan aturan buatan LLM saja, sebuah game bisa langsung jadi hanya dari satu baris prompt seperti “buat game tower defense yang memundurkan waktu dan pastikan tanpa cacat maupun bug”
    Namun, prompt yang benar-benar dipakai di proyek ini justru selaras dengan cara yang paling efektif untuk AI coding
    Memecah ide yang jelas dan rinci menjadi ratusan masalah kecil, lalu memberi panduan arsitektural yang konkret pada bagian yang benar-benar penting, adalah pendekatan yang efektif

    • Dari sudut pandang orang yang merangkap peran tech lead dan product owner, cara ini juga merupakan praktik yang benar saat bekerja dengan manusia
      70% pekerjaanku adalah mengubah permintaan abstrak eksekutif seperti “game tower time travel, tanpa bug” menjadi serangkaian prompt yang memuat visi arsitektur yang kuat, agar tim bisa bekerja tanpa saling tumpang tindih sambil tetap mempertahankan abstraksi tingkat tinggi

    • Aku sempat mencoba membuat game HTML sederhana untuk board game Just One, tetapi bug input box yang bergerak tidak bisa diperbaiki meskipun sudah ku-prompt terus ke empat LLM
      Semua orang bilang mereka bisa membuat game sekaligus, sedangkan aku bahkan tidak bisa memperbaiki gerakan textbox, jadi rasanya aneh juga

    • Setelah prompt “tanpa celah keamanan, tanpa bug”, kita juga wajib menambahkan “tanpa halusinasi”
      Ini syarat dasar untuk pemula AI

    • Cara yang paling berhasil buatku dalam AI coding adalah membuat fungsi dasar atau kerangka gameplay dengan AI secara ‘one-shot’ terlebih dahulu, lalu menumpuk perbaikannya secara iteratif di atas itu
      Jika hasil one-shot-nya tidak langsung meyakinkan, aku segera mencoba prompt lain sampai keluar hasil yang cukup bagus untuk dijadikan fondasi

    • Aku sangat setuju dengan pendekatan ini
      Sebenarnya postingan terbaruku juga berangkat dari konsep ini
      Kalau AI disuruh menulis spesifikasi dulu sebelum coding, beban manusia untuk menulis spec dari nol berkurang, sehingga peluang spec benar-benar ditulis jadi jauh lebih besar

  • Setelah lebih dari 20 tahun di industri software, aku merasa kebanyakan rekan kita cukup skeptis terhadap AI coding
    Belakangan ini aku mencoba mengembangkan aplikasi besar sekitar 34.000 baris terutama dengan AI, dan efisiensinya meningkat secara eksponensial tergantung kualitas instruksi yang kuberikan, struktur interaksi, dan seberapa besar perhatian yang kuberikan pada hasil outputnya, termasuk koreksi arah
    Sampai rasanya seperti, “pada akhirnya ini sama saja seperti semua alat lainnya!”
    Bedanya, alat ini benar-benar memberi leverage 10x, lebih besar daripada alat “10x” mana pun yang pernah kutemui
    Hal yang dilewatkan banyak orang skeptis adalah bahwa alat seperti ini tidak boleh diperlakukan sebagai sesuatu yang sepenuhnya eksternal
    Kalau tujuan dijelaskan dengan samar lalu semuanya diserahkan begitu saja, hasilnya akan berantakan
    Mungkin suatu hari AI bisa langsung membaca pikiran kita, tetapi sekarang belum
    Untuk saat ini, kekuatannya muncul ketika kita merapikan pikiran dengan jelas, belajar hal baru, dan menyelesaikan bagian-bagian yang merepotkan dengan cepat
    Untuk mendapatkan leverage maksimal, alat ini harus diintegrasikan dengan baik ke dalam proses berpikirmu

    • Pengalaman programming-ku sudah lama, tetapi untuk game aku nyaris hanya pernah membuat Hunt the Wumpus saat SMA, lalu belakangan mulai membuat game baru dengan bantuan AI
      AI berperan besar dalam tiga hal
      (1) Alat belajar - ini peran terpenting karena AI bisa menangkap maksud pertanyaanku meski aku tidak tahu istilahnya, memberi titik awal, bahkan memberitahuku hal-hal yang sebelumnya tidak kuketahui
      (2) Menangani pekerjaan berulang atau membosankan - komentar kode, penulisan file konfigurasi, dan sejenisnya bisa kulakukan sendiri, tetapi AI menanganinya dengan cukup baik agar tidak memperlambatku
      (3) Pencarian - seperti di poin (1), AI memahami apa yang sebenarnya kuinginkan lalu membantu memfilter atau merekomendasikan hal yang relevan
      Kamu memang bisa menyerahkan “pemikiran” pada AI, tetapi sebenarnya tidak perlu
      AI tidak lebih pintar dari manusia; ia hanya lebih cepat dan tahu lebih banyak, seperti semacam FPU

    • Menurut standar HN aku termasuk cukup skeptis, tetapi pada praktiknya aku terus mendorong adopsi AI di perusahaan, dan bahkan sekarang sedang menulis komentar ini sambil menyuruh Claude mengerjakan sesuatu
      Alasan skeptisnya adalah adanya jarak antara bagaimana solusi AI saat ini “dijual” dan apa yang sebenarnya mereka lakukan
      Semua solusi AI, terutama agen, hanya menghasilkan hal-hal yang tidak berguna tanpa panduan dari orang yang terampil
      Hampir tidak ada unsur yang benar-benar “otonom”
      Bahkan orang yang menciptakan istilah ‘vibe coding’ pun mengatakan bahwa industri menjalankan urutannya secara terbalik
      Mengabaikan fakta bahwa alat seperti ini memang fantastis tetapi harus dikendalikan dengan ketat, pada dasarnya sama saja dengan berbohong

    • Dalam beberapa bulan terakhir aku juga sampai pada kesimpulan yang mirip
      Dulu aku sering meninggalkan komentar kritis tentang AI, tetapi alat-alat terbaru jelas sudah berkembang jauh
      Pekerjaan yang dulu butuh beberapa minggu, sekarang bisa selesai dalam beberapa jam
      Tentu saja, prompt harus dipikirkan dengan baik, dipecah sedetail mungkin, dan terintegrasi rapi dengan IDE
      Bagian yang paling revolusioner adalah saat berhadapan dengan library atau framework yang benar-benar baru
      Dulu aku harus mencari cara pakainya lalu membongkar contoh kode, tetapi AI memberikan pendekatan yang jauh lebih intuitif dan beragam, dan itu sering kali sangat mengejutkan
      Buat orang yang masih skeptis, mungkin sekarang waktunya mencoba lagi

    • Sebagai contoh leverage 10x, kita bisa melihat bahasa pemrograman
      Dulu orang bilang Lisp dan semacamnya membuat kita bisa melakukan lebih banyak hal lebih cepat, tetapi sekarang kita bisa menulis lebih sedikit kode sambil menghasilkan output dalam bahasa yang cepat dan berperforma tinggi
      Namun ada ‘jebakan’ berupa kebutuhan untuk meninjau dengan saksama bagian-bagian kode hasil generasi yang tidak mudah diverifikasi
      Sama seperti bahasa dengan daya ekspresi tinggi dulu bisa membuat orang yang tidak punya rencana awal menghasilkan codebase yang berantakan, hal yang sama juga akan terulang dengan alat AI
      Tetapi penghematan waktu terbesarku justru bukan saat menulis kode yang sepenuhnya baru, melainkan saat mengintegrasikan atau memperbaiki kode lama dan baru
      Di debugging, lompatan besarnya terasa sekali
      Tidak seperti dulu yang hanya mengandalkan print, sekarang cukup copy-paste kode lalu bertanya ke AI, “kenapa output-nya seperti ini, bukan seperti itu?” dan kita bisa cepat mendapat penyebab serta alternatif solusinya
      Cara ini sangat berguna terutama untuk pekerjaan seperti SQL, IaC, dan build script yang sulit dipasangi debugger

    • Satu hal lagi, kurva belajar dan batas atas tingkat kesulitannya jauh lebih tinggi dari yang dibayangkan
      Menggunakan Claude Opus sebagai framework otomasi yang kompleks menghasilkan sesuatu yang sangat berbeda dibanding sekadar copy-paste ke GPT-4o di browser

  • Keren sekali karena proses pengembangannya dibuka secara transparan dan bahkan prompt-nya dibagikan, jadi aku langsung memberi star di GitHub

  • Baik kode maupun hasil akhirnya terasa indah
    Jelas bukan hanya AI yang bekerja; pasti ada banyak keterlibatan langsung dari pembuatnya juga
    Aku sendiri sempat lama berhenti coding, lalu atas saran teman-teman mencoba membuat kode sederhana dengan memanfaatkan AI
    Yang berhasil kuselesaikan baru semacam Bubble Wrap popper dan silencer (tekan tombol lalu tidak ada suara)
    Bubble Popper
    Silencer

    • Aku menjalankannya di Chrome pada Android, tetapi bubble-nya tidak benar-benar pecah dan hitungannya juga tetap 0
      Apakah ada rencana menerima PR?
  • Indie game tampaknya memang contoh penggunaan AI coding yang sangat bagus
    Risiko yang rendah dan sifatnya yang berorientasi pada kesenangan sangat cocok
    Commit pertama memang sudah berisi banyak kode, tetapi PROMPTS.md belum ada saat itu
    Misalnya EnergySystem.ts sudah ada di commit pertama, tetapi di PROMPTS.md belakangan terlihat seolah AI membuatnya dari awal
    Aku penasaran apakah bagian ini bisa dijelaskan lebih detail lewat histori repositorinya
    tautan commit pertama

    • Karena proyek ini adalah submission game jam dengan tenggat satu minggu, aku tidak memakai source control selama 2–3 hari pertama, jadi pekerjaan dari periode itu berakhir sebagai satu commit besar
      Prompt juga tidak langsung kutulis saat itu; setelah game selesai, aku menelusuri riwayat tool chat yang kupakai lalu menyalinnya ke file PROMPTS.md
      Kalau ingin melihat proses pembuatan proyeknya, cara terbaik adalah membaca file prompt dari awal sampai akhir
      Sebagai contoh, file EnergySystem.ts adalah bagian yang dibuat AI sepenuhnya dari baru setelah implementasi pathfinding musuh, spawning, penembakan tower, dan lain-lain selesai, melalui prompt “aku ingin mengimplementasikan subsistem energi”
  • Aku baru pertama kali mendengar alat bernama Augment Code
    Aku penasaran alat ini dipakai untuk apa dan kenapa dipilih, apa bedanya dengan alat pesaing, bagaimana pengalaman pemakaian nyatanya, dan apakah kamu merekomendasikannya

    • Menambahkan pertanyaan itu, aku juga ingin tahu apakah OP memakai Augment Code di Cursor, bagaimana kombinasi ini bekerja, dan keuntungan apa yang diberikannya
      Apakah keduanya sama-sama berbayar?
  • Mencatat prompt seperti ini terasa mengesankan dan memotivasi
    Dalam pengalamanku, ‘vibe coding’ kadang melaju sangat cepat, kadang juga bisa melambat tanpa batas
    Kalau punya instruksi yang ringkas dan jelas, code review yang cepat, dan kemampuan memahami arsitektur, ini benar-benar bisa meningkatkan kecepatan pengembangan

  • Aku juga pernah membuat game tower defense, dan belakangan sempat terpikir untuk memakai AI sampai ke generasi wave baru dan tuning balance
    Agar AI bisa ‘merasakan’ game, kupikir mungkin diperlukan protokol yang mengubah status game yang terlihat di layar menjadi token yang terenkode
    Termasuk medan, posisi entitas game, dan atribut lain yang bisa dilihat pemain
    Menaruh semuanya ke autoencoder mungkin kurang bagus, tetapi tokenisasi dalam bentuk daftar per elemen game tampaknya punya potensi
    Jika game engine menyediakan gambar layar, dan token itu langsung dipetakan ke AI, AI mungkin bisa memahami keadaan permainan yang sebenarnya dengan lebih dalam
    Aku belum yakin berapa banyak dataset yang dibutuhkan agar token seperti ini bisa benar-benar dimanfaatkan, tetapi mungkin saja ruang embedding saat ini sudah cukup untuk merepresentasikannya dalam beberapa token saja
    Kalau ada dataset pelatihan yang menggabungkan log game dan penilaian keseruan dari pengguna, mungkin akan muncul banyak data yang menarik
    Menemukan klaster selera pemain lalu membuat game untuk berbagai tipe yang berbeda juga tampaknya akan menjadi mungkin

  • Terima kasih sudah membagikan workflow seperti ini
    Aku juga sedang memikirkan cara menghadirkan keterlacakan dan transparansi ke workflow pemanfaatan LLM
    Jika prompt dibagikan dan disimpan sebagai riwayat, ada keuntungan besar karena kita bisa langsung melihat masalah inti yang mula-mula ingin dipecahkan developer, lalu bagaimana masalah itu berubah dan isu baru muncul di sepanjang proses
    Proyek yang keren
    posting tentang pemanfaatan LLM yang bertanggung jawab

  • Sudah lebih dari 20 tahun aku berkecimpung di dunia tech, dan belakangan sedang bereksperimen dengan berbagai hal sambil menggamifikasi alat integration testing aplikasi enterprise menggunakan Gemini-cli
    Saat digabungkan dengan server MCP, hasil terbaik muncul ketika masalah dipecah langkah demi langkah dan prompt dibuat lebih jelas
    AI bisa melakukan kesalahan atau terjebak dalam loop, terutama di area seperti routing aplikasi, dan dalam situasi seperti itu pendekatan ‘pair programming’ yang aktif terasa sangat berguna
    Hal lain yang kuperhatikan adalah bahwa prinsip seperti larangan duplikasi kode jauh lebih mudah dijaga daripada sebelumnya
    Jika tidak, AI mudah sekali hanya mengubah satu bagian lalu melewatkan file-file terkait
    Ini bukan hanya berlaku untuk logika pemrograman, tetapi juga kebenaran yang sama untuk UX dan perilaku aplikasi
    Bersama AI, pekerjaan yang dulu memakan waktu berminggu-minggu sekarang bisa selesai dengan menyenangkan hanya dalam beberapa jam
    Fakta bahwa Gemini bisa diberi kepribadian, dan file GEMINI.md bisa dibawa apa adanya ke berbagai perangkat lalu dituning, adalah keunggulan yang sangat besar