Game mini berbasis Three.js dengan gaya neon cyberpunk dan efek glow futuristik.
Kamu mengendalikan kubus bercahaya dan harus menghindari musuh yang bergerak acak — konsepnya mirip snake arena versi 2D.
- 🌈 Neon Glow FX menggunakan
UnrealBloomPass - 🎮 Kontrol WASD untuk pergerakan 2D
- 💥 Enemy spawn acak dengan batas jumlah
- ✨ Sistem skor & level-up
- ⚡ Transisi efek neon saat naik level
- 🧩 Modular Architecture — komponen terpisah seperti
player,enemy,collision,score,transition, dll. - 🧠 Design Patterns:
- Composition Root
- Event-Driven Visual Pattern
- Observable State Pattern
- UI Overlay Pattern
- State Gate Pattern
src/
├── cube/
│ ├── postprocessing/
│ │ ├── bloom.ts # Bloom
│ ├── components/
│ │ ├── player.ts # Player system
│ │ ├── enemy.ts # Enemy spawner + AI
│ │ ├── environment.ts # Grid neon & lighting
│ │ ├── controls.ts # Input handler (WASD)
│ │ ├── score.ts # UI overlay skor
│ │ ├── transition.ts # Efek level-up neon
│ │ ├── collision.ts # Collision
│ │ ├── particles.ts # Efek partikel (opsional)
│ │ ├── trail.ts # Jejak neon player
│ │ ├── gameOver.ts # Game Over sistem
│ │ └── startScreen.ts # UI awal "Press SPACE to Start"
│ ├── game.ts # Composition root
│ ├── types.ts # Definisi tipe global
│ └── main.ts # Entry point untuk render scenegit clone https://github.com/username/neon-cube-2d.git cd neon-cube-2d
npm install
npm run dev
Kemudian buka http://localhost:5173 di browser.
| Tombol | Aksi |
|---|---|
W |
Gerak ke atas |
A |
Gerak ke kiri |
S |
Gerak ke bawah |
D |
Gerak ke kanan |
SPACE |
Mulai permainan |
Hindari musuh bercahaya dan kumpulkan skor sebanyak mungkin. Setiap kelipatan 10 poin, level akan naik dengan efek neon baru.
Sistem dibangun dengan pendekatan komponen independen yang berkomunikasi lewat Composition Root (game.ts). Setiap sistem memiliki pattern annotation di bagian atas file agar mudah dipelajari.
Contoh:
/**
* @module Score
* @pattern Observable State Pattern + UI Overlay Pattern
*/Proyek ini bersifat open source dan dapat digunakan untuk keperluan pembelajaran atau portofolio pribadi. Lisensi: MIT
- Latihan memahami Three.js & game loop
- Portofolio web interaktif (frontend developer / creative coder)
- Dasar pengembangan game berbasis WebGL