تنطبق أيضًا على الألعاب خطوات إعداد التطبيقات للعمل على تطبيقات Google Play الفورية، كما هو موضّح في مقالة إنشاء أول تطبيق فوري. يؤكّد هذا الدليل على بعض خطوات الإعداد الخاصة بالألعاب.
يمكنك تطوير ألعاب لتطبيقات Google Play الفورية باستخدام Unity (مع المكوّن الإضافي لتطبيقات Google Play الفورية في Unity أو بدونه) أو Cocos2D أو Android Studio أو محرك الألعاب المخصّص الخاص بك.
يفترض هذا الدليل أنّك تعرف نوع تجربة الألعاب التي تريد تقديمها. إذا أردت الاطّلاع على أفكار وأفضل الممارسات لصناعة ألعاب عالية الجودة، يمكنك قراءة أفضل الممارسات المتعلّقة بتجربة المستخدم في الألعاب على تطبيقات 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" أو على الزر تشغيل فوري في تطبيق "ألعاب Google Play". ويمكنك أيضًا تشغيل هذا النشاط مباشرةً باستخدام واجهة برمجة التطبيقات للروابط لصفحات في التطبيق.
تحديد رموز الإصدار الصحيحة
يجب أن يكون رمز إصدار تجربة اللعبة الفورية أقل من رمز إصدار اللعبة القابلة للتثبيت. يتيح لك إصدار تطبيقك بهذه الطريقة أن ينتقل اللاعبون من تجربة "تطبيقات Google Play الفورية" إلى تنزيل اللعبة وتثبيتها على أجهزتهم. يعدّ إطار عمل Android هذا الانتقال بمثابة تحديث للتطبيق.
للتأكّد من اتّباع نظام تحديد الإصدارات المقترَح، اتّبِع إحدى الاستراتيجيتَين التاليتَين:
- أعِد بدء رموز الإصدار للتطبيق الفوري على Google Play من 1.
- زِد رمز إصدار التطبيق القابل للتثبيت بمقدار كبير، مثل 1000، لضمان توفّر مساحة كافية لزيادة رقم إصدار التجربة الفورية.
لا بأس بتطوير لعبتك الفورية ولعبتك القابلة للتثبيت في مشروعَين منفصلَين على "استوديو Android". ومع ذلك، إذا اخترت ذلك، عليك اتّخاذ الخطوات التالية لنشر لعبتك على Google Play:
- استخدِم اسم الحزمة نفسه في كلا مشروعي "استوديو Android".
- في Google Play Console، حمِّل كلا الصيغتين إلى التطبيق نفسه.
لمزيد من التفاصيل حول ضبط إصدار لعبتك، يُرجى الاطّلاع على مقالة تحديد إصدار تطبيقك.
توفير بيئة التنفيذ
مثل التطبيقات الأخرى، يتم تشغيل الألعاب على "تطبيقات Google Play الفورية" ضمن بيئة اختبار معزولة محدودة على الجهاز. لإتاحة بيئة التنفيذ هذه، أكمِل الخطوات الموضّحة في الأقسام التالية.
إيقاف البيانات غير المشفّرة
لا تتوافق الألعاب على "تطبيقات Google Play الفورية" مع زيارات HTTP. إذا كانت لعبتك تستهدف الإصدار 9 من نظام التشغيل Android (المستوى 28 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، سيوقف نظام التشغيل Android إمكانية استخدام نص عادي في لعبتك تلقائيًا.
ومع ذلك، إذا كانت لعبتك تستهدف الإصدار 8.1 من نظام التشغيل Android (المستوى 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 أيضًا التنسيق إلى محرك ألعاب مفتوح المصدر.
- ضغط الأصوات والموسيقى أو إعادة استخدامها
- استخدِم علامات تجميع مختلفة للمساعدة في تصغير حجم الملف الثنائي:
-fvisibility=hidden: الأهمّ. فيcmake، يمكنك تحديدها على النحو التالي:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz: مهم أيضًا لتقليل الحجم. إذا كنت تستخدمgccفي عملية التجميع، استخدِم-Osبدلاً من ذلك.-flto: يؤدي أحيانًا إلى تقليل حجم الملف.- علامات برنامج الربط: استخدِم
--gc-sectionsمع علامات برنامج التجميع، مثل-ffunction-sectionsو-fdata-sections.
- استخدِم Proguard لتقليل حجم الرموز والموارد.
- استخدِم الإصدار 4.4 من Gradle أو إصدارًا أحدث لإنشاء ملفات 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 Instant تجريبية، يجب أن تطلب اللعبة من اللاعب في مرحلة ما تثبيت الإصدار الكامل على جهازه. لإجراء ذلك، استخدِم طريقة
showInstallPrompt()
في Google APIs for Android.
لمزيد من المعلومات حول كيفية وموعد مطالبة اللاعب بالتثبيت، يُرجى الاطّلاع على أفضل ممارسات تجربة المستخدم للألعاب على تطبيقات Google Play الفورية.
نقل البيانات إلى تجربة مثبَّتة
إذا أعجبت اللاعبين تجربة الإصدار التجريبي، قد يقرّرون تثبيت الإصدار الكامل من لعبتك. لتوفير تجربة جيدة للمستخدم، من المهم نقل مستوى تقدّم اللاعب من التجربة الفورية إلى الإصدار الكامل من اللعبة.
إذا كانت لعبتك تحدّد targetSandboxVersion
بقيمة 2، سيتم نقل مستوى تقدّم اللاعب
تلقائيًا إلى الإصدار الكامل من لعبتك. وبخلاف ذلك، عليك نقل البيانات المتعلقة بمستوى تقدّم اللاعب يدويًا. لإجراء ذلك، استخدِم Cookie API - تطبيق نموذجي
مراجع إضافية
يمكنك الاطّلاع على مزيد من المعلومات حول "تطبيقات Google Play الفورية" من خلال المراجع الإضافية التالية:
- درس تطبيقي: إنشاء أول تطبيق فوري
- إضافة إمكانية استخدام "تطبيقات Google Play الفورية" في تطبيق حالي
- درس تطبيقي: إنشاء تطبيق فوري يتضمّن ميزات متعدّدة
- تقسيم تطبيق يتضمّن عدة ميزات إلى وحدات