إتاحة إمكانية الوصول الفوري

تنطبق أيضًا خطوات إعداد التطبيقات لتشغيلها على تطبيقات 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" أو زر التشغيل الفوري في تطبيق "ألعاب Google Play". يمكنك أيضًا بدء هذا النشاط مباشرةً باستخدام واجهة برمجة التطبيقات للرابط لصفحة في التطبيق.

تحديد رموز الإصدار الصحيحة

يجب أن يكون رمز الإصدار لتجربة اللعبة الفورية أقل من رمز إصدار اللعبة القابلة للتثبيت. ومن خلال تحديد إصدارات تطبيقك بهذه الطريقة، يمكن للّاعبين الانتقال من تجربة "تطبيقات Google Play الفورية" إلى تنزيل اللعبة وتثبيتها على أجهزتهم. يعتبر إطار عمل Android أن هذا الانتقال هو تحديث للتطبيق.

للتأكد من اتباع مخطط تعيين الإصدارات الموصى به، اتبع إحدى الإستراتيجيات التالية:

  • أعِد تشغيل رموز الإصدارات لتجربة "تطبيقات Google Play الفورية" من خلال 1.
  • عليك زيادة رمز إصدار التطبيق القابل للتثبيت بمقدار عدد كبير، مثل 1000، لضمان توفّر مساحة كافية لزيادة رقم إصدار التطبيق الفوري.

يمكن تطوير لعبتك الفورية ولعبتك القابلة للتثبيت في مشروعين منفصلين في استوديو Android. إذا أردت نشر لعبتك على Google Play، عليك اتّباع الخطوات التالية:

  1. استخدِم اسم الحزمة نفسه في مشروعَي "استوديو Android".
  2. في Google Play Console، حمِّل الصيغتين إلى التطبيق نفسه.

لمعرفة مزيد من التفاصيل حول تحديد إصدار اللعبة، يمكنك الاطّلاع على إصدار تطبيقك.

دعم بيئة التنفيذ

على غرار التطبيقات الأخرى، تعمل الألعاب على "تطبيقات Google Play الفورية" ضمن وضع حماية محدود على الجهاز. لدعم بيئة التنفيذ هذه، أكمل الخطوات الموضحة في الأقسام التالية.

إيقاف الزيارات الواردة من نص الواضح

لا تتوافق الألعاب على "تطبيقات Google Play الفورية" مع حركة بيانات HTTP. إذا كانت لعبتك تستهدف الإصدار 9 من Android (المستوى 28 لواجهة برمجة التطبيقات) أو إصدارًا أحدث، يوقف Android دعم نصوص الواضحة في لعبتك تلقائيًا.

إذا كانت لعبتك تستهدف الإصدار Android 8.1 (المستوى 27 لواجهة برمجة التطبيقات) أو إصدارًا أقدم، عليك إنشاء ملف Network Security Config. في هذا الملف، اضبط 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: يمكنك الاطّلاع على تأثير حجم الملف المتمثل في تقليل حجم الزخرفة بدون الحاجة إلى إعادة تجميع اللعبة.

التقنيات

في ما يلي قائمة بالتقنيات التي يمكنك استخدامها لتقليل حجم لعبتك:

  • استخرِج بعضًا من منطق لعبتك وأدرِجها في وحدة ميزات واحدة أو أكثر، بدون أن تُحتسب ضِمن الحدّ الأقصى للحجم.
  • تقليل درجة دقة زخارف الألعاب
  • ننصحك باستخدام تنسيق 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 لتقليص الرموز والموارد.
  • استخدِم 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 لنظام التشغيل Android.

لمعرفة المزيد من المعلومات حول طريقة طلب تثبيت المشغّل ووقته، يمكنك الاطّلاع على أفضل ممارسات تجربة المستخدم للألعاب على "تطبيقات Google Play الفورية".

نقل البيانات إلى تجربة مثبَّتة

إذا استمتع أحد اللاعبين بتجربتك التجريبية، فقد يقرِّر تثبيت الإصدار الكامل من لعبتك. لتوفير تجربة مستخدم جيدة، من المهم نقل مستوى تقدم اللاعب من تجربتك الفورية إلى الإصدار الكامل للعبتك.

إذا حددت لعبتك targetSandboxVersion من 2، سيتم نقل مستوى تقدّم اللاعب تلقائيًا إلى الإصدار الكامل من لعبتك. وبخلاف ذلك، عليك نقل البيانات المتعلقة بتقدم اللاعب يدويًا. ولإجراء ذلك، استخدِم Cookie API - نموذج التطبيق.

مراجع إضافية

تعرَّف على مزيد من المعلومات حول "تطبيقات Google Play الفورية" من خلال هذه المراجع الإضافية:

الدرس التطبيقي حول الترميز: إنشاء تطبيقك الفوري الأول
إتاحة "تطبيقات Google Play الفورية" في تطبيق حالي
الدرس التطبيقي حول الترميز: إنشاء تطبيق فوري متعدد الميزات
تخصيص تطبيق متعدد الميزات إلى وحدات