> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qwacks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# البداية السريعة

> من الصفر إلى لاعب مُسجَّل الدخول في خمس خطوات عبر حزمة تطوير Flock.

يأخذك هذا الدليل من لعبة جديدة تمامًا إلى أول لاعب يسجّل الدخول لديك عبر حزمة تطوير Flock.

<Steps>
  <Step title="أنشئ استوديو ولعبة">
    سجّل الدخول إلى [لوحة تحكم Qwacks](https://flock-saas.qwacks.com)، وأنشئ **استوديو**، ثم أنشئ
    **لعبة** بداخله. واللعبة هي الحاوية التي تضم لاعبيك واقتصادك وإعداداتك.

    <Frame caption="أنشئ استوديو ولعبة من لوحة تحكم Qwacks.">
      <img src="https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/getting-started/create-game.png?fit=max&auto=format&n=TGGmq_oWzDacAqHl&q=85&s=c06ee3bd32712ab27d3d9ad89c047b9e" alt="إنشاء استوديو ولعبة" width="1440" height="866" data-path="images/getting-started/create-game.png" />
    </Frame>
  </Step>

  <Step title="احصل على بيانات الاعتماد">
    افتح لعبتك في لوحة التحكم وانسخ **مفتاح الواجهة البرمجية (API Key)**، و**معرّف اللعبة
    (Game ID)**، و**إصدار اللعبة (Game Version)**. ستضع هذه القيم في حزمة التطوير كي تتمكّن من
    الاتصال بلعبتك.

    <Frame caption="انسخ بيانات اعتماد لعبتك من لوحة التحكم.">
      <img src="https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/getting-started/credentials.png?fit=max&auto=format&n=TGGmq_oWzDacAqHl&q=85&s=52f49700ba4103e24f00858b6842d58b" alt="بيانات اعتماد اللعبة" width="1440" height="866" data-path="images/getting-started/credentials.png" />
    </Frame>

    <Warning>
      تعامَل مع مفتاح الواجهة البرمجية كما تتعامل مع كلمة المرور. استخدم مفتاحًا مخصّصًا للبيئة
      الصحيحة، وافصل بين بيئة التطوير وبيئة الإنتاج، وبدّله من لوحة التحكم إن تسرّب.
    </Warning>
  </Step>

  <Step title="ثبّت حزمة التطوير واضبطها">
    أضف حزمة التطوير الخاصة بمحرّكك — [Unity](/ar/sdk/unity) أو [Unreal](/ar/sdk/unreal) — ثم افتح
    إعداداتها (**Flock → Settings** في Unity، و**Project Settings → Plugins → Flock SDK** في Unreal)
    وألصق فيها بيانات اعتمادك. وتُجهّز النافذة الأمرين اللذين تحتاجهما الحزمة قبل أن تبدأ:

    * **Resolve Game Version** — تبحث عن معرّف إصدارك وتخبزه داخل الإعداد. وتستخدم التهيئة عند
      التشغيل ذلك المعرّف مباشرةً ولا تتصل بالخادم إطلاقًا، لذا يجب أن يُحلّ قبل أن تلعب أو تبني.
      وتقوم النافذة بذلك تلقائيًا أثناء إدخالك بيانات الاعتماد.
    * **Verify** — تؤكّد أن بيانات اعتمادك تصل فعلًا إلى Flock (قائمة **Setup**، ثم زر **Verify**).

    ثم اختر كيف تبدأ حزمة التطوير:

    * **تلقائيًا (الوضع الافتراضي):** مع تفعيل **Auto-Initialize On Load**، تهيّئ الحزمة نفسها قبل
      أول مشهد أو مستوى لديك — فلا شيء عليك استدعاؤه. وتصل إليها عبر `FlockClient.Instance` في
      Unity، أو `UFlockSubsystem::Get(this)` في Unreal.
    * **يدويًا:** عطّل الخيار وهيّئها بنفسك — وهو مفيد إن أردت الانتظار حتى تنتهي شاشة البداية أو
      اتفاقية الترخيص. في Unity تستدعي `FlockClient.Create(config.ToInitConfig())` (أو تستخدم مكوّن
      `FlockBootstrap`)، وفي Unreal تستدعي `InitializeFromSettings()`.

    <Note>
      تجد التفاصيل الكاملة لأساليب التهيئة في صفحتَي حزمتَي [Unity](/ar/sdk/unity) و[Unreal](/ar/sdk/unreal).
    </Note>
  </Step>

  <Step title="سجّل دخول لاعب">
    سجّل دخول اللاعب — وتتولّى حزمة التطوير إدارة الجلسة من هناك.

    <CodeGroup>
      ```csharp Unity theme={null}
      await FlockClient.Instance.Authentication.LoginWithEmailAsync("player@example.com", "hunter2");
      Debug.Log($"Signed in as {FlockClient.Instance.CurrentPlayerId}");
      ```

      ```cpp Unreal theme={null}
      UFlockSubsystem* Sdk = UFlockSubsystem::Get(this);
      Sdk->GetAuthProvider()->LoginWithEmail(TEXT("player@example.com"), TEXT("hunter2"),
          [](TFlockResult<FFlockPlayerLoginResponse> Result)
          {
              if (Result.bSuccess)
              {
                  UE_LOG(LogTemp, Log, TEXT("Signed in as %s"), *Result.Value.PlayerId);
              }
          });
      ```
    </CodeGroup>

    وفي Blueprint يصبح هذا عقدة `Flock Login With Email` واحدة بطرفَي نجاح وفشل.

    <Note>
      تسجيل الدخول لا يُنشئ حسابًا — فالتسجيل استدعاء منفصل في كلتا الحزمتين. وتظهر الإخفاقات
      بصورة مختلفة: Unity **ترمي استثناءً**، بينما تُعيد Unreal قيمة `TFlockResult` تتحقّق منها،
      لأن Unreal تُبنى مع تعطيل الاستثناءات.
    </Note>
  </Step>

  <Step title="استخدم إحدى الميزات">
    ما إن يسجّل اللاعب دخوله حتى تصل إلى أي ميزة عبر حزمة التطوير:

    <CodeGroup>
      ```csharp Unity theme={null}
      var game = await FlockClient.Instance.Game.GetGameAsync();
      Debug.Log($"Playing {game.Name}");
      ```

      ```cpp Unreal theme={null}
      Sdk->GetGameProvider()->GetGame(
          [](TFlockResult<FFlockGameSchema> Game)
          {
              UE_LOG(LogTemp, Log, TEXT("Playing %s"), *Game.Value.Name);
          });
      ```
    </CodeGroup>

    وبهذا تكون قد انطلقت. 🎉
  </Step>
</Steps>

<h2 id="next-steps">
  الخطوات التالية
</h2>

<CardGroup cols={2}>
  <Card title="افهم المصادقة" icon="key" href="/ar/authentication">
    كيف تدير حزمة التطوير جلسات اللعبة واللاعب.
  </Card>

  <Card title="استكشف الأدلّة" icon="layer-group" href="/ar/guides/players-and-auth">
    اللاعبون، والمتاجر، ولوحات الصدارة، والإعدادات عن بُعد، وغير ذلك.
  </Card>
</CardGroup>
