برو به محتوای اصلی
سوال
محمد علیزاده
برنامه نویس تیم The Lucky Dice
۳ سال پیش پرسیده شده

سلام. من میخوام یه سیستم ذخیره برای اچیومنت و مراحل بازی (که انلاک شدن) برای بازی م بنویسم. طبق بررسی هایی که کردم استفاده از جیسون و هش کردن SHA256 برای امنیتش گزینه ی خوبی هست. چون توی اچیومنتم فقط یه متغیر عددی (که شناسه منحصر به فرد اون اچیومنت هست) و یه متغیر بولین (برای اینکه ببینم آنلاک شده یا نه) وجود داره و خیلی پیچیدگی نداره. ولی توی بعضی فروم ها افرادی بودن که از دیتابیس استفاده میکردن. میخواستم بدونم ایا SQLite رو پیشنهاد میدید یا JSON یا اصلا روش دیگه ای ؟ (در ضمن داده ها در حال حاضر قراره داده هام و این فایل اچیومنت، لوکال نگه داری بشه)

من کجام؟ اینجا کجاست؟

در جامعه بازی‌سازان ایران می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربه‌تون رو به اشتراک بگذارید!

علی افروغه
مدیر پروژه/فنی بازی باغ نگار

سلام.

در مورد SQLite، وقتی استفاده میشه که شما حجم داده زیادی بخواید ذخیره کنید (ده هزار یا صدهزار رکورد) که برای بازیابی هم بخواید هوشمند مثلا فقط بخشیش رو بازیابی کنید. در غیر این صورت فقط پیچیدگی اضافه کردین و نکته مثبتی نداشته براتون.

ذخیزه سازی با جیسون خوبه، برای امنیت هم می تونید encrypt و hash بکنید. اگر از یونیتی استفاده می‌کنید مثلا میشه از ابزار زیر استفاده کنید تا encrypt رو براتون انجام بده:
https://github.com/rawandnf/SecurePlayerPrefs۱۹۱

 

 

مهدی رحمتی
هم‌بنیان‌گذار فضای اشتراکی همبود

سلام. درخصوص ذخیره سازی داده خصوصا لوکال، json گزینه سبک و آسونی هست. برای امنیت هم یکی از گزینه‌هایی که در اختیار دارین استفاده از binary file هست: https://stuartspixelgames.com/2020/07/26/how-to-do-easy-saving-loading-with-binary-unity-c/۸۸

حتی اگه داده‌های شما صرفا یک کلمه برای شناسایی مرحله و اچیومنت هستن میتونین بجای استفاده از json، خودتون یک فایل txt با فرمت دلخواه و یا داخل PlayerPrefs - SecurePlayerPrefs برای مثال

id:10,lock:1   or   10,1

رو تعریف کنین.

گزینه SecurePlayerPrefs که @علی افروغه۵۷ فرمودن هم مناسب هست، در خصوص ذخیره داده‌های کوچک‌تر هم کارآمده. نکته مثبت دیگری هم که داره، برای (setbool) کار رو راحت کرده.

سوالات مشابه