Skip to content

Repository files navigation

🏝️ Island Farm (Castaway Grid-Farmer)

Godot Version Theme Game Jam

Island Farm adalah game simulasi pertanian grid-based minimalis yang dikembangkan untuk Micro Jam 061 dengan tema "Islands". Game ini dibuat menggunakan Godot 4.7 (GDScript) dengan fokus pada estetika pixel-art yang hangat dan cozy.

Anda terdampar di satu petak ubin tanah (1×1) di tengah samudra luas tanpa modal awal. Kumpulkan benih tanaman yang hanyut terbawa ombak, tanam di ubin Anda, rawat hingga matang, lalu jual hasil panen untuk mendapatkan koin. Gunakan koin tersebut untuk memperluas pulau Anda petak demi petak — tetapi hati-hati terhadap serangan burung pelikan liar yang suka mencuri hasil panen jika Anda terlalu lama membiarkannya!

Dokumen desain lengkap dapat dilihat di GDD_Castaway_Grid_Farmer_AI_Context.md.


🎮 Cara Bermain & Kontrol

Tombol Aksi
W, A, S, D / Arrow Keys Menggerakkan Karakter
E / Space Interaksi (Beli petak baru / Tanam benih / Panen tanaman)
Klik Mouse Memilih Slot Benih di Inventory
F5 Menyimpan Game Manual (Manual Save)
F9 Memuat Game Manual (Manual Load)

Siklus Gameplay Utama:

Pungut benih hanyut ➔ Tanam di petak kosong ➔ Tunggu hingga matang ➔ Panen (Dapat Gold) ➔ Beli petak baru (Harga naik 1.5x)

Note

Progres Anda aman karena game ini dilengkapi fitur Auto-Save setiap 20 detik dan penyimpanan otomatis saat jendela game ditutup.


🌟 Fitur Baru & Peningkatan UX

Berdasarkan UX_IMPROVEMENTS.md, beberapa fitur baru telah diintegrasikan untuk memberikan pengalaman bermain yang lebih responsif dan ramah pengguna:

  1. Pemilihan Benih Aktif: Pemain kini dapat mengklik slot benih di inventory HUD untuk memilih secara manual benih mana yang ingin ditanam berikutnya (dilengkapi outline penanda aktif).
  2. Progress Bar Pertumbuhan: Setiap tanaman yang sedang tumbuh memiliki bar indikator tipis yang menunjukkan persentase waktu tumbuh hingga matang (bar akan otomatis hilang saat siap panen).
  3. Penyelamatan & Despawn Halus: Benih hanyut memiliki efek drift & proximity glow (bersinar saat didekati pemain). Jika benih tidak diambil atau menyentuh daratan, benih akan mengecil dan memudar secara halus (graceful despawn) alih-alih hilang mendadak.
  4. Indikator Kegagalan Finansial: Mencoba membeli ubin tanah baru tanpa koin yang cukup akan memicu efek visual kedip merah (flash) pada label koin serta toast notification kesalahan.

🐦 Mekanik Pelican Raider

Setiap 18–32 detik, sistem akan memindai ubin tanah Anda untuk mencari tanaman matang yang dianggarkan. Jika ditemukan, seekor Pelikan Liar akan terbang menuju tanaman tersebut.

  • Pemain memiliki waktu sekitar 3 detik untuk memanen tanaman tersebut sebelum pelikan mendarat.
  • Jika pemain berhasil memanennya terlebih dahulu, pelikan akan terbang kembali dengan tangan hampa.
  • Jika terlambat, tanaman tersebut akan dicuri (hilang dari ubin tanpa menghasilkan koin) ditandai dengan partikel bulu yang berhamburan dan label teks "Stolen!".

Ini adalah mekanik pacing tanpa hukuman game over demi menjaga nuansa cozy game.


🎨 Sistem Shader Kustom (Custom Shaders)

Terdapat 7 shader kustom yang dibuat khusus menggunakan bahasa shader bawaan Godot untuk menghidupkan visual game (lengkapnya di SHADER_PLAN.md):

  • ocean_animated.gdshader: Air laut dinamis dengan gelombang berlapis, gradasi warna, dan kilauan cahaya horizontal.
  • crop_wind_sway.gdshader: Membuat tanaman berayun lembut tertiup angin (intensitas goyangan meningkat saat tanaman matang).
  • ghost_tile_dither.gdshader: Efek dithering transparan berpola catur dengan kedipan warna oranye-kuning untuk menandai ubin ekspansi pulau yang valid.
  • sprite_outline.gdshader: Memberikan garis tepi opsional pada elemen penting di layar.
  • selection_glow.gdshader & lens_flare_ghost.gdshader: Untuk menyoroti ubin dan memberikan nuansa pencahayaan tropis yang estetik.

✨ Efek Visual & Partikel (VFX)

Sistem VFX modular yang ringan berbasis Script + Tween tanpa membebani performa game (lengkapnya di VFX_PLAN.md):

  • Pop-In Tanaman: Efek elastic-bounce saat pertama kali benih ditanam.
  • Tumbuh Flash: Tanaman akan berkedip hijau terang sesaat saat berubah tahap tumbuh.
  • Panen Daun & Koin: Saat panen, koin melayang bertuliskan +N Gold akan muncul di atas ubin bersama hamburan partikel daun hijau.
  • Efek Riak Air (Ripple): Riak air melingkar biru-aqua saat pemain membeli ubin pulau baru.

🔊 Desain Audio (Audio & SFX)

Soundscape game dirancang agar menenangkan namun tetap memberikan umpan balik interaksi yang responsif (lengkapnya di AUDIO_PLAN.md):

  • BGM: Musik instrumental tropis bertempo lambat yang diputar berulang untuk kenyamanan bermain.
  • SFX:
    • Suara gemerisik daun saat menanam/panen.
    • Denting koin emas saat menjual hasil panen.
    • Suara hempasan ombak lembut ketika pulau diperluas.
    • Efek kegagalan transaksi bernada rendah.
    • Pekikan burung pelikan saat datang menyerbu tanaman.

🛠️ Bug yang Diperbaiki

  1. Sistem Simpan/Muat (Save & Load): Memperbaiki kendala di mana SaveManager.gd sebelumnya tidak pernah dipicu. Kini didukung oleh Autosave berkala, penanganan penutupan jendela game, serta tombol pintas manual F5/F9.
  2. Eksploitasi Pembelian Ubin Ganda: Menambahkan status kunci _expanding pada MapManager.gd saat animasi perluasan tanah berjalan untuk mencegah pemain membeli ubin yang sama berkali-kali melalui spam tombol interaksi.

📁 Struktur Proyek

scripts/
  ├── autoload/            # Kelas global: EventBus, GameState, SaveManager
  ├── vfx/                 # Emitter VFX: BurstEmitter, FloatingLabel, LeafParticle, RippleEffect
  ├── MapManager.gd        # Logika perluasan pulau & grid map
  ├── Player.gd            # Kontrol pergerakan, deteksi interaksi & pemilihan benih
  ├── PlantedCrop.gd       # Siklus tumbuh, visual progress, & efek panen
  ├── FloatingItem.gd      # Perilaku benih terapung di laut
  ├── ResourceManager.gd   # Pengatur kemunculan benih hanyut
  ├── PelicanManager.gd    # Penjadwal kedatangan musuh pelikan
  └── Pelican.gd           # AI pergerakan, telegraph, & pencurian oleh pelikan
resources/crops/           # Kumpulan data tanaman (.tres) - Durasi tumbuh, harga jual, tekstur
scenes/                    # Kumpulan scene game (.tscn) - Main, Player, Crop, Pelican, dsb.
assets/
  ├── audio/               # Efek suara (sfx) dan musik latar (bgm)
  ├── sprites/             # Seluruh sprite 2D pixel-art game
  └── shaders/             # Kumpulan file shader kustom (.gdshader)

🚀 Cara Menjalankan Game

  1. Unduh dan buka Godot Engine 4.7+.
  2. Pilih Import, kemudian arahkan ke direktori yang berisi file project.godot.
  3. Jalankan scene utama dengan menekan tombol F5 (atau klik tombol Play di pojok kanan atas editor).
  4. Untuk melakukan ekspor Web (HTML5): Masuk ke menu Project > Export, tambahkan preset Web, lalu pastikan modenya diatur ke single-threaded.

💡 Ide Pengembangan Lanjutan

Jika waktu pengembangan proyek dilanjutkan di masa mendatang:

  • Interaksi Pengusiran: Pemain dapat mengusir pelikan dengan menabraknya sebelum pelikan mendarat di tanaman.
  • Sistem Cuaca: Pengaruh hujan yang mempercepat pertumbuhan atau badai yang memicu rintangan baru.
  • Item Otomatisasi: Menghadirkan orang-orangan sawah (Scarecrow) atau alat panen otomatis (Auto-harvester).
  • Animasi Burung Lebih Detail: Sprite pelikan multi-frame dengan animasi mengepakkan sayap.

About

Game simulasi pertanian grid-based minimalis bertema cozy-survival yang dibuat dengan Godot 4.7 untuk Micro Jam 061 (Islands). Kembangkan pulau kecil Anda dan waspadai pencurian oleh pelikan!

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages