Sui Pet PWA adalah aplikasi terdesentralisasi (dApp) yang menggabungkan mekanisme permainan simulasi hewan peliharaan (Pet Simulation) dengan teknologi Geolokasi dan Augmented Reality (AR) di atas jaringan Blockchain Sui. Sistem ini memanfaatkan validasi sisi server (Oracle) untuk memastikan keamanan lokasi pengguna saat melakukan interaksi dalam game.
- Kepemilikan Aset On-Chain: Hewan peliharaan (Pet) dan item makanan direpresentasikan sebagai objek di jaringan Sui, memberikan kepemilikan penuh kepada pengguna.
- Gameplay Berbasis Lokasi: Menggunakan GPS real-time untuk memunculkan target (monster/loot) di sekitar lokasi fisik pengguna.
- Validasi Anti-Spoofing: Server backend memverifikasi koordinat dan kecepatan perpindahan pengguna sebelum menandatangani transaksi penangkapan hewan (minting).
- Mode Augmented Reality (AR): Antarmuka kamera interaktif untuk pengalaman menangkap hewan peliharaan secara visual.
- Sistem Evolusi & Pertarungan: Hewan peliharaan dapat berevolusi berdasarkan tingkat kebahagiaan dan hasil acak (randomness) yang diverifikasi on-chain.
- Toko & Ekonomi In-Game: Pengguna dapat membeli makanan menggunakan token SUI untuk menjaga status kelaparan hewan peliharaan.
Berikut adalah alur data dan interaksi antara Client, Server Oracle, dan Smart Contract di jaringan Sui:
graph LR
Client[Client PWA\nNext.js + Map]
Server[Game Server\nAPI /api/hunt]
Chain[Sui Blockchain\nMove Modules]
Client -- 1. Kirim Lokasi\n(Lat, Lng, User) --> Server
Server -- 2. Validasi Jarak\n& Tanda Tangan --> Server
Server -- 3. Terima Sign\n(Ed25519 Key) --> Client
Client -- 4. Eksekusi Tx\n(Move Call) --> Chain
Chain -- 5. Verifikasi Signature\n& Mint Objek --> Chain
Sebelum memulai, pastikan lingkungan pengembangan Anda telah terinstal:
- Node.js (v18 atau lebih baru)
- pnpm (Package Manager)
- Sui CLI (untuk manajemen smart contract)
- Dompet SUI dengan saldo Testnet
Clone repositori proyek dan masuk ke direktori utama.
Masuk ke direktori contract dan publikasikan modul ke jaringan Sui.
cd sui_pet
sui client publish --gas-budget 100000000Setelah publikasi berhasil, catat Package ID dan Shop ID dari output terminal. Anda akan membutuhkannya untuk konfigurasi frontend.
Pindah ke direktori frontend sui-pet-pwa dan instal dependensi.
cd ../sui-pet-pwa
pnpm installBuat kunci admin untuk server (Oracle) menggunakan skrip yang tersedia. Kunci ini digunakan untuk menandatangani lokasi valid.
node keygen.jsBuat file .env.local di root folder sui-pet-pwa dan isi konfigurasi berikut berdasarkan output keygen.js dan publikasi contract:
# Kunci Rahasia Admin (dari output keygen.js)
ADMIN_SECRET_KEY=suiprivkey...
# ID Objek Toko (dari output publish sui_pet)
NEXT_PUBLIC_SHOP_ID=0x...Catatan Penting: Pastikan Public Key yang dihasilkan dari keygen.js telah didaftarkan ke dalam konstanta ORACLE_PUBLIC_KEY di file sui_pet/sources/core.move sebelum melakukan publikasi contract.
Buka file src/utils/contracts.ts dan perbarui variabel PACKAGE_ID dan SHOP_ID sesuai dengan hasil deployment Anda.
export const PACKAGE_ID = "0x...";
export const SHOP_ID = "0x...";Jalankan server pengembangan lokal:
pnpm devAkses aplikasi melalui browser di http://localhost:3000.
- Core Module: Logika utama pet, atribut, dan status.
- Shop Module: Manajemen pembelian item menggunakan SUI Coin.
- Battle Module: Logika pertarungan PvE/PvP sederhana.
- Next.js 16: Framework React untuk UI dan API Routes.
- Tailwind CSS: Styling antarmuka yang responsif.
- Leaflet: Peta interaktif untuk fitur geolokasi.
- Framer Motion: Animasi antarmuka.
- Sui dApp Kit: Integrasi dompet dan manajemen transaksi blockchain.
Didistribusikan di bawah Lisensi MIT. Lihat file LICENSE untuk informasi lebih lanjut.
Pafingkaran: Proyek ini dibangun untuk tujuan edukasi dan demonstrasi integrasi antara dunia nyata dan blockchain menggunakan Sui Network.