تنطبق أيضًا على الألعاب خطوات إعداد التطبيقات لتشغيلها على تطبيقات Google Play الفورية، كما هو موضّح في مقالة إنشاء أول تطبيق فوري، يركّز هذا الدليل على بعض خطوات الإعداد الخاصة بالألعاب.
يمكنك تطوير ألعاب لتشغيلها على "تطبيقات Google Play الفورية" باستخدام Unity (مع أو بدون مكوّن Google Play Instant Unity الإضافي) أو Cocos2D أو "استوديو Android" أو محرّك الألعاب المخصّص لك.
يفترض هذا الدليل أنّك تعرف نوع تجربة اللعب التي تريد تقديمها. إذا أردت الاطّلاع على أفكار وأفضل الممارسات لإنشاء ألعاب عالية الجودة، يمكنك قراءة أفضل الممارسات لتجربة المستخدم في الألعاب على "تطبيقات Google Play الفورية".
بالإضافة إلى ذلك، قبل نشر لعبة يمكن تشغيلها على تطبيقات Google Play الفورية، عليك مراجعة قائمة التحقّق من المتطلبات الفنية.
تحديد نقطة دخول
يصبح النشاط الذي يتضمّن فلتر النية التالي نقطة الدخول إلى تجربة "تطبيقات Google Play الفورية":
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
يتم تشغيل هذا النشاط عندما ينقر المستخدم على الزر تجربة الآن في "متجر Play" أو على الز2ر اللعب الفوري في تطبيق "ألعاب Google Play". يمكنك أيضًا تشغيل هذا النشاط مباشرةً باستخدام واجهة برمجة التطبيقات للرابط لصفحة في التطبيق.
تحديد رموز الإصدار الصحيحة
يجب أن يكون رمز إصدار التجربة الفورية للعبتك أقل من رمز إصدار اللعبة القابلة للتثبيت. يسمح هذا النوع من تحديد الإصدار للاعبين بالانتقال من تجربة "تطبيقات Google Play الفورية" إلى تنزيل اللعبة وتثبيتها على أجهزتهم. يعتبر إطار عمل Android هذا الانتقال بمثابة تحديث للتطبيق.
للتأكّد من اتّباع نظام تحديد الإصدارات المقترَح، اتّبِع إحدى الاستراتيجيتَين التاليتَين:
- أعِد ضبط رموز الإصدارات لتجربة "تطبيقات Google Play الفورية" على 1.
- زِد رمز إصدار التطبيق القابل للتثبيت بعدد كبير، مثل 1000، للتأكّد من توفّر مساحة كافية لزيادة رقم إصدار تجربتك الفورية.
يمكنك تطوير لعبتك الفورية ولعبتك القابلة للتثبيت في مشروعَين منفصلَين على "استوديو Android". إذا فعلت ذلك، عليك اتّخاذ الإجراءات التالية لنشر لعبتك على Google Play:
- استخدِم اسم الحزمة نفسه في كلا مشروعَي "استوديو Android".
- في Google Play Console، حمِّل كلا الإصدارَين إلى التطبيق نفسه.
لمزيد من التفاصيل حول ضبط إصدار لعبتك، اطّلِع على مقالة تحديد إصدار تطبيقك.
دعم بيئة التنفيذ
مثل التطبيقات الأخرى، يتم تشغيل الألعاب على "تطبيقات Google Play الفورية" ضمن بيئة وضع الحماية محدودة على الجهاز. لدعم بيئة التنفيذ هذه، أكمل الخطوات الموضّحة في الأقسام التالية.
إيقاف البيانات غير المشفّرة
لا تتوافق الألعاب على "تطبيقات Google Play الفورية" مع بيانات HTTP. إذا كانت لعبتك تستهدف Android 9 (المستوى 28 من واجهة برمجة التطبيقات) أو إصدارًا أحدث، يوقف Android تلقائيًا دعم البيانات غير المشفّرة في لعبتك.
إذا كانت لعبتك تستهدف Android 8.1 (المستوى 27 من واجهة برمجة التطبيقات) أو إصدارًا أقدم، عليك إنشاء ملف إعدادات أمان الشبكة.
في هذا الملف، اضبط cleartextTrafficPermitted على false، كما هو موضّح في مقتطف الرمز التالي:
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
تحديث إصدار بيئة وضع الحماية المستهدَفة
حدِّث ملف AndroidManifest.xml للعبتك الفورية بحيث يستهدف بيئة وضع الحماية التي تتوافق مع "تطبيقات Google Play الفورية". يمكنك إكمال
هذا التحديث عن طريق إضافة السمة android:targetSandboxVersion إلى عنصر <manifest> في لعبتك، كما هو موضّح في مقتطف الرمز التالي:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
لمزيد من المعلومات، اطّلِع على مستندات السمة
targetSandboxVersion.
عدم الاعتماد على ذاكرة التخزين المؤقت أو بيانات التطبيق
تظل التجربة الفورية التي تم تنزيلها على جهاز المستخدم إلى أن يتم محو ذاكرة التخزين المؤقت للتجربة الفورية، ويحدث ذلك في إحدى الحالتَين التاليتَين:
- يتم جمع بيانات ذاكرة التخزين المؤقت للتجربة الفورية غير الضرورية لأنّ ذاكرة الجهاز المتاحة منخفضة.
- يعيد المستخدم تشغيل جهازه.
إذا حدث أيّ من هذَين الإجراءَين، على المستخدم إعادة تنزيل تجربة فورية للتطبيق للتفاعل معها.
إذا كانت مساحة التخزين منخفضة جدًا، من المحتمل أن تتم إزالة بيانات المستخدم لتجربتك الفورية من مساحة التخزين الداخلية. لذلك، ننصح بمزامنة بيانات المستخدم بشكل دوري مع خادم لعبتك للحفاظ على مستوى تقدّم المستخدم.
تقليل حجم تطبيقك
على عكس الأنواع الأخرى من التطبيقات، هناك حد أقصى لحجم تنزيل الألعاب على "تطبيقات Google Play الفورية"، وهو 15 ميغابايت. لإنشاء لعبة بهذا الحجم، قد تحتاج إلى إعادة تصميم منطق لعبتك. يصف هذا القسم بعض الأدوات والتقنيات التي تساعدك في تحسين حجم لعبتك.
الأدوات
يمكن أن تساعدك قائمة الأدوات التالية في تحديد العوامل التي تساهم في حجم لعبتك:
- أداة تحليل ملفات APK: تقدّم عرضًا شاملاً لـ محتويات حزمة APK مجمَّعة. باستخدام هذا العرض، يمكنك تحديد عدد البايتات التي يساهم بها كل عنصر في الحجم الإجمالي. استخدِم هذه الأداة للتحقّق بسرعة من حجم الموارد ومواد العرض والمنطق والمكتبات الأصلية التي تستخدمها لعبتك.
- Bloaty McBloatface: يعرض ملف حجم الملفات الثنائية.
- Android GPU Inspector: يمكنك الاطّلاع على تأثير حجم الملف الناتج عن تقليل حجم البنية بدون الحاجة إلى إعادة تجميع لعبتك.
التقنيات
في ما يلي قائمة بالتقنيات التي يمكنك استخدامها لتقليل حجم لعبتك:
- استخرِج بعض منطق لعبتك وضعه في وحدة ميزات واحدة أو أكثر، ولا يتم احتساب حجم هذه الوحدات ضمن الحد الأقصى المسموح به للحجم.
- قلِّل دقة البِنى في لعبتك.
- ننصحك باستخدام تنسيق WebP ، خاصةً إذا كنت تستخدم بُنى غير مضغوطة على وحدة معالجة الرسومات. ينشئ تنسيق WebP صورًا بنفس جودة صور JPEG ولكن بحجم أصغر بنسبة تتراوح بين 15% و30%. على الرغم من أنّ فك ضغط صور WebP يستغرق وقتًا أطول، يظل وقت فك الضغط هذا أقصر بكثير من وقت تنزيل بُنى لعبتك. دمجت Google أيضًا التنسيق في محرّك ألعاب مفتوح المصدر engine.
- اضغط الأصوات والموسيقى أو أعِد استخدامها.
- استخدِم علامات تجميع مختلفة للمساعدة في تصغير حجم ملفك الثنائي:
-fvisibility=hidden: هذه العلامة هي الأهم. فيcmake، يمكنك تحديدها على النحو التالي:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz: هذه العلامة مهمة أيضًا لتقليل الحجم. إذا كنت تُجمِّع باستخدامgcc، استخدِم-Osبدلاً من ذلك.-flto: يؤدي ذلك أحيانًا إلى تقليل حجم الملف.- علامات الرابط: استخدِم
--gc-sectionsبالإضافة إلى علامات المجمِّع، مثل-ffunction-sectionsو-fdata-sections.
- استخدِم Proguard لـ تقليل حجم الرمز والموارد.
- استخدِم Gradle 4.4 أو إصدارًا أحدث لإنشاء ملفات DEX أصغر حجمًا.
- نفِّذ عملية عرض مواد العرض من السحابة الإلكترونية .
تقسيم لعبة كبيرة إلى حِزم APK متعددة
قد يكون من الصعب تحسين تجربة "تطبيقات Google Play الفورية" لـ جعل لعبتك تتناسب مع حزمة APK واحدة بحجم 15 ميغابايت، حتى بعد تطبيق الـ اقتراحات لـ تقليل حجم حزمة APK. لمعالجة هذا التحدي، يمكنك تقسيم لعبتك إلى حِزم APK متعددة. يبدأ اللاعبون بتنزيل حزمة APK الأساسية الرئيسية، وأثناء اللعب، يتم إتاحة حِزم APK المجزّأة المتبقية للعبة في الخلفية.
على سبيل المثال، يمكن أن تحتوي حزمة APK الأساسية على محرّك اللعبة الأساسي ومواد العرض المطلوبة لعرض شاشة التحميل. عند تشغيل حزمة APK الأساسية، يتم عرض شاشة التحميل ويتم على الفور طلب حزمة APK مجزّأة إضافية تحتوي على بيانات اللعبة والمستوى. بعد أن تصبح حزمة APK المجزّأة هذه متاحة، يمكنها تحميل مواد العرض الخاصة بها في محرّك اللعبة ومنح اللاعب المحتوى الذي يحتاج إليه لبدء اللعبة.
اتّباع أفضل الممارسات لتجربة المستخدم
بعد ضبط لعبتك بحيث تتوافق مع التجارب الفورية، أضِف المنطق الموضّح في الأقسام التالية لتقديم تجربة مستخدم جيدة.
دعم بنى 64 بت
يجب أن تتوافق التطبيقات المنشورة على Google Play مع بنى 64 بت. تؤدي إضافة إصدار 64 بت من تطبيقك إلى تحسين الأداء وإعداده للأجهزة التي تتضمّن أجهزة 64 بت فقط. مزيد من المعلومات حول دعم بنية 64 بت.
التحقّق مما إذا كانت اللعبة تشغّل تجربة فورية للتطبيق
إذا كان بعض منطق لعبتك يعتمد على ما إذا كان المستخدم يتفاعل مع تجربتك الفورية للتطبيق، استخدِم طريقة
isInstantApp(). تعرض هذه الطريقة القيمة true إذا كانت العملية قيد التشغيل حاليًا هي تجربة فورية للتطبيق.
من خلال إجراء هذا التحقّق، يمكنك تحديد ما إذا كان يجب تشغيل تطبيقك ضمن بيئة تنفيذ محدودة أو ما إذا كان بإمكانه الاستفادة من ميزات النظام الأساسي.
عرض طلب التثبيت
إذا أنشأت تجربة تجريبية على "تطبيقات Google Play الفورية"، يجب أن تطلب اللعبة من اللاعب في مرحلة ما تثبيت الإصدار الكامل على جهازه. لإجراء ذلك، استخدِم طريقة
showInstallPrompt()
في Google APIs for Android.
لمزيد من المعلومات حول كيفية وموعد مطالبة اللاعب بالتثبيت، اطّلِع على أفضل الممارسات لتجربة المستخدم في الألعاب على "تطبيقات Google Play الفورية".
نقل البيانات إلى تجربة مثبَّتة
إذا أعجب اللاعب تجربتك التجريبية، قد يقرّر تثبيت الإصدار الكامل من لعبتك. لتقديم تجربة مستخدم جيدة، من المهم نقل مستوى تقدّم اللاعب من تجربتك الفورية للتطبيق إلى الإصدار الكامل من لعبتك.
إذا كانت لعبتك تحدّد targetSandboxVersion
على 2، يتم نقل مستوى تقدّم اللاعب
تلقائيًا إلى الإصدار الكامل من لعبتك. بخلاف ذلك، عليك نقل البيانات المتعلقة بمستوى تقدّم اللاعب يدويًا. لإجراء ذلك، استخدِم واجهة برمجة التطبيقات Cookie - نموذج تطبيق
مراجع إضافية
مزيد من المعلومات حول "تطبيقات Google Play الفورية" من خلال هذه المراجع الإضافية:
- درس تطبيقي: إنشاء أول تطبيق فوري
- إضافة دعم "تطبيقات Google Play الفورية" في تطبيق حالي
- درس تطبيقي: إنشاء تطبيق فوري متعدد الميزات
- تقسيم تطبيق متعدد الميزات إلى وحدات