3 poin oleh frogred8 11 jam lalu | 1 komentar | Bagikan ke WhatsApp

Saya mencoba membuat web game dengan konsep mengumpulkan item feedback dari pengguna lalu merilisnya keesokan harinya.
Ini adalah proyek yang saya buat untuk membiasakan diri dengan alat AI, dan repositori GitHub-nya juga dibuka, jadi silakan lihat dengan santai.
game: https://spiralwave.frogred8.dev
github: https://github.com/frogred8/SpiralWave

  • Gambaran proyek dan perencanaan
    • Motivasi dan tujuan: eksperimen vibe coding dengan memanfaatkan alat AI yang semakin maju (seperti Gemini) serta mencoba pengembangan web game dengan teknologi yang belum pernah dipakai.
    • Arah pengembangan: diputuskan sebagai mini web game tipe 'pengumpulan sumber daya berbatas waktu' di mana opini pengguna otomatis diterapkan setiap hari.
  • Pembuatan prototipe awal
    • Konsep inti: game pengumpulan sumber daya dan penyusunan skill tree tanpa kompetisi atau kerugian.
    • Pemanfaatan AI: sketsa di atas kertas diubah menjadi prompt, lalu struktur dasar game berbasis TypeScript, Vite, dan Phaser diwujudkan dalam 30 menit.
  • Batasan implementasi logika kompleks dan penyelesaian langsung
    • Pengembangan skill tree: logika prasyarat skill dasar berhasil diimplementasikan dengan AI, tetapi logika kompleks saat node turunan ikut dibatalkan berantai ketika node tengah dibatalkan tidak bisa diselesaikan AI, sehingga diimplementasikan sendiri.
    • Penghilangan kode uji: karena perubahan desain yang sering dan kecepatan pengembangan yang tinggi, pengerjaan sengaja dilakukan tanpa menulis test code.
  • Refaktorisasi besar dan karakteristik debugging AI
    • Pemisahan UI: karena satu file menjadi terlalu besar, kode UI dipisahkan, tetapi konsistensi dan kepuasan terhadap strukturnya rendah; dari pekerjaan besar ini dipastikan bahwa cara memperkuat prompt lalu mengerjakan ulang cukup efektif.
    • Bug urutan eksekusi: pada runtime error setelah refaktorisasi (urutan pembaruan state dan tampilan UI tertukar), AI hanya menambahkan guard code secara berlebihan; pada akhirnya developer manusia memahami alurnya dan menyelesaikannya dengan sederhana dengan langsung memperbaiki dua baris kode.
    • Kesalahan AI terasa relatif manusiawi, sehingga memberi kesan yang aneh.
  • Penerapan auto-commit Git dan panduan
    • Penyusunan panduan prompt: untuk mengurangi kerepotan instruksi berulang, diperkenalkan file pedoman (GEMINI.md) yang merangkum tech stack dan cara kerjanya.
    • Workflow otomatis: setelah pekerjaan kode selesai, diatur agar otomatis membuat commit message yang mencakup waktu eksekusi agent, prompt instruksi, dan ringkasan pekerjaan, sehingga beban review sederhana berkurang.
  • Perancangan dan optimasi arsitektur pembaruan otomatis
    • Perubahan metode deployment: rencana awal auto deployment real-time setiap 2 jam ditinggalkan karena tingginya tingkat runtime bug (sekitar 25%) yang menurunkan stabilitas build, lalu diputuskan untuk membuat/mendeploy daily test build terpisah.
    • Workflow Cron: dengan memanfaatkan node:cron, dibangun proses otomatis bergaya monolitik yang mengalir dari 'pengumpulan feedback → pemurnian → pembuatan kode → build dan pembuatan rilis → deployment'.
    • Pembaruan release note: file daftar server dibagikan sebagai volume bersama antar instance Docker dan cache kedaluwarsa 5 menit diterapkan untuk mengendalikan beban; selain itu, permintaan multibahasa dari pengguna dimurnikan ke bahasa Inggris lalu diterjemahkan kembali untuk ditampilkan sebagai release note.
  • Fitur yang dikeluarkan saat pengembangan
    • Fitur rekomendasi opini leaderboard (Like) (karena tidak ada identifier dan beban biaya panggilan API).
    • Tool pengelolaan data skill yang detail (karena keterbatasan imajinasi dan mengedit JSON langsung lebih efisien).
    • Pembangunan lingkungan Docker terdistribusi per layanan (digabung menjadi 1 image untuk meminimalkan kompleksitas operasi dan pengelolaan).
    • Fitur notifikasi email saat opini pengguna diterapkan (karena validitas pengumpulan email tanpa pendaftaran dan risiko penyalahgunaan).
    • Penambahan iklan samping (karena melelahkannya proses persetujuan platform dan efektivitas yang rendah dibanding tarif yang kecil).
  • Ulasan pengembangan berbasis AI
    • Trade-off antara produktivitas dan pengujian: kecepatan implementasi pengembangan meningkat sekitar 10 kali, tetapi terbentur batas karena waktu dan kelelahan untuk verifikasi (QA) ikut membesar secara proporsional.
    • Karakteristik kualitas kode: tingkat penyelesaian per fungsi tinggi, tetapi keterbacaannya rendah sehingga sulit memahami alur keseluruhan, dan terlihat kecenderungan memperkenalkan pola generalisasi yang tidak perlu terlalu besar bahkan dalam situasi di mana hard coding yang terbatas justru lebih menguntungkan.

1 komentar

 
recast7838 7 jam lalu

Menarik juga.