Blok Dunia
Bangun dunia balok dari genggaman.
Aplikasi game sandbox 3D bergaya voxel yang berjalan sepenuhnya offline. Antarmuka dirancang satu layar tanpa menu bertingkat, sehingga pemain bisa langsung membangun dalam hitungan detik setelah aplikasi dibuka.
Lima layar utama, tanpa menu bertingkat
Seluruh interaksi terjadi di satu layar permainan. Panel tambahan hanya muncul sebagai lapisan sementara, lalu menutup sendiri setelah pemain memilih.
Delapan kontrol, semuanya dalam jangkauan ibu jari
Tata letak dibagi tiga zona: aksi di kiri atas, pengaturan di kanan atas, dan navigasi di bagian bawah layar tempat ibu jari beristirahat.
1
2
3
4
5
6
7
8
- 1Tombol Mode — Pasang / GaliSatu tombol dua keadaan. Biru berarti memasang blok, abu berarti menggali. Ikon ikut berubah agar tidak perlu membaca teks.
- 2Mode TerbangMenyala biru ketika aktif. Dipakai untuk meninjau bangunan dari udara.
- 3Palet BlokMembuka lapisan pemilihan blok di tengah layar, jauh dari tepi supaya mudah dijangkau.
- 4Dunia BaruMembuat ulang dunia. Selalu meminta konfirmasi karena bersifat merusak.
- 5Info / BantuanMemanggil kembali layar panduan kontrol kapan saja.
- 6CrosshairTitik bidik tetap di tengah layar. Blok yang dibidik diberi garis tepi hitam sebagai umpan balik.
- 7Joystick GerakBerada di kiri bawah, area alami ibu jari kiri. Knob mengikuti sentuhan dan kembali ke tengah saat dilepas.
- 8Naik / TurunLompat dan jalan pelan saat di darat; naik dan turun saat terbang. Warna emas membedakannya dari aksi utama.
Aturan visual yang dipakai ulang di seluruh layar
Warna, bentuk, dan ukuran dijaga konsisten supaya antarmuka terasa satu kesatuan.
Palet Warna
#2F7FF5#D6A417#10121A#8EC7EA#6AAA50Komponen Tombol
- Tombol persegi 58 × 58 dp
- Tombol bulat 56 dp
- Sudut membulat 15 dp / 50%
Ukuran & Tipografi
- Minimum target sentuh 58 dp
(Material: 48 dp) - Jarak antar tombol 10 dp
- Label tombol 9–10 px, tebal, huruf besar
- Jarak huruf label 0,4 px
- Keluarga huruf Sistem (Roboto)
- Ikon Emoji sistem, tanpa berkas aset
Prinsip Interaksi
- Umpan balik tekan Skala 0,94×
- Pesan singkat Toast 0,9 detik
- Aksi merusak Selalu konfirmasi
- Lapisan sementara Menutup otomatis
- Orientasi Potret & lanskap
Dari membuka aplikasi sampai membangun: empat langkah
Tanpa layar muat, tanpa pendaftaran akun, tanpa koneksi internet.
Dunia dibuat langsung di perangkat. Tidak ada unduhan tambahan.
Ringkasan kontrol tampil sekali, ditutup dengan satu ketukan.
Palet 14 blok terbuka dari tombol BLOK, lalu menutup sendiri.
Ketuk untuk memasang atau menggali, joystick untuk berjalan, FLY untuk meninjau.
Yang bisa dilakukan pemain
Inti permainan sandbox. Ketuk layar untuk memasang atau menggali blok yang sedang dibidik crosshair.
Rumput, tanah, batu, kayu, papan, daun, sakura, bata, pasir, kaca, dan lainnya dalam satu palet.
Karakter balok dengan animasi jalan, lompat, dan melayang, terlihat penuh dari belakang.
Melayang bebas untuk meninjau bangunan besar dari udara tanpa terhalang gravitasi.
Dataran rumput dengan pohon dan pohon sakura, dapat dibuat ulang kapan saja lewat tombol DUNIA.
Tekstur dibuat lewat kode, bukan berkas gambar. Tidak ada permintaan jaringan sama sekali.
Ringan, satu berkas, tanpa ketergantungan luar
| Platform | Android (APK) & Desktop (peramban) |
| Teknologi game | HTML5, JavaScript, WebGL (Three.js) |
| Pembungkus Android | Flutter 3.19+ dengan webview_flutter |
| Ukuran aplikasi | 550 KB — seluruh kode, pustaka, dan tekstur |
| Orientasi | Potret dan lanskap, tata letak menyesuaikan |
| Kontrol | Layar sentuh (joystick + ketuk) dan keyboard + tetikus |
| Ukuran dunia | 96 × 96 × 40 blok |
| Teknik render | Chunked voxel meshing, ambient occlusion, texture atlas prosedural |
| Koneksi internet | Tidak diperlukan |
Jalankan aplikasinya di dalam bingkai ini
Berkas yang sama persis dengan yang nantinya dibungkus menjadi aplikasi Android.
Bingkai di samping memuat berkas permainan yang asli. Gunakan joystick di kiri bawah untuk berjalan, geser layar untuk melihat sekeliling, dan ketuk untuk memasang blok.
Bila bingkai di samping tampil kosong, peramban sedang memblokir pemuatan berkas lokal di dalam bingkai. Gunakan tombol Buka layar penuh — permainannya tetap berjalan normal.
Dari halaman web menjadi APK, dibungkus dengan Flutter
Rilis akhir untuk klien berbentuk APK Android. Flutter berperan sebagai cangkang aplikasi: ia membuat aplikasi Android asli, lalu menampilkan berkas permainan di dalam WebView layar penuh. Berkas dibaca dari dalam APK, bukan dari internet.
npm run build menghasilkan dist/index.html berukuran 550 KB.
Berkas disalin otomatis ke flutter/assets/game.html.
Flutter memanggil loadFlutterAsset() — tanpa jaringan sama sekali.
flutter build apk --release menghasilkan berkas siap install.
Kenapa WebView, bukan ditulis ulang?
| Flutter + WebView | Ditulis ulang di Flutter | |
|---|---|---|
| Waktu pengerjaan | Beberapa jam | Beberapa minggu |
| Kode game | Dipakai ulang 100% | Dibuat dari nol |
| Renderer 3D | WebGL, sudah jalan | Perlu pustaka tambahan |
| Versi web & Android | Identik, satu sumber | Terpisah |
| Performa | Sedikit di bawah native | Lebih tinggi |
Perkiraan Hasil APK
- Nama paket com.tugasakhir
.blok_dunia - Ukuran APK ± 8 – 12 MB
- Dengan split per-ABI ± 6 – 8 MB
- Android minimum API 21 (5.0)
- Izin diminta Tidak ada — termasuk tanpa izin INTERNET
- Orientasi Potret & lanskap
Status saat ini: APK belum dibangun. Berkas template Flutter
(pubspec.yaml, lib/main.dart, dan aset game) sudah siap pakai
di folder flutter/, tetapi proses build memerlukan Flutter SDK dan
Android SDK yang belum terpasang di komputer pengembangan. Panduan langkah demi
langkah tersedia di flutter/PANDUAN-APK.md.