نظرة عامة حول تصميم واجهة برمجة التطبيقات للمواقع القابلة للتشغيل

تقدّم Playable Locations API مجموعات من النقاط الجغرافية المنظّمة والمنشأة (مواقع جغرافية يمكن تشغيلها). وتختار Google كل موقع قابل للتشغيل استنادًا إلى مدى ملاءمته للاستخدام في الألعاب المستندة إلى الموقع الجغرافي كنقاط تنطلق لأشياء مثل مستودعات الإصلاح وجوائز الألعاب.

تقع بعض مواقع اللعب بالقرب من نقاط الاهتمام البارزة، ويقع بعضها على أرصفة على طول الطرق، في حين يقع البعض الآخر عشوائيًا داخل الحدائق والملاعب وساحات البلدات وغيرها من المناطق المتاحة للجميع.

يهدف هذا المستند إلى تقديم نظرة عامة حول كيفية استخدام واجهة برمجة التطبيقات كي يتمكّن المطوّرون التابعون لجهات خارجية من الاستفادة من المفاهيم الأساسية لإنشاء مجموعة خاصة بهم من المواقع الجغرافية القابلة للتشغيل باستخدام مصدر بيانات بديل.

الخلفية

يوفّر هذا القسم نظرة عامة على مكتبات الدعم المستخدَمة، كما يقدّم مفاهيم أساسية تتعلّق بمواقع يمكن تشغيل إصدار بسيط من اللعبة فيها.

دعم المكتبات

يتم استخدام مكتبات الدعم التالية في هذا الدليل.

المكتبة الوصف
هندسة S2 دعم مرن للفهرسة المكانية
الموارد الاحتياطية للبروتوكول إنّها طريقة محايدة لغوية ومحايدة وقابلة للتوسُّع في تسلسل البيانات المنظَّمة لاستخدامها في بروتوكولات الاتصالات وتخزين البيانات وغير ذلك.

مكتبة الهندسة في S2

مكتبة هندسة S2 هي نظام معلومات جغرافي يمثل البيانات في مجال ثلاثي الأبعاد. تتضمن المكتبة الميزات التالية:

  • إتاحة الفهرسة المكانية:
    • ويتيح لك ذلك تقدير المناطق العشوائية كمجموعات من خلايا S2 المنفصلة.
    • فهرسة مكانية سريعة داخل الذاكرة لمجموعات النقاط والخطوط المتعددة والمضلعات.
  • عمليات إنشاءية قوية (مثل التقاطع والتوحيد والتبسيط) والمراجع المنطقية (مثل اختبار الاحتواء)
  • عمليات استعلام فعّالة للعثور على الأشياء القريبة، وقياس المسافات، والنقاط المركزية للحوسبة.
  • مجموعة من الأسس الرياضية لاختبار العلاقات بين الأساسيات الهندسية.
  • استدارة الكاميرا

إحصائيات الخلية S2

تكون إحصاءات الخلية S2 مفيدة لحساب أمور مثل طول المدة الزمنية التي يستغرقها تنزيل مجموعة بيانات في عدد معيّن من الطلبات في الثانية.

مستودعات الرموز الهندسية لمعيار S2

يمكنك نسخ أي من هذه المستودعات لبدء العمل باستخدام خلايا S2.

جداول SS

يتم استخدام تنسيق ملف SSTable لتخزين مجموعات البيانات ومعالجتها وتبادلها بكفاءة. يوفر SSTable خريطة ثابتة وغير قابلة للتغيير من المفاتيح إلى القيم، حيث تكون المفاتيح والقيم سلاسل بايت عشوائية.

المواقع الجغرافية القابلة للتشغيل

وبصفة عامة، الموقع الجغرافي هو نقطة جغرافية على الخريطة، في حين أنّ الموقع الجغرافي القابل للتشغيل هو موقع يُعتبر مناسبًا لوضع عناصر اللعبة في ألعاب العالم الحقيقي (أي كنقاط تولد لأشياء مثل الجوائز).

أنواع المواقع الجغرافية القابلة للتشغيل

منظّم

مواقع اللعب المنظّمة هي نقاط جغرافية مرتبطة بكائنات موجودة في مواقع جغرافية معيّنة. وهي تمثل مواقع نقاط الاهتمام (POI) المأخوذة من قاعدة بيانات الأماكن.

تاريخ الإنشاء

إذا لم تكن هناك مواقع جغرافية منظَّمة لتشغيل المحتوى بشكل كافٍ لاستيفاء المعايير التي تحددها، تعمل واجهة برمجة التطبيقات للمواقع الجغرافية القابلة للتشغيل على إنشاء مواقع جغرافية إضافية يمكن تشغيلها. هذه المواقع الجغرافية القابلة للتشغيل هي نقاط جغرافية غير مرتبطة بكائنات موجودة. بدلاً من ذلك، يتم إنشاء هذه النقاط الجغرافية آليًا، ويتم وضعها بشكل عشوائي على طول الأرصفة، داخل الحدائق، وعلى الشواطئ، وداخل الملاعب وساحات البلدات وغيرها من المناطق التي يمكن الوصول إليها بشكل عام.

والهدف هو توفير أدنى كثافة على الأقل من المواقع الجغرافية القابلة للتشغيل مع مراعاة المعايير التالية:

المعايير مثال
أمان اللاعبين ويجب ألا تظهر جوائز الألعاب في وسط الطرق السريعة أو داخل القواعد العسكرية.
ملاءمة اللعبة للّعب يجب ألا يزعج اللاعبون المقابر أو أماكن العبادة.

خصائص الموقع الجغرافي القابل للتشغيل

يناقش ما يلي بعض الخصائص المرتبطة بكائنات الموقع الجغرافي القابل للتشغيل في تنفيذ Google والتي قد يجدها المطوّرون مفيدة لإنشاء ألعاب مستندة إلى الموقع الجغرافي.

رقم تعريف المكان
سلسلة أبجدية رقمية تُعرّف الموقع الجغرافي بشكل فريد. وهذا هو رقم تعريف المكان للمواقع الجغرافية المنظّمة لتشغيل الألعاب (على سبيل المثال، Chlj79ZW1ohQwokRWPhGmWQ2K4). ويمكنك استخدام رقم تعريف المكان لموقع جغرافي قابل للتشغيل منظّم، وذلك من أجل إرفاق البيانات الوصفية الخاصة باللعبة بالموقع.
plusCode
رمز Plus Codes يحدّد بشكلٍ فريد الموقع الجغرافي القابل للتشغيل الذي تم إنشاؤه. رموز المواقع المفتوحة هي سلاسل أبجدية رقمية. على سبيل المثال، 23CPRV2R+WG76. يمكنك استخدام رمز Plus Codes لموقع جغرافي تم إنشاؤه لإرفاق البيانات الوصفية الخاصة باللعبة بالموقع.
أنواعًا
مصفوفة من أنواع المواقع الجغرافية القابلة للتشغيل (سلاسل) تحدِّد نوع الموقع الجغرافي القابل للتشغيل يعتبر النوع الأول في المصفوفة النوع الأساسي. على سبيل المثال، يمكنك الحصول على موقع جغرافي قابل للتشغيل يكون مخصّصًا للترفيه والترفيه في الهواء الطلق.
centerPoint
الإحداثيات الجغرافية المقابلة لنقطة وسط الموقع الجغرافي تُستخدم نقطة المنتصف لتحديد ما إذا كان موقع جغرافي يقع ضمن المنطقة محط الاهتمام.
snappedPoint
الإحداثيات الجغرافية المقابلة للموقع الجغرافي التي يتم ضبطها على رصيف أقرب طريق (عند توفّر طريق مجاور). يمكنك استخدام النقطة المحددة لوضع كائنات اللعبة عندما لا يرغب أصحاب الأنشطة التجارية في داخل أماكنهم. وفي حال عدم توفّر نقطة سريعة، يجب استخدام النقطة المركزية.
biomeType
عند وضع موقع قابل للتشغيل ضمن منطقة حيوية، تتم تعبئة هذا الحقل بقيمة واحدة أو أكثر من قيم BiomeType. ومن أمثلة المناطق الحيوية الغابات والأراضي الرطبة والمناطق الحضرية.

التصميم

اختيار النقاط للألعاب

اختيار المواقع الجغرافية المنظّمة

كما ذُكر أعلاه، تُعد المواقع الجغرافية المُنظَّمة نقاط اهتمام في العالم تُعتبر مناسبة لأسلوب اللعب. سيعطي ما يلي نظرة عامة رفيعة المستوى عن مسار البيانات (مع معايير الاختيار والتصفية) التي يمكن أن يستخدمها المرء لإنشاء هذه المواقع. الهدف من مسار التعلّم هذا هو إخراج جدول ثابت للمواقع الجغرافية المنظّمة بمفتاح S2CellIds والذي يمكن إضافته لاحقًا إلى قاعدة بيانات لطلبات البحث في الوقت الفعلي للمواقع الجغرافية القابلة للتشغيل في منطقة معيّنة.

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

يعمل مسار التعلّم باستخدام منهج مُدمَج في القائمة المسموح بها/القائمة المحظورة، حيث نختار في مرحلة واحدة جميع نقاط الاهتمام التي تتطابق مع قائمة أنواع مسموح بها تُعتبر مناسبة لأسلوب اللعب (على سبيل المثال، مقهى أو مكتبة أو متجر أزهار وما إلى ذلك)، وفي مرحلة أخرى، نستبعد جميع نقاط الاهتمام التي تندرج ضمن مجموعة من المناطق المستبعَدة. يتم تشكيل المناطق المستبعدة باستخدام الجوانب الهندسية (مثل المربعات الإحاطة) لمجموعة من ميزات الخريطة المحددة مسبقًا التي تعتبر غير مناسبة للعب (مثل القواعد العسكرية والمقابر) لإنشاء تغطية S2. يمكن بعد ذلك استخدام تغطية S2 هذه لمعرفة ما إذا كانت أي من نقاط الاهتمام المحددة تقع ضمن المناطق المستثناة أم لا وإذا كان الأمر كذلك، يمكنك فلترتها. بعد ذلك، تتم فهرسة المجموعة النهائية من المواقع المنظّمة عن طريق تحويل نقاطها المركزية إلى أرقام S2CellId في المستوى 30. ويتيح ذلك إجراء عمليات بحث مستندة إلى النطاق في "المواقع الجغرافية القابلة للتشغيل" ضمن منطقة محدّدة.

مخطّط بياني لمسارات المواقع الجغرافية المنظّمة

تحديد المواقع التي تم إنشاؤها

كما ذكرنا أعلاه، تُستخدَم المواقع الجغرافية التي يتم إنشاؤها لإكمال المواقع الجغرافية التي تتيح تشغيل اللعبة في المناطق التي لا تتوفّر فيها الكثافة المطلوبة أثناء اللعب. كقاعدة عامة، وجدنا أنّ حوالي 9 مواقع جغرافية يمكن تشغيلها في كل خلية من المستوى 16 من المستوى 2 (بقيمة 0.02 كلم^2 تقريبًا) يجب أن تكون كثافة كافية للألعاب المستندة إلى الموقع الجغرافي.

ويتم أيضًا إنشاء هذه النقاط الجغرافية "العشوائية" باستخدام نهج مجمّع في القائمة المسموح بها/القائمة المحظورة. القائمة المسموح بها هي قائمة بعناصر الخريطة التي تُعد مناسبة لإنشاء نقاط (مثل الحدائق والأرصفة وغيرها) والقائمة المحظورة هي المناطق التي يجب استبعاد النقاط فيها (مثل المسطحات المائية وطرق المركبات الآلية وما إلى ذلك). وفي كلتا الحالتين، يتم استخدام الأشكال الهندسية لميزة الخريطة لإنشاء غطاء من نوع S2 للمناطق ذات الصلة، وعند دمج المجموعتين، تُطرح المناطق المستبعَدة المتداخلة من المناطق المضمّنة لإنشاء المجموعة النهائية من المناطق المرشحة للمواقع الجغرافية التي تم إنشاؤها. كخطوة أخيرة، ننشئ "بشكل عشوائي" نقاطًا جغرافية داخل تلك المناطق ونكتب إلى جدول SStable مفهرس باستخدام معرّفات S2CellId في المستوى 30 لتمثيل النقاط المركزية. بالنسبة إلى المواقع الجغرافية التي تم إنشاؤها، يتم استخدام رموز Plus كأرقام تعريف أماكن.

رسم تخطيطي لمسارات المواقع التي تم إنشاؤها

نظرة عامة على مسار الإجراءات للمواقع الجغرافية

كما هو مذكور أعلاه، فإن ناتج مساري البيانات السابقين هما جدولا SSTable لكائنات PlayableLocation تمت فهرستها باستخدام S2CellId في المستوى S2 30. يمكن تحميل هذه الملفات في أي مخزن قيمة أساسية مرتبة لعمليات البحث المفهرسة مكانيًا. أحد الخيارات هو قاعدة بيانات SQL الموزعة من Google Spanner.

طلبَت المواقع الجغرافية مخطّطًا لمسارات قيمة المفاتيح والقيم.

المجالات الحيوية

المنطقة الحيوية هي مجتمع من النباتات والحيوانات التي تشترك في خصائص التكيف البيئية المشتركة. تتشكل الكائنات الحيوية استجابة لمناخ مادي مشترك. ومن أمثلة المناطق الحيوية الغابات والأراضي الرطبة والمناطق الحضرية.

عند وضع موقع قابل للتشغيل داخل منطقة حيوية، يمكن ملء حقل BimeType بقيمة واحدة أو أكثر من قيم BiomeType.

يمكنك استخدام معلومات المناطق الحيوية لوضع أنواع مختلفة من كائنات الألعاب على الخريطة. على سبيل المثال، إذا احتوى حقل البيئة الحيوية على القيمة grassland، يمكن أن ينتج عنها نوع مختلف من الكائنات عما لو كان حقل البيئة الحيوية يحتوي على القيمة urban.

يصف ما يلي عملية إضافة معلومات المناطق الحيوية إلى "المواقع الجغرافية القابلة للتشغيل" كجزء من مسار "المواقع الجغرافية" أعلاه. يتضمن Earth Engine من Google مجموعات بيانات متعددة للغطاء الأرضي مع فئات معلومات مثل الغابات والأراضي العشبية والمياه التي يمكن استخدامها للحصول على معلومات المجال الحيوي. نوصي بالخطوات عالية المستوى التالية لإضافة معلومات المنطقة الحيوية:

  • تنظيم البيانات التي تحتوي على معلومات عن كل من المجال الأحيائي ورصد الموقع الجغرافي.
  • يمكنك تخصيص معلومات المجال الحيوي كسمة للمواقع الجغرافية القابلة للتشغيل حاليًا استنادًا إلى موقعها الجغرافي، ويمكن إجراء ذلك عادةً من خلال الربط المكاني. على سبيل المثال، إذا كانت معلومات المجال الحيوي متاحة على المستوى 17 من الخلية S2 وتمت فهرسة المواقع الجغرافية القابلة للتشغيل باستخدام S2CellId في المستوى 30، يمكن إجراء عملية الربط على النحو التالي:
    1. ربط المواقع الجغرافية القابلة للتشغيل بخلايا S2 في المستوى 17: PlayableLocation.s2CellId.parent(17)
    2. الانضمام باستخدام Biome S2CellIds في المستوى 17
  • يمكنك عرض الموقع الجغرافي القابل للتشغيل مع سمة المنطقة الحيوية عند توفّرها.

مخطط مستودع حيوي للمواقع الجغرافية القابلة للتشغيل.

الاستعلام عن المواقع الجغرافية القابلة للتشغيل

في حال اتّباع الاقتراحات أعلاه وفهرسة المواقع الجغرافية القابلة للتشغيل باستخدام خوارزمية S2CellId في المستوى 30 (راجِع مكتبة S2 للتحويل من خط LatLng إلى معرّف الخلية) يمكننا إجراء عمليات فحص على أساس النطاق لاسترداد جميع المواقع الجغرافية القابلة للتشغيل في منطقة معيّنة.

مثال على طلب البحث:

إذا أردنا استرداد جميع المواقع القابلة للتشغيل الموجودة داخل S2Cell في المستوى 12 (حوالي 5km^2)، فيمكننا إصدار الاستعلام التالي:

S2CellId: 0x89c2599000000000 الحد الأدنى للنطاق: 0x89c2598000000001 (s2CellId.rangeMin().id()) النطاق الأقصى (): 0x89c2599fffffffffff (s2CellId()).

SELECT * FROM PlayableLocations
WHERE S2CellId BETWEEN 0x89c2598000000001 AND 0x89c2599fffffffff;

المسافات

ويمكن أن تفيد S2Library مرة أخرى في التحكم في كثافة المواقع الجغرافية القابلة للتشغيل في لعبتك. مستويات S2 هرمية بحيث تحتوي كل خلية في المستوى 14 على 4 خلايا في المستوى 15 وما إلى ذلك (راجع إحصاءات الخلية S2). ويمكن الاستفادة من هذه السمات عند وضع عناصر اللعبة في لعبتك. على سبيل المثال، يمكنك اختيار أن يكون لديك "وحش" واحد لكل خلية من المستوى 14 ومن أجل توزيع 64 "جواهر" بالتساوي في نفس المنطقة، ضع "جواهر" واحدة في كل خلية من المستوى 17 (تحتوي كل خلية في المستوى 14 على 64 خلية من المستوى 17).

تفاعلات الاستعلام والتخزين المؤقت

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

رسم تخطيطي للاستعلام عن المواقع القابلة للتشغيل والتخزين المؤقت

الإبلاغ عن موقع سيئ

نوضّح في ما يلي عملية جمع الملاحظات حول جودة المواقع الجغرافية القابلة للتشغيل من داخل لعبتك من خلال السماح للّاعبين بالإبلاغ عن المواقع الجغرافية غير القابلة للاستخدام. يمكن معالجة هذه التقارير في مسار البيانات واستخدامها لإزالة المواقع الجغرافية غير الصالحة من "قاعدة بيانات المواقع الجغرافية القابلة للتشغيل".

ننصحك بتنفيذ ميزة الإبلاغ عن موقع غير صالح باستخدام الخطوات التالية:

  • إنشاء نقطة دخول من جهة العميل (على شكل جهاز جوّال أو نموذج ويب) يمكن للّاعبين من خلالها إرسال تقارير منظَّمة عن نقاط سيئة إلى مطوِّر اللعبة
  • لذلك، ننصحك بإنشاء مسار بيانات لمعالجة جميع التقارير المُستلَمة وإنشاء إشارات للمساعدة في تصنيف مدى سوء كل موقع جغرافي.
  • استنادًا إلى حالة الاستخدام الفعلية، يمكن استخدام نموذج تعلُّم الآلة فقط أو نموذج تعلّم مختلط وحلّ بشري لتوسيع نطاق عملية الإشراف، من أجل إزالة المواقع الجغرافية غير الملائمة من PlayableLocationsDB.

رسم تخطيطي للإبلاغ عن موقع غير صالح.

في ما يلي مجموعة أمثلة على المعايير التي يمكن استخدامها للمساعدة في تحديد ما إذا كان الموقع الجغرافي القابل للتشغيل سيئًا أم لا:

المعايير مثال
محتوى غير آمن
  • ويقع الموقع القابل للتشغيل على بُعد 50 مترًا من حافة المنحدر.
  • يقع الموقع الجغرافي القابل للتشغيل في وسط شارع رئيسي أو قريب من حركة المرور السريعة التحرّك.
المناطق غير العامة
  • المنشآت الحكومية الخاضعة لقيود: على سبيل المثال، قاعدة عسكرية.
يتعذر الوصول إليه
  • المناطق المسوّرة:
  • معالم في الماء
يتعذّر الوصول مؤقتًا
  • المواقع المغلقة لإجراء التجديدات.
  • المواقع الجغرافية المغلقة موسميًا.
  • تم إغلاق الطرق لإجراء الإصلاح لأكثر من أسبوع واحد.
حساسة ثقافيًا
  • المقابر.
  • أماكن العبادة