Page 1 of 18
System Requirements Document for game-petani-pixel
1. Introduction
game-petani-pixel adalah game petani (farming game) bergaya pixel art 2D yang dibangun khusus untuk perangkat Android. Pemain mengendalikan seorang karakter petani yang sepenuhnya beranimasi di dalam sebuah desa yang besar, bertani, menjelajahi desa, dan berinteraksi dengan NPC yang semuanya beranimasi — bukan sprite statis.
Produk ini ditujukan untuk Pemain (Player) Android yang memegang ponsel dengan satu jempol di kontrol virtual, dan menginginkan dunia petani pixel yang hidup: karakter yang bergerak dengan siklus animasi frame-by-frame, desa luas yang terasa lebih besar dari layar, dan loop bertani yang memuaskan.
Inti produk yang diminta secara eksplisit:
- Game petani bergaya pixel art 2D.
- Semua karakter beranimasi: NPC, pemain, dan elemen relevan lainnya.
- Desa dibuat besar (area desa yang luas).
- Hanya untuk perangkat Android.
Page 2 of 18
2. System Overview
game-petani-pixel adalah game 2D pixel art yang dijalankan secara lokal di perangkat Android. Pemain membuka game, masuk ke dunia desa yang besar, mengendalikan karakter petani beranimasi, bertani di petak tanah, dan berinteraksi dengan NPC beranimasi yang menghuni desa.
Aktor:
- Pemain (Player) — satu-satunya peran manusia yang didukung. Mengendalikan karakter petani, bertani, menjelajah desa besar, dan berinteraksi dengan NPC.
Perilaku yang diterima (current):
- Game petani pixel art 2D.
- Semua karakter beranimasi (pemain, NPC, elemen relevan).
- Desa besar dan luas untuk dijelajahi.
- Eksklusif untuk perangkat Android.
- Kompatibilitas perangkat Android (required_inference).
- State game lokal yang cukup untuk melanjutkan bertani dan menjelajah selama dan setelah bermain (required_inference).
Kepemilikan (ownership):
- Landing — halaman pembuka anonim yang menjelaskan game petani pixel Android dan mengarahkan pemain masuk ke permainan.
- Game — dunia permainan Android yang kohesif: kontrol pemain beranimasi, bertani, interaksi NPC, dan eksplorasi desa besar.
Pengecualian sempit:
- Tidak ada platform selain Android. Game tidak dibangun untuk iOS, web, atau desktop.
- Tidak ada akun, login, atau sistem identitas aplikasi — permainan dimulai langsung dari perangkat.
- Tidak ada backend, server, atau layanan jaringan yang diminta.
Page 3 of 18
2a. Product Interpretation and Delivery Boundary
game-petani-pixel dikirim sebagai aplikasi game Android yang berjalan di perangkat itu sendiri. Seluruh pengalaman bermain — kontrol pemain, animasi sprite, dunia desa, petak pertanian, dan NPC — terjadi secara lokal di perangkat Android pemain. Tidak ada layanan pihak ketiga, tidak ada akun, dan tidak ada permukaan web yang menjadi bagian dari produk saat ini.
Batas akses: Kedua permukaan produk (Landing dan Game) dapat diakses tanpa identitas. Pemain tidak perlu membuat akun atau masuk untuk bermain. Ini konsisten dengan sifat game lokal: tidak ada state lintas perangkat atau lintas pengguna yang perlu diikat ke identitas.
Batas current vs future: Semua perilaku yang dijelaskan dalam dokumen ini adalah current. Tidak ada fitur masa depan yang diminta. Permintaan "hanya di perangkat Android" adalah batas pengiriman yang mengikat: game tidak dikirim ke platform lain.
Batas teknologi: Game adalah aplikasi Android native/berbasis runtime yang mampu merender pixel art 2D dan animasi sprite frame-by-frame pada perangkat Android. Tidak ada teknologi web atau desktop yang menjadi bagian dari pengiriman.
2b. Source Content Inventory
Tidak ada directive referensi dengan content_source yang disediakan. Bagian ini tidak berlaku.
2c. Page Content and Component Coverage
Page 4 of 18
Landing
Informasi dan state:
- Nama game "GAME PETANI PIXEL" sebagai wordmark pixel besar.
- Penjelasan singkat bahwa ini adalah game petani pixel art 2D untuk Android.
- Panel fitur yang merangkum janji produk: NPC beranimasi, desa besar, loop bertani, state tersimpan.
- State: default (anonim, belum bermain).
Aksi utama:
- Tombol CTA "Main di Android" yang membawa pemain masuk ke dunia permainan (Game).
Aksi pendukung:
- Melihat panel fitur untuk memahami apa yang ditawarkan game.
Entitas domain:
- Game petani pixel 2D.
- Desa besar.
- NPC beranimasi.
- Pemain beranimasi.
Tanggung jawab komponen:
- Hero panorama desa — band pixel art lebar penuh yang menampilkan desa (rumah, kincir angin, kios pasar, sungai, jembatan, ladang, tepi hutan), berjalan keluar dari kedua tepi viewport sehingga desa terasa lebih besar dari layar.
- Panel label krem — panel solid #F4EFE2 dengan outline tinta 3px yang memuat wordmark "GAME PETANI PIXEL" dalam Press Start 2P, ditumpuk dua baris.
- Tombol CTA "Main di Android" — tombol pixel chunky dengan drop shadow keras 0 3px solid tinta, warna harvest orange (#E4572E).
- Sprite pemain dan NPC beranimasi — pemain berjalan dalam loop pendek melintasi jalur desa sementara NPC melambai balik, keduanya pada siklus 8-frame.
- Grid panel fitur — kartu tile 2×2 di desktop, satu kolom di mobile, masing-masing dengan outline tinta dan drop shadow keras.
State:
- Loading: Menampilkan frame diam dari panorama desa dengan indikator pixel sederhana.
- Empty: Tidak berlaku — Landing selalu memiliki konten statis.
- Success: Pemain melihat wordmark, panorama, dan CTA; dapat menekan "Main di Android".
- Error: Jika aset gagal dimuat, tampilkan panel teks VT323 yang menyatakan game memerlukan perangkat Android dan minta pemain membuka ulang.
- Recovery: Pemain dapat menekan ulang CTA atau membuka ulang aplikasi.
Page 5 of 18
Game
Informasi dan state:
- Bar atas HUD: hari, waktu, dan koin.
- Dunia desa besar yang dapat dijelajahi dengan kamera yang mengikuti pemain.
- Petak pertanian dengan tanah yang digarap dan tahap pertumbuhan tanaman.
- NPC beranimasi dengan name plate mengambang di atas kepala.
- Inventori dan slot tanaman sebagai grid tile persegi.
- State: default (pemain di dunia), bertani, berinteraksi dengan NPC, menjelajah.
Aksi utama:
- Bergerak — mengendalikan karakter petani beranimasi dengan D-pad virtual (kiri bawah).
- Menanam — menempatkan benih di petak tanah.
- Menyiram — menyiram tanaman untuk memajukan pertumbuhan.
- Memanen — mengambil tanaman matang.
- Berbicara — berinteraksi dengan NPC beranimasi.
Aksi pendukung:
- Melihat inventori dan slot tanaman.
- Melihat peta pixel kecil desa yang menunjukkan posisi pemain.
- Melihat penghitung koin yang bertambah satu digit pada satu waktu.
Entitas domain:
- Pemain (karakter petani beranimasi).
- NPC beranimasi (petani, pembuat roti, pandai besi, anak, anjing, ayam, sapi).
- Petak tanah dan tanaman (tahap pertumbuhan).
- Inventori dan item hasil panen.
- Koin.
- Desa besar (rumah, kincir angin, kios pasar, sungai, jembatan, ladang, tepi hutan).
- Waktu dan hari dalam game.
Tanggung jawab komponen:
- Bar atas HUD — hari/waktu/koin dalam VT323 dengan tracking lebar, angka berdetak satu digit pada satu waktu seperti odometer.
- D-pad virtual — kontrol arah di kiri bawah, digambar sebagai pictogram pixel pada grid 24×24.
- Tombol aksi — tanam, siram, panen, bicara di kanan bawah, pictogram pixel pada grid 24×24 dengan label VT323.
- World canvas — tampilan dunia pusat dengan kamera yang mengikuti pemain; sprite beranimasi frame-by-frame pada 8–12 fps.
- Name plate NPC — label mengambang di atas kepala NPC.
- Grid inventori — grid tile persegi sempurna dengan outline chunky; item hasil panen muncul dengan squash 3-frame.
- Peta pixel desa — peta kecil yang menunjukkan posisi pemain.
- Overlay scanline — shimmer scanline lembut dengan opacity rendah di atas dunia.
State:
- Loading: Menampilkan frame diam dunia dengan indikator pixel saat aset desa dimuat.
- Empty: Jika inventori kosong, tampilkan slot kosong dengan outline muted (#8A8577) dan label VT323 "kosong".
- Success: Pemain bergerak, menanam, menyiram, memanen, dan berbicara dengan NPC; koin bertambah; tanaman maju melalui tahap pertumbuhan.
- Error: Jika state game gagal dimuat, tampilkan panel VT323 yang menyatakan state tidak dapat dimuat dan tawarkan mulai ulang.
- Recovery: Pemain dapat memulai ulang sesi; state lokal yang tersimpan memungkinkan melanjutkan bertani dan menjelajah.
Page 6 of 18
3. Functional Requirements
FR-1 — Game petani pixel art 2D
As a Pemain (Player), I should play a farming game rendered in 2D pixel art style so that I experience the requested pixel farming world.
- Provenance: explicit
- Trigger/input: Pemain membuka game di perangkat Android.
- Observable result: Dunia game dirender sebagai pixel art 2D pada grid tetap.
- Access state: Tanpa identitas; dapat diakses langsung.
- Failure/recovery: Jika rendering gagal, tampilkan pesan VT323 dan minta buka ulang.
- Continuation: Pemain masuk ke dunia desa.
- Acceptance: Seluruh visual game adalah pixel art 2D, bukan fotografi, render 3D, atau ilustrasi stok.
FR-2 — Semua karakter beranimasi
As a Pemain (Player), I should see the player character, NPCs, and relevant elements all animated so that the village feels alive.
- Provenance: explicit
- Trigger/input: Pemain berada di dunia game; NPC ada di desa.
- Observable result: Pemain dan NPC bergerak dengan siklus animasi frame-by-frame (4–8 frame walk cycle pada 8–12 fps); NPC idle berkedip atau mengangguk dalam loop; tanaman maju melalui 3–4 frame pertumbuhan dengan squash kecil di setiap tahap.
- Access state: Tanpa identitas.
- Failure/recovery: Jika animasi gagal dimuat, tampilkan frame diam yang bersih dan lanjutkan permainan.
- Continuation: Animasi berlanjut selama pemain berada di dunia.
- Acceptance: Tidak ada sprite statis untuk pemain, NPC, atau elemen relevan; animasi adalah frame-by-frame, bukan tweening yang di-ease.
FR-3 — Desa besar
As a Pemain (Player), I should explore a large village so that the world feels expansive and worth exploring.
- Provenance: explicit
- Trigger/input: Pemain bergerak melintasi desa.
- Observable result: Desa mencakup rumah, kincir angin, kios pasar, sungai, jembatan, ladang, dan tepi hutan; kamera mengikuti pemain; peta pixel kecil menunjukkan posisi pemain.
- Access state: Tanpa identitas.
- Failure/recovery: Jika area gagal dimuat, tampilkan pesan VT323 dan minta buka ulang.
- Continuation: Pemain dapat terus menjelajah ke area berikutnya.
- Acceptance: Desa terasa lebih besar dari satu layar dan mencakup area yang dapat dijelajahi.
FR-4 — Hanya untuk perangkat Android
As a Pemain (Player), I should play the game only on an Android device so that the experience matches the requested platform.
- Provenance: explicit
- Trigger/input: Pemain memasang dan membuka game di perangkat Android.
- Observable result: Game berjalan di perangkat Android.
- Access state: Tanpa identitas.
- Failure/recovery: Jika dijalankan di platform lain, game tidak didukung.
- Continuation: Pemain bermain di Android.
- Acceptance: Game tidak dikirim atau didukung untuk iOS, web, atau desktop.
FR-5 — Kompatibilitas perangkat Android
As a Pemain (Player), I should run the game on my Android device so that I can play without compatibility problems.
- Provenance: required_inference
- Trigger/input: Pemain memasang dan membuka game di perangkat Android.
- Observable result: Game berjalan pada perangkat Android yang didukung.
- Access state: Tanpa identitas.
- Failure/recovery: Jika perangkat tidak didukung, tampilkan pesan VT323 yang menyatakan persyaratan perangkat.
- Continuation: Pemain bermain setelah kompatibilitas terpenuhi.
- Acceptance: Game dapat dijalankan pada perangkat Android yang ditargetkan.
FR-6 — State game lokal untuk melanjutkan
As a Pemain (Player), I should have my farming and exploration state preserved locally so that I can continue playing during and after a session.
- Provenance: required_inference
- Trigger/input: Pemain bertani, menjelajah, dan menutup/membuka kembali game.
- Observable result: State lokal (posisi, tanaman, inventori, koin, hari/waktu) tersimpan dan dapat dilanjutkan.
- Access state: Tanpa identitas; state terikat pada perangkat.
- Failure/recovery: Jika state gagal dimuat, tampilkan panel VT323 dan tawarkan mulai ulang.
- Continuation: Pemain melanjutkan bertani dan menjelajah dari state tersimpan.
- Acceptance: State game bertahan di perangkat dan dapat dilanjutkan.
FR-7 — Bertani (menanam, menyiram, memanen)
As a Pemain (Player), I should plant, water, and harvest crops so that I can run the farming loop.
- Provenance: explicit (loop bertani adalah inti game petani yang diminta)
- Trigger/input: Pemain menekan tombol aksi tanam/siram/panen di petak tanah.
- Observable result: Benih ditanam, tanaman maju melalui tahap pertumbuhan saat disiram, tanaman matang dapat dipanen, item hasil panen masuk ke inventori dengan squash 3-frame, dan koin bertambah satu digit pada satu waktu.
- Access state: Tanpa identitas.
- Failure/recovery: Jika aksi tidak valid (misalnya petak sudah terisi), tampilkan umpan balik VT323 dan biarkan pemain mencoba lagi.
- Continuation: Pemain dapat menanam lagi atau memanen tanaman lain.
- Acceptance: Ketiga aksi (tanam, siram, panen) berfungsi dan menghasilkan perubahan state yang terlihat.
FR-8 — Interaksi dengan NPC beranimasi
As a Pemain (Player), I should talk to animated NPCs so that the village feels populated and alive.
- Provenance: explicit
- Trigger/input: Pemain mendekati NPC dan menekan tombol aksi bicara.
- Observable result: NPC menampilkan dialog dengan highlight bicara berwarna harvest orange (#E4572E); NPC beranimasi (berkedip, mengangguk, atau melambai).
- Access state: Tanpa identitas.
- Failure/recovery: Jika dialog gagal dimuat, tampilkan pesan VT323 dan biarkan pemain mencoba lagi.
- Continuation: Pemain dapat melanjutkan percakapan atau berjalan pergi.
- Acceptance: NPC merespons dengan dialog dan animasi yang terlihat.
Page 7 of 18
4. User Personas
Page 8 of 18
Pemain (Player)
Konteks produk:
Pemain adalah satu-satunya peran manusia yang didukung oleh permintaan. Pemain memegang perangkat Android, kemungkinan dalam orientasi portrait atau landscape, dengan satu jempol di D-pad virtual. Pemain menginginkan game petani pixel 2D yang terasa hidup: karakter yang bergerak, desa yang luas, dan loop bertani yang memuaskan.
Tujuan utama:
Bertani di desa yang besar, berinteraksi dengan NPC beranimasi, dan melihat karakter pemain serta NPC bergerak dengan animasi — semuanya berjalan lancar di perangkat Android.
Tanggung jawab yang diterima:
- Mengendalikan karakter petani beranimasi di dunia desa.
- Menanam, menyiram, dan memanen tanaman.
- Menjelajahi desa besar.
- Berbicara dengan NPC beranimasi.
- Melanjutkan permainan dari state lokal yang tersimpan.
Input dan keputusan:
- Menekan D-pad virtual untuk bergerak.
- Menekan tombol aksi (tanam, siram, panen, bicara).
- Memutuskan tanaman mana yang dirawat dan NPC mana yang diajak bicara.
- Memutuskan kapan berhenti dan melanjutkan sesi.
Interaksi dengan peserta lain:
- Berinteraksi dengan NPC beranimasi (petani, pembuat roti, pandai besi, anak, anjing, ayam, sapi) melalui dialog dan animasi respons.
Keberhasilan yang terlihat:
Pemain dapat memainkan game tersebut secara lancar di perangkat Android: karakter bergerak dengan animasi, tanaman tumbuh dan dipanen, koin bertambah, NPC merespons, dan desa besar dapat dijelajahi.
Batasan yang didukung sumber:
- Hanya perangkat Android.
- Tidak ada akun atau login.
- State terikat pada perangkat.
Page 9 of 18
5. Core User Flows
Flow 1 — Memulai game dari Landing
- Konteks awal: Pemain membuka aplikasi game-petani-pixel di perangkat Android. Pemain anonim, belum bermain.
- Aksi: Pemain melihat halaman Landing — band panorama desa pixel art lebar penuh dengan overlay scanline, panel label krem berisi wordmark "GAME PETANI PIXEL" dalam Press Start 2P, dan tombol CTA "Main di Android".
- Aksi: Pemain melihat sprite pemain berjalan dalam loop pendek melintasi jalur desa sementara NPC melambai balik, keduanya pada siklus 8-frame.
- Keputusan: Pemain menekan tombol "Main di Android".
- Hasil yang terlihat: Game membuka halaman Game dan pemain masuk ke dunia desa.
- Langkah berikutnya: Pemain mulai bergerak di dunia.
Kegagalan/recovery: Jika aset Landing gagal dimuat, pemain melihat panel VT323 yang menyatakan game memerlukan perangkat Android dan dapat menekan ulang CTA atau membuka ulang aplikasi.
Flow 2 — Bergerak dan menjelajah desa besar
- Konteks awal: Pemain berada di halaman Game, di dunia desa.
- Aksi: Pemain menekan D-pad virtual di kiri bawah untuk bergerak.
- Hasil yang terlihat: Karakter petani beranimasi berjalan dengan siklus 4–8 frame pada 8–12 fps; kamera mengikuti pemain; peta pixel kecil menunjukkan posisi pemain.
- Aksi: Pemain menjelajahi rumah, kincir angin, kios pasar, sungai, jembatan, ladang, dan tepi hutan.
- Hasil yang terlihat: Desa terasa lebih besar dari satu layar; area baru terungkap saat pemain bergerak.
- Langkah berikutnya: Pemain dapat menuju petak pertanian atau mendekati NPC.
Kegagalan/recovery: Jika area gagal dimuat, pemain melihat pesan VT323 dan dapat membuka ulang aplikasi; state lokal memungkinkan melanjutkan.
Page 10 of 18
Flow 3 — Loop bertani (menanam, menyiram, memanen)
- Konteks awal: Pemain berada di petak pertanian di halaman Game.
- Aksi: Pemain menekan tombol aksi tanam untuk menempatkan benih di petak tanah.
- Hasil yang terlihat: Benih ditanam; petak menampilkan tahap pertumbuhan awal.
- Aksi: Pemain menekan tombol aksi siram untuk menyiram tanaman.
- Hasil yang terlihat: Tanaman maju melalui 3–4 frame pertumbuhan dengan squash kecil di setiap tahap.
- Aksi: Pemain menekan tombol aksi panen saat tanaman matang.
- Hasil yang terlihat: Item hasil panen masuk ke inventori dengan squash 3-frame; penghitung koin di bar atas bertambah satu digit pada satu waktu seperti odometer.
- Langkah berikutnya: Pemain dapat menanam lagi atau memanen tanaman lain.
Kegagalan/recovery: Jika aksi tidak valid (misalnya petak sudah terisi), pemain melihat umpan balik VT323 dan dapat mencoba lagi.
Flow 4 — Berinteraksi dengan NPC beranimasi
- Konteks awal: Pemain berada di dekat NPC di halaman Game.
- Aksi: Pemain menekan tombol aksi bicara.
- Hasil yang terlihat: NPC menampilkan dialog dengan highlight bicara berwarna harvest orange (#E4572E); NPC beranimasi (berkedip, mengangguk, atau melambai).
- Keputusan: Pemain memilih untuk melanjutkan percakapan atau berjalan pergi.
- Hasil yang terlihat: Dialog ditutup atau berlanjut; NPC kembali ke animasi idle.
- Langkah berikutnya: Pemain dapat berbicara dengan NPC lain atau melanjutkan bertani.
Kegagalan/recovery: Jika dialog gagal dimuat, pemain melihat pesan VT323 dan dapat mencoba lagi.
Page 11 of 18
Flow 5 — Melanjutkan permainan dari state lokal
- Konteks awal: Pemain menutup game dan membukanya kembali di perangkat Android yang sama.
- Aksi: Pemain membuka aplikasi dan masuk ke halaman Game.
- Hasil yang terlihat: State lokal (posisi, tanaman, inventori, koin, hari/waktu) dimuat; pemain melanjutkan dari titik terakhir.
- Langkah berikutnya: Pemain melanjutkan bertani dan menjelajah.
Kegagalan/recovery: Jika state gagal dimuat, pemain melihat panel VT323 dan dapat memulai ulang sesi.
Page 12 of 18
6. Visuals Colors and Theme
Muse: Susan Kare — pixel-perfect, friendly clarity, grids you can feel, charming small symbols with personality. Arah ini native pada medium pixel art: disiplin ikon Kare memberi HUD, inventori, dan dialog NPC sistem yang legibel dan berkarakter pada 375px, sementara kartu outline chunky dan grid tile langsung menjadi petak pertanian, peta desa, dan menu.
Headline: "Charming pixel clarity after Susan Kare — a friendly 16-bit farming world with icon-grade readability."
Palet (light mode):
| Peran | Hex | Penggunaan |
|---|
| Background | #F4EFE2 | Warm paper-cream ground; pixel art terbaca seperti sprite sheet tercetak |
| Surface | #FFFFFF | Kartu putih crisp dengan border tinta 2px |
| Text | #1B1B1F | Satu-satunya warna teks/dark-outline |
| Primary | #2E7D32 | Farm green untuk pertumbuhan, tanaman, aksi konfirmasi |
| Accent | #E4572E | Harvest orange untuk CTA, tanaman matang, highlight bicara NPC |
| Muted | #8A8577 | Label sekunder dan slot disabled |
Set pendukung sprite (hanya untuk sprite): sky #7EC8E3, soil #6B4A2F, wheat #E8C547, water #3D8BC7.
Semua teks pada background/surface memenuhi kontras pada ukuran body; accent tidak pernah digunakan untuk body copy.
Tipografi:
- Headings: Press Start 2P — hanya untuk wordmark, judul section, dan display besar "GAME PETANI PIXEL"; all-caps, tight pixel tracking, ukuran on-screen kecil (12–28px). Tidak pernah untuk paragraf panjang.
- Body dan UI: VT323 pada 18–24px untuk kehangatan terminal yang tetap terbaca di ponsel.
- Angka dan label: VT323 dengan tracking lebar sehingga terbaca seperti HUD game.
- Skala: Pixel modular 12 / 16 / 20 / 24 / 32 / 48 / 64. Display headline
clamp(28px, 8vw, 64px). Section titles clamp(16px, 3.5vw, 28px). Body clamp(16px, 4vw, 22px). HUD numbers 18–24px. Line-height 1.4 untuk body, 1.1 untuk display.
Shape language:
- Outline tinta chunky 2–4px di sekitar setiap kartu, tombol, dan panel.
- Radius 0px atau 4px — tanpa pembulatan modern yang lembut.
- Tombol adalah kapsul pixel persegi dengan drop shadow keras 3px (offset 0 3px, solid tinta, tanpa blur).
- Tile adalah persegi sempurna dalam grid yang terlihat; petak pertanian, inventori, dan peta desa berbagi ritme persegi yang sama.
- Ikonografi adalah pictogram pixel murni (benih, cangkul, kaleng penyiram, wortel, koin, hati) pada grid 16×16 atau 24×24.
- Elemen dekoratif: pita dither pixel, overlay scanline dengan opacity sangat rendah, dan bracket sudut 8-bit — tidak pernah blob atau gradien lembut.
Layout:
- Grid pixel 8px mengatur segalanya.
- Landing: komposisi satu kolom full-bleed — band panorama desa pixel art di atas, wordmark pixel besar ditumpuk di atasnya, CTA chunky "Main di Android" di bawahnya, lalu inventori fitur bergaris sebagai kartu tile 2×2 di desktop dan satu kolom di mobile.
- Game: frame HUD tetap di sekitar tampilan dunia yang dapat di-scroll/zoom — bar atas dengan hari/waktu/koin, D-pad virtual kiri bawah, tombol aksi kanan bawah (tanam, siram, panen, bicara), world canvas tengah dengan name plate NPC mengambang di atas kepala.
- Pada 375px HUD menciut menjadi bar atas tipis dan strip kontrol dua jempol; pada 768px tampilan dunia melebar dan inventori menjadi side drawer; pada 1280px dunia mengisi viewport dengan HUD dipaku ke sudut seperti bezel arcade cabinet.
- Setiap label, penghitung koin, dan tombol tetap utuh di dalam kontainernya pada ketiga lebar.
Page 13 of 18
7. Signature Design Concept
Konsep: Landing sebagai poster diorama pixel — bukan hero SaaS, melainkan sampul kartrid game.
Komposisi:
- Band panorama desa pixel art lebar penuh (sekitar 45vh) dirender pada skala pixel 1:1 dengan overlay scanline halus, berjalan dari tepi ke tepi dan keluar dari kedua sisi sehingga desa terasa lebih besar dari layar.
- Di atas sepertiga kiri band, panel krem solid (#F4EFE2) dengan outline tinta 3px memuat wordmark "GAME PETANI PIXEL" dalam Press Start 2P pada
clamp(28px, 8vw, 64px), ditumpuk dua baris, dengan CTA harvest-orange "Main di Android" dipaku di bawahnya sebagai tombol pixel chunky dengan shadow 3px.
- Di sebelah kanan panel, sprite pemain beranimasi berjalan dalam loop pendek melintasi jalur desa sementara NPC melambai balik — keduanya pada siklus 8-frame.
Moves signature:
- Wordmark pixel besar "GAME PETANI PIXEL" dalam Press Start 2P, ditumpuk dua baris di atas panel label krem dengan outline tinta 3px, membentang sepertiga kiri hero pada
clamp(28px, 8vw, 64px).
- Setiap kartu, tombol, dan panel HUD membawa outline tinta 2–4px dan drop shadow keras 0 3px solid — tanpa blur, tanpa elevasi lembut — sehingga seluruh UI terlihat dipres dari sprite sheet.
- Panorama desa adalah band pixel art full-bleed yang berjalan keluar dari kedua tepi viewport, dengan sprite pemain dan NPC beranimasi pada siklus 8-frame di dalamnya, membuat janji "desa besar" terlihat di layar pertama.
- HUD game adalah bezel arcade cabinet: hari/waktu/koin di bar atas, D-pad virtual kiri bawah dan tombol aksi kanan bawah, semuanya digambar sebagai pictogram pixel pada grid 24×24 dengan label VT323.
- Inventori dan slot tanaman adalah grid tile persegi sempurna dengan outline chunky; item hasil panen muncul dengan squash 3-frame dan penghitung koin berdetak satu digit pada satu waktu seperti odometer.
Yang dihindari: Blue/indigo SaaS primaries (#0057FF, #2563EB, #6366F1) di atas putih; Inter, Roboto, Arial, Helvetica, Poppins, atau system-ui untuk headings atau body; gradient-blob heroes, glassmorphism, soft blurred shadows, dan radius kartu modern 16px+; grid kartu hover-lift identik; tweening sprite yang di-ease; fotografi, render 3D, atau ilustrasi stok; memotong atau menutupi teks, penghitung koin, label, atau tombol yang dapat dibaca; paragraf panjang dalam Press Start 2P.
Page 14 of 18
8. Interaction Model & Motion Direction
Interaction Model: Animated
Motion Tempo: restrained
Hero Dimensionality: flat
Landing Hero Motion Brief:
- Focal subject: Panorama desa pixel art lebar penuh dengan sprite pemain dan NPC beranimasi di dalamnya, plus panel label krem berisi wordmark "GAME PETANI PIXEL".
- Input → transformation → outcome thesis: Saat halaman Landing dimuat, panorama desa muncul sebagai band statis dengan overlay scanline halus; sprite pemain mulai berjalan dalam loop pendek melintasi jalur desa sementara NPC melambai balik pada siklus 8-frame; wordmark dan CTA tetap diam dan terbaca penuh. Hasilnya adalah diorama pixel yang hidup — desa terasa besar dan berpenghuni sejak frame pertama.
- Motion vocabulary: Animasi sprite frame-by-frame (4–8 frame walk cycle pada 8–12 fps), bukan tweening yang di-ease; NPC idle berkedip atau mengangguk dalam loop; panel menu masuk dengan langkah pixel utuh (translate 8px); shimmer scanline lembut melayang di atas dunia dengan opacity rendah; angka HUD berdetak satu digit pada satu waktu seperti odometer.
- Composed first frame: Band panorama desa penuh lebar dengan panel krem di sepertiga kiri memuat wordmark dua baris dan CTA harvest-orange; sprite pemain dan NPC dalam pose walk cycle yang jelas; overlay scanline halus; tidak ada headline terpusat, tidak ada gradient blob, tidak ada tombol biru.
- Reduced-motion state: Semua loop sprite membeku pada frame istirahat yang bersih; marquee dan ticker berhenti dan membungkus menjadi baris; panel muncul seketika; wordmark, CTA, dan semua teks tetap terbaca penuh.
Page 15 of 18
9. Non-Functional Requirements
NFR-1 — Platform Android saja
- Provenance: explicit
- Constraint: Game hanya untuk perangkat Android; tidak untuk platform lain.
- Rationale: Batasan keras eksplisit dalam sumber otoritatif.
NFR-2 — Kompatibilitas perangkat Android
- Provenance: required_inference
- Constraint: Game harus berjalan pada perangkat Android yang ditargetkan.
- Rationale: Diperlukan agar journey yang diterima dapat dieksekusi tanpa menambah kapabilitas produk.
NFR-3 — Animasi frame-by-frame pada 8–12 fps
- Provenance: explicit (semua karakter beranimasi) + creative direction
- Constraint: Animasi sprite adalah frame-by-frame pada 8–12 fps, bukan tweening yang di-ease.
- Rationale: Arah kreatif menetapkan motion native muse; permintaan eksplisit menyatakan semua karakter beranimasi.
NFR-4 — Keterbacaan pada 375px, 768px, dan 1280px
- Provenance: creative direction
- Constraint: Headline, wordmark, label, angka, teks kartu, dan kontrol tetap seluruhnya di dalam viewport dan kontainernya pada 375px, 768px, dan 1280px; tidak ada elemen lain yang menutupinya.
- Rationale: Arah kreatif menetapkan aturan keterbacaan yang mengikat.
NFR-5 — State lokal
- Provenance: required_inference
- Constraint: State game lokal harus cukup untuk melanjutkan bertani dan menjelajah selama dan setelah bermain.
- Rationale: Diperlukan agar journey yang diterima dapat dieksekusi tanpa menambah kapabilitas produk.
NFR-6 — Tanpa akun atau login
- Provenance: explicit (tidak ada permintaan akun) + planning boundary access_requirement "none"
- Constraint: Tidak ada sistem identitas aplikasi, akun, atau login.
- Rationale: Permainan dimulai langsung dari perangkat; tidak ada state lintas perangkat yang perlu diikat ke identitas.
Page 16 of 18
10. Tech Stack
- Platform: Android (hanya Android; tidak ada iOS, web, atau desktop).
- Rendering: Pixel art 2D dengan animasi sprite frame-by-frame pada 8–12 fps.
- State: State game lokal di perangkat Android.
- Font: Press Start 2P (headings/wordmark) dan VT323 (body/UI) — sesuai arah kreatif.
- Palet: Farm green
#2E7D32, harvest orange #E4572E, warm cream #F4EFE2, ink #1B1B1F, muted #8A8577, surface #FFFFFF, plus set sprite sky #7EC8E3, soil #6B4A2F, wheat #E8C547, water #3D8BC7.
Tidak ada backend, server, atau layanan jaringan yang diminta. Tidak ada teknologi web atau desktop yang menjadi bagian dari pengiriman.
Page 17 of 18
11. Assumptions and Constraints
Asumsi:
- [Assumption — required_inference] Game dijalankan secara lokal di perangkat Android tanpa backend atau layanan jaringan.
- [Assumption — required_inference] State game lokal cukup untuk melanjutkan bertani dan menjelajah selama dan setelah bermain.
- [Assumption — required_inference] Pemain adalah satu-satunya peran manusia; tidak ada peran manusia lain yang didukung.
- [Assumption — required_inference] Landing adalah halaman pembuka anonim yang menjelaskan game dan mengarahkan pemain masuk ke permainan.
- [Assumption — required_inference] Game adalah dunia permainan kohesif yang memuat kontrol pemain, bertani, interaksi NPC, dan eksplorasi desa besar.
Batasan:
- [Constraint — explicit] Hanya untuk perangkat Android; tidak untuk platform lain.
- [Constraint — explicit] Semua karakter beranimasi: NPC, pemain, dan elemen relevan lainnya.
- [Constraint — explicit] Desa dibuat besar (area desa yang luas).
- [Constraint — creative direction] Palet, tipografi, shape language, layout, dan motion mengikuti arah kreatif Susan Kare.
- [Constraint — creative direction] Template SaaS indigo/blue-on-white generik dilarang untuk proyek ini.
- [Constraint — creative direction] Teks dan kontrol yang dapat dibaca tetap utuh di dalam viewport dan kontainernya pada 375px, 768px, dan 1280px.
Pengecualian:
- Tidak ada akun, login, atau sistem identitas aplikasi.
- Tidak ada backend, server, atau layanan jaringan.
- Tidak ada platform selain Android.
Page 18 of 18
12. Glossary
- Pixel art 2D: Gaya visual yang dibangun dari piksel pada grid tetap, tanpa fotografi, render 3D, atau ilustrasi stok.
- Frame-by-frame animation: Animasi sprite yang menampilkan urutan frame tetap pada 8–12 fps, bukan tweening yang di-ease.
- NPC: Karakter non-pemain yang menghuni desa dan beranimasi (petani, pembuat roti, pandai besi, anak, anjing, ayam, sapi).
- Desa besar: Area desa yang luas dan dapat dijelajahi, mencakup rumah, kincir angin, kios pasar, sungai, jembatan, ladang, dan tepi hutan.
- HUD: Antarmuka permainan yang menampilkan hari, waktu, koin, D-pad virtual, dan tombol aksi.
- Petak pertanian: Grid tile persegi tempat pemain menanam, menyiram, dan memanen tanaman.
- State lokal: Data permainan yang tersimpan di perangkat Android untuk melanjutkan sesi.
- Landing: Halaman pembuka anonim yang menjelaskan game dan mengarahkan pemain masuk ke permainan.
- Game: Dunia permainan Android yang kohesif: kontrol pemain beranimasi, bertani, interaksi NPC, dan eksplorasi desa besar.
No comments yet. Be the first!