أفكار وميزات للعبة

ميزتك التالية

الكائنات المشتركة

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

SDK: فرع developتتطلب جلسة لاعب
Unity
رسم توضيحي لميزة الكائنات المشتركة
النتيجة المرئية

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

الفيديو قادم لاحقًا

لا يوجد فيديو لهذه الخطوة بعد. الدليل وطلب MCP متاحان للاستخدام.

الكائنات المشتركة

جهّزوا المشروع نفسه

  1. اختر في لوحة التحكم المشروع نفسه الموجود في إعداد لعبتك.

    الكائنات المشتركة →
  2. أنشئوا إدخالات الاختبار هذه أو أعيدوا استخدام الموجود منها في نموذج لوحة التحكم. القيم أمثلة وليست بيانات المشروع الحالية.

    المفتاح
    bases
    سياسة القراءة
    all
    سياسة الكتابة
    owner
    الموضع في الشبكة
    true
    الحد الأقصى للبايتات لكل كائن
    1024
    الحد الأقصى للكائنات لكل مالك
    1

    تبقى المفاتيح محجوزة. بعد أول استخدام، لا يمكن تغيير السياسات أو مخطط البحث أو TTL أو الموضع. تمنع الأرشفة عمليات الكتابة الجديدة؛ وتظل القراءة والحذف متاحين.

    يقرأ المثال الأول البيانات. لا ينشئ مجموعة أو مباراة أو كائناً. القائمة الفارغة استجابة أولى صالحة.

  3. احفظوا الإدخالات وأعيدوا تحميلها وتحققوا منها قبل المثال. احتفظوا بالتعريفات الأخرى.

أضف هذه الميزة

يمكنك الاطلاع على الدليل. يتطلب التنفيذ مفتاح مشروع نشطًا. تجهيز المشروع

SDK مُثبّت وإعداد المشروع مُستورد واللاعب مسجّل الدخول.

يستخدم مثال SDK هذا فرع develop. تحقّق من وجود واجهات API المطلوبة في SDK المثبّت.

أكملوا اتصال البدء السريع باللاعب المقصود. استدعوا ReadWorldMap() بزر أو إجراء مشهد صريح. فتح الملف وحده لا يرسل طلباً.

C#
Assets/Scripts/SharedObjectsDemo.cs
استدعاء horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3using PM.horizOn.Cloud.Objects.Network.Responses;
4​
5public sealed class SharedObjectsDemo : MonoBehaviour
6{
7 // Initialize/connect and restore the existing player in the Quickstart first.
8 // Wire an explicit player action; do not add this read to a startup/poll loop.
9 public async void ReadWorldMap()
10 {
11 var user = UserManager.Instance.CurrentUser;
12 if (user == null || !user.IsValid()) return;
13 var result = await SharedObjectsManager.Instance.QueryObjects(user.UserId, "bases", new SharedQuery {
14 mode = SharedQueryMode.Rectangle,
15 minX = -10, maxX = 10, minY = -10, maxY = 10, limit = 20
16 });
17 if (!result.IsSuccess) {
18 Debug.LogWarning(result.ErrorCode);
19 return;
20 }
21 foreach (var item in result.Data.objects) {
22 byte[] bytes = item.data; // Opaque game bytes; validate your game's own format.
23 Debug.Log($"Object {item.id}: {bytes.Length} bytes");
24 }
25 // Respect result.Data.pollAfterSeconds; no automatic poll or next-page loop.
26 // Keep exact dataBase64 and typed search metadata unchanged on metadata edits.
27 // Persist original target, bytes and If-Match revision before a single mutation.
28 // Unknown CREATE: explicit GetRecoveryUsage/QueryRecoveryObjects; never resend.
29 // Generic/defense/ranked VA starts share one start/submit lease; do not replace a pending run.
30 // Trusted validation and durable ordinary Inbox delivery belong to the game backend.
31 }
32}
فتح مثال SDK الكامل ↗

خريطة العالم

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

PvP غير متزامن

اختر خصمًا باستعلام أعداد صحيحة محدود وغير منتظم التوزيع. حمّل بايتات دفاعه وتحقق من اللعب باستخدام تشغيل Validated Actions يديره الخادم. وحده خادم خلفي موثوق يقرر النتيجة ويرسل إشعار Inbox غير قابل للتغيير.

استخدم جلسات اللاعبين المطابقة، ونية الكتابة الأصلية المحفوظة بشكل دائم، وقراءات صريحة ومحدودة. يجب أن ينفذ خادم اللعبة الخلفي التحقق الموثوق من النتائج وتسليم Inbox؛ ويجب ألا تتضمن إصدارات اللعبة Account Keys مطلقًا.

اختبر ميزتك الجديدة.

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

اختر في لوحة التحكم المشروع نفسه الموجود في إعداد لعبتك.

نقاط النهاية
  • GET/shared-objects/collections
  • GET/shared-objects/{collection}/usage
  • GET/shared-objects/{collection}/objects/{objectId}
  • POST/shared-objects/{collection}/query
  • POST/shared-objects/{collection}/objects
  • PUT/shared-objects/{collection}/objects/{objectId}
  • DELETE/shared-objects/{collection}/objects/{objectId}
كل نقاط النهاية في مرجع API
اقتراحنا لخطوتك التالية

أضف رقمًا قياسيًا لكل جولة.

احفظ النتيجة بعد الجولة وأظهر المتصدر. واصل استخدام اتصالك وجلسة اللاعب.