Halo para developer,
Saya sedang melakukan dekonstruksi pada beberapa game mobile untuk mempelajari bagaimana mereka menangani data progres pemain, khususnya untuk item kosmetik. Untuk referensi, struktur yang saya analisis bisa dilihat di sini:
https://super-bear-adventure-mod-apk.s3.sa-east-1.amazonaws.com/index.html
Saat ini saya sedang membangun sistem serupa di Unreal Engine 5 untuk proyek game petualangan 3D saya, dan saya menghadapi beberapa tantangan dalam merancang arsitektur yang efisien dan aman untuk membuka semua skin.
Konteks Proyek
Saya ingin pemain bisa membuka skin melalui pencapaian dalam game. Tantangannya adalah bagaimana menyimpan status “terbuka” ini secara efisien tanpa membebani file save dan melindunginya dari modifikasi sederhana di sisi klien pada perangkat Android.
Pertanyaan untuk Diskusi
Saya ingin mendapatkan pandangan dari komunitas tentang praktik terbaik untuk masalah ini di Unreal Engine:
-
Struktur Data SaveGame: Untuk puluhan hingga ratusan skin, apa pendekatan yang lebih baik?
-
Menggunakan TMap<FName, bool> untuk menyimpan status setiap skin?
-
Menggunakan sebuah Bitmask (Integer) di mana setiap bit mewakili satu skin? Mana yang lebih performan untuk mobile?
-
-
Keamanan File Save: Metode enkripsi bawaan Unreal untuk USaveGameObject apakah sudah cukup kuat untuk platform mobile? Adakah yang punya pengalaman menerapkan lapisan keamanan tambahan untuk mencegah save file editing?
-
Manajemen Aset: Bagaimana cara terbaik memuat aset skin ini? Haruskah saya menggunakan Soft Object References dan memuatnya secara asinkron saat dibutuhkan untuk menjaga penggunaan memori tetap rendah di perangkat mobile?
Spesifikasi Proyek Saat Ini
-
Engine: Unreal Engine 5.3
-
Platform Target: Android 11+
-
Tipe Game: 3D Platformer / Adventure
Tujuan saya adalah menciptakan sistem yang solid seperti yang ada di game referensi tersebut. Setiap masukan, ide, atau pengalaman tentang cara mengatasi tantangan ini akan sangat dihargai.
Terima kasih banyak