جاهز للإنتاج · SDK مفتوح المصدر · قابل للاستضافة الذاتية

أضف اللعب الجماعي
إلى لعبة Unity في 15 دقيقة

محرك لعب جماعي حديث وسريع لـ Unity — بوابة Rust، تشفير من طرف لطرف، tick حتمي بتردد 30 هرتز، وحتى 100 لاعب لكل غرفة. SDK مفتوح المصدر برخصة MIT.

GameBootstrap.cs
// الاتصال بمفتاح API الخاص بك
NetworkManager.Instance.Connect("rtmpe-your-key");

NetworkManager.Instance.Rooms.CreateRoom(
  new CreateRoomOptions { MaxPlayers = 4 });   // ← هذا كل الـ boilerplate المطلوب

< 30 ms

زمن الاستجابة P99

30 Hz

معدل الـ tick

1,000+

اتصال متزامن

100

لاعب / غرفة

مُصمَّم لألعاب الزمن الحقيقي

كل طبقة في النظام — البوابة، النقل، التشفير، والـ SDK — مصممة للمسار الساخن للعبة. بدون HTTP معاد تدويره، وبدون تعقيد عرضي.

زمن استجابة أقل من 30ms

UDP في المسار الساخن للحالة، و KCP للتسليم الموثوق — كلاهما مُحسَّن للألعاب. P99 أقل من 30ms داخل المنطقة الواحدة في ظروف فقدان الحزم الواقعية.

تشفير من طرف لطرف

ChaCha20-Poly1305 AEAD مع تبادل مفاتيح X25519 وهوية خادم Ed25519. نافذة إعادة 128-بت لكل جلسة، و AAD مرتبط بـ IP والمنفذ المصدر.

حتى 100 لاعب لكل غرفة

إدارة غرف ذرية في PostgreSQL مع قفل FOR UPDATE — صفر سباقات TOCTOU عند الانضمام. محرك tick بـ 30 هرتز موثوق مع استرداد من panic لكل tick.

NetworkVariables و Transforms و RPCs

كرّر القيم والمواقع والـ method calls بدون كتابة بايت واحد من تنسيق wire. NetworkVariable<T> و NetworkTransform و [RtmpeRpc] كلها مدمجة.

إعادة اتصال تلقائية و late-join

إعادة اتصال قائمة على token تنجو من تغيرات NAT في الموبايل وانتقالات Wi-Fi. المنضمون متأخراً يستلمون snapshot كاملة للحالة في ~33 ms.

شغّلها على بنيتك التحتية

استضافة ذاتية على VPS واحد أو توسيع أفقي. وحدات systemd، مقاييس Prometheus، لوحات Grafana، وسجلات Loki — كلها داخل الـ repo.

أطلق اللعب الجماعي في ثلاث خطوات

من single-player إلى multiplayer في أقل من 15 دقيقة — نفس مشروع Unity، بدون إعادة هيكلة معمارية.

  1. 01

    ثبّت الـ SDK

    أضف الحزمة عبر UPM أو الصق Git URL. تستهدف الحزمة Unity 2022.3 LTS و 2023 LTS و Unity 6 (6000.0+) — ثبّت مرة، شغّل في كل مكان.

  2. 02

    اضبط NetworkSettings

    Right-click في Project → Create → RTMPE → Settings، الصق مفتاح API و PSK من بوابة المطورين، واسحب الـ asset إلى component اسمه NetworkManager في مشهد البدء.

  3. 03

    اتصل، spawn، والعب

    استدعِ NetworkManager.Instance.Connect(apiKey). اشترك في OnConnected، سجّل الـ prefab، أنشئ أو انضم لغرفة، وقم بـ spawn اللاعب المحلي. الـ SDK يتولى الباقي.

واجهات API مألوفة وذات رأي

إذا كتبتَ MonoBehaviour في Unity من قبل، فأنت تعرف كيف يعمل RTMPE. ورّث من NetworkBehaviour، أضف NetworkTransform، وكرّر القيم بـ NetworkVariable<T>.

الاتصال

تحقّق من هوية مشروعك بمفتاح API. يقوم الـ SDK بتشفير المفتاح بـ PSK المُهيأ قبل أن يغادر الجهاز.

GameBootstrap.cs
using RTMPE.Core;

NetworkManager.Instance.OnConnected += () =>
{
    Debug.Log("[RTMPE] connected");
};

NetworkManager.Instance.Connect("rtmpe-your-key");

Spawn

سجّل الـ prefabs بـ ID ثابت، أنشئ أو انضم لغرفة، وقم بـ spawn اللاعب المحلي من حدث OnRoomJoined. المنضمون متأخراً يستلمون الحالة الكاملة تلقائياً.

GameManager.cs
using RTMPE.Core;
using RTMPE.Rooms;

var net = NetworkManager.Instance;

net.Rooms.OnRoomJoined += room =>
{
    net.Spawner.RegisterPrefab(prefabId: 1, prefab: playerPrefab);
    net.Spawner.Spawn(prefabId: 1, Vector3.up, Quaternion.identity);
};

net.Rooms.CreateRoom(new CreateRoomOptions
{
    Name = "My Room", MaxPlayers = 4, IsPublic = true,
});

RPCs

علّم method في NetworkBehaviour بـ [RtmpeRpc(target)] وأرسلها من المالك. الأهداف: All، Others، Server، أو AllBuffered لإعادة التشغيل لمنضمين متأخراً.

WeaponSystem.cs
using RTMPE.Core;
using RTMPE.Rpc;

public class WeaponSystem : NetworkBehaviour
{
    [RtmpeRpc(RpcTarget.All)]
    public void FireRpc(Vector3 origin, Vector3 direction)
    {
        // VFX, sound, hit-scan — runs on every client.
    }

    public void Fire(Vector3 origin, Vector3 direction)
    {
        if (!IsOwner) return;
        RPC(nameof(FireRpc), origin, direction);
    }
}

مُصمَّم لكل أنواع الألعاب الفورية

من FPS بـ hitscan إلى ألعاب الاستراتيجية بطيئة الإيقاع — tick موثوق، نقل ملكية، ومتغيرات مكررة تغطي الطيف كاملاً.

ألعاب التصويب من المنظور الأول (FPS)

input من المالك مع تحقق من جانب الخادم عبر RPCs. جلسات موقَّعة بـ Ed25519 ونوافذ إعادة لكل جلسة تحافظ على عدالة المباريات.

ألعاب التعاون (Co-op)

snapshot الحالة للمنضمين متأخراً تتيح لصديقك الدخول في منتصف المهمة ورؤية العالم بشكل صحيح خلال tick واحد. إعادة الاتصال التلقائية تتعامل مع Wi-Fi المتذبذب.

Battle Royale و الأرينا

حتى 100 لاعب لكل غرفة مع area-of-interest culling من جانب الاستقبال. غرف بـ FOR UPDATE locking تلغي سباقات TOCTOU عند الانضمام.

الاستراتيجية الفورية (RTS)

tick موثوق بتردد 30 هرتز مع input ticks متزايدة لكل كائن. قناة موثوقة للأوامر، قناة سريعة لـ transforms الوحدات.

الرياضة والسباقات

NetworkTransform بتردد 30 هرتز مع buffer تداخل يلطّف الـ jitter للمشاهدين. transforms مُكمَّمة تقلل النطاق الترددي دون التضحية بالدقة البصرية.

عوالم MMO خفيفة

نظام lobby يصفّي ويسرد الغرف من جانب الخادم. نقل master-client ينجو من قطع اتصال المستضيف — لا انهيار في نهاية اللعبة.

ابدأ البناء اليوم

SDK مفتوح المصدر، برخصة MIT. سجّل في حساب بوابة المطورين المجاني لإصدار أول مفتاح API في أقل من دقيقة.